Orders¶
GET /partners/sync/bookings?lastSyncedAt=... returns new orders. See Keep your data in sync first.
curl "https://production.speakeasygo.com/partners/sync/bookings?lastSyncedAt=2026-11-01T00:00:00.000Z" \
-H "token: $SPEAKEASY_VENUE_TOKEN"
{
"bookings": [
{
"id": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
"venueId": "11111111-1111-4111-8111-111111111111",
"eventId": "22222222-2222-4222-8222-222222222222",
"bookingType": "EVENT",
"bookingSubType": "NONE",
"bookingSourceType": "DIRECT",
"paymentStatus": "SUCCESS",
"bookingStartTime": "2026-11-15 03:00:00",
"bookingEndTime": "2026-11-15 08:00:00",
"createdAt": "2026-11-02T04:10:00.000Z",
"userHasBooking": [
{ "consumerUserId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa" }
],
"bookingHasItem": [
{
"id": "cccccccc-cccc-4ccc-8ccc-cccccccccccc",
"ticketId": "33333333-3333-4333-8333-333333333333",
"ticketName": "General Admission",
"ticketCustomName": null,
"ticketPrice": 25,
"refundType": "NONE"
},
{
"id": "dddddddd-dddd-4ddd-8ddd-dddddddddddd",
"ticketId": "33333333-3333-4333-8333-333333333333",
"ticketName": "General Admission",
"ticketCustomName": null,
"ticketPrice": 25,
"refundType": "NONE"
}
],
"fees": {
"subTotal": 50,
"customFee": 0,
"salesTax": 4.2,
"discount": 0,
"processingFee": 4,
"total": 58.2
}
}
],
"syncedAt": "2026-11-05T12:00:00.000Z",
"meta": { "venueId": "11111111-1111-4111-8111-111111111111", "count": 1 }
}
Which orders you get¶
Orders of your venue with paymentStatus SUCCESS, created at or after the checkpoint. An order does not come back when it changes
later. Comps and free tickets are included: see bookingSubType.
Table payments are not here. They are on Reservations.
Fields to use¶
Other columns can appear. Do not rely on them.
| Field | Meaning |
|---|---|
id |
The order id |
venueId, eventId |
eventId is null on a cover order. To get the event's name, join with GET /partners/events. |
bookingType |
EVENT or COVER. Old records can have other values. |
bookingSubType |
NONE for a normal sale. COMPED, FREE, GUEST_INVITE, INVITE_LINK, PROMOTION_LINK or PROMOTION_CODE for the others. |
bookingSourceType |
Where it came from: DIRECT, ORGANIC, SOCIAL, REFERRING_SITE, MICROSITE, AFFILIATE, PROMO_CODE, COMPED, WIDGET or UNKNOWN |
bookingSource |
More detail on the source, when there is any |
bookingStartTime, bookingEndTime |
The event's time, yyyy-MM-dd HH:mm:ss in UTC. null on a cover order. |
createdAt |
ISO 8601 in UTC |
userHasBooking[].consumerUserId |
The guest. See Guests. |
Tickets¶
bookingHasItem has one row per ticket. To get the quantity of a ticket type, count the rows with the same ticketId. ticketId is the ticket type, and id is
this one ticket.
| Field | Meaning |
|---|---|
id |
This ticket |
ticketId |
The ticket type |
ticketName, ticketCustomName |
The ticket type's name |
ticketPrice |
The price of one ticket, before fees and tax |
refundType |
NONE, FULL or FULL_VOID. See Refund. |
isDeleted |
Leave out rows where this is true |
Money¶
In fees, for the whole order, in the venue's currency:
| Field | Meaning |
|---|---|
subTotal |
The tickets |
customFee, customFeeName |
The venue's own fee |
salesTax, salesTaxName |
Tax |
discount |
Promo code discount |
processingFee |
The service fee the guest pays |
total |
What the guest was charged |
fees can be null on a comp or free order. The order's totalItems field is not filled in, so count the rows in bookingHasItem.