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

# Cancel Consumer Offer

> Cancel a consumer offer and all underlying entitlements.



## OpenAPI

````yaml /openapi/current/dvm/reseller-to-dvm/consumer-offer/openapi.json post /consumerOffers/{consumerOfferId}/cancellation
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/{consumerOfferId}/cancellation:
    post:
      tags:
        - Consumer Offers
      summary: Cancel Consumer Offer
      description: Cancel a consumer offer and all underlying entitlements.
      operationId: Cancel_consumer_offer_consumerOffers__consumerOfferId__cancellation_post
      parameters:
        - name: consumerOfferId
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Identifier of the consumer offer
            title: Consumerofferid
          description: Identifier of the consumer offer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerOfferCancellation'
            examples:
              End of term cancellation:
                value:
                  cancellationType: END_OF_TERM
                  reasonCode: SUBSCRIPTION_CANCELLED
                  reasonDescription: Customer has cancelled the subscription
              Immediate cancellation:
                value:
                  cancellationType: IMMEDIATE
                  reasonCode: ACCOUNT_TERMINATED
                  reasonDescription: Customer has closed their account with the reseller
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumerOfferReadForCancel'
              examples:
                Accepted:
                  value:
                    consumerOffer:
                      consumerOfferId: 338d31e1-a289-40dd-beff-ab41c1fc5f51
                      offerId: 7560fca0-d8a9-4124-a172-924debec874e
                      consumer:
                        consumerIdentifier: RFBNZ2MU3Y35OA5GNNNGETK6JTEVRYVB
                      status: FULLY_ACTIVE
                      subStatus: PENDING_CANCELS
                      timeline:
                        plannedCancellationTs: '2025-12-21T00:00:00Z'
        '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'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Conflict:
                  value:
                    message: Conflict
                    statusCode: 409
        '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:
    ConsumerOfferCancellation:
      properties:
        cancellationType:
          $ref: '#/components/schemas/ActionSchedule'
          description: >
            Cancellation type


            * `END_OF_TERM`: consumer retains access to the service until the
            end of the current term

            * `IMMEDIATE`: consumer immediately loses access to the service
        reasonCode:
          $ref: '#/components/schemas/CancellationReasonCode'
          description: >
            Cancellation reason


            * `NOT_RENEWED`: Customer has not renewed their entitlement

            * `CHANGED_SERVICE`: Customer has changed content provider/service

            * `SUBSCRIPTION_CANCELLED`: Customer has cancelled the subscription

            * `ADDON_CANCELLED`: Customer has cancelled the add-on

            * `EXPIRED`: Scheduled cancellation by Bango (based on dateExpiry
            set during entitlement creation by the reseller)

            * `OTHER`: Cancelled for any other reason

            * `ACCOUNT_TERMINATED`: Consumer has closed their account with the
            reseller

            * `SUSPEND_TERMINATED`: Suspended entitlement has been cancelled
            based on suspension terms

            * `ERROR`: Consumer offer/subscription created by mistake

            * `FRAUD`: Fraud detected or suspected

            * `IMMEDIATE_CANCELLATION`: Cancellation for fraud or suspected
            fraud reasons
        reasonDescription:
          type: string
          maxLength: 500
          title: Reasondescription
          description: Human readable description of the reason for cancelling
      type: object
      required:
        - cancellationType
        - reasonCode
      title: ConsumerOfferCancellation
      description: Consumer offer cancellation action.
    ConsumerOfferReadForCancel:
      properties:
        consumerOffer:
          $ref: '#/components/schemas/ConsumerOfferCancellationDetail'
          description: Consumer offer detail
      type: object
      required:
        - consumerOffer
      title: ConsumerOfferReadForCancel
      description: Consumer offer in a get 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.
    ActionSchedule:
      type: string
      enum:
        - END_OF_TERM
        - IMMEDIATE
      title: ActionSchedule
      description: Scheduling type for an action.
    CancellationReasonCode:
      type: string
      enum:
        - NOT_RENEWED
        - CHANGED_SERVICE
        - SUBSCRIPTION_CANCELLED
        - ADDON_CANCELLED
        - EXPIRED
        - ACCOUNT_TERMINATED
        - SUSPEND_TERMINATED
        - ERROR
        - FRAUD
        - IMMEDIATE_CANCELLATION
        - CUSTOMER_CANCELLED
        - OTHER
      title: CancellationReasonCode
      description: Reason code for the cancellation.
    ConsumerOfferCancellationDetail:
      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/ConsumerOfferCancellationTimeline'
          description: Timeline of changes made to the consumer offer
      type: object
      required:
        - consumerOfferId
        - offerId
        - consumer
        - status
        - timeline
      title: ConsumerOfferCancellationDetail
      description: Consumer offer detail.
    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.
    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.
    ConsumerOfferCancellationTimeline:
      properties:
        plannedCancellationTs:
          type: string
          format: date-time
          title: Plannedcancellationts
          description: Scheduled date and time for cancel
      type: object
      required:
        - plannedCancellationTs
      title: ConsumerOfferCancellationTimeline
      description: Consumer Offer timeline.
    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.
  securitySchemes:
    HTTPBasic:
      type: http
      scheme: basic
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /token

````