> ## 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

> Send money abroad to a recipient.

You only need to send the recipient's payee id (``payeeId``), the bank
destination to pay into (``destinationId``), and the transaction details
(``amount``, ``sourceCurrency``, ``destinationCurrency``). Everything else —
the sender's details, the recipient's full details, the bank details, the
collection branch, and which partner delivers the money — is worked out for
you behind the scenes. Your sender details are configured for your platform
by the Finogate team.

Set up the recipient first, in two steps:

1. **Create the payee** — ``POST /v1/platform/payees`` (returns the payee's
   ``id``, which is the ``payeeId`` you pass here).
2. **Add their bank destination** —
   ``POST /v1/platform/payees/bank-accounts/{payee_id}`` (returns the
   destination's ``id``, which is the ``destinationId`` you pass here).
   Include ``payout_branch_id`` so the payout can be routed.



## OpenAPI

````yaml POST /v1/platform/international/payouts
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: onboarding
  - name: pending-applications
  - name: wallets
  - name: payments
  - name: catalog
  - name: webhooks
  - name: phone-numbers
  - name: sms
  - name: calls
  - name: listings
  - name: embed-tokens
paths:
  /v1/platform/international/payouts:
    post:
      tags:
        - international
      summary: Send an International Payout
      description: >-
        Send money abroad to a recipient.


        You only need to send the recipient's payee id (``payeeId``), the bank

        destination to pay into (``destinationId``), and the transaction details

        (``amount``, ``sourceCurrency``, ``destinationCurrency``). Everything
        else —

        the sender's details, the recipient's full details, the bank details,
        the

        collection branch, and which partner delivers the money — is worked out
        for

        you behind the scenes. Your sender details are configured for your
        platform

        by the Finogate team.


        Set up the recipient first, in two steps:


        1. **Create the payee** — ``POST /v1/platform/payees`` (returns the
        payee's
           ``id``, which is the ``payeeId`` you pass here).
        2. **Add their bank destination** —
           ``POST /v1/platform/payees/bank-accounts/{payee_id}`` (returns the
           destination's ``id``, which is the ``destinationId`` you pass here).
           Include ``payout_branch_id`` so the payout can be routed.
      operationId: platform_create_payout_v1_platform_international_payouts_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InternationalPayoutCreate'
        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:
    InternationalPayoutCreate:
      properties:
        payeeId:
          type: string
          format: uuid
          title: Payeeid
          description: ID of a Finogates-managed payee (created via the payees API).
        destinationId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Destinationid
          description: >-
            ID of a bank destination that belongs to ``payeeId``. Optional —
            when omitted the server uses the payee's sole active bank
            destination. Required only when the payee owns multiple banks.
        walletId:
          type: string
          format: uuid
          title: Walletid
          description: >-
            ID of the wallet to debit for this payout. Required — there is no
            implicit default wallet. The wallet must belong to your platform and
            its currency must match ``sourceCurrency``.
        amount:
          anyOf:
            - type: number
              exclusiveMinimum: 0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount in ``sourceCurrency`` to debit from your wallet.
        sourceCurrency:
          type: string
          maxLength: 3
          minLength: 3
          title: Sourcecurrency
          description: ISO-4217 funding-side currency (e.g. ``USD``).
        destinationCurrency:
          type: string
          maxLength: 3
          minLength: 3
          title: Destinationcurrency
          description: ISO-4217 recipient-side currency (e.g. ``INR``).
        reference:
          anyOf:
            - type: string
              maxLength: 32
            - type: 'null'
          title: Reference
          description: >-
            Customer-supplied reference / idempotency anchor. Auto-generated
            when omitted.
        destinationAmount:
          anyOf:
            - type: number
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Destinationamount
          description: >-
            Pre-quoted amount in ``destinationCurrency``. When omitted Finogates
            derives it from the live FX rate.
        payoutBranchId:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Payoutbranchid
          description: >-
            Optional fallback for the destination branch id. The canonical place
            to store this is on the bank destination itself
            (``payout_branch_id`` set when adding the bank destination via
            ``POST .../payees/bank-accounts/{payee_id}``); supply it here only
            when the destination predates that field — newer registrations have
            it stored and Finogates resolves the routing automatically.
      additionalProperties: false
      type: object
      required:
        - payeeId
        - walletId
        - amount
        - sourceCurrency
        - destinationCurrency
      title: InternationalPayoutCreate
      description: >-
        Customer-facing request body for ``POST .../international/payouts``.


        The customer pre-creates the payee and its bank destination via the

        Finogates resource APIs (``/payees`` and
        ``/payees/bank-accounts/{payee_id}``),

        then references them here by ID. The sender, the recipient's full
        details,

        and bank-info fields are resolved internally from those records and from
        the

        platform's configured Sender Defaults.
    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
    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
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````