---
title: "Create a payout"
method: POST
path: "/api/service/payout/create"
tags: ["Payout"]
---

# Create a payout

`POST /api/service/payout/create`

Create a payout for a merchant.

## Headers

- `Idempotency-Key` string

## Request body

- CreatePayoutDto
  - `amount` number, required — The payout amount in decimal format. The minimum amount is 0.01.
  - `currency` 'EUR' | 'GBP' | 'USDC' | 'USD', required
  - `destination` object, required
    - `type` 'beneficiary' | 'customer' — Beneficiary is a payout to an account owned by the merchant. Customer is a payout to an external customer account.
    - `orderId` string
    - `financialAddress` object, nullable
      - `type` 'iban' | 'sort_code' | 'bank_code' | 'bban' | 'wallet' | 'aba', required
      - `iban` object
        - `accountHolderName` string, required
        - `iban` string, required
        - `bic` string
      - `aba` object
        - `accountHolderName` string, required
        - `routingNumber` string, required
        - `accountNumber` string, required
      - `sortCode` object
        - `accountHolderName` string, required
        - `sortCode` string, required
        - `accountNumber` string, required
      - `bankCode` object
        - `accountHolderName` string, required
        - `code` string, required
        - `accountNumber` string, required
      - `bban` object
        - `accountHolderName` string, required
        - `bban` string, required
        - `bic` string
      - `wallet` object
        - `address` string, required — The blockchain wallet address
        - `blockchain` 'ETH' | 'ETH-SEPOLIA' | 'SOL' | 'SOL-DEVNET' | 'MATIC' | 'MATIC-AMOY', required — The blockchain network
  - `rail` union — The payment rail or blockchain used for the payout
    - 'SEPA_INSTANT' | 'FASTER_PAYMENTS' | 'SEPA' | 'ELIXIR' | 'EXPRESS_ELIXIR' | 'SEK_ACCOUNT_TO_ACCOUNT' | 'SUMCLEARING' | 'STRAKSCLEARING' | 'SWIFT' | 'INTERNAL' | 'TARGET' | 'ACH' | 'FEDWIRE'
    - 'ETH' | 'ETH-SEPOLIA' | 'SOL' | 'SOL-DEVNET' | 'MATIC' | 'MATIC-AMOY'
  - `metadata` object — This can be used to store any additional information you need to associate with this payout.
  - `paymentReference` string — The payout payment reference. This is visible to the receiving party, if possible.

## Response `200`

Create a payout

- CreatePayoutResponseDto
  - `id` string, required — The payout ID
  - `type` 'beneficiary' | 'customer', required — The payout type
  - `destination` object, required — The payout destination
    - `type` 'iban' | 'sort_code' | 'bank_code' | 'bban' | 'wallet' | 'aba', required
    - `iban` object
      - `accountHolderName` string, required
      - `iban` string, required
      - `bic` string
    - `aba` object
      - `accountHolderName` string, required
      - `routingNumber` string, required
      - `accountNumber` string, required
    - `sortCode` object
      - `accountHolderName` string, required
      - `sortCode` string, required
      - `accountNumber` string, required
    - `bankCode` object
      - `accountHolderName` string, required
      - `code` string, required
      - `accountNumber` string, required
    - `bban` object
      - `accountHolderName` string, required
      - `bban` string, required
      - `bic` string
    - `wallet` object
      - `address` string, required — The blockchain wallet address
      - `blockchain` 'ETH' | 'ETH-SEPOLIA' | 'SOL' | 'SOL-DEVNET' | 'MATIC' | 'MATIC-AMOY', required — The blockchain network
  - `status` 'paid' | 'pending' | 'in_transit' | 'failed' | 'canceled', required — The payout status
  - `amount` number, required — The payout amount
  - `currency` 'EUR' | 'GBP' | 'USDC' | 'USD', required — The payout currency
  - `metadata` object — The payout metadata
  - `createdAt` unknown, required
  - `updatedAt` unknown, required
  - `paymentReference` string — The payout payment reference
  - `transactionId` string — The payout transaction ID
  - `failure` object — Failure details. Only available if the payout failed.
    - `code` 'account_closed' | 'account_blocked' | 'insufficient_funds' | 'invalid_account_format' | 'invalid_instruction' | 'invalid_amount' | 'invalid_time' | 'duplicate_transaction' | 'payee_verification_failed' | 'system_error' | 'provider_system_error' | 'rejected_by_correspondent_bank' | 'blocked_by_review' | 'unknown', required — Failure code. Please refer to the documentation for the list of possible values.
    - `message` string, required — Human readable description of the failure.
    - `retry` boolean, required — If true, you can safely retry.

## Changes

- **2026-05-28** `985fef88525b` — 2 info
  - added the new `ACH` enum value to the request property `rail/oneOf[subschema #1]/`
  - added the new `FEDWIRE` enum value to the request property `rail/oneOf[subschema #1]/`
- **2026-05-13** `b6b8b9e7e56e` — 1 warning, 1 info
  - added the new `USD` enum value to the `currency` response property for the response status `200`
  - added the new `USD` enum value to the request property `currency`
- **2026-05-06** `f133fdf6c9bd` — 2 info
  - added the new optional request property `destination/financialAddress/aba`
  - added the optional property `destination/aba` to the response with the `200` status
- **2026-04-29** `84194dfc43b4` — 1 warning, 1 info
  - added the new `aba` enum value to the `destination/type` response property for the response status `200`
  - added the new `aba` enum value to the request property `destination/financialAddress/type`
- **2026-03-06** `d617edaf95c0` — 1 info
  - added the new optional `header` request parameter `Idempotency-Key`

[Full history](https://skmtc.dev/augustus/apis/ivy-api/changes/api/service/payout/create/post.md)

---

[API](https://skmtc.dev/augustus/apis/ivy-api.md) · [All operations](https://skmtc.dev/augustus/apis/ivy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/augustus/ivy-api/revisions/985fef88525b/schema)
