---
title: "Create a payout transaction"
method: POST
path: "/payments/transactions/payout"
tags: ["Transactions"]
---

# Create a payout transaction

`POST /payments/transactions/payout`

## Request

- Base URL: `https://api-sb.meld.io`
- URL: `https://api-sb.meld.io/payments/transactions/payout`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/meld/apis/bank-linking/docs/payments/transactions/payout/post.ts> (a function with typed inputs; its response is checked against the schema)

Use this endpoint to create a payout transaction. You can find sample code in our public Postman collection, or build it in the adjacent API explorer. The link to our postman collection is: [https://www.postman.com/meldeng/workspace/meld-io-public-api-collection](https://www.postman.com/meldeng/workspace/meld-io-public-api-collection)

**IDEMPOTENT REQUESTS**: Please refer to [Idempotency Key](https://docs.meld.io/docs/idempotency-key)

**ERRORS**: Please refer to [Error Responses](https://docs.meld.io/docs/fiat-error-responses)

## Headers

- `X-Idempotency-Key` string, uuid

## Request body

- PayoutTransactionRequest
  - `customerId` string: Meld's internal Id for the Customer
  - `description` string: A description about the transaction
  - `externalCustomerId` string: Your (optional) Id for this customer, for example an id or reference from your database which you may supply during customer creation
  - `paymentMethod` PaymentMethodInput: PaymentMethod objects represent your customer's payment instruments
    - `details` union, required: [Details of the payment method used for this transaction](https://docs.meld.io/docs/payment-methods-and-tokenization)
      - object: Credit card details
        - `cvc` string, required: Card CVC
        - `expiration` CardExpiration
          - `month` integer: Integer value for the expiration month
          - `year` integer: Integer value for the expiration year
        - `name` string: The cardholder's name
        - `number` string, required: Card number
      - object: ACH details
        - `accountNumber` string, required: Account number
        - `accountType` 'BUSINESS_CHECKING' | 'CHECKING' | 'SAVINGS', required: Bank account type
        - `name` Name
          - `firstName` string, required
          - `lastName` string, required
        - `routingNumber` string, required: Routing number
      - object: Meld payment token details
        - `meldPaymentToken` string, required: Meld Payment Token
    - `type` 'ACH' | 'CARD' | 'MELD_PAYMENT_TOKEN' | 'PLAID_TRANSFER_AUTHORIZATION', required: Payment method type used for this transaction, some methods may only apply for some providers, e.g. PLAID_TRANSFER_AUTHORIZATION for PLAID
  - `serviceProvider` 'ACROSS' | 'AEROPAY' | 'AKOYA' | 'ALCHEMYPAY' | 'APPLEPAY' | 'AUTHORIZENET' | 'BANXA' | 'BILIRA' | 'BINANCECONNECT' | 'BINANCEPAY' | 'BLOCKCHAINDOTCOM' | 'BOOMFI' | 'BRAINTREE' | 'BRALE' | 'BTCDIRECT' | 'CASHAPP' | 'CHECKOUT' | 'CIRCLE' | 'COINBASEPAY' | 'COINFLOW' | 'DUENETWORK' | 'ELDORADO' | 'FINICITY' | 'FLASHNET' | 'FONBNK' | 'GUARDARIAN' | 'HARBOUR' | 'KOYWE' | 'KRYPTONIM' | 'MERCURYO' | 'MESH' | 'MESO' | 'MOONPAY' | 'MOOV' | 'MX' | 'NMI' | 'NOAH' | 'ONMETA' | 'ONRAMPMONEY' | 'PAYBIS' | 'PAYPAL' | 'PLAID' | 'RAMP' | 'REVOLUT' | 'ROBINHOOD' | 'ROUTERPROTOCOL' | 'SALTEDGE' | 'SALTEDGEPARTNERS' | 'SARDINE' | 'SHIFT4' | 'SHOPIFY' | 'SIMPLEX' | 'SKRILLCRYPTO' | 'SQUARE' | 'STRIPE' | 'SUMSUB' | 'SWAPPED' | 'TANGOCARD' | 'TELLER' | 'TOPPER' | 'TRANSAK' | 'TREMENDOUS' | 'TRANSFI' | 'UNLIMIT' | 'WYRE' | 'XANPOOL' | 'YELLOWCARD' | 'YODLEE': The service provider used for this transaction.
  - `serviceProviderDetails` object: Provider specific details which may can be provided for this transaction, if supported by the Service Provider.
  - `sourceAmount` string, required: Amount intended to be sent by this payout
  - `sourceCurrencyCode` string, required: Three-letter ISO currency code, in lowercase. Must be a supported currency

## Response `201`

Payout transaction created successfully

- PaymentTransactionResponse20230401
  - `transaction` PaymentTransactionOutput20230401
    - `accountId` string: Your account Id
    - `countryCode` string: The ISO 3166 2-digit country code.
    - `createdAt` string, date-time, required: An ISO 8601 DateTime at which the object was created.
    - `cryptoDetails` CryptoDetails
      - `blockchainTransactionId` string: The transaction id on the blockchain
      - `chainId` string: A unique identifier that represents a blockchain network. The chainId of a particular network is standard everywhere.
      - `institution` string: The institution used to execute the transaction. Only applicable for transfers currently.
      - `networkFee` number: This fee is paid to cryptocurrency miners, which are the systems that process the transactions
      - `networkFeeInUsd` number: This network fee in USD
      - `offrampDestinationWalletAddress` string: The offramp destination wallet address
      - `partnerFee` number: The partner fee amount
      - `partnerFeeInUsd` number: The partner fee in USD
      - `swapFee` number: The swap fee amount charged by the swap provider for ramp+swap transactions
      - `swapFeeInUsd` number: The swap fee in USD
      - `totalFee` number: The total amount of fees that will be charged
      - `totalFeeInUsd` number: The total fee in USD
      - `transactionFee` number: The fee amount charged by the service provider to process your customer's purchase
      - `transactionFeeInUsd` number: The transaction fee in USD
      - `walletAddress` string: Your customer's crypto wallet
    - `customer` CustomerOutput
      - `accountId` string: Your Account Id
      - `addresses` CustomerAddressOutput[]: Your Customer's addresses, such as billing, shipping, etc.
        - `addressDetails` CustomerAddressDetails
          - `addressDetailsFields` object
          - `city` string: City, district, suburb, town, or village
          - `country` string: Two-letter country code (ISO 3166-1 alpha-2)
          - `firstName` string: The first name on the address
          - `lastName` string: The last name on the address
          - `lineOne` string: Address line 1 (e.g., street, PO Box, or company name)
          - `lineTwo` string: Address line 2 (e.g., apartment, suite, unit, or building)
          - `postalCode` string: ZIP or postal code
          - `region` string: State, county, province, or region
        - `type` 'BILLING' | 'SHIPPING' | 'RESIDENCE': Address type such as BILLING, SHIPPING, RESIDENCE, etc.
      - `email` string: Your Customer's email address
      - `externalId` string: Your optionally supplied Id for your Customer, e.g. a Customer Id in your system
      - `id` string: Meld's internal Id for the Customer
      - `name` CustomerName
        - `firstName` string: Your customer's first name
        - `lastName` string: Your customer's last name
      - `phone` string: Your Customer's phone number
      - `serviceProviders` object: A map of Service Providers and service provider IDs for this Customer
      - `status` string: ACTIVE or INACTIVE, may not be set
    - `description` string: An arbitrary string which you can attach to this transaction. It is displayed when in the web interface alongside the charge.
    - `destinationAmount` number: The destination amount of the transaction, e.g. the amount of crypto currency purchased
    - `destinationCurrencyCode` string: Three-letter ISO currency code. Must be a supported currency
    - `externalCustomerId` string: Your unique identifier for your customer. If maintaining your own customer management system this can also be used for tracking customer activity.
    - `externalReferenceId` string: Your optional reference id provided during transaction creation
    - `externalSessionId` string: The external Id of the session.
    - `externalSubaccountCustomerId` string: Optional external identifier for the sub-account customer this transaction belongs to. Used for tracking when multiple businesses operate under one Meld account. A sub-account customer must be created first before it can be referenced.
    - `fiatAmountInUsd` number: The fiat amount of the transaction in usd
    - `id` string, required: Unique identifier for this transaction
    - `isImported` boolean: Return ***True*** if this transaction was initiated outside Meld
    - `isPassthrough` boolean: Return ***True*** if the passthrough credentials were used
    - `key` string: Pagination key, may be used with the "after" parameter in search requests. Only set and relevant for paginated calls
    - `multiFactorAuthorizationStatus` MultiFactorAuthorizationStatusOutput[]: The transaction required multi-factor authentication methods, and their current status. When required, must be approved for the purchase tobe completed successfully.
      - `method` 'SMS' | 'CARD' | 'EMAIL' | 'THREE_DS': How the card details were authorized
      - `submitted` boolean: Return ***True*** if the information was submitted
      - `successful` boolean: Return ***True*** if the submitted information is a match
      - `url` string: URL used to perform authorization (if applicable)
    - `orderId` string: Unique identifier for the order associated with this transaction, when applicable
    - `parentPaymentTransactionId` string: The Id of the associated object for this line item
    - `passthroughReference` string: The unique reference you use to identify the partner on whose behalf you created this transaction. This might be a String or UUID in your system to identify a merchant or partner. This is needed so that you can associate passthrough transactions to your partners who may not be registered with Meld
    - `paymentDetails` PaymentDetails
      - `authAmount` number: The amount authorized to be charged (must be greater than the amount intended to be collected.) Note that the number of digits with a decimal point varies with the currency. Reference the list of active codes of official ISO 4217 currency names.
      - `captureAmount` number: The amount captured (can be less than the amount intended to be collected.) Note that the number of digits with a decimal point varies with the currency. Reference the list of active codes of official ISO 4217 currency names.
    - `paymentMethodType` string: Payment Method type used for this transaction.
    - `serviceProvider` string, required: The service provider used for this transaction
    - `serviceProviderCreatedAt` string, date-time: The ISO 8601 DateTime when the transaction was created on the service provider's side
    - `serviceProviderDetails` object: The service provider's details
    - `serviceProviderTransactionUrl` string: A link to the resource on the Service Provider, may not be present
    - `serviceTransactionId` string: The service provider's unique identifier for this transaction
    - `sessionClientTags` object: A map of client tags
    - `sessionId` string, required: The Id of the session.
    - `sourceAmount` number: The amount of the transaction
    - `sourceCurrencyCode` string: Three-letter ISO currency code. Must be a supported currency
    - `status` string, required: The current status of the transaction
    - `subaccountCustomerId` string: Optional Meld customer id used to track the business sub-account this transaction belongs to when multiple businesses operate under one Meld account.
    - `transactionType` string, required: The transaction's type
    - `updatedAt` string, date-time, required: Time at which the object was last updated. Measured in seconds since the Unix epoch.

## Other responses

- `400`: Bad Request : check request values and format
- `401`: Invalid credentials
- `403`: Unauthenticated or authenticated with insufficient access
- `425`: It is too early for a retry
- `500`: Internal Error

---

[API](https://skmtc.dev/meld/apis/bank-linking.md) - [All operations](https://skmtc.dev/meld/apis/bank-linking/llms.txt) - [OpenAPI document](https://skmtc.dev/meld/apis/bank-linking/revisions/818d6079a611?raw)
