Skip to content

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.