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

# Create Checkout

> Creates a checkout and generates one or more orders grouped by company.



## OpenAPI

````yaml /api-reference/customer/openapi.json post /api/v1/customer/checkouts
openapi: 3.0.0
info:
  title: DEVMOB Customer API
  description: DEVMOB API
  version: '1.0'
  contact: {}
servers: []
security: []
tags:
  - name: Address
    description: Customer addresses
  - name: Auth
    description: Authentication and token lifecycle
  - name: Benefit Program
    description: Fare benefit programs
  - name: Benefit Request
    description: Fare benefit requests and documents
  - name: Checkout
    description: Checkout creation and retrieval
  - name: Credit Grant
    description: Customer credits
  - name: Invite
    description: Invitation preview and acceptance
  - name: Notification
    description: Customer inbox notifications
  - name: Offering
    description: Trip offerings and seat maps
  - name: Order
    description: Customer orders
  - name: OTP
    description: One-time password flows
  - name: Payment
    description: Payments
  - name: Payment Method
    description: Saved payment methods
  - name: Point
    description: Point lookup
  - name: Profile
    description: Authenticated customer profile
  - name: Promotion
    description: Promotions
  - name: Routing
    description: Routing helpers
  - name: Session
    description: Authenticated sessions
  - name: Storage
    description: Storage uploads
  - name: Support
    description: Support cases
  - name: Ticket
    description: Customer tickets
  - name: Trip
    description: Customer trip access
  - name: Trip Review
    description: Trip reviews
paths:
  /api/v1/customer/checkouts:
    post:
      tags:
        - Checkout
      summary: Create Checkout
      description: Creates a checkout and generates one or more orders grouped by company.
      operationId: createCustomerCheckout
      parameters:
        - name: fields
          in: query
          required: false
          description: >-
            Comma-separated list of fields to include in the response. Supports
            dot notation.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCheckoutRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checkout'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CreateCheckoutRequest:
      type: object
      properties:
        tickets:
          type: array
          items:
            $ref: '#/components/schemas/CheckoutTicketInput'
          description: Tickets to purchase.
          minItems: 1
        payment:
          type: object
          properties:
            method:
              type: string
              enum:
                - PIX
                - CREDIT_CARD
                - DEBIT_CARD
                - BOLETO
              description: Payment method.
              example: PIX
            paymentMethodId:
              type: string
              format: uuid
              description: Saved card payment method identifier.
              example: 0197f700-1111-7a53-9d28-51f8f3c77d41
          required:
            - method
          description: >-
            External payment data. Optional when credit covers the full
            checkout.
          nullable: true
        creditAmount:
          type: integer
          minimum: 0
          description: Amount of customer credit to use in cents.
          example: 1500
        promotionalCode:
          type: string
          description: Promotional code to validate in checkout.
          example: PROMO10
          nullable: true
      required:
        - tickets
      description: Checkout creation payload.
    Checkout:
      type: object
      properties:
        checkoutId:
          type: string
          format: uuid
          description: Identificador único
        customerId:
          type: string
          format: uuid
          description: Referência ao cliente comprador
        code:
          type: string
          description: Código legível único do checkout
        amount:
          type: integer
          description: Valor total do checkout em centavos
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que criou o registro, quando aplicável
        createdAt:
          type: string
          format: date-time
          description: Data de criação
        updatedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que fez a última atualização, quando aplicável
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
      required:
        - checkoutId
        - customerId
        - code
        - amount
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
      description: Agrupador comercial de uma compra que pode gerar pedidos por empresa
    CheckoutTicketInput:
      type: object
      properties:
        tripItineraryId:
          type: string
          format: uuid
          description: Trip itinerary identifier.
          example: 0197a813-0fb9-7d42-9c81-50c0f6d9ae5a
        seatId:
          type: string
          format: uuid
          description: Seat identifier.
          example: 0197a813-0fb9-7d42-9c81-50c0f6d9ae5a
        passenger:
          type: object
          properties:
            name:
              type: string
              description: Passenger name.
              example: Mariana Costa
            document:
              type: string
              description: Passenger document.
              example: '12345678909'
            documentType:
              type: string
              enum:
                - CPF
                - CNPJ
                - RG
              description: Passenger document type.
              example: CPF
            birthDate:
              type: string
              format: date
              description: Passenger birth date.
              example: '1992-04-18'
              nullable: true
          required:
            - name
            - document
            - documentType
          description: Passenger snapshot.
        isCustomer:
          type: boolean
          description: Whether the passenger is the account holder.
          example: true
      required:
        - tripItineraryId
        - seatId
        - passenger
      description: Ticket requested in checkout.
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request Error
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Validation code.
                example: invalid_type
              message:
                type: string
                description: Validation message.
                example: Required
              path:
                type: string
                description: Invalid field path.
                example: name
            required:
              - code
              - message
              - path
      required:
        - statusCode
        - message
        - errors
      description: Validation error response.
    ApiError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 404
        error:
          type: string
          description: HTTP error name.
          example: Not Found
        message:
          type: string
          description: Machine-readable error code.
          example: resource.not_found
      required:
        - statusCode
        - error
        - message
      description: Domain error response.
  responses:
    BadRequestError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    UnauthorizedError:
      description: Authentication required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ConflictError:
      description: State conflict.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    UnprocessableEntityError:
      description: Business rule failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'

````