Vouchers

Look up a voucher by its redemption code

Resolves a redemption code to a usable voucher and reports its current redeemable balance, expiry window, and the offerings it may be applied to. Use this endpoint at the point of sale to validate a code presented by a customer before applying it as payment.

The lookup follows a two-tier search:

  1. Trybe-native VoucherCodes issued through the basket are checked first; if found, the voucher's usability is asserted (it must be within its validity window and have balance remaining) and the canonical record is returned.
  2. If the site has an active voucher integration (e.g. GiftPro), the code is then looked up in the external processor. External vouchers are returned in the same response shape with payment_processor=external_voucher.

Returns 400 Bad Request if the code is found but is already fully redeemed or expired, and 404 Not Found if the code does not exist in either store.

get/shop/vouchers/codes/{code}

Query parameters

site_idstring required

Filter results by the site they belong to

Response

Details of the looked-up voucher code, including its redeemable balance, expiry, and the offerings it may be applied to.

Example response

{
  "data": {
    "id": "65f0a1b2c3d4e5f6a7b8c9d2",
    "code": "SUMMER2026-X9K2",
    "payment_processor": "voucher",
    "processor_voucher_id": "gp_8421",
    "processor": "giftpro",
    "valid_from_date": "2026-01-01T00:00:00+00:00",
    "valid_to_date": "2027-01-01T00:00:00+00:00",
    "amount_type": "cash",
    "total": 5000,
    "balance": 2500,
    "currency": "gbp",
    "partially_redeemable": true,
    "uses_total": 7,
    "uses_remaining": 5,
    "voucher_name": "£50 Gift Voucher",
    "customer_id": "65f0a1b2c3d4e5f6a7b8c9d3",
    "fulfillment_status": "dispatched",
    "value": 5000,
    "valid_offerings": [
      {
        "offering_type": "appointment",
        "offering_id": "65f0a1b2c3d4e5f6a7b8c9d4",
        "offering_name": "60-minute Aromatherapy Massage",
        "display_name": "60-minute Aromatherapy Massage",
        "offering_config": {
          "duration": "P1Y"
        }
      }
    ]
  }
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.