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

# Execute a fiat payment

> Creates a pending fiat payment record. Automatically provisions a liquidation address and virtual account if they do not exist for this beneficiary/currency pair.



## OpenAPI

````yaml /api-reference/openapi.json post /payout/accounts/execute
openapi: 3.0.0
info:
  title: Relayer
  description: >-
    Relayer API — Kit-based crypto infrastructure for OTC exchange, wallet
    signing, payouts, and widget actions.
  version: '1.0'
  contact: {}
servers:
  - url: https://testnet.relayer.fi/v1
    description: Sandbox (testnet wallets, no real fiat)
  - url: https://api.relayer.fi/v1
    description: Production (mainnet wallets, regulated fiat rails)
security:
  - api-key: []
tags:
  - name: 'Action: Builders'
    description: Transaction metadata builders
  - name: 'Action: Directory'
    description: Widget directory
  - name: 'Action: Execute'
  - name: 'Action: Tokens'
    description: Token lists per chain/protocol
  - name: Addresses
  - name: Agents
  - name: App
    description: Application endpoints
  - name: 'Payout: Accounts'
    description: Payment execution
  - name: 'Payout: Off-ramp'
  - name: 'Payout: On-ramp'
  - name: 'Payout: Orders'
  - name: 'Payout: Recipients'
    description: Beneficiary management
  - name: Signing - Passkeys
  - name: Signing - Recovery
  - name: Signing Approvals
    description: Transaction signing approvals
  - name: Signing Policies
    description: Signing policy management
  - name: Transactions
    description: Transaction signing and broadcasting
  - name: Wallets
    description: Wallet and address management
paths:
  /payout/accounts/execute:
    post:
      tags:
        - 'Payout: Accounts'
      summary: Execute a fiat payment
      description: >-
        Creates a pending fiat payment record. Automatically provisions a
        liquidation address and virtual account if they do not exist for this
        beneficiary/currency pair.
      operationId: PaymentsController_executePayment
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutePaymentDto'
      responses:
        '201':
          description: Payment created with deposit instructions for the source currency
        '404':
          description: Beneficiary not found
      security:
        - bearer: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl -X POST https://api.relayer.fi/v1/payout/accounts/execute \
              -H "Authorization: ApiKey $RELAYER_API_KEY" \
              -H "Content-Type: application/json" \
              -d '{
                "quoteId": "qte_jkl012",
                "beneficiaryId": "ben_abc123"
              }'
        - lang: TypeScript
          label: Node.js
          source: >-
            const response = await
            fetch("https://api.relayer.fi/v1/payout/accounts/execute", {
              method: "POST",
              headers: {
                Authorization: `ApiKey ${process.env.RELAYER_API_KEY}`,
                "Content-Type": "application/json",
              },
              body: JSON.stringify({ quoteId, beneficiaryId }),
            });

            const { data } = await response.json();

            // data.reference — payment reference. Track via:

            // GET /payout/accounts/{reference}/status   or   GET
            /orders/{orderId}

            // Settlement typically completes in 1-2 business days.
components:
  schemas:
    ExecutePaymentDto:
      type: object
      properties:
        source_amount:
          type: string
          description: Amount in source currency as a decimal string
          example: '10000.00'
        source_currency:
          type: string
          description: Source currency code
          enum:
            - usd
            - eur
            - mxn
            - brl
            - gbp
          example: mxn
        destination_currency:
          type: string
          description: Destination currency code
          enum:
            - usd
            - eur
            - mxn
            - brl
            - gbp
          example: usd
        beneficiary_account_id:
          type: string
          description: UUID of the beneficiary bank account receiving the funds
          example: b5ed595d-d724-4826-9e6c-3b8104fbe355
      required:
        - source_amount
        - source_currency
        - destination_currency
        - beneficiary_account_id
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use this format: `ApiKey <your_api_key>`'

````