OpenCourt Developers
API ReferenceSignal types

order.paid

An order was paid: a booking, an event or program sign-up, a store or point-of-sale sale (card or cash), a gift card, club credit, or a membership payment — the first one and every renewal. Once per order. data.object is the itemized order, as GET /v1/orders/{id} returns it: line_items[].booking_id and event_id say what it paid for. It is the order as it is when the signal is sent: a refund that landed within moments of the payment already shows in status and refunds. A $0 order (a booking paid in full with a pass or points) is sent too, with amount: 0. A membership payment of $0 creates no order and sends nothing.

Scope: the webhook endpoint’s scopes must include orders:read. Missed a delivery? The same signal is available from GET /v1/signals.

Header Parameters

svix-id*string

The message id — stable across retries of the same message. Deduplicate on the body’s id (the signal id), not on this: an endpoint whose api_version changes while a signal is being retried can receive that signal once per version, as two messages with two message ids.

svix-timestamp*string

When this attempt was sent, in Unix seconds.

svix-signature*string

Signature over the id, timestamp and raw body, made with your endpoint’s secret. Verify it with any Standard Webhooks library before trusting the payload.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

Example Requests

POST/order.paid