> ## 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.

# Create Consumer Offer

> Create a consumer offer.



## OpenAPI

````yaml /openapi/current/dvm/reseller-to-dvm/consumer-offer/openapi.json post /consumerOffers
openapi: 3.1.0
info:
  title: Reseller to DVM - Consumer Offer API
  summary: Current / DVM / Reseller to DVM / Consumer Offer
  description: Create, get and cancel consumer offers.
  version: 1.0.0
servers: []
security: []
tags:
  - name: Consumer Offers
    description: API methods to manage consumer offers
paths:
  /consumerOffers:
    post:
      tags:
        - Consumer Offers
      summary: Create Consumer Offer
      description: Create a consumer offer.
      operationId: Create_Consumer_Offer_consumerOffers_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerOfferCreate'
            examples:
              Basic request - redemption:
                value:
                  consumer:
                    consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                  offer:
                    offerId: 7560fca0-d8a9-4124-a172-924debec874e
              Basic request - billing & charging:
                value:
                  consumer:
                    consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                    billingIdentifier: RDZN22AAVYAHVDN3N2OB2A7ADA3FVQWG
                  offer:
                    offerId: 7560fca0-d8a9-4124-a172-924debec874e
              Extended request - billing & charging with payment facilitator:
                value:
                  consumer:
                    consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                  offer:
                    offerId: 7560fca0-d8a9-4124-a172-924debec874e
                  redirectionParameters:
                    callbackState: RW2x-6aduhiIq2L3GmoehEWQHYs
                    errorUrl: https://reseller.com/error
                    locale: en-US
              Extended request - including all optional fields:
                value:
                  consumer:
                    consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                    billingIdentifier: RDZN22AAVYAHVDN3N2OB2A7ADA3FVQWG
                    communicationInformation:
                      emailAddress: example@bango.com
                      msisdn: '+441234567890'
                  offer:
                    offerId: 7560fca0-d8a9-4124-a172-924debec874e
                  source:
                    channelType: Website
                    brand: My Brand
                    country: UK
                    region: Cambridgeshire
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumerOfferReadForCreate'
              examples:
                Accepted:
                  value:
                    consumerOffer:
                      consumerOfferId: 338d31e1-a289-40dd-beff-ab41c1fc5f51
                      offerId: 7560fca0-d8a9-4124-a172-924debec874e
                      consumer:
                        consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                        billingIdentifier: RDZN22AAVYAHVDN3N2OB2A7ADA3FVQWG
                        communicationInformation:
                          emailAddress: example@bango.com
                          msisdn: '+441234567890'
                      status: REQUESTED
                      subStatus: PENDING_CREATES
                      timeline:
                        createRequestedTs: '2026-02-27T06:06:18.000Z'
                    entitlements:
                      - entitlementId: b0163d06-1fa3-4c9b-a298-29635ca7151d
                        merchantAccountKey: MY_CONTENT_PROVIDER
                        productKey: My-Product
                        status: REQUESTED
                        subStatus: PENDING_CREATE
                        sharedCustomerId: 22299896-cc6f-4e84-b217-ed90f93c0a34
                        timeline:
                          createRequestedTs: '2026-02-27T06:06:19.000Z'
                        source:
                          brand: My Brand
                          channelType: Website
                          country: GB
                          region: Cambridgeshire
                Accepted - Pending redirect:
                  value:
                    consumerOffer:
                      consumerOfferId: 338d31e1-a289-40dd-beff-ab41c1fc5f51
                      offerId: 7560fca0-d8a9-4124-a172-924debec874e
                      consumer:
                        consumerIdentifier: 6X3D5MHHVSRGKDRLCHIC3Q2W2AQE55BK
                      status: REQUESTED
                      subStatus: PENDING_ACTION
                      action:
                        actionType: NAVIGATE_TO_URL
                        url: >-
                          https://payment-facilitator.net/checkout/c7ac43c405dd4990
                        expiryTs: '2026-05-05T05:49:53.000Z'
                        callbackStateParameterName: callback-state
                      timeline:
                        createRequestedTs: '2026-02-27T06:06:18.000Z'
                    entitlements: []
        '400':
          description: Bad request
          content:
            application/json:
              examples:
                Bad Request:
                  value:
                    message: Bad Request
                    statusCode: 400
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid credentials (no response body returned)
        '404':
          description: Not found
          content:
            application/json:
              examples:
                Not found:
                  value:
                    message: Not found
                    statusCode: 404
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Request Timeout:
                  value:
                    message: Request Timeout
                    statusCode: 408
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Conflict:
                  value:
                    message: Conflict
                    statusCode: 409
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unprocessable entity:
                  value:
                    message: Unprocessable entity
                    statusCode: 422
        '500':
          description: Internal server error
          content:
            application/json:
              examples:
                Internal server error:
                  value:
                    message: Internal server error
                    statusCode: 500
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - HTTPBasic: []
        - OAuth2PasswordBearer: []
components:
  schemas:
    ConsumerOfferCreate:
      properties:
        consumer:
          $ref: '#/components/schemas/Consumer'
          description: Consumer information
        offer:
          $ref: '#/components/schemas/OfferBase'
          title: Offer
        source:
          $ref: '#/components/schemas/Source'
          description: >-
            Metadata related to the creation or activation process. Will be
            attached to all entitlements created by this API request.
        redirectionParameters:
          $ref: '#/components/schemas/RedirectionParameters'
          title: Redirectionparameters
          description: >-
            Parameters to manage redirects to external websites and related
            callbacks. Required only if creating the consumer offer requires the
            consumer to interact with an external website (e.g. a third-party
            payment page).
      type: object
      required:
        - consumer
        - offer
      title: ConsumerOfferCreate
      description: Consumer offer in a create request.
    ConsumerOfferReadForCreate:
      properties:
        consumerOffer:
          $ref: '#/components/schemas/ConsumerOfferCreationDetail'
          description: Consumer offer detail
        entitlements:
          items:
            $ref: '#/components/schemas/Entitlement'
          type: array
          title: Entitlements
          description: Entitlements created under this consumer offer.
      type: object
      required:
        - consumerOffer
        - entitlements
      title: ConsumerOfferReadForCreate
      description: Consumer offer in a create response.
    ErrorResponse:
      properties:
        statusCode:
          type: integer
          title: Statuscode
          description: HTTP Status Code
        message:
          type: string
          title: Message
          description: Description of the error
      type: object
      title: ErrorResponse
      description: Error response for Consumer Offer API.
    Consumer:
      properties:
        consumerIdentifier:
          type: string
          maxLength: 400
          title: Consumeridentifier
          description: Consumer identifier
        billingIdentifier:
          type: string
          title: Billingidentifier
          description: Billing identifier
        communicationInformation:
          $ref: '#/components/schemas/CommunicationInformation'
          title: Communicationinformation
          description: >-
            Communication channel with the consumer. May be used to send
            reminders or important information.
      type: object
      required:
        - consumerIdentifier
      title: Consumer
      description: Consumer.
    OfferBase:
      properties:
        offerId:
          type: string
          format: uuid
          title: Offerid
          description: >-
            A globally unique and immutable identifier of the offer the consumer
            has subcribed to.
      type: object
      required:
        - offerId
      title: OfferBase
      description: Offer.
    Source:
      properties:
        brand:
          type: string
          title: Brand
          description: Reseller's brand
        channelType:
          $ref: '#/components/schemas/ChannelType'
          title: Channeltype
        country:
          type: string
          title: Country
          description: Consumer's country (ISO two-letter country code).
        region:
          type: string
          title: Region
          description: Consumer's regional area or area code.
      type: object
      title: Source
      description: Metadata related to the creation or activation process.
    RedirectionParameters:
      properties:
        callbackState:
          type: string
          title: Callbackstate
          description: >-
            Cryptographically random, unguessable string. When customer is
            redirected to the configured callback URL, the value of this
            parameter will be set in the `state` query parameter.

            Reseller is expected to check it against the user's session.
        errorUrl:
          type: string
          title: Errorurl
          description: >-
            If this parameter is set, consumer wll be redirected back here if
            the flow on external website fails.


            * The base URL needs to be whitelisted by Bango.

            * The URL may contain a unique token to prevent CSRF attacks.
        locale:
          type: string
          title: Locale
          description: >-
            Suggested locale for the external website. Format is `ll-CC`, where
            `ll` is the ISO 639-1 2-letter language code and CC is the ISO
            3166-1 alpha-2 2-letter country code
      type: object
      required:
        - callbackState
      title: RedirectionParameters
      description: Redirection parameters in a create request.
    ConsumerOfferCreationDetail:
      properties:
        consumerOfferId:
          type: string
          format: uuid
          title: Consumerofferid
          description: A globally unique and immutable identifier of the Consumer Offer
          examples:
            - 338d31e1-a289-40dd-beff-ab41c1fc5f51
        offerId:
          type: string
          format: uuid
          title: Offer ID
          description: >-
            A globally unique and immutable identifier of the offer the consumer
            has subcribed to.
          examples:
            - 7560fca0-d8a9-4124-a172-924debec874e
        consumer:
          $ref: '#/components/schemas/Consumer'
          description: Consumer data.
        status:
          $ref: '#/components/schemas/ConsumerOfferStatus'
          description: >
            Consumer offer status:


            * `REQUESTED`: creation of the consumer offer was requested

            * `PARTIALLY_CREATED`: some entitlement were created, but others
            failed

            * `FULLY_CREATED`: all entitlements have been created

            * `CREATES_FAILED`: all entitlements failed to be created

            * `FULLY_ACTIVE`: all entitlements are active

            * `FULLY_TERMINATED`: all entitlements have been terminated

            * `PARTIALLY_TERMINATED`: some entitlement terminated succesfully,
            some terminations failed
        subStatus:
          $ref: '#/components/schemas/ConsumerOfferSubStatus'
          title: Substatus
          description: |
            Consumer offer sub-status:

            * `PENDING_ACTION`: consumer offer creation is pending an action
            * `PENDING_CREATES`: entitlement creation is pending
            * `PENDING_ACTIVATES`: entitlement activation is pending
            * `PENDING_TERMINATES`: entitlement termination is pending
            * `PENDING_CANCELS`: entitlement cancellation is pending
        timeline:
          $ref: '#/components/schemas/ConsumerOfferCreationTimeline'
          description: Timeline of changes made to the consumer offer
        action:
          $ref: '#/components/schemas/NavigateToURLAction'
          title: Action
          description: >-
            Action to be executed to proceed with the creation of the consumer
            offer.
      type: object
      required:
        - consumerOfferId
        - offerId
        - consumer
        - status
        - timeline
      title: ConsumerOfferCreationDetail
      description: Consumer offer detail.
    Entitlement:
      properties:
        entitlementId:
          type: string
          format: uuid
          title: Entitlementid
          description: A globally unique and immutable identifier of the entitlement.
        merchantAccountKey:
          type: string
          title: Merchantaccountkey
          description: >-
            A globally unique, immutable, human readable identifier of the
            content provider that delivers the product.
        productKey:
          type: string
          title: Productkey
          description: >-
            A globally unique, immutable, human readable identifier of the
            product the user is entitled to.
        status:
          $ref: '#/components/schemas/EntitlementStatus'
          description: >
            Current status of the entitlement

            * `REQUESTED`: creation of the entitlement on the content provider
            is in progress

            * `CREATE_FAILED`: creation of the entitlement on the content
            provider failed

            * `CREATED`: creation of the entitlement on the content provider
            succeeded

            * `ACTIVE`: entitlement is associated to the consumer's account on
            the content provider

            * `SUSPENDED`: entitlement is associated, but the consumer access to
            the content has been suspended

            * `ENDED`: entitlement has ended, and the customer has lost access
            to the content
        subStatus:
          $ref: '#/components/schemas/EntitlementSubStatus'
          title: Substatus
          description: Sub Status of the entitlement.
        sharedCustomerId:
          type: string
          format: uuid
          title: Sharedcustomerid
          description: Auto-generated unique consumer id for this content provider
        timeline:
          $ref: '#/components/schemas/EntitlementTimeline'
          description: Timestamp of key events for this entitlement.
        source:
          $ref: '#/components/schemas/Source'
        activation:
          $ref: '#/components/schemas/ActivationInfo'
          title: Activation
          description: >-
            Information needed for entitlement activation. Present only if
            status is `PENDING_ACTIVATION`.
      type: object
      required:
        - entitlementId
        - merchantAccountKey
        - productKey
        - status
        - timeline
      title: Entitlement
      description: Entitlement to a specific product within a Consumer Offer.
    CommunicationInformation:
      properties:
        emailAddress:
          type: string
          title: Emailaddress
          description: An email address that can be used to contact the consumer.
        msisdn:
          type: string
          title: Msisdn
          description: >-
            A mobile phone number that can be used to contact the consumer, with
            international prefix
      type: object
      title: CommunicationInformation
      description: Communication channel with the consumer.
    ChannelType:
      type: string
      enum:
        - App
        - Call Centre
        - Email
        - Mobile
        - Other
        - Retail
        - SMS
        - Set Top Box
        - Website
      title: ChannelType
      description: Channel used by the consumer in the creation or activation process.
    ConsumerOfferStatus:
      type: string
      enum:
        - REQUESTED
        - PARTIALLY_CREATED
        - FULLY_CREATED
        - CREATES_FAILED
        - FULLY_ACTIVE
        - FULLY_TERMINATED
        - PARTIALLY_TERMINATED
      title: ConsumerOfferStatus
      description: Consumer offer status.
    ConsumerOfferSubStatus:
      type: string
      enum:
        - PENDING_ACTION
        - PENDING_CREATES
        - PENDING_ACTIVATES
        - PENDING_TERMINATES
        - PENDING_CANCELS
      title: ConsumerOfferSubStatus
      description: Consumer Offer sub-status.
    ConsumerOfferCreationTimeline:
      properties:
        createRequestedTs:
          type: string
          format: date-time
          title: Createrequestedts
          description: Date creation of the offer was requested
      type: object
      required:
        - createRequestedTs
      title: ConsumerOfferCreationTimeline
      description: Consumer Offer timeline.
    NavigateToURLAction:
      properties:
        actionType:
          type: string
          const: NAVIGATE_TO_URL
          title: Actiontype
          description: |
            Consumer offer sub-status:

            * `NAVIGATE_TO_URL`: consumer needs to be redirected to a URL
        url:
          type: string
          title: Url
          description: URL the user needs to be redirected to.
        expiryTs:
          type: string
          format: date-time
          title: Expiryts
          description: Expiration date and time for the URL.
        callbackStateParameterName:
          type: string
          title: Callbackstateparametername
          description: >-
            Name of the query parameter that is going to be appended to the
            callback URL and holds the callbackState value.
      type: object
      required:
        - actionType
        - url
        - callbackStateParameterName
      title: NavigateToURLAction
      description: Consumer needs to be rediected to a URL.
    EntitlementStatus:
      type: string
      enum:
        - REQUESTED
        - CREATE_FAILED
        - CREATED
        - ACTIVE
        - SUSPENDED
        - ENDED
      title: EntitlementStatus
      description: Status of an entitlement.
    EntitlementSubStatus:
      type: string
      enum:
        - PENDING_CREATE
        - PENDING_ACTIVATE
        - ENDING
        - IMMEDIATE
      title: EntitlementSubStatus
      description: Sub Status of an entitlement.
    EntitlementTimeline:
      properties:
        createRequestedTs:
          type: string
          format: date-time
          title: Createrequestedts
          description: Date when the creation of the entitlement was requested.
        createdTs:
          type: string
          format: date-time
          title: Createdts
          description: >-
            Date when the creation of the entitlement was successfully
            completed.
        createFailedTs:
          type: string
          format: date-time
          title: Createfailedts
          description: Date when the creation of the entitlement failed.
        activatedTs:
          type: string
          format: date-time
          title: Activatedts
          description: Date when the entitlement was activated.
        terminatedTs:
          type: string
          format: date-time
          title: Terminatedts
          description: Date when the entitlement was cancelled.
      type: object
      required:
        - createRequestedTs
      title: EntitlementTimeline
      description: Entitlement Timeline.
    ActivationInfo:
      properties:
        activationCode:
          type: string
          title: Activationcode
          description: >-
            The activation response will normally be a url. However, this field
            is returned instead of `url` if the content provider supports
            activation codes rather than URLs.
        activationUrl:
          type: string
          title: Activationurl
          description: >-
            The url that the reseller must redirect the user to to start the
            activation process.
        activationUrlExpiryTs:
          type: string
          format: date-time
          title: Activationurlexpiryts
          description: >-
            Date and time when activation information will expire (if provided
            by the content provider). Field is in UTC ISO 8601 format.
      type: object
      title: ActivationInfo
      description: Information on entitlement activation.
  securitySchemes:
    HTTPBasic:
      type: http
      scheme: basic
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /token

````