EBANX Payout API

Send money from a merchant funded balance to a payee bank account or e-wallet in any EBANX market. Supports local payouts (merchant funds in local currency) and cross-border payouts (merchant deposits USD and EBANX converts to the payee currency). Includes create, commit, cancel, retrieve, search, simulate, attach invoice, balance, bank list, bank detail, payee creation, and bank-account verification.

EBANX Payout API is one of 6 APIs that EBANX publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 2 JSON Schema definitions.

Tagged areas include Payouts, Disbursements, Cross-Border, and LATAM. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, sample payloads, 1 Naftiko capability spec, and 2 JSON Schemas.

OpenAPI Specification

ebanx-payout-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: EBANX Payout API
  version: '1.0'
  description: >-
    Send money from a merchant balance to a local bank account or e-wallet in
    EBANX's Latin American and emerging markets. Supports both local payouts
    (merchant pre-funds in local currency) and cross-border payouts (merchant
    deposits USD and EBANX converts to the payee's local currency), with bank
    transfers settled in up to two business days and e-wallets in roughly two
    minutes.
  contact:
    name: EBANX Sales Engineering
    email: [email protected]
    url: https://docs.ebanx.com
servers:
  - url: https://api.ebanxpay.com
    description: Production environment
  - url: https://sandbox.ebanxpay.com
    description: Sandbox environment for testing
security:
  - integrationKey: []
paths:
  /ws/payout/create:
    post:
      summary: Create Payout
      operationId: createPayout
      description: Create a payout to a payee bank account or e-wallet. The payout starts in a draft state and must be committed.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutRequest'
      responses:
        '200':
          description: Payout created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
  /ws/payout/commit:
    post:
      summary: Commit Payout
      operationId: commitPayout
      description: Confirm and release a previously created payout for settlement.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                external_uid: { type: string }
                payout_uid: { type: string }
      responses:
        '200':
          description: Payout committed
  /ws/payout/cancel:
    post:
      summary: Cancel Payout
      operationId: cancelPayout
      description: Cancel a payout that has not yet been committed or settled.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                external_uid: { type: string }
                payout_uid: { type: string }
      responses:
        '200':
          description: Payout cancelled
  /ws/payout/retrieve:
    post:
      summary: Retrieve Payout
      operationId: retrievePayout
      description: Retrieve the current status and settlement details of a payout.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                external_uid: { type: string }
                payout_uid: { type: string }
      responses:
        '200':
          description: Payout details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
  /ws/payout/search:
    post:
      summary: Search Payouts
      operationId: searchPayouts
      description: Search payouts by date range, status, or payee.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                start_date: { type: string, format: date }
                end_date: { type: string, format: date }
                status: { type: string }
      responses:
        '200':
          description: Payout list
  /ws/payout/simulate:
    post:
      summary: Simulate Payout
      operationId: simulatePayout
      description: Calculate the fees, FX rate, and final payee amount that would apply to a hypothetical payout.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutRequest'
      responses:
        '200':
          description: Simulation result
  /ws/payout/attach:
    post:
      summary: Attach Invoice To Payout
      operationId: attachPayoutInvoice
      description: Attach a tax invoice or supporting document to a payout.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                external_uid: { type: string }
                file: { type: string, format: binary }
      responses:
        '200':
          description: Invoice attached
  /ws/payout/balance:
    post:
      summary: Get Payout Balance
      operationId: getPayoutBalance
      description: Return the current funded balance available for payouts in each supported currency.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
      responses:
        '200':
          description: Balance
          content:
            application/json:
              schema:
                type: object
                properties:
                  status: { type: string }
                  balance:
                    type: array
                    items:
                      type: object
                      properties:
                        currency_code: { type: string }
                        country: { type: string }
                        amount: { type: number, format: float }
  /ws/payout/banks:
    post:
      summary: List Payout Banks
      operationId: listPayoutBanks
      description: List banks supported as payout destinations for a given country.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                country: { type: string }
      responses:
        '200':
          description: Bank list
  /ws/payout/bankDetails:
    post:
      summary: Get Payout Bank Details
      operationId: getPayoutBankDetails
      description: Return the field requirements for a destination bank in a given country.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                country: { type: string }
                bank_code: { type: string }
      responses:
        '200':
          description: Bank requirements
  /ws/payout/verify_account:
    post:
      summary: Verify Payee Bank Account
      operationId: verifyPayeeBankAccount
      description: Verify that a payee bank account exists and that the account holder name matches before sending funds.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_key: { type: string }
                country: { type: string }
                bank_code: { type: string }
                agency: { type: string }
                account: { type: string }
                account_digit: { type: string }
                document: { type: string }
      responses:
        '200':
          description: Verification result
  /ws/payee/create:
    post:
      summary: Create Payee
      operationId: createPayee
      description: Register a reusable payee (beneficiary) record for repeat payouts.
      tags: [Payouts]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayeeRequest'
      responses:
        '200':
          description: Payee created
components:
  securitySchemes:
    integrationKey:
      type: apiKey
      in: header
      name: x-ebanx-integration-key
  schemas:
    PayoutRequest:
      type: object
      required: [integration_key, external_uid, payee]
      properties:
        integration_key: { type: string }
        external_uid: { type: string, description: 'Merchant-provided unique identifier for the payout.' }
        target: { type: string, enum: [bank_account, e_wallet] }
        target_account: { type: string }
        currency_target: { type: string }
        amount_target: { type: number, format: float }
        currency_source: { type: string }
        amount_source: { type: number, format: float }
        payee:
          $ref: '#/components/schemas/Payee'
    Payee:
      type: object
      properties:
        name: { type: string }
        email: { type: string, format: email }
        document: { type: string }
        document_type: { type: string, description: 'Local tax id type (CPF, CNPJ, RFC, NIT, etc.).' }
        country: { type: string }
        bank:
          type: object
          properties:
            code: { type: string }
            agency: { type: string }
            account: { type: string }
            account_digit: { type: string }
            account_type: { type: string }
    PayeeRequest:
      type: object
      required: [integration_key, payee]
      properties:
        integration_key: { type: string }
        payee:
          $ref: '#/components/schemas/Payee'
    PayoutResponse:
      type: object
      properties:
        status: { type: string }
        payout:
          type: object
          properties:
            payout_uid: { type: string }
            external_uid: { type: string }
            status: { type: string }
            amount_target: { type: number }
            currency_target: { type: string }
            amount_source: { type: number }
            currency_source: { type: string }
            fx_rate: { type: number }
            fee: { type: number }
            created_at: { type: string, format: date-time }
            estimated_settlement: { type: string, format: date-time }