v1
latestOpenAPI 3.0.02026-07-24161215397.4 KBExecute checkout
Execute a checkout for memberships, fees, or bookings. Provide either memberships/fees or a booking, but not both. This endpoint creates billable items and may trigger invoice generation, payment charging, email notifications, and legal document signing depending on the provided options and the organization's billing flow.
Memberships/Fees flow: Creates memberships and/or fees for the member. The checkout options control whether an invoice is generated immediately, whether the member is charged, and whether a credit card is required. If shouldRequestApproval is true, the order is created but payment is deferred and an approval request email is sent instead of the standard checkout confirmation.
Booking flow: Creates a booking for the specified resource and time slot. If the booking produces fees, an invoice is generated and processed automatically. This flow simulates the booking experience from the members portal or public calendar.
Required scopes: flex.billing.checkout.create
Path parameters
organization slug
Query parameters
Whether to enforce the booking policy and member validation rules when the request contains a booking. If true, member validations and booking-policy-driven tentative/approval flagging are applied to the booking checkout, and reflected in the checkout summary preview (note: policy-violation rejection is only applied at checkout, not in the summary preview). If false or not passed at all, the request behaves as it does today. Has no effect on memberships/fees checkouts.
Request body
Example request
{
"member": "507f1f77bcf86cd799439011",
"location": "507f1f77bcf86cd799439012",
"memberships": [
{
"plan": "507f1f77bcf86cd799439011",
"startDate": "2026-03-01",
"location": "507f1f77bcf86cd799439012",
"name": "Hot Desk Monthly",
"price": 200,
"addOns": [
"507f1f77bcf86cd799439013"
]
}
],
"fees": [
{
"plan": "507f1f77bcf86cd799439011",
"date": "2026-03-01",
"location": "507f1f77bcf86cd799439012"
}
],
"booking": {
"start": "2026-03-01T09:00:00.000Z",
"end": "2026-03-01T10:00:00.000Z",
"resource": "507f1f77bcf86cd799439011",
"member": "507f1f77bcf86cd799439012",
"company": "507f1f77bcf86cd799439013",
"price": 50,
"extras": [
{
"_id": "507f1f77bcf86cd799439011",
"count": 2
}
],
"description": "Team standup meeting",
"title": "Daily Standup"
},
"discountCode": "DISCOUNT10",
"documents": [
"507f1f77bcf86cd799439013"
],
"options": {
"shouldSendInvoice": true,
"shouldInvoiceImmediately": true
},
"paymentProvider": {
"cardType": "visa",
"setupIntent": "seti_xxx",
"paymentIntent": "pi_xxx"
},
"notifications": {
"member": true,
"admin": true
},
"signatureMeta": "base64-signature-data"
}Response
Example response
{
"memberships": [
{
"_id": "603dfbc260f4054084125d30",
"name": "Private Office",
"isPersonal": false,
"status": "approved",
"calculatedStatus": "active",
"type": "month-to-month",
"location": "603dfbc260f4054084125d33",
"plan": "603dfbc260f4054084125d33",
"company": "603dfbc260f4054084125d33",
"member": "603dfbc260f4054084125d33",
"startDate": "2026-03-01T00:00:00.000Z",
"endDate": "2027-03-01T00:00:00.000Z",
"intervalLength": "month",
"intervalCount": 6,
"isLocked": false,
"price": 200,
"deposit": 100,
"discount": "603dfbc260f4054084125d33",
"discountAmount": 5,
"calculatedDiscountAmount": 5,
"discountedPrice": 195,
"contract": "603dfbc260f4054084125d33",
"source": "admin",
"createdAt": "2026-03-01T08:00:00.000Z",
"createdBy": "6080186f490fcf6e0537ec27",
"modifiedAt": "2026-03-01T08:05:00.000Z",
"modifiedBy": "6080186f490fcf6e0537ec54"
}
],
"fees": [
{
"_id": "603dfbc260f4054084125d30",
"name": "Day Pass",
"price": 20,
"quantity": 2,
"company": "603dfbc260f4054084125d30",
"member": "603dfbc260f4054084125d30",
"location": "603dfbc260f4054084125d30",
"plan": "603dfbc260f4054084125d30",
"planType": "plan",
"issueDate": "2026-03-01T00:00:00.000Z",
"status": "approved",
"discount": "603dfbc260f4054084125d33",
"discountAmount": 5,
"calculatedDiscountAmount": 5,
"discountedPrice": 15,
"isRefundable": true,
"isPersonal": true,
"shouldBillInAdvance": false,
"shouldUseCoins": false,
"payment": {
"_id": "603dfbc260f4054084125d30",
"status": "paid",
"creditNote": "603dfbc260f4054084125d30"
},
"source": "admin",
"createdAt": "2026-03-01T08:00:00.000Z",
"createdBy": "6080186f490fcf6e0537ec27",
"modifiedAt": "2026-03-01T08:05:00.000Z",
"modifiedBy": "6080186f490fcf6e0537ec54"
}
],
"booking": {
"properties": {
"customProperty1": "value1",
"customProperty2": "value2"
},
"_id": "603dfbc260f4054084125d39",
"timezone": "Europe/London",
"start": "2024-10-31T13:00:00.000Z",
"end": "2024-10-31T13:30:00.000Z",
"recurrence": {
"rrule": "FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10",
"exdates": [
"2024-10-31T13:00:00.000Z"
]
},
"seriesStart": "2024-10-31T13:00:00.000Z",
"seriesEnd": "2024-10-31T13:30:00.000Z",
"location": "603dfbc260f4054084125d39",
"company": "603dfbc260f4054084125d39",
"member": "603dfbc260f4054084125d39",
"resource": "603dfbc260f4054084125d39",
"fees": [
{
"date": "2017-10-31T00:00:00.000Z",
"extraFees": [],
"credits": [
{
"count": 2,
"credit": "594932ea518f3f150d306c89"
}
],
"customPrice": 100
}
],
"reference": "81LCV6S",
"title": "Meeting with John",
"rate": "603dfbc260f4054084125d39",
"description": "Meeting with John at the office.",
"isTentative": true,
"extras": [
{
"_id": "603dfbc260f4054084125d39",
"count": 2
}
],
"visitors": [
"603dfbc260f4054084125d36",
"603dfbc260f4054084125d37"
],
"members": [
"603dfbc260f4054084125d36",
"603dfbc260f4054084125d37"
],
"serviceSlots": {
"before": 10,
"after": 10
},
"source": "admin",
"createdAt": "2022-02-07T10:03:33.169Z",
"createdBy": "5bbb155174321f100085eac1",
"modifiedAt": "2022-02-08T10:03:33.169Z",
"modifiedBy": "5bbb155174321f100085eac1"
},
"invoice": {
"properties": {
"customProperty1": "value1",
"customProperty2": "value2"
},
"_id": "6780f1ba1a2b3c4d5e6f7a8b",
"number": "INV-123",
"date": "2025-01-01T00:00:00.000Z",
"dueDate": "2025-01-01T00:00:00.000Z",
"company": "6780f1ba3c4d5e6f7a8b9c0d",
"member": "6780f1ba2b3c4d5e6f7a8b9c",
"location": "6780f1ba4d5e6f7a8b9c0d1e",
"reference": "Payment for the membership fee.",
"allocations": [],
"lines": [
{
"description": "Membership fee",
"quantity": 2,
"account": "6780f1ba5e6f7a8b9c0d1e2f",
"plan": "6780f1ba6f7a8b9c0d1e2f3a",
"fee": "6780f1ba7a8b9c0d1e2f3a4b",
"membership": "6780f1ba9c0d1e2f3a4b5c6d",
"location": "6780f1ba4d5e6f7a8b9c0d1e",
"taxRate": "6780f1ba1e2f3a4b5c6d7e8f",
"taxPercent": 25,
"taxAmount": 25.7,
"discountAmount": 10,
"price": 60,
"unitPrice": 30,
"unitDiscount": 5,
"subTotal": 60,
"baseUnitPrice": 70,
"baseTotal": 60,
"total": 60,
"startDate": "2025-01-01T00:00:00.000Z",
"endDate": "2025-01-01T00:00:00.000Z",
"convertedAmounts": {
"price": 60,
"discountAmount": 10,
"baseUnitPrice": 70,
"subTotal": 60,
"unitPrice": 30,
"taxAmount": 12,
"taxPercent": 15,
"baseTotal": 60,
"total": 60
},
"addons": [
{
"name": "Addon 1",
"unitPrice": 10,
"description": "Addon description"
},
{
"name": "Addon 2",
"unitPrice": 20,
"description": "Addon description"
}
],
"fees": [
"6780f1ba7a8b9c0d1e2f3a4b",
"6780f1ba8b9c0d1e2f3a4b5c"
],
"memberships": [
"6780f1ba9c0d1e2f3a4b5c6d"
]
}
],
"processingFeeLine": {
"taxPercent": 12,
"taxAmount": 15,
"price": 60,
"discountAmount": 10,
"unitPrice": 30,
"baseUnitPrice": 70,
"subTotal": 60,
"baseTotal": 60,
"total": 60,
"convertedAmounts": {
"taxPercent": 12,
"taxAmount": 15,
"price": 60,
"discountAmount": 10,
"unitPrice": 30,
"baseUnitPrice": 70,
"subTotal": 60,
"baseTotal": 60,
"total": 60
},
"description": "Membership fee",
"account": "6780f1ba5e6f7a8b9c0d1e2f",
"plan": "6780f1ba6f7a8b9c0d1e2f3a",
"fee": "6780f1ba7a8b9c0d1e2f3a4b",
"location": "6780f1ba4d5e6f7a8b9c0d1e",
"membership": "6780f1ba9c0d1e2f3a4b5c6d",
"taxRate": "6780f1ba1e2f3a4b5c6d7e8f",
"discount": 10,
"unitDiscount": 5,
"quantity": 2,
"startDate": "2023-01-01T00:00:00.000Z",
"endDate": "2023-01-01T00:00:00.000Z",
"addOns": {
"name": "Basic addon",
"unitPrice": 10,
"description": "Addon description"
},
"fees": [
"6780f1ba7a8b9c0d1e2f3a4b",
"6780f1ba8b9c0d1e2f3a4b5c"
],
"memberships": [
"6780f1ba9c0d1e2f3a4b5c6d",
"6780f1ba0d1e2f3a4b5c6d7e"
]
},
"taxAmounts": [
{
"percent": 25,
"total": 25.7,
"taxRate": "6780f1ba1e2f3a4b5c6d7e8f"
}
],
"subTotal": 60,
"amount": 60,
"payableAmount": 60,
"accounting": {
"provider": "xero",
"providerId": "123456789",
"externalOrgId": "987654321",
"deepLink": "https://quickbooks.com/123456789",
"lastSync": "2025-01-01T00:00:00.000Z",
"error": "An error occurred while syncing with Xero"
},
"baseTotal": 60,
"total": 80,
"paidAmount": 40,
"pendingAmount": 40,
"allocatedAmount": 40,
"currency": "USD",
"currencyConversionRate": 0.98567,
"isPaid": true,
"chargeMethod": "Credit Card",
"createdAt": "2025-01-01T00:00:00.000Z",
"createdBy": "6780f1ba4b5c6d7e8f9a0b1c",
"modifiedAt": "2025-01-01T00:00:00.000Z",
"modifiedBy": "6780f1ba4b5c6d7e8f9a0b1c"
}
}