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

# Post payment intents



## OpenAPI

````yaml https://app.boothzen.com/api/v1/openapi.json post /payment-intents
openapi: 3.1.0
info:
  title: BoothZen API v1
  version: '1.0'
  description: >-
    Public REST API v1 for BoothZen booking management. Authenticate with
    `Authorization: Bearer bz_live_…` or `bz_test_…` keys.
servers:
  - url: https://api.boothzen.com/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /payment-intents:
    post:
      tags:
        - PaymentIntent
      operationId: paymentIntent.store
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorePaymentIntentRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: string
        '404':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - booking_not_found
                      message:
                        type: string
                        enum:
                          - Booking not found.
                    required:
                      - code
                      - message
                required:
                  - error
        '422':
          $ref: '#/components/responses/ValidationException'
        '502':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - payment_intent_failed
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
      security:
        - bearerAuth: []
components:
  schemas:
    StorePaymentIntentRequest:
      type: object
      description: >-
        POST /api/v1/payment-intents — request validation.


        Scope enforcement (payments:write) handled upstream by EnforceApiScope.

        Tenant isolation: booking_id is decoded + looked up under
        BelongsToTenant,

        so a cross-tenant booking reference resolves to 404 in the controller.


        amount_minor is OPTIONAL — when omitted, the controller derives the
        amount

        from the booking total. Pass it explicitly only for partial-pay /
        deposit

        flows where the charged amount diverges from booking.total_price.
      properties:
        booking_id:
          type: string
        amount_minor:
          type:
            - integer
            - 'null'
          minimum: 1
          maximum: 99999999
        currency:
          type:
            - string
            - 'null'
          minLength: 3
          maxLength: 3
      required:
        - booking_id
      title: StorePaymentIntentRequest
  responses:
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        Bearer token: `bz_live_<32chars>` (live mode) or `bz_test_<32chars>`
        (test mode). Obtain via BoothZen admin → Settings → API Keys.
      scheme: bearer
      bearerFormat: BZ-API-Key

````