Skip to main content

Get Showcase Offer

Resolve a read-only offer projection. Suitable for landing pages, pricing widgets, or anonymous browsing where:

  • the customer may not be known,
  • no transaction is being prepared,
  • you only need the catalog/price/campaign rendering data.

URL

POST /api/c2a/offer/showcase

Request Parameters

Body: GetShowcaseOfferRequest.

NameTypeDescription
contextobject (GetShowcaseOfferContext)Required. Showcase resolution context. Structurally similar to GetBundlesContext but does not require customerUrn.

GetShowcaseOfferContext is not safe to feed back into checkout — the engine may have skipped customer-specific eligibility checks.

Request Example

{
"context": {
"storefrontUrn": "st.00.001",
"promotionCode": "CMP1WKWAFY",
"clientPlatformType": "Web"
}
}

Response Parameters

Same GetOfferResponse envelope as Get Bundles. The returned offer.presentationType is typically a showcase-friendly value, and artifactGroups are calculated without customer-specific overlays.

Sample Response

{
"status": { "messageCode": "SUCCESS" },
"offer": {
"offerIdentifier": "sh_8z2k1q",
"presentationType": "Showcase",
"productGroupType": "RecurringSubscription",
"storefrontUrn": "st.00.001",
"artifactGroups": [
{
"bundleUrn": "bn.00.42",
"name": "Pro Monthly",
"price": { "amountMilpieces": 1499, "currency": "EUR" }
}
]
}
}

Behaviour

  • Don't pass a showcase offerIdentifier to /c2a/offer/checkout. The Offer engine treats showcase results as non-transactable; checkout will reject them with OFFER_NOT_PURCHASABLE.
  • Showcase results are caching-friendly — they can be returned faster than a personalised purchase offer.

Sample Codes

curl --location 'https://acme.sandbox.azotte.com/api/v1/c2a/offer/showcase' \
--header 'Content-Type: application/json' \
--header 'x-tn: e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f' \
--header 'x-api-key: sk_dev_acme_sample_123456789' \
--data '{
"context": {
"storefrontUrn": "st.00.001",
"promotionCode": "CMP1WKWAFY",
"clientPlatformType": "Web"
}
}'