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

# Check an offer status

> Guide for Resellers who want to check the status of a Consumer Offer in the Digital Vending Machine® (DVM™).

Checking an offer status lets you see the current lifecycle state of a previously provisioned **Consumer Offer**. This is useful when you want to confirm whether an offer is still being created, is ready for activation, has fully activated, or has been terminated.

The same response also helps you understand the state of each entitlement within the offer. When an entitlement has been created with a Content Provider, the response can include the activation URL your consumer needs to sign up for or redeem that service.

## Before you begin

<Tip>
  Before you check an offer status, you must have:

  * Successfully provisioned a Consumer Offer for the consumer
  * Retrieved and stored the `consumerOfferId` you want to check
  * A clear reason for checking the status, such as confirming creation progress, checking activation readiness, or verifying termination
</Tip>

## Check method overview

You can check a Consumer Offer in **two ways**.

Use the method that best matches the customer journey you are supporting.

<Tabs>
  <Tab title="Simple check">
    A **simple check** returns the latest known state of the Consumer Offer at the moment you make the request.

    <Note>
      **Use this method when you want to...**

      * Perform a quick point-in-time status check
      * Confirm the current state in a support or back-office workflow
      * Retrieve entitlement details and activation information that is already available
    </Note>
  </Tab>

  <Tab title="Polled check">
    A **polled check** waits for a short period to see whether the Consumer Offer reaches a target status before the response is returned.

    <Note>
      **Use this method when you want to...**

      * Visualize creation, activation, or termination progress in a client flow
      * Wait briefly for a meaningful lifecycle milestone before updating the user interface
      * Reduce repeated status checks when a Content Provider is slow to respond
    </Note>
  </Tab>
</Tabs>

## How to check an offer status

<Steps>
  <Step title="Identify the consumer and support case" stepNumber={1}>
    Start with the consumer record in your own systems so you know which subscription journey, support case, or lifecycle event you are checking.
  </Step>

  <Step title="Retrieve the Consumer Offer identifier">
    Locate the `consumerOfferId` for the offer you want to inspect.

    This is the identifier returned when the offer was provisioned and it is the key input for checking the status of that Consumer Offer.
  </Step>

  <Step title="Choose a simple check or a polled check">
    Call the DVM [`GET /consumerOffers/{consumerOfferId}`](/api-reference/consumer-offers/get-consumeroffers-consumerofferid) operation.

    For a **simple check**, submit the request with the `consumerOfferId` only.

    For a **polled check**, add:

    * `timeout` to define how long the DVM should wait before returning a response, using an ISO 8601 duration between `PT1S` and `PT10S`
    * `awaitStatus` to wait for a target lifecycle state such as `FULLY_CREATED`, `FULLY_ACTIVE`, or `FULLY_TERMINATED`
  </Step>

  <Step title="Review the Consumer Offer status">
    Use the `consumerOffer` section of the response to understand the overall lifecycle state of the offer.

    This tells you whether the offer is still progressing or has already reached a key milestone. For example:

    * `REQUESTED` means the DVM has accepted the request and processing is underway
    * `FULLY_CREATED` means the offer and its dependent objects have been created
    * `FULLY_ACTIVE` means the offer is active and in use
    * `FULLY_TERMINATED` means the offer has been fully terminated

    The `subStatus` and timeline fields help explain what stage the orchestration is currently in.
  </Step>

  <Step title="Review the entitlement-level details">
    Use the `entitlements` section of the response to see the status of each service contained in the Consumer Offer.

    This is important because the overall Consumer Offer can still be progressing while individual entitlements move through their own creation and activation steps.

    The response also returns useful operational details for each entitlement, including:

    * The entitlement identifier
    * The Content Provider account being used
    * The shared customer identifier, once available
    * Activation information, if it has already been provided by the Content Provider
  </Step>

  <Step title="Provide activation URLs to the consumer when available">
    When a Content Provider has created an entitlement and returned activation information, the response can include an activation URL for that entitlement.

    Use this URL in your consumer journey so the consumer can sign up for, redeem, or continue activation of the relevant service.

    If the activation field is not yet present, the entitlement may still be progressing through its creation flow and you may need to check again later.
  </Step>
</Steps>

## What happens next

After you check the status, the next action depends on what the response shows.

If the Consumer Offer has reached the state you need, you can move the consumer to the next step in their journey. For example, you might show that provisioning is complete, surface activation links, or confirm that termination has finished.

If the Consumer Offer is still progressing, a polled check can help you wait for a target lifecycle milestone without immediately issuing repeated requests. In practice, the response may return `200 OK` when the awaited state is reached during the timeout window, or `202 Accepted` when processing is still ongoing.

For more detail on status fields and lifecycle states, see [Consumer Offer](/api-reference/consumer-offers/the-consumer-offer-object).

<Card title="Retrieve consumer offer" icon="books" href="/api-reference/consumer-offers/get-consumeroffers-consumerofferid" cta="API reference" />
