A Voucher is the catalogue-level record for a third-party gift
voucher (e.g. one imported from GiftPro) that has been synced into
Trybe and made redeemable at a site. Vouchers are managed via
these endpoints — import the latest catalogue, list the synced
records, fetch a single voucher, tweak its redemption rules, look
up a redemption code at point of sale, or add/remove individual
offerings on the allowlist. Trybe-native voucher products that are
sold through the basket use VoucherType instead.
The voucher's primary key in the external processor's system
(e.g. the GiftPro voucher ID). Used to reconcile the Trybe
record with the source of truth.
The face value of the voucher in the smallest unit of
currency (e.g. pence for gbp). Mirrored from the source
system and used as the redemption amount when the voucher is
presented as payment.
Offerings the voucher may be redeemed against. When the
endpoint is called with offering summaries enabled (the default
for getVoucher and the mutation endpoints), each entry is
enriched with the offering's display name. When empty, the
voucher is redeemable against any offering subject to the
site's normal rules.
IDs of date sets (e.g. bank holidays, peak-season blackouts) on
which the voucher may not be redeemed. Each ID must
reference a date set on the caller's organisation.
Returns a paginated list of Vouchers imported into the site. The
list reflects vouchers managed by an external processor (e.g.
GiftPro) that have been synced into Trybe via a previous
importVouchers run.
Requires the RESERVATIONS_VIEW permission on the target site.
Kicks off an asynchronous import that pulls the latest catalogue of
vouchers from the site's configured voucher processor (e.g.
GiftPro) and reconciles them with Trybe's local Voucher records.
Vouchers present in the source system but missing in Trybe are
created; existing records are updated to reflect any changes to
name, price, currency, or redemption rules.
The endpoint returns a QueuedJob immediately — poll the queued
job's status to track completion. The import does not block the
request, so newly synced vouchers may not appear in listVouchers
for a few seconds after the job completes.
Requires the SETTINGS_MANAGE permission on the target site.
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:
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.
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.
Updates the redemption rules attached to an imported Voucher.
Currently three fields are mutable — valid_offerings,
valid_weekdays, and invalid_date_set_ids. Other catalogue
fields (name, price, currency, processor metadata) are sourced
from the upstream processor and refresh on the next
importVouchers run.
Requires the update ability on the Voucher — typically granted
by holding SETTINGS_MANAGE on the voucher's site.
Replacement allowlist of offerings the voucher may be
redeemed against. Pass an empty array to clear the
allowlist (making the voucher redeemable against any
offering).
Identifier of the offering to add to this voucher's
valid-offerings list. Paired with offering_type to
disambiguate which collection the ID belongs to.
Removes the offering identified by offeringId from the voucher's
valid_offerings list. No-op if the offering is not present.
Returns the updated Voucher with offering display names included.
Requires the update ability on the Voucher — typically granted
by holding SETTINGS_MANAGE on the voucher's site.
The ID of the offering to remove from the voucher's
valid_offerings allowlist. For membership offerings, this is the
composite ID exposed by the getVoucher response (of the form
{membership_type_id}_{membership_rate_id}_{duration}).
Public endpoint for resolving a voucher code into the runtime
VoucherCodeLookup shape — its remaining balance, validity
window, owning voucher type or external voucher, and the list of
offerings the code may be redeemed against. Used by the customer-
facing storefront to validate a code at checkout before the basket
is committed.
Supports both Trybe-native VoucherCodes and integration-issued
external vouchers (e.g. GiftPro) — see the payment_processor
discriminator on the response.