Skip to content

DoCurious API Reference / types / Vendor

Interface: Vendor ​

Defined in: types/vendor.types.ts:182

Complete vendor entity aggregating profile, venues, documents, and approval state.

Remarks ​

Vendors go through a 3-step onboarding flow (profile -> affiliate/commission -> venues) tracked by onboardingStep. The stripeConnectId field maps to a real Stripe Connect account ID from the SQL vendors.payment_id column.

Example ​

ts
const vendor: Vendor = {
  id: 'vnd-007',
  createdAt: '2025-04-01T00:00:00Z',
  updatedAt: '2025-04-10T00:00:00Z',
  userId: 'usr-vendor-01',
  companyName: 'Portland Pottery Co.',
  profile: { shortDescription: 'Handcrafted pottery experiences.' },
  contact: { contactName: 'Jane Doe', email: 'jane@pottery.co' },
  billingAddress: { street: '123 Clay St', city: 'Portland', state: 'OR', postalCode: '97201', country: 'US' },
  virtualVenues: [],
  physicalVenues: [],
  documents: [],
  approvalStatus: 'approved',
  accountStatus: 'active',
  onboardingStep: 3,
  isOnboardingComplete: true,
}

Extends ​

Properties ​

accountStatus ​

accountStatus: VendorAccountStatus

Defined in: types/vendor.types.ts:195


affiliateInfo? ​

optional affiliateInfo: AffiliateInfo

Defined in: types/vendor.types.ts:190


agreementSignedAt? ​

optional agreementSignedAt: string

Defined in: types/vendor.types.ts:199

ISO datetime when the vendor signed the platform agreement


approvalStatus ​

approvalStatus: VendorApprovalStatus

Defined in: types/vendor.types.ts:194


billingAddress ​

billingAddress: Address

Defined in: types/vendor.types.ts:188


companyName ​

companyName: string

Defined in: types/vendor.types.ts:185


contact ​

contact: VendorContact

Defined in: types/vendor.types.ts:187


createdAt ​

createdAt: string

Defined in: types/common.types.ts:154

ISO 8601 datetime when the entity was created

Inherited from ​

BaseEntity.createdAt


documents ​

documents: VendorDocument[]

Defined in: types/vendor.types.ts:193


id ​

id: string

Defined in: types/common.types.ts:167

Inherited from ​

BaseEntity.id


isOnboardingComplete ​

isOnboardingComplete: boolean

Defined in: types/vendor.types.ts:205

Whether the vendor has completed all onboarding steps


onboardingStep ​

onboardingStep: number

Defined in: types/vendor.types.ts:203

Current onboarding step (1-3); 3 means all steps submitted


physicalVenues ​

physicalVenues: PhysicalVenue[]

Defined in: types/vendor.types.ts:192


profile ​

profile: VendorProfileInfo

Defined in: types/vendor.types.ts:186


revisionReason? ​

optional revisionReason: string

Defined in: types/vendor.types.ts:197

Staff-provided reason when requesting modifications


stripeConnectId? ​

optional stripeConnectId: string

Defined in: types/vendor.types.ts:201

Stripe Connect account ID for payment processing (from SQL vendors.payment_id)


taxInfo? ​

optional taxInfo: VendorTaxInfo

Defined in: types/vendor.types.ts:189


updatedAt ​

updatedAt: string

Defined in: types/common.types.ts:156

ISO 8601 datetime when the entity was last modified

Inherited from ​

BaseEntity.updatedAt


userId ​

userId: string

Defined in: types/vendor.types.ts:184

User account ID of the vendor owner


virtualVenues ​

virtualVenues: VirtualVenue[]

Defined in: types/vendor.types.ts:191

DoCurious Platform Documentation