Skip to content
Indiana
Dashboard
Docs
Browse docs / Offerings & JSON delivery

Offerings & JSON delivery

Organize Product hierarchies, publish and resolve a fixed Offering Version.

SDK examples target the current API. Check matching SDK versions and HTTP alternatives

API v1Updated

Before you start

Prepare Products in the App/environment, then create and publish an Offering. Resolution requires entitlements:read; choose Current or a fixed Version deliberately.

Offering

An Offering is an ordered hierarchy of direct Autumn Product references, metadata and a published Version. The root is level 0. Product leaves occupy levels 1–3; document-local groups occupy levels 1–2. There is no Package entity or additional pricing authority.

  • Create an Offering and select at most 20 distinct Products from the current App/environment. Organize groups with the drag tree; moving a group preserves its subtree.
  • Drafts may contain empty groups. Every group needs a Product before publication. Duplicate Products, duplicate group keys and level four are rejected.
  • Publish and optionally select the Version as Current. Resolve explicitly by Current, ID, lookup key or a fixed Version; missing Current never returns the entire catalog.

Resolve and render your own UI

Requires entitlements:read. Browser identity comes from its Customer Token; omit customerId. A trusted backend can supply a verified Customer. The response contains offering, candidates, availability and optional check. Disable Products according to availability/reason when a platform binding is missing or commercial execution is unavailable.

Resolving an Offering does not purchase, grant access or create a Funnel/Paywall. If Product terms differ from published evidence, obtain a new quote or update the Offering rather than displaying old terms and buying new ones.

Related:resolveOffering API·Stripe checkout·Paywall

client/offering.ts · current SDKTypeScript
// SDK variant: grow is an identified client from the Browser SDK reference.const result = await grow.resolveOffering({  selector: { type: "current" },  commerce: { provider: "stripe", currency: "USD" },});const { offering, candidates, availability } = result;// Preserve offering.id (the Version), offering.offeringId and document.items.// Build your UI from the hierarchy; disable Products whose availability is false.// Resolve again by Version when restoring the same selection:await grow.resolveOffering({  selector: { type: "version", versionId: offering.id },  commerce: { provider: "stripe", currency: "USD" },});

HTTP operations

Use these operations with your HTTP integration. Each reference includes complete request/response fields and credential requirements; SDK snippets are an alternative when a matching SDK is available.

Operation and permission
OperationHTTPPermission
resolveOfferingPOST /api/v1/offerings/resolveentitlements:read

Operation and permission

  • resolveOffering

    HTTP
    POST /api/v1/offerings/resolve
    Permission
    entitlements:read

Related:resolveOffering

Check your result

Expected outcome

Receive a pinned Offering Version, its hierarchy and per-Product availability. Disable unavailable choices and render your own UI or use an independent Paywall.