CompanyDetails
The CompanyDetails interface represents your company’s profile information that appears on invoices.
Unique identifier for the company profile
Company contact email address
Tax identification number (VAT, EIN, etc.)
Base64-encoded company logo image
Whether this is the default company profile
ISO 8601 timestamp when the profile was created
ISO 8601 timestamp when the profile was last updated
TypeScript definition
From app/lib/types.ts:87-103:
export interface CompanyDetails {
id: string;
name: string;
email: string;
phone?: string;
address: string;
city: string;
state: string;
zipCode: string;
country: string;
website?: string;
taxId?: string;
logo?: string;
isDefault: boolean;
createdAt: string;
updatedAt: string;
}
Example
{
"id": "comp_abc123",
"name": "Acme Design Studio",
"email": "[email protected]",
"phone": "+1 (555) 123-4567",
"address": "123 Design Ave",
"city": "San Francisco",
"state": "CA",
"zipCode": "94102",
"country": "United States",
"website": "https://acmestudio.com",
"taxId": "12-3456789",
"logo": "data:image/png;base64,...",
"isDefault": true,
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-03-01T14:20:00Z"
}
Usage
Company details are displayed on invoices and can be managed through the company settings page (/company).
import type { CompanyDetails } from '@/app/lib/types';
// Create a company profile
const company: CompanyDetails = {
id: crypto.randomUUID(),
name: 'My Business',
email: '[email protected]',
address: '456 Business Rd',
city: 'Austin',
state: 'TX',
zipCode: '78701',
country: 'United States',
isDefault: true,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
};
Multiple company profiles can be created, but only one can be marked as default at a time.