PUBLIC
Returns a single merchant by ID.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Cache —Cache-Control: public, max-age=14400(4 hours)
Part of the catalog — The product catalog explains how merchants, products, calendars and timeslots fit together.
Why this endpoint exists
List and search responses are shaped for tiles. When the customer clicks through, you need the merchant's own page: full descriptions, the image set, address and coordinates, categories, opening information, and the headline pricing.
Fetch it by id, then fetch the merchant's products to fill in what is actually for sale. Those are two calls by design — the merchant page renders as soon as this one returns, and the product list can populate a moment later.
How to use it
curl "https://api.acc.funtrips.io/v2/merchants/8a2f4c61-9d3e-4b57-a0c8-1e5f7b2d9a30" \
-H "x-campaign-id: 3c1e5a90-7b2d-4f61-9a83-1d4e7f2b8c05" \
-H "Accept-Language: nl-NL"Path parameters
| Parameter | Type | Notes |
|---|---|---|
id | UUID | The merchant's id from a list or search response. Not the alias. |
The response is a single Merchant object — the same shape returned in list and search responses, with content fields fully populated. See list merchants for the field walkthrough.
Content is localised, prices are not
Titles, descriptions and conditions come back in the language negotiated from Accept-Language. Prices and availability do not vary by language — a Dutch and a French customer see identical numbers.
Responses carry Vary: X-Campaign-Id, Accept-Language. If you cache merchant pages at a CDN, key on both headers.
Errors
| Status | type | Cause |
|---|---|---|
404 | urn:qup:error:merchant-not-found | No merchant with that id in this campaign |
500 | urn:qup:error:merchant-internal-error | Unexpected fault |
A 404 is scoped to the campaign: a merchant that exists for one campaign is genuinely not-found for another. When you get one on an id you took from a list response, check that both calls used the same x-campaign-id.
