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

# Create a payout

> Sends money to a typed instrument. The amount is in major units, the same scale as a payment. The response carries the payout in its current status, which is usually not final yet.



## OpenAPI

````yaml /api-reference/openapi.json post /payouts
openapi: 3.1.0
info:
  title: Orqex Orchestrate API
  version: 1.0.0
  description: >-
    The Orqex Orchestrate API for collecting payments and sending payouts.


    Authenticate with a secret key as a bearer token; the key also selects the
    environment. Amounts are in major units everywhere: `50` means 50.00. Writes
    accept an `X-Idempotency-Key` header. Lists are cursor-paginated.


    Which countries, currencies and payment methods are available depends on
    your project configuration: read them from the discovery endpoints at
    payment time, or look them up in your dashboard.
  contact:
    name: Orqex Orchestrate
    url: https://orqex.com
servers:
  - url: https://api.orqex.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Checkout
    description: Hosted checkout sessions.
  - name: Payment intents
    description: Payments, discovery and reconciliation.
  - name: Payment attempts
    description: Collecting a payment and confirming it.
  - name: Refunds
    description: Returning money to a payer.
  - name: Payouts
    description: Sending money out.
  - name: Utilities
    description: Exchange rates and method status.
paths:
  /payouts:
    post:
      tags:
        - Payouts
      summary: Create a payout
      description: >-
        Sends money to a typed instrument. The amount is in major units, the
        same scale as a payment. The response carries the payout in its current
        status, which is usually not final yet.
      operationId: createPayout
      parameters:
        - name: X-Idempotency-Key
          in: header
          required: false
          description: >-
            Optional key, 8 to 128 characters, that makes this request safe to
            retry. The first response is stored for 24 hours; a repeat returns
            it unchanged with `X-Idempotent-Replayed: true`.
          schema:
            type: string
            minLength: 8
            maxLength: 128
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePayoutRequest'
      responses:
        '201':
          description: Payout created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  data:
                    $ref: '#/components/schemas/Payout'
        '401':
          description: Missing, invalid, inactive or expired API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The request address is not on the API key's allowlist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: A payout with this `reference` already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Validation failed or the operation was rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate limit exceeded (100 requests per minute per key).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreatePayoutRequest:
      type: object
      required:
        - amount
        - currency
        - method
        - description
        - instrument
        - customer
      properties:
        amount:
          type: number
          minimum: 1
          description: >-
            Amount in **major units**, the same scale as a payment. `50` means
            50.00.
          example: 50
        currency:
          type: string
          minLength: 3
          maxLength: 3
          example: EUR
        method:
          type: string
          description: >-
            Payout method code. The codes available to your project are listed
            in your dashboard.
        description:
          type: string
          maxLength: 500
          example: Supplier settlement
        instrument:
          type: object
          required:
            - type
          description: The typed destination. Required fields depend on `type`.
          properties:
            type:
              type: string
              enum:
                - phone
                - bank_account
                - crypto_address
            phone_number:
              type: string
              description: '`phone` — required.'
              example: '+15550000000'
            account_name:
              type: string
              description: '`bank_account` — required.'
            account_number:
              type: string
              description: '`bank_account` — required. Account number or IBAN.'
            bank_code:
              type: string
              maxLength: 32
              description: '`bank_account` — required.'
            swift_bic:
              type: string
              description: '`bank_account` — optional.'
            country:
              type: string
              minLength: 2
              maxLength: 2
              description: '`phone` and `bank_account` — required. ISO 3166-1 alpha-2.'
              example: DE
            address:
              type: string
              description: '`crypto_address` — required.'
            network:
              type: string
              maxLength: 32
              description: '`crypto_address` — required.'
            memo_tag:
              type: string
              maxLength: 64
              description: '`crypto_address` — optional.'
        customer:
          type: object
          required:
            - email
            - first_name
            - last_name
          properties:
            email:
              type: string
              format: email
              example: ada@example.com
            first_name:
              type: string
              maxLength: 100
              example: Ada
            last_name:
              type: string
              maxLength: 100
              example: Lovelace
            address:
              type:
                - string
                - 'null'
              maxLength: 200
            city:
              type:
                - string
                - 'null'
              maxLength: 100
            state:
              type:
                - string
                - 'null'
              maxLength: 100
            country:
              type:
                - string
                - 'null'
              maxLength: 5
              description: ISO 3166-1 alpha-2 country code.
              example: US
            zip:
              type:
                - string
                - 'null'
        reference:
          type: string
          maxLength: 191
          description: >-
            Your own identifier. Must be unique within the project; a duplicate
            returns 409.
          example: batch-42-line-7
        webhook_url:
          type: string
          format: uri
          maxLength: 2048
          description: >-
            URL notified when this payout is created, completes or fails.
            Deliveries to it are **not signed**.
        metadata:
          type: object
          maxProperties: 10
          additionalProperties: true
          description: Up to 10 key/value pairs of your own, returned unchanged.
          example:
            order_id: '1042'
        gateway_options:
          type: object
          additionalProperties: true
          description: >-
            Optional processor-specific parameters, keyed by gateway code. Only
            gateways that declare options accept a section, and each section is
            validated against that gateway's own schema; an unknown code or an
            unsupported option is rejected. The codes and options available to
            your project are listed in your dashboard.
          example: {}
    Payout:
      type: object
      properties:
        id:
          type: string
          example: po_6Cw1Rh
        amount:
          $ref: '#/components/schemas/Amount'
        method:
          $ref: '#/components/schemas/PaymentMethod'
        status:
          type: string
          enum:
            - pending
            - processing
            - completed
            - failed
        reference:
          type:
            - string
            - 'null'
          example: batch-42-line-7
        description:
          type:
            - string
            - 'null'
        webhook_url:
          type:
            - string
            - 'null'
          description: The notification URL supplied at creation.
        customer:
          $ref: '#/components/schemas/Customer'
        instrument:
          $ref: '#/components/schemas/PayoutInstrument'
        gateway:
          $ref: '#/components/schemas/GatewayTransaction'
        fee_amount:
          type:
            - integer
            - 'null'
          description: >-
            Provider fee as a plain integer in minor units. Unlike `amount`,
            this is not an Amount object.
        failure:
          $ref: '#/components/schemas/Failure'
        metadata:
          type:
            - object
            - 'null'
          additionalProperties: true
        initiated_at:
          type:
            - string
            - 'null'
          format: date-time
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
        failed_at:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type:
            - string
            - 'null'
          format: date-time
    Error:
      type: object
      properties:
        message:
          type: string
    ValidationError:
      type: object
      properties:
        message:
          type: string
          example: The given data was invalid.
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    Amount:
      type: object
      properties:
        value:
          type:
            - number
            - 'null'
          example: 50
        formatted:
          type:
            - string
            - 'null'
          example: $50.00
        short:
          type:
            - string
            - 'null'
          example: $50
        currency:
          type:
            - string
            - 'null'
          example: USD
    PaymentMethod:
      type: object
      description: >-
        A payment method available for this payment. Method codes are discovered
        at runtime and must not be hard-coded.
      properties:
        value:
          type: string
          description: The code to send as `method_code`.
          example: test
        label:
          type: string
        description:
          type:
            - string
            - 'null'
        icon_url:
          type:
            - string
            - 'null'
        category:
          type:
            - string
            - 'null'
          description: Broad family the method belongs to.
        requires_phone:
          type: boolean
          description: Whether a payer phone number must be supplied.
    Customer:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          example: cus_2f8Kd1
        first_name:
          type:
            - string
            - 'null'
          example: Ada
        last_name:
          type:
            - string
            - 'null'
          example: Lovelace
        email:
          type:
            - string
            - 'null'
          example: ada@example.com
        avatar_url:
          type:
            - string
            - 'null'
    PayoutInstrument:
      type:
        - object
        - 'null'
      description: The destination as stored. Keys depend on `type`.
      properties:
        id:
          type: string
          example: pin_5Yt2Wc
        type:
          type: string
          enum:
            - phone
            - bank_account
            - crypto_address
        phone_number:
          type:
            - string
            - 'null'
        account_name:
          type:
            - string
            - 'null'
        account_number:
          type:
            - string
            - 'null'
        bank_code:
          type:
            - string
            - 'null'
        swift_bic:
          type:
            - string
            - 'null'
        country:
          oneOf:
            - $ref: '#/components/schemas/Country'
            - type: 'null'
          description: Returned as an object, although it is sent as a plain code.
        address:
          type:
            - string
            - 'null'
        network:
          type:
            - string
            - 'null'
        memo_tag:
          type:
            - string
            - 'null'
    GatewayTransaction:
      type: object
      properties:
        transaction:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
            reference:
              type:
                - string
                - 'null'
            external_id:
              type:
                - string
                - 'null'
            status:
              type:
                - string
                - 'null'
    Failure:
      type: object
      properties:
        code:
          type:
            - object
            - 'null'
          properties:
            value:
              type: string
              description: Stable identifier for the failure.
            category:
              type: string
              description: Branch on this rather than on `value`.
              enum:
                - CUSTOMER_ERROR
                - GATEWAY_ERROR
                - TELCO_ERROR
                - MERCHANT_CONFIG_ERROR
                - PLATFORM_ERROR
                - SECURITY_ERROR
            message:
              type:
                - string
                - 'null'
              description: Message written for the payer.
        message:
          type:
            - string
            - 'null'
    Country:
      type: object
      properties:
        code:
          type: string
          example: US
        name:
          type: string
          example: United States
        flag:
          type:
            - string
            - 'null'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your secret key, e.g. `sk_live_...` or `sk_sandbox_...`.

````