Admin — list fulfillment orders for a user

ADMIN

Returns the fulfillment orders belonging to the given external user, newest
first (by last_mutation_date). Each item includes its issued tickets inline,
so a single paginated call is enough to render "all tickets for this user".

external_user_id is the same identifier the integrator supplied to
POST /session when generating the user's authorization code — there is no
separate platform user ID.

Orders without tickets yet (PENDING / CONFIRMED before barcodes are
assigned) are returned with an empty tickets array.

Deliverable PDF URLs are not included in list responses — call the
single-order endpoint for a presigned download URL.

Unknown external_user_id yields an empty list (no 404). This avoids
leaking user-existence signals to integrators.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Part of ticketing — Tickets and fulfillment explains the order lifecycle and how tickets are issued.

Why this endpoint exists

The same payload as GET /me/fulfillment/orders, addressed by
customer instead of by session — so your backend can read a customer's orders and tickets
without holding their credentials.

That covers the cases a storefront cannot: a support desk answering "where are my tickets", a CRM
or account view rendered server-side, a reconciliation job, and guest purchases, which never
appear under /me/* because there is no session to resolve.

Authorisation and scoping

CredentialS2S token (client_credentials)
Scopefuntrips/fulfillment.read
CampaignResolved from the token's campaign claim

external_user_id is your identifier for the customer — the same value you passed to
POST /session. It is stored verbatim and there is no separate platform
user id, so no mapping to maintain.

Request

curl "https://api.acc.funtrips.io/v2/admin/fulfillment/users/customer-4815162342/orders?limit=20&status=COMPLETED" \
  -H "Authorization: Bearer $S2S_TOKEN"
ParameterTypeNotes
external_user_idpathYour identifier for the customer
limitinteger1–100, default 20
next_tokenstringCursor from meta.pagination.next_token
statusenumFilter to one lifecycle state

The response is data.items — a paginated array of orders with their tickets inline, newest first
by last_mutation_date. Identical in shape to the customer-facing list,
including the empty tickets array on orders still being fulfilled.

An unknown customer returns an empty list

Not a 404. A customer who has never ordered and a customer who does not exist are indistinguishable
in the response, deliberately — otherwise this endpoint would answer "does this person exist?" for
any identifier you cared to try.

So an empty list means "nothing to show", never "wrong id". Verify the external_user_id against
your own records rather than expecting the API to tell you.

No PDF URLs here

deliverable is omitted from list responses. For the ticket document, call
the single-order endpoint.

Errors

StatusMeaningWhat to do
400Invalid status value or malformed limitFix the request
401S2S token missing, expired or invalidRe-fetch the token, retry once
403Token lacks funtrips/fulfillment.readProvisioning — contact us
500Server-side faultRetryable

Fulfillment routes answer with status and title — branch on the status code. See
Error handling.

Notes

  • customer_email is personal data. Do not log it; log order_id and the correlation id.
  • Filter REORDERED out of anything resembling a ticket list — those barcodes are voided.
Path Params
string
required

Identifier of the user in the integrator's system. This is the same value
the integrator supplied as external_user_id when generating an authorization
code via POST /session (see GenerateAuthCodeRequest.external_user_id).
The platform stores it verbatim and uses it as the canonical user reference
across loyalty, fulfillment, and other admin endpoints — there is no separate
platform user ID to look up.

Query Params
integer
1 to 100
Defaults to 20

Number of items to return per page.

string

Opaque pagination cursor returned by a previous response.

string
enum

Filter results to orders in the given lifecycle state.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
OAuth2
Missing 1 required scope
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json