# UPDATED: /consumerOffers/{consumerOfferId}/terminate replaced with /consumerOffers/{consumerOfferId}/cancellation

openapi: 3.1.0
info:
  title: Consumer offers
  version: 1.0.2
  description: "# Overview\nA consumer offer is the consumer's instance of an offer\
    \ from the offer catalog.\n\nThe consumer offer API is responsible for orchestrating\
    \ the creation of all components needed based on the offer configuration. This\
    \ includes one or more entitlements (based on the product tier information assocated\
    \ to the offer) and a billing plan (based on the offer's plan) Once started, the\
    \ billing plan drives the lifecycle management for the consumer's offer.\n\nThe\
    \ consumer offer API also enables you to retrieve consumer offers details in 2\
    \ ways:\n\n- Get by consumerOfferId (returns 1 consumer offer)\n- Search by consumerIdentifier\
    \ (returns an array of consumer offers)\n\nIt also enables you to immediately\
    \ terminate the consumer offer. This request will orchestrate the immediate end\
    \ of all linked entitlements and the billing plan.\n\n# Change log\n**2026-04-28**\
    \ | v.1.0.2\n- Remove /Terminate endpoint Add /Cancellation endpoint to support\
    \ End Of Term and Immediate Cancellation functionalities through the single endpoint.\n\
    \n**2026-03-16** | v.1.0.1\n- Removed `paymentMethod` from create request schema\n\
    - Removed 'Basic request - billing & charging' example\n- Updated extended request\
    \ example to remove payment method\n\n**2025-07-14** | v.1.0.0\n- It is now possible\
    \ to optionally include the following information:\n    - `msisdn` and `emailAddress`\
    \ information for the consumer\n    - `source` information\n- Addition of `sharedCustomerId`\
    \ for each entitlement in the response\n- Examples for create request variations\
    \ have been added\n- Moved to major version to align with major.minor.fix \n\n\
    **2025-05-27** | v.0.0.3\n- Specification aligned to expected api behaviour\n\n\
    **2025-02-17** | v.0.0.2\n- A consumerOffer can now include an optional paymentInstrumentToken\n\
    \n**2024-09-30** | v.0.0.1\n- This is the public api for consumer offers\n"
servers:
- url: https://api.sandbox.bango.com
  description: Integration test environment
- url: https://api.bango.com
  description: Production environment
security:
- basic: []
paths:
  /consumerOffers:
    post:
      summary: Create Consumer Offer
      description: Use this operation to create consumer offer. The extended request
        shows all optional fields available.
      operationId: CreateConsumerOfferOApi-fm
      parameters:
        - name: X-RequestIdentifier
          in: header
          description: Optional identifier to support idempotency
          schema:
            type: string
            format: uuid
        - name: x-request-id
          in: header
          description: Unique request id generated by the reseller. Useful for e2e trouble-shooting. While listed as an optional header, some content providers consider this to be mandatory.
          schema:
            type: string
        - name: x-operation-id
          in: header
          description: Reseller-generated unique id per operation. Used by some content providers to identify an idempotent retry. While listed as an optional header, some content providers consider this to be mandatory.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConsumerOfferOApi-FmInput'
            examples:
              Basic request - redemption:
                value:
                  consumer:
                    consumerIdentifier: bob1234
                  offer:
                    offerId: ce124847-08c4-4e0e-b917-9d5ef1240a69
              Extended request - including all optional fields available:
                value:
                  consumer:
                    consumerIdentifier: bob1234
                    communicationInformation:
                      emailAddress: bob@company.com
                      msisdn: '+44123456789'
                  offer:
                    offerId: ce124847-08c4-4e0e-b917-9d5ef1240a69
                  source:
                    channelType: Retail
                    bundleId: externalRef
                    brand: ABC
                    country: UK
                    region: Cambridgeshire
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelResponseForCreate'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 400
                message: namespaceId is invalid
        '401':
          description: Unauthorized (no response body returned)
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 404
                message: could not find bango user
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 408
                message: Request timeout
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 409
                message: Only one product is allowed in the Offer
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 422
                message: Maximum number of entitlements for user reached
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 500
                message: Internal Server Error
  /consumerOffers/{consumerOfferId}:
    get:
      summary: Get Consumer Offer
      description: use this operation to get consumer offer
      operationId: GetConsumerOfferOApi-fm
      parameters:
      - name: consumerOfferId
        in: path
        description: id of the consumer offer
        required: true
        schema:
          type: string
          description: id of the consumer offer
          format: uuid
      - name: awaitStatus
        in: query
        description: "* FULLY_CREATED: all entitlements have been created \n\r* FULLY_ACTIVE:\
          \ all entitlements are active\n\r* FULLY_TERMINATED: all entitlements have\
          \ been terminated"
        schema:
          type: string
          description: "* FULLY_CREATED: all fully created \n\r* FULLY_ACTIVE: all\
            \ fully active\n\r* FULLY_TERMINATED: all fully terminated"
          enum:
          - FULLY_CREATED
          - FULLY_ACTIVE
          - FULLY_TERMINATED
      - name: timeout
        in: query
        description: how long you wish to wait for the response  in ISO 8601 duration
          format, between 1 and 10 seconds e.g. PT10S
        schema:
          type: string
          description: how long you wish to wait for the response
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 400
                message: namespaceId is invalid
        '401':
          description: Unauthorized (no response body returned)
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 500
                message: Internal server error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 404
                message: Not Found
  /consumerOffers/{consumerOfferId}/cancellation:
    post:
      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:
              examples:
                Conflict:
                  value:
                    message: Conflict
                    statusCode: 409
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              examples:
                Internal server error:
                  value:
                    message: Internal server error
                    statusCode: 500
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /consumerOffers/search:
    post:
      summary: Search Consumer Offers
      description: use this operation to search consumer offers
      operationId: SearchConsumerOfferOApi-fm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchConsumerOfferOApi-FmInput'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModelResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 400
                message: namespaceId is invalid
        '401':
          description: Unauthorized (no response body returned)
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 404
                message: not found
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsDefaultErrorResponseModel'
              example:
                statusCode: 500
                message: Internal server error
components:
  schemas:
    CreateConsumerOfferOApi-FmInput:
      type: object
      properties:
        consumer:
          $ref: '#/components/schemas/ModelConsumer'
        offer:
          $ref: '#/components/schemas/ModelOfferRequest'
        source:
          $ref: '#/components/schemas/ModelSource'
      required:
      - consumer
      - offer
    ModelActivation:
      type: object
      properties:
        activationCode:
          type: string
          description: merchants activation code
        activationUrl:
          type: string
          description: merchants activation url
        activationUrlExpiryTs:
          type: string
          description: expiry time of activation url
          format: date-time
    ModelConsumerOffer:
      type: object
      properties:
        consumerOfferId:
          type: string
          description: identifier for the consumer offer
          format: uuid
        offerId:
          type: string
          description: offer identifier
          format: uuid
        consumer:
          $ref: '#/components/schemas/ModelConsumer'
        status:
          $ref: '#/components/schemas/ModelConsumerOfferStatus'
        subStatus:
          $ref: '#/components/schemas/ModelConsumerOfferSubStatus'
        timeline:
          $ref: '#/components/schemas/ModelConsumerOfferTimeline'
    ModelConsumerOfferStatus:
      type: string
      description: current consumer offer status
      enum:
      - REQUESTED
      - CREATES_FAILED
      - FULLY_CREATED
      - PARTIALLY_CREATED
      - FULLY_ACTIVE
      - FULLY_TERMINATED
    ModelConsumerOfferSubStatus:
      type: string
      description: current consumer offer sub-status
      enum:
      - PENDING_CREATES
      - PENDING_ACTIVATES
      - PENDING_TERMINATES
    ModelConsumerOfferForCreate:
      type: object
      properties:
        consumerOfferId:
          type: string
          description: identifier for the consumer offer
          format: uuid
        offerId:
          type: string
          description: offer identifier
          format: uuid
        consumer:
          $ref: '#/components/schemas/ModelConsumer'
        status:
          $ref: '#/components/schemas/ModelConsumerOfferStatus'
        subStatus:
          $ref: '#/components/schemas/ModelConsumerOfferSubStatus'
        timeline:
          $ref: '#/components/schemas/ModelConsumerOfferTimelineForCreate'
    ModelConsumerOfferTimeline:
      type: object
      properties:
        createRequestedTs:
          type: string
          description: date creation of the offer was requested
          format: date-time
        createdTs:
          type: string
          description: date the offer was created
          format: date-time
        createsFailedTs:
          type: string
          description: date the offer failed to be created
          format: date-time
        entitlementsRequestedTs:
          type: string
          description: date the entitlements for the offer were requested
          format: date-time
        terminateRequestedTs:
          type: string
          description: date the entitlements for the offer were terminated
          format: date-time
      description: timeline of changes made to the consumer offer
    ModelConsumerOfferTimelineForCreate:
      type: object
      properties:
        createRequestedTs:
          type: string
          description: date creation of the offer was requested
          format: date-time
      description: timeline of changes made to the consumer offer
    ModelConsumer:
      type: object
      properties:
        consumerIdentifier:
          type: string
          description: identity of the consumer
          maxLength: 400
        communicationInformation:
          $ref: '#/components/schemas/ModelCommunicationInformation'
      description: the consumer request body
      required:
      - consumerIdentifier
    ModelCommunicationInformation:
      type: object
      properties:
        emailAddress:
          type: string
          description: Consumer's email
        msisdn:
          type: string
          description: Consumer's msisdn
    ModelSource:
      type: object
      properties:
        channelType:
          type: string
          enum:
          - Retail
          - SMS
          - App
          - Website
          - Email
          - Call Centre
          - Mobile
          - Set Top Box
          - Other
          description: The channel the consumer used to get the offer
        bundleId:
          type: string
          description: Identifies the reseller's bundle
        brand:
          type: string
          description: The reseller's brand
        country:
          type: string
          description: The consumer's country
        region:
          type: string
          description: The consumer's regional area or code
    ModelPaymentMethodRequest:
      type: object
      properties:
        paymentInstrumentToken:
          type: string
          description: uuid represents a payment instrument token
          format: uuid
      description: the payment request body
      required:
      - paymentInstrumentToken
    ModelEntitlement:
      type: object
      properties:
        activation:
          $ref: '#/components/schemas/ModelActivation'
        entitlementId:
          type: string
          description: uuid represents a unique identifier for this entitlement
          format: uuid
        merchantAccountKey:
          type: string
          description: merchants account key
        productKey:
          type: string
          description: resellers product key
        status:
          $ref: '#/components/schemas/ModelEntitlementStatus'
        subStatus:
          $ref: '#/components/schemas/ModelEntitlementSubStatus'
        sharedCustomerId:
          type: string
          description: auto-generated unique consumer id for this content provider
          format: uuid
        timeline:
          $ref: '#/components/schemas/ModelEntitlementTimeline'
        source:
          $ref: '#/components/schemas/ModelSource'
    ModelEntitlementStatus:
      type: string
      description: current entitlement status
      enum:
      - REQUESTED
      - CREATED
      - ACTIVE
      - CREATE_FAILED
      - ENDED
      - SUSPENDED
    ModelEntitlementSubStatus:
      type: string
      description: current entitlement sub-status
      enum:
      - PENDING_CREATE
      - PENDING_ACTIVATE
      - ENDING
      - IMMEDIATE
    ModelEntitlementForCreate:
      type: object
      properties:
        entitlementId:
          type: string
          description: uuid represents a unique identifier for this entitlement
          format: uuid
        merchantAccountKey:
          type: string
          description: merchants account key
        productKey:
          type: string
          description: resellers product key
        status:
          $ref: '#/components/schemas/ModelEntitlementStatus'
        subStatus:
          $ref: '#/components/schemas/ModelEntitlementSubStatus'
        sharedCustomerId:
          type: string
          description: auto-generated unique consumer id for this content provider
          format: uuid
        timeline:
          $ref: '#/components/schemas/ModelEntitlementTimelineForCreate'
        source:
          $ref: '#/components/schemas/ModelSource'
    ModelEntitlementTimeline:
      type: object
      properties:
        activatedTs:
          type: string
          format: date-time
        createFailedTs:
          type: string
          format: date-time
        createRequestedTs:
          type: string
          format: date-time
        createdTs:
          type: string
          format: date-time
        terminatedTs:
          type: string
          format: date-time
    ModelEntitlementTimelineForCreate:
      type: object
      properties:
        createRequestedTs:
          type: string
          format: date-time
    ModelOfferRequest:
      type: object
      properties:
        offerId:
          type: string
          description: id of the offer
      description: the offer request body
      required:
      - offerId
    ModelResponse:
      type: object
      properties:
        consumerOffer:
          $ref: '#/components/schemas/ModelConsumerOffer'
        entitlements:
          type: array
          items:
            $ref: '#/components/schemas/ModelEntitlement'
    ModelResponseForCreate:
      type: object
      properties:
        consumerOffer:
          $ref: '#/components/schemas/ModelConsumerOfferForCreate'
        entitlements:
          type: array
          items:
            $ref: '#/components/schemas/ModelEntitlementForCreate'
    ModelsDefaultErrorResponseModel:
      type: object
      properties:
        Message:
          type: string
          description: description of the error
        StatusCode:
          type: integer
          description: error status code
          format: int32
    SearchConsumerOfferOApi-FmInput:
      type: object
      properties:
        consumer:
          $ref: '#/components/schemas/ModelConsumerSearch'
        status:
          type: string
          enum:
          - FULLY_CREATED
          - FULLY_ACTIVE
          - FULLY_TERMINATED
      required:
      - consumer
    ModelConsumerSearch:
      type: object
      properties:
        consumerIdentifier:
          type: string
          description: identity of the consumer
          maxLength: 400
      description: the consumer search request body
      required:
      - consumerIdentifier
    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.
    CommunicationInformation:
      type: object
      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
      title: CommunicationInformation
      description: Communication channel with the consumer.
    Consumer:
      type: object
      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.
      required:
      - consumerIdentifier
      title: Consumer
      description: Consumer.
    ConsumerOfferCancellation:
      type: object
      properties:
        cancellationType:
          $ref: '#/components/schemas/ActionSchedule'
          description: "Cancellation type\n\n* `END_OF_TERM`: consumer retains access\
            \ to the service until the end of the current term\n* `IMMEDIATE`: consumer\
            \ immediately loses access to the service\n"
          default: IMMEDIATE
        reasonCode:
          $ref: '#/components/schemas/CancellationReasonCode'
          title: Reasoncode
          description: "Cancellation reason\n\n* `NOT_RENEWED`: Customer has not renewed\
            \ their entitlement\n* `CHANGED_SERVICE`: Customer has changed content\
            \ provider/service\n* `SUBSCRIPTION_CANCELLED`: Customer has cancelled\
            \ the subscription\n* `ADDON_CANCELLED`: Customer has cancelled the add-on\n\
            * `EXPIRED`: Scheduled cancellation by Bango (based on dateExpiry set\
            \ during entitlement creation by the reseller)\n* `OTHER`: Cancelled for\
            \ any other reason\n* `ACCOUNT_TERMINATED`: Consumer has closed their\
            \ account with the reseller\n* `SUSPEND_TERMINATED`: Suspended entitlement\
            \ has been cancelled based on suspension terms\n* `ERROR`: Consumer offer/subscription\
            \ created by mistake\n* `FRAUD`: Fraud detected or suspected\n* `IMMEDIATE_CANCELLATION`:\
            \ Cancellation for fraud or suspected fraud reasons\n"
        reasonDescription:
          type: string
          maxLength: 500
          title: Reasondescription
          description: Human readable description of the reason for cancelling
      title: ConsumerOfferCancellation
      description: Consumer offer cancellation action.
    ConsumerOfferCancellationDetail:
      type: object
      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:\n\n* `REQUESTED`: creation of the consumer\
            \ offer was requested\n* `PARTIALLY_CREATED`: some entitlement were created,\
            \ but others failed\n* `FULLY_CREATED`: all entitlements have been created\n\
            * `CREATES_FAILED`: all entitlements failed to be created\n* `FULLY_ACTIVE`:\
            \ all entitlements are active\n* `FULLY_TERMINATED`: all entitlements\
            \ have been terminated\n* `PARTIALLY_TERMINATED`: some entitlement terminated\
            \ succesfully, some terminations failed\n"
        subStatus:
          $ref: '#/components/schemas/ConsumerOfferSubStatus'
          title: Substatus
          description: "Consumer offer sub-status:\n\n* `PENDING_CREATES`: entitlement\
            \ creation is pending\n* `PENDING_ACTIVATES`: entitlement activation is\
            \ pending\n* `PENDING_TERMINATES`: entitlement termination is pending\n\
            * `PENDING_CANCELS`: entitlement cancellation is pending\n"
        timeline:
          $ref: '#/components/schemas/ConsumerOfferCancellationTimeline'
          description: Timeline of changes made to the consumer offer
      required:
      - consumerOfferId
      - offerId
      - consumer
      - status
      - timeline
      title: ConsumerOfferCancellationDetail
      description: Consumer offer detail.
    ConsumerOfferCancellationTimeline:
      type: object
      properties:
        plannedCancellationTs:
          type: string
          format: date-time
          title: Plannedcancellationts
          description: Scheduled date and time for cancel
      required:
      - plannedCancellationTs
      title: ConsumerOfferCancellationTimeline
      description: Consumer Offer timeline.
    ConsumerOfferReadForCancel:
      type: object
      properties:
        consumerOffer:
          $ref: '#/components/schemas/ConsumerOfferCancellationDetail'
          description: Consumer offer detail
      required:
      - consumerOffer
      title: ConsumerOfferReadForCancel
      description: Consumer offer in a get response.
    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_CREATES
      - PENDING_ACTIVATES
      - PENDING_TERMINATES
      - PENDING_CANCELS
      title: ConsumerOfferSubStatus
      description: Consumer Offer sub-status.
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          title: Statuscode
          description: HTTP Status Code
        message:
          type: string
          title: Message
          description: Description of the error
      title: ErrorResponse
      description: Error response for Consumer Offer API.
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
      title: HTTPValidationError
    ValidationError:
      type: object
      properties:
        loc:
          type: array
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    basic:
      type: http
      description: Basic authentication
      scheme: basic