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

# Provision an offer for a consumer

Provisioning an offer is the process of assigning an offer to a specific consumer in the DVM™. When you do this, the DVM creates a **Consumer Offer**, which becomes the core object used to manage that consumer's access to the services in the offer and the billing lifecycle associated with it.

## Before you begin

<Tip>
  Before you can provision an offer, you must have:

  * Created or selected the offer you want to provision
  * Identified the consumer in your own systems
  * The `offerId` for the offer you want to assign
  * The consumer identifier you want to use in the provisioning request
</Tip>

<Note>
  Depending on your Offer configuration, eligibility checks can take place before or during provisioning. See [Eligibility](/eligibility/overview).
</Note>

## What provisioning does

When you provision an offer, the DVM:

* Creates a **Consumer Offer** for that specific consumer
* Creates the entitlements linked to the products and services in the offer
* Starts the billing lifecycle associated with that offer

The Consumer Offer becomes the main DVM object you use to track lifecycle state and manage later actions for that consumer.

## How to provision an offer

<Steps>
  <Step title="Identify the consumer" stepNumber={1}>
    Identify the consumer in your own systems using the identifier you want to send to the DVM, such as an email address or internal customer ID.

    This value is submitted as the consumer identifier in the provisioning request.
  </Step>

  <Step title="Identify the offer to provision">
    Confirm the offer you want to assign to that consumer and retrieve the relevant `offerId`.

    The `offerId` tells the DVM which offer configuration to provision for the consumer.
  </Step>

  <Step title="Submit the create consumer offer request">
    Use the DVM [`POST /consumerOffers`](/api-reference/consumer-offers/post-consumeroffers) action to provision the offer.

    At a minimum, your request includes:

    * `offer.offerId`
    * `consumer.consumerIdentifier`

    This request tells the DVM which offer to provision and which consumer it should be provisioned to.
  </Step>

  <Step title="Receive acknowledgement from the DVM">
    The DVM acknowledges the request and returns a **Consumer Offer** record with a `consumerOfferId`.

    At this stage, the object may still be in an early lifecycle state, such as:

    * `status: REQUESTED`
    * `subStatus: PENDING_CREATES`

    This means the request has been accepted and the DVM has started processing the creation flow.
  </Step>

  <Step title="Perform configured eligibility checks">
    If Content Provider eligibility is configured, DVM checks whether the consumer meets the Content Provider's eligibility rules before creating the relevant Entitlement.

    See [Eligibility](/eligibility/overview) for how eligibility fits into the wider consumer journey.
  </Step>

  <Step title="Allow the DVM to create the dependent objects">
    After the request is accepted and any required eligibility checks complete, the DVM continues the provisioning flow asynchronously.

    During this stage, the DVM creates the dependent objects needed for the consumer's offer, including:

    * The entitlements linked to the services in the offer
    * The billing-related components required to start the lifecycle

    For offers with multiple services, more than one entitlement can be created as part of the same Consumer Offer.
  </Step>

  <Step title="Confirm that provisioning has completed">
    Retrieve the Consumer Offer and check whether the creation flow has completed successfully.

    In practice, this means confirming that the Consumer Offer has moved from the initial requested state to a completed creation state such as `FULLY_CREATED`.

    You can then use the Consumer Offer as the primary object for tracking lifecycle progress and managing future actions for that consumer.
  </Step>
</Steps>

## What happens next

Provisioning does more than create a record. It starts the lifecycle orchestration for that consumer's offer.

Once created, the Consumer Offer becomes the main object used to manage that consumer's DVM journey. The linked entitlements and billing lifecycle are created asynchronously from the initial request, so you should treat the first response as an acknowledgement that processing has started, rather than confirmation that every downstream object is already complete.

For more detail on the Consumer Offer resource, see [Consumer Offer](/api-reference/consumer-offers/the-consumer-offer-object).

<Card title="Create consumer offer" icon="books" href="/api-reference/consumer-offers/post-consumeroffers" cta="API reference" />
