Vendor API
Gomry Retail is Gomry’s resale business. It buys ticket inventory from suppliers and sells it on Gomry as the merchant of record. Buyers see a Gomry ticket, and they never see the supplier it came from. The Vendor API is the contract that connects a supplier to Gomry Retail. You build and host an integration service that implements it, translating each call into whatever your own system needs. Gomry Retail calls your service. Nothing on the Gomry side ever calls your platform directly, knows its hostname or reads its wire format.Retail is the client for every endpoint in this reference. The only traffic that runs the other way is webhooks, which your integration sends to Retail to say something changed.
Base URL
You give us one HTTPS base URL for your deployment. Retail appends the paths below to it, including the/api prefix:
https://example.com/gomry). Retail keeps it and appends to it. Localhost and other loopback URLs are rejected in production.
What you implement
Every endpoint is required except
venue-map. An event with no map still sells.
How a sale flows
1
Catalog sync
Retail pages through your catalog on a schedule and stores your events. An event is something that could be sold. It is not yet a promise that anything is.
2
Live listings
When a buyer opens a Gomry event page, Retail asks for listings on that event and shows only what passes its rules. Listings are quotes, never stored.
3
Quote
The buyer commits. Retail quotes the chosen listing to get the tax on both legs and a
taxSignature.4
Order
Retail places the order with its own
reference, once. If the reply is lost, Retail does not retry. It searches for the reference instead.5
Acceptance
Retail learns the order’s state by searching (after a webhook, or on its hourly sweep). Only
accepted commits Retail to paying you.6
Delivery
Retail polls fulfilment until the ticket is
ready, then fetches the credential once and renders it inside Gomry’s own ticket.Conventions
- JSON everywhere, with
camelCasefield names. - IDs are strings, even when yours are numeric. Retail never parses them.
- Money is a number in major units (
42.5means 42.50), per ticket unless the field says total.currencyis a three-letter ISO 4217 code. - Timestamps are ISO 8601.
- Every request carries
vendorKey, the identifier Gomry assigns to your supplier account. A deployment that serves one supplier can ignore it. - Unknown fields are ignored, so you can add your own. A missing required field fails the whole response, not just that item. Validate before you answer.
- Never report a failure as an empty result. An empty list means you asked and there is nothing. If you could not ask, return an error. The difference decides whether an event shows as sold out and whether a ticket is bought twice.
Buyer data
Retail stores no buyer identity: no name, no email, no card, no address. Two fields on Place order carry some anyway, because delivery needs them:shippingAddress, for a physical ticket that must be couriered.buyerEmail, for a seat transferred into the buyer’s own account.
What a buyer must never see
Gomry never tells a buyer where a ticket came from. That is why the contract moves values, not links:- Venue maps travel as image bytes, never as a URL on your domain.
- Tickets travel as barcode values that Gomry renders in its own design, never as your PDF.
Next steps
Authentication and errors
The
X-API-Key header, the error format and the time budget for each call.Webhooks
Tell Retail an order changed without waiting for its next sweep.
Going live
What we exchange with you and what to check before inventory reaches buyers.
Catalog
Start with the first endpoint Retail calls.

