> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bango.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Offer

> Schema and fields for the Offer resource

An Offer represents a promotable product or bundle in your catalog. It has a name, availability window, optional localized data, one or more products (with tier and Content Provider), and an optional plan.

## Attributes

### offerId

Bango's unique identifier of the offer.

***

### name

The offer name.

***

### availableFromTs

The date from which this offer is available to consumers (ISO 8601 date-time).

***

### availableToTs

The date after which this offer is no longer available to consumers (ISO 8601 date-time).

***

### localizedData

Optional locale-keyed object (e.g. `en-US`) for the offer. Contains:

* **description** — Localized description of the offer
* **promotionTitle** — Localized promo title
* **promotionBody** — Localized promo details
* **termsAndConditionsUrl** — Link to the offer's terms and conditions

***

### products

Array of products included in the offer. Each item contains:

* **productId** — Bango's unique identifier of the product
* **name** — The product name
* **localizedData** — Optional locale-keyed ProductLocalizedData
* **productTier** — productTierId, name, optional localizedData
* **contentProvider** — contentProviderId, name, optional merchantAccountKey, optional localizedData

***

### plan

Optional plan object. Contains:

* **planId** — Unique identifier of the offer's plan
* **lifecycleStartTrigger** — triggerSource, triggerEvent
* **type** — Plan type (e.g. `SUBSCRIPTION`)
* **currency** — ISO 4217 currency code
* **currencyAssetScale** — Number of decimals for the currency
* **phases** — Array of phase objects (sequence, priceType, renewalFrequency, duration, amount, displayAmount, billingDescription)

Possible value for **type**: `SUBSCRIPTION` (subscription plan).

Possible values for **priceType** (within phases):

| Value | Description |
| - | - |
| `FREE` | No charge for this phase. |
| `DISCOUNT` | Discounted price for this phase. |
| `FULL_PRICE` | Full price for this phase. |

***

<ResponseExample>
  ```json Offer theme={null}
  {
    "offerId": "f58ecec5-27cc-40c8-8723-4d01678fed6f",
    "name": "Bango Music Premium - 1 month free",
    "availableFromTs": "2024-06-22T17:35:38.922Z",
    "availableToTs": "2025-06-22T17:35:38.922Z",
    "products": [
      {
        "productId": "5f721731-2946-45f9-9f0e-03df00cf11ed",
        "name": "Music",
        "productTier": {
          "productTierId": "4020dd8a-99fd-441e-b14b-575166c9b43b",
          "name": "Premium"
        },
        "contentProvider": {
          "contentProviderId": "fc5c87fb-469c-4623-8277-cfa9c13d63bc",
          "name": "Bango",
          "merchantAccountKey": "BANGO"
        }
      }
    ],
    "plan": {
      "planId": "1eb68c4e-52a1-423a-8742-0396e97c0fb7",
      "lifecycleStartTrigger": {
        "triggerSource": "CONSUMER_OFFER",
        "triggerEvent": "CONSUMER_OFFER_FULLY_CREATED"
      },
      "type": "SUBSCRIPTION",
      "currency": "USD",
      "currencyAssetScale": 2,
      "phases": [
        {
          "sequence": 0,
          "priceType": "FREE",
          "renewalFrequency": "P1M",
          "duration": "P1M",
          "amount": 0,
          "displayAmount": "0.00",
          "billingDescription": "Bango Music Premium Free"
        },
        {
          "sequence": 1,
          "priceType": "FULL_PRICE",
          "renewalFrequency": "P1M",
          "amount": 1099,
          "displayAmount": "10.99",
          "billingDescription": "Bango Music Premium"
        }
      ]
    }
  }
  ```
</ResponseExample>
