githubEdit

Redemption

Redeem tickets and bookings by reference or barcode

To use this capability, add octo/redemption to your Octo-Capabilities header.

This capability allows supplier/operator connections to look up bookings and tickets, redeem/unredeem them, and mark them as no-show by redemption code.

All paths below are public /octo routes.

The OCTO API prefix is /octo.

Endpoint Summary

Lookup

get

Lookup by reference, email, or mobile.

Query parameters
referencestringOptional

Lookup by booking/ticket reference or redemption code.

Example: REF-2026-001
emailstringOptional

Lookup by email address.

Example: [email protected]
mobilestringOptional

Lookup by mobile number.

Example: +12025550123
Responses
chevron-right
200

Successful response

application/json
or
get
/redemption/lookup
200

Successful response

Lookup by reference, email, or mobile.

Redeem

post

Redeem one or more redemption codes.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
post
/redemption/redeem
200

Successful response

Redeem one or more redemption codes.

Cancel Redemption (Unredeem)

delete

Cancel redemption (unredeem) for one or more redemption codes.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
delete
/redemption/redeem
200

Successful response

Cancel redemption (unredeem) for one or more redemption codes.

Mark No-show

post

Mark one or more redemption codes as no-show.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
post
/redemption/noshow
200

Successful response

Mark one or more redemption codes as no-show.

No-show Route Variant

delete

Route variant currently mapped to the same action as DELETE /redemption/redeem.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
delete
/redemption/noshow
200

Successful response

Route variant currently mapped to the same action as DELETE /redemption/redeem.

Resolve Redemption Credentials

post

Unauthenticated API key resolution by lookup input.

Body
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
Responses
chevron-right
200

Successful response

application/json
apiKeystring · nullableOptional

Api key value.

Example: api_live_ventrata_123456
apiKeysstring[]Optional

List of api key values.

Example: ["api_live_ventrata_123456"]
post
/redemption/credentials
200

Successful response

Unauthenticated API key resolution by lookup input.

Use GET /products to cache available product/option/unit metadata used by redemption responses (see Products).

Lookup

get

Lookup by reference, email, or mobile.

Query parameters
referencestringOptional

Lookup by booking/ticket reference or redemption code.

Example: REF-2026-001
emailstringOptional

Lookup by email address.

Example: [email protected]
mobilestringOptional

Lookup by mobile number.

Example: +12025550123
Responses
chevron-right
200

Successful response

application/json
or
get
/redemption/lookup
200

Successful response

Find matching bookings/tickets for a scanned code/reference, email, or mobile.

Query Parameters

Provide at least one of reference, email, or mobile.

Response

Returns array[Redemption Object] (see Redemption Object).

  • Lookup can return multiple results for package products with redeemable inclusions.

  • Each result includes redemptionCode, redeemable, unredeemableReason, and unredeemableReasonCode.

Redeem

post

Redeem one or more redemption codes.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
post
/redemption/redeem
200

Successful response

Cancel Redemption (Unredeem)

delete

Cancel redemption (unredeem) for one or more redemption codes.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
delete
/redemption/redeem
200

Successful response

Both routes use the same request shape and response schema.

Request Body / Query Parameters

If redemptionCode is an array, the response is array[Redemption Object] in input order. Otherwise, the response is a single Redemption Object.

When redemption is rejected as not redeemable, a 400 BAD_REQUEST can include both redemptionCode and redemptionErrorCode in the response body.

Mark No-show

post

Mark one or more redemption codes as no-show.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
post
/redemption/noshow
200

Successful response

No-show Route Variant

delete

Route variant currently mapped to the same action as DELETE /redemption/redeem.

Body
redemptionCodeone ofOptional

Redemption code value.

Example: SUMMER25
stringOptional
or
string[]Optional
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
timestampstringOptional

Timestamp value.

Example: 2026-05-14T13:00:00Z
notesstringOptional

Notes value.

Example: Vegetarian meal requested
Responses
chevron-right
200

Successful response

application/json
or
delete
/redemption/noshow
200

Successful response

Request Body / Query Parameters

POST /redemption/noshow returns a redemption object/object-array with no-show state (for example status: "NO_SHOW", utcNoshowedAt set).

DELETE /redemption/noshow is currently wired to the same controller path as DELETE /redemption/redeem, so behavior and response shape match cancel-redemption/unredeem.

Resolve Redemption Credentials

post

Unauthenticated API key resolution by lookup input.

Body
referencestringOptional

Reference value.

Example: REF-2026-001
emailstringOptional

Email value.

Example: [email protected]
mobilestringOptional

Mobile value.

Example: +12025550123
Responses
chevron-right
200

Successful response

application/json
apiKeystring · nullableOptional

Api key value.

Example: api_live_ventrata_123456
apiKeysstring[]Optional

List of api key values.

Example: ["api_live_ventrata_123456"]
post
/redemption/credentials
200

Successful response

This endpoint is unauthenticated and selects the first API key that can successfully resolve the provided lookup input.

Request Body Parameters

Provide at least one of reference, email, or mobile.

Response

Redemption Object

Lookup, redeem, and no-show responses serialize via serialize_redemption(...), which wraps serialize_booking(...) and ticket/voucher helpers.

Top-level fields

For full core object details of product, option, availability, and contact/user/reseller-style objects, see Bookings and linked core schemas.

Additional serialization notes

  • When a redemption code resolves at ticket level, unitItems is reduced to that ticket only, voucher is set to that ticket object, and overlapping root fields are overwritten with ticket-level values.

  • serialize_item(...) adds scans: [] on serialized item units (for example option.units[] entries of type OTHER).

Schema Additions (JSON)

These are additive fragments showing only fields introduced by this capability.

BookingUnitItem

Last updated