> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fourvenues.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkout ticket upselling

> Validates additional supplement quantities for an existing ticket, then creates the upselling payment via the ticketing API (POST /upselling/supplements). Returns payment_id and payment_url (same format as ticket checkout) plus supplement line totals and fees.



## OpenAPI

````yaml post /tickets/{ticketId}/upselling/checkout
openapi: 3.0.0
info:
  title: Channel Manager API
  version: 0.2.0
  description: >-
    Official API documentation for Channel Manager. All endpoints are protected
    by an API key.
servers:
  - url: https://channels-service-alpha.fourvenues.com
    description: Test server
  - url: https://channels-service.fourvenues.com
    description: Production server
security: []
paths:
  /tickets/{ticketId}/upselling/checkout:
    post:
      tags:
        - Tickets
      summary: Checkout ticket upselling
      description: >-
        Validates additional supplement quantities for an existing ticket, then
        creates the upselling payment via the ticketing API (POST
        /upselling/supplements). Returns payment_id and payment_url (same format
        as ticket checkout) plus supplement line totals and fees.
      operationId: checkoutTicketUpselling
      parameters:
        - name: ticketId
          in: path
          required: true
          description: Ticket id
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - redirect_url
                - error_url
                - supplements
              properties:
                redirect_url:
                  type: string
                  description: URL to redirect the user after the checkout.
                  example: https://app.yourwebpage.com/checkout/internal-id/success
                error_url:
                  type: string
                  description: URL to redirect the user if the checkout fails.
                  example: https://app.yourwebpage.com/checkout/internal-id/error
                supplements:
                  type: array
                  items:
                    type: object
                    required:
                      - supplement_id
                      - quantity
                    properties:
                      supplement_id:
                        type: string
                      quantity:
                        type: integer
                        minimum: 1
                send_resources:
                  type: boolean
                  default: false
                  description: >-
                    Forwarded to payment.success webhook payload as
                    send_resources
                metadata:
                  type: object
                  default: {}
                  description: >-
                    Client metadata merged into cm_payment_info and forwarded on
                    payment.success webhooks
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/TicketUpsellingCheckout'
                  success:
                    type: boolean
                    example: true
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      security:
        - ApiKey: []
components:
  schemas:
    TicketUpsellingCheckout:
      type: object
      properties:
        payment_id:
          type: string
        payment_url:
          type: string
        total_amount:
          type: number
        supplements_price:
          type: number
        supplements_service_charge_total:
          type: number
        organization_fee:
          type: number
        fees:
          type: object
          properties:
            fee_type:
              type: string
              enum:
                - fixed
                - percentage
            fee_quantity:
              type: number
            organization_fee:
              type: number
            supplements_service_charge_total:
              type: number
          required:
            - fee_type
            - fee_quantity
            - organization_fee
            - supplements_service_charge_total
        supplements:
          type: array
          items:
            $ref: '#/components/schemas/UpsellingCheckoutSupplementItem'
      required:
        - payment_id
        - payment_url
        - total_amount
        - supplements_price
        - supplements_service_charge_total
        - organization_fee
        - fees
        - supplements
      description: |-
        Result of an upselling checkout: the payment envelope plus the priced
        supplements and fee breakdown.
    UpsellingCheckoutSupplementItem:
      type: object
      properties:
        supplement_id:
          type: string
        label:
          type: string
        price:
          type: number
        purchase_quantity:
          type: number
        line_total:
          type: number
        service_charge_amount:
          type: number
        service_charge_type:
          type: string
        service_charge_total:
          type: number
        line_total_with_fees:
          type: number
      required:
        - supplement_id
        - label
        - price
        - purchase_quantity
        - line_total
        - service_charge_total
        - line_total_with_fees
      description: A priced supplement line in an upselling checkout.
  securitySchemes:
    ApiKey:
      in: header
      name: X-Api-Key
      type: apiKey

````