Skip to main content
GET
Get one action purchase by its purchase reference
Required scope
  • read:experience — Exchange a fan’s experience token for the resolved experience and the fan’s identity, so an embedded fan-facing experience can render the right content.

Authorizations

Authorization
string
header
required

OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.

Headers

X-Fanvue-API-Version
string
default:2025-06-26
required

API version to use for the request

Example:

"2025-06-26"

Path Parameters

experienceUuid
string<uuid>
required
Example:

"00000000-0000-4000-8000-000000000010"

purchaseReference
string
required
Required string length: 1 - 200
Example:

"expact_5c9a1f0e-9f3f-4c2a-8f31-1d0f6a2b7c44"

Response

The action purchase

purchaseReference
string
required

The expact_… reference minted with the purchase attempt. THE fulfilment idempotency key: grant the action at most once per reference, and only for a purchase whose status is succeeded.

Example:

"expact_5c9a1f0e-9f3f-4c2a-8f31-1d0f6a2b7c44"

experienceUuid
string<uuid>
required

The experience the action belongs to.

Example:

"00000000-0000-4000-8000-000000000010"

externalActionId
string
required

The app's own stable key for the action that was bought.

Example:

"spin"

clientReferenceId
string | null
required

The app-supplied reference carried through the purchase, or null when the app supplied none.

Example:

"round-42"

buyerUuid
string<uuid>
required

UUID of the fan who bought the action. The only identifier of the buyer this surface carries — no handle, no display name, no email.

Example:

"00000000-0000-4000-8000-000000000003"

amount
integer
required

Price in minor currency units (cents), frozen at the purchase attempt. A later re-pricing of the action does not move it.

Example:

700

currency
string
required

ISO 4217 code of the amount. USD only today.

Example:

"USD"

status
enum<string>
required

Where the money for this purchase attempt ended up. Fulfil only on succeeded. refunded, disputed and cancelled all mean the money is not the creator's, so revoke on any of them — the difference between them only records how the reversal was written, not whether to act. refunded is a reversal carrying a refund reference (a settled payment paid back, or an authorisation voided before capture); disputed is a chargeback that was lost and reversed; cancelled is a reversal carrying neither reference (a delayed capture that failed, or the uncaptured-invoice sweeper). An open dispute that has not been lost is still succeeded here — the money has not moved — so watch app.experience.action.dispute.* for that, not this field. A refund the processor accepted and then rejected also reports succeeded again: this field is where the money ended up, not what was attempted.

Available options:
pending,
succeeded,
failed,
refunded,
disputed,
cancelled
invoiceNumber
string
required

Fanvue invoice number for the charge. For support and accounting, not fulfilment.

Example:

"FVE-20260904-1234"

createdAt
string<date-time>
required

When the purchase attempt was opened.

Example:

"2026-09-04T10:00:00.000Z"

paidAt
string<date-time> | null
required

When the charge settled, or null while it has not.

Example:

"2026-09-04T10:00:02.000Z"