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

# Send an International Payout (Full Payload)

> Send money abroad by submitting the full payout details in one call.

Unlike ``POST /payouts`` — which references a recipient you created earlier
by id — this endpoint accepts the recipient and their bank account inline,
so you don't have to pre-register them. Send the order details
(``orderPartnerID``, ``orderCurrency``, ``orderAmount``, ``payoutCurrency``,
``payoutBranchID``), the recipient (``beneficiary``), the recipient's bank
(``bankInfo``), and the ``walletId`` to debit.

Your sender details are configured for your platform by the Finogate team
and are applied automatically — you never send them.

The payout is created held for review and is submitted only after a Finogate
operator approves it.



## OpenAPI

````yaml POST /v1/platform/international/payouts/global
openapi: 3.1.0
info:
  title: Finogate Platform API v1
  version: 0.1.0
servers:
  - url: https://api-sandbox.finogates.com
    description: Sandbox
  - url: https://api.finogates.com
    description: Production
security: []
tags:
  - name: auth
  - name: users
  - name: payees
  - name: verification
  - name: bank accounts
  - name: card processing
  - name: digital-assets
  - name: international
  - name: fees
  - name: onboarding
  - name: pending-applications
  - name: wallets
  - name: payments
  - name: document mailing
  - name: merchant onboarding
  - name: catalog
  - name: webhooks
  - name: screening
  - name: Platform - File Scanning
  - name: phone-numbers
  - name: sms
  - name: calls
  - name: listings
  - name: Card Transfers
  - name: embed-tokens
paths:
  /v1/platform/international/payouts/global:
    post:
      tags:
        - international
      summary: Send an International Payout (full payload)
      description: >-
        Send money abroad by submitting the full payout details in one call.


        Unlike ``POST /payouts`` — which references a recipient you created
        earlier

        by id — this endpoint accepts the recipient and their bank account
        inline,

        so you don't have to pre-register them. Send the order details

        (``orderPartnerID``, ``orderCurrency``, ``orderAmount``,
        ``payoutCurrency``,

        ``payoutBranchID``), the recipient (``beneficiary``), the recipient's
        bank

        (``bankInfo``), and the ``walletId`` to debit.


        Your sender details are configured for your platform by the Finogate
        team

        and are applied automatically — you never send them.


        The payout is created held for review and is submitted only after a
        Finogate

        operator approves it.
      operationId: >-
        platform_create_payout_global_v1_platform_international_payouts_global_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InternationalPayoutGlobalCreate'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - _AuthenticatedBearer: []
components:
  schemas:
    InternationalPayoutGlobalCreate:
      properties:
        orderPartnerID:
          type: string
          maxLength: 32
          minLength: 1
          title: Orderpartnerid
          description: >-
            Your reference for this payout. Doubles as the idempotency anchor,
            so it must not be empty — an empty reference would disable duplicate
            detection. 1–32 characters, letters and numbers only (no spaces,
            hyphens, underscores or other special characters). Must be unique
            per payout (a repeat is rejected as a duplicate).
        orderCurrency:
          type: string
          maxLength: 3
          minLength: 3
          title: Ordercurrency
          description: ISO-4217 funding-side currency (e.g. ``USD``).
        orderAmount:
          anyOf:
            - type: number
              exclusiveMaximum: 1000000000000
              exclusiveMinimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Orderamount
          description: >-
            Amount in ``orderCurrency`` to debit from your wallet. Must be
            positive; values of 1,000,000,000,000 or greater are rejected (the
            amount is stored in integer minor units and an unbounded value would
            overflow that column).
        payoutBranchID:
          type: integer
          minimum: 1
          title: Payoutbranchid
          description: >-
            Destination collection branch id. **Required** — it identifies the
            payer and corridor used to route the payout and to validate the
            recipient against that payer's mandatory fields. Get one from ``GET
            /v1/platform/international/branches``.
        payoutCurrency:
          type: string
          maxLength: 3
          minLength: 3
          title: Payoutcurrency
          description: ISO-4217 recipient-side currency (e.g. ``INR``).
        walletId:
          anyOf:
            - type: string
            - type: 'null'
          title: Walletid
          description: >-
            Optional. ID of the wallet to debit. Omit it to fund the payout from
            your platform's master wallet for ``orderCurrency`` — the recipient
            is not one of your users, so the payout draws on your platform
            balance by default. When supplied, the wallet must belong to your
            platform and its currency must match ``orderCurrency``.
        payoutAmount:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Payoutamount
          description: >-
            Pre-quoted amount in ``payoutCurrency``. Derived from the live FX
            rate when omitted.
        fromHold:
          type: boolean
          title: Fromhold
          description: >-
            Draw this payout from the wallet's frozen (held) funds instead of
            its available balance. The held balance must cover the order amount
            plus any fee, or the request is rejected with
            ``insufficient_held_funds``. Omit for a normal payout from available
            balance.
          default: false
        beneficiary:
          $ref: '#/components/schemas/GlobalPayoutBeneficiary'
        bankInfo:
          $ref: '#/components/schemas/GlobalPayoutBankInfo'
        meta_data:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta Data
          description: >-
            Optional free-form JSON object stored for your own reference only.
            It is persisted verbatim with the payout and is **never** sent to
            the payout provider — use it to attach your own bookkeeping (order
            ids, notes, internal tags).
      additionalProperties: false
      type: object
      required:
        - orderPartnerID
        - orderCurrency
        - orderAmount
        - payoutBranchID
        - payoutCurrency
        - beneficiary
        - bankInfo
      title: InternationalPayoutGlobalCreate
      description: Full inline payout payload for the global international payout endpoint.
    CommonResponse:
      properties:
        status_code:
          type: integer
          title: Status Code
          description: HTTP status code for the response.
        data:
          title: Data
          description: Payload or error details.
        query_generated_time:
          type: integer
          title: Query Generated Time
          description: >-
            UTC timestamp (milliseconds since epoch) when response was
            generated.
      type: object
      required:
        - status_code
        - data
        - query_generated_time
      title: CommonResponse
      description: |-
        Standard response wrapper for single-object responses and errors.

        Generic over the payload type. A route that declares
        ``CommonResponse[SomeModel]`` gets the real ``data`` schema rendered in
        OpenAPI/Swagger; a bare ``CommonResponse`` leaves ``data`` untyped.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    GlobalPayoutBeneficiary:
      properties:
        firstName:
          anyOf:
            - type: string
              maxLength: 150
            - type: 'null'
          title: Firstname
        lastName:
          anyOf:
            - type: string
              maxLength: 150
            - type: 'null'
          title: Lastname
        phone:
          anyOf:
            - type: string
              maxLength: 40
            - type: 'null'
          title: Phone
        nationality:
          anyOf:
            - type: string
              maxLength: 2
              minLength: 2
            - type: 'null'
          title: Nationality
        address:
          $ref: '#/components/schemas/GlobalPayoutAddress'
        document:
          $ref: '#/components/schemas/GlobalPayoutDocument'
      additionalProperties: true
      type: object
      title: GlobalPayoutBeneficiary
    GlobalPayoutBankInfo:
      properties:
        bankAccount:
          anyOf:
            - type: string
              maxLength: 80
            - type: 'null'
          title: Bankaccount
        bankAccType:
          anyOf:
            - type: string
              maxLength: 20
            - type: 'null'
          title: Bankacctype
          description: >-
            Recipient bank account type — checking or savings. **Optional**:
            omit it for corridors that don't need it. A corridor that does
            require it (e.g. US ACH) still rejects the payout up front when it's
            missing. When supplied, send either the code (``CTE`` = checking,
            ``AHO`` = savings) or the wording ``checking`` / ``savings``,
            optionally qualified with ``personal`` or ``business`` (e.g.
            ``business savings``). The owner does not change the code: personal
            and business accounts use the same two codes, and the value is
            normalized to ``CTE`` / ``AHO``. A value that doesn't resolve to
            checking or savings is rejected.
        bankBranch:
          anyOf:
            - type: string
              maxLength: 80
            - type: 'null'
          title: Bankbranch
        bankDocument:
          anyOf:
            - type: string
              maxLength: 80
            - type: 'null'
          title: Bankdocument
      additionalProperties: true
      type: object
      title: GlobalPayoutBankInfo
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    GlobalPayoutAddress:
      properties:
        state:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: State
        city:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: City
        streetAndNumber:
          anyOf:
            - type: string
              maxLength: 255
            - type: 'null'
          title: Streetandnumber
        country:
          anyOf:
            - type: string
              maxLength: 2
              minLength: 2
            - type: 'null'
          title: Country
          description: ISO-3166 alpha-2 country of the recipient's address (e.g. ``US``).
        postalCode:
          anyOf:
            - type: string
              maxLength: 20
            - type: 'null'
          title: Postalcode
          description: >-
            Recipient postal / ZIP code. Required when the address ``country``
            is ``US`` (US addresses are not routable without a ZIP).
      additionalProperties: true
      type: object
      title: GlobalPayoutAddress
    GlobalPayoutDocument:
      properties:
        type:
          anyOf:
            - type: string
            - type: integer
            - type: 'null'
          title: Type
        number:
          anyOf:
            - type: string
              maxLength: 80
            - type: 'null'
          title: Number
        issueCountry:
          anyOf:
            - type: string
              maxLength: 2
              minLength: 2
            - type: 'null'
          title: Issuecountry
      additionalProperties: true
      type: object
      title: GlobalPayoutDocument
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````