Skip to main content

CompanyDetails

The CompanyDetails interface represents your company’s profile information that appears on invoices.
id
string
required
Unique identifier for the company profile
name
string
required
Company or business name
email
string
required
Company contact email address
phone
string
Company phone number
address
string
required
Street address
city
string
required
City
state
string
required
State or province
zipCode
string
required
Postal or ZIP code
country
string
required
Country name
website
string
Company website URL
taxId
string
Tax identification number (VAT, EIN, etc.)
Base64-encoded company logo image
isDefault
boolean
required
Whether this is the default company profile
createdAt
string
required
ISO 8601 timestamp when the profile was created
updatedAt
string
required
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.

Build docs developers (and LLMs) love