Reservation data model

Updated:

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
location_idstringNo(reference to CommerceLocation)
start_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
end_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
sizenumberNo
statusenumNoValues: PENDING, CONFIRMED, CANCELLED, NO_SHOW, COMPLETED
guest_namestringNo
guest_phonestringNo
guest_emailstringNo
notesstringNo
item_idstringNo(reference to CommerceItem)
item_namestringNo
staff_user_idstringNo(reference to HrisEmployee)
staff_namestringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
urlstringNo
metadataCommerceMetadata[]No
metadata[].idstringNoThe ID of the custom field definition (from the metadata/metadata endpoint).
metadata[].valueobjectNoThe field's value, typed by format: DATE as ISO-8601 (YYYY-MM-DD, or YYYY-MM-DDTHH:MM:SSZ for date-times); NUMBER, PRICE and CURRENCY as a number; BOOLEAN and YES_NO as true/false; MULTIPLE_SELECT as an array of option values; otherwise a string.
metadata[].namespacestringNo
metadata[].formatenumNoThe data type of the custom field, which determines how value is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo
metadata[].slugstringNoThe integration's API name (key) of an existing custom field. List valid slugs for this object with the metadata/metadata endpoint; unknown slugs are rejected by the integration.
metadata[].descriptionstringNo
metadata[].is_requiredbooleanNo

TypeScript

TypeScript
export type CommerceReservation = {
	id?: string;
	location_id?: string; // (reference to CommerceLocation)
	start_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	end_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	size?: number;
	status?: 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'NO_SHOW' | 'COMPLETED';
	guest_name?: string;
	guest_phone?: string;
	guest_email?: string;
	notes?: string;
	item_id?: string; // (reference to CommerceItem)
	item_name?: string;
	staff_user_id?: string; // (reference to HrisEmployee)
	staff_name?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	url?: string;
	metadata?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodCommerceReservation = z.object({
	id: z.string().optional(),
	location_id: z.string().optional().describe("(reference to CommerceLocation)"),
	start_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	end_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	size: z.number().optional(),
	status: z.enum("PENDING", "CONFIRMED", "CANCELLED", "NO_SHOW", "COMPLETED").optional(),
	guest_name: z.string().optional(),
	guest_phone: z.string().optional(),
	guest_email: z.string().optional(),
	notes: z.string().optional(),
	item_id: z.string().optional().describe("(reference to CommerceItem)"),
	item_name: z.string().optional(),
	staff_user_id: z.string().optional().describe("(reference to HrisEmployee)"),
	staff_name: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	url: z.string().optional(),
	metadata: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class CommerceReservationStatus(str, Enum):
	PENDING = 'PENDING'
	CONFIRMED = 'CONFIRMED'
	CANCELLED = 'CANCELLED'
	NO_SHOW = 'NO_SHOW'
	COMPLETED = 'COMPLETED'

@dataclasses.dataclass
class CommerceReservation:
	id: Optional[str]
	"""(reference to CommerceLocation)"""
	location_id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	start_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	end_at: Optional[str]
	size: Optional[int]
	status: Optional[CommerceReservationStatus]
	guest_name: Optional[str]
	guest_phone: Optional[str]
	guest_email: Optional[str]
	notes: Optional[str]
	"""(reference to CommerceItem)"""
	item_id: Optional[str]
	item_name: Optional[str]
	"""(reference to HrisEmployee)"""
	staff_user_id: Optional[str]
	staff_name: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	url: Optional[str]
	metadata: Optional[PropertyCommerceReservationMetadata]
Are we missing anything? Let us know
Was this page helpful?