Skip to main content

Response envelope

Canonical collection endpoints return a standard envelope:
  • organizationId — the organization bound to your API key. You cannot supply or override it.
  • filters — the filter values the server applied, including nulls for filters you did not pass.
  • data — the page of results.
  • pagination — paging state for the next request.

Cursor pagination

limit defaults to 100 and is capped at 500 (the links collection is capped at 100). Invalid limit values fall back to 100. When pagination.hasMore is true, pass pagination.nextCursor back as the cursor query parameter to fetch the next page:
Cursors are opaque and bound to the endpoint that issued them. Nested-resource and sorted-link cursors are additionally bound to their parent resource or sort order. Reusing a cursor on another endpoint returns 400.

Data conventions

  • Timestamps are UTC ISO 8601 values. Timestamp filters such as createdAfter require an explicit offset, for example 2026-07-01T00:00:00Z.
  • Money fields ending in Cents are integer cents.
  • Codes — voucher and purchase fulfillment codes are excluded by default because they grant value. Pass includeCodes=true to include them.
  • Purchase IDs are stable encrypted public identifiers. They never contain the underlying payment-processor identifier.

Errors

Errors use a stable JSON body:
Detail endpoints return 404 for both missing and cross-tenant IDs, so resource existence is never disclosed across organizations.