Rate Codes

Support for different configured pricing tiers

Rate codes let you retrieve different configured pricing tiers — full price, a
campaign offer, a special rate — through a single integration. One affiliate ID,
one set of credentials, any number of tiers.

The rate code travels as the providerCode parameter. Your TTG contact
configures the tiers and shares the codes with you during setup; there is no
endpoint to list them.

Requesting a tier

Add providerCode to the areas call:

GET /api/v4/products/{productId}/areas?date=20260717&quantity=2&providerCode=campaign-may

Everything else — endpoint, headers, response shape — is identical to a
standard areas call. Only the prices change.

RequestBehavior
No providerCodeDefault tier — same pricing as today. Existing integrations need no changes.
Recognized codePrices reflect that tier's configuration.
Unrecognized codeError response with the message Product not found. A code counts as recognized only when it is configured for your affiliate on that product — a typo, an expired code, or another affiliate's code is rejected the same way.

To show multiple tiers concurrently, make one areas call per code. Each
response stands alone.

Purchasing at a tier

Pass the same providerCode as a top-level field when you create the basket:

PATCH /api/v1/baskets
{
  "channelId": "yourchannel",
  "providerCode": "campaign-may",
  "shopperCurrency": "GBP",
  "reservations": [ ... ]
}

The basket holds the seats at that tier's prices — the values quoted by the
tier-priced areas call. Send the same code you used on the areas call the
seats came from. Omitted or empty providerCode books the default tier.
Codes longer than 255 characters are rejected with a validation error.

FAQ

Can one call return all tiers at once?
No — one tier per call. Request each code separately.

Are codes case-sensitive?
Yes. Send them exactly as provided.

How do I get codes for a new offer?
Ask your TTG contact. Tiers are configured on TTG's side; no integration
changes are needed for a new code.


Did this page help you?