---
title: "Submit Payout"
method: POST
path: "/v3/payouts"
tags: ["Payouts"]
---

# Submit Payout

`POST /v3/payouts`

Create a new payout and return a location header with a link to the payout

Basic validation of the payout is performed before returning but more comprehensive validation is done asynchronously

The results can be obtained by issuing a HTTP GET to the URL returned in the location header

\*\*NOTE:\*\* amount values in payments must be in 'minor units' format. E.g. cents for USD, pence for GBP etc with no decimal places

## Request body

- CreatePayoutRequestV3
  - `payoutFromPayorId` string, uuid — <p>The id of the payor whose source account(s) will be debited</p> <p>payoutFromPayorId and payoutToPayorId must be both supplied or both omitted</p>
  - `payoutToPayorId` string, uuid — <p>The id of the payor whose payees will be paid</p> <p>payoutFromPayorId and payoutToPayorId must be both supplied or both omitted</p>
  - `payoutMemo` string — <p>Text applied to all payment memos unless specified explicitly on a payment</p> <p>This should be the reference field on the statement seen by the payee (but not via ACH)</p>
  - `payments` PaymentInstructionV3[], required
    - `remoteId` string, required — Your identifier for the payee
    - `currency` string, required — Valid ISO 4217 3 letter currency code. See the <a href="https://www.iso.org/iso-4217-currency-codes.html" target="_blank" a>ISO specification</a> for details.
    - `amount` integer, required — <p>Amount to send to Payee</p> <p>The maximum payment amount is dependent on the currency</p>
    - `paymentMemo` string — <p>Any value here will override the memo value in the parent payout</p> <p>This should be the reference field on the statement seen by the payee (but not via ACH)</p>
    - `sourceAccountName` string — Must match a valid source account name belonging to the payor. Exactly one of sourceAccountName or transactionId is required.
    - `transactionId` string, uuid — Must match a valid transaction id previously created by the payor. Exactly one of sourceAccountName or transactionId is required.
    - `payorPaymentId` string — A reference identifier for the payor for the given payee payment
    - `transmissionType` string — <p>Optionally choose a specific transmission method for the payment.</p> <p>Valid values for transmissionType can be found attached to the Source Account</p>
    - `remoteSystemId` string — <p>The identifier for the remote payments system if not Velo</p> <p>Should only be used after consultation with Velo Payments</p>
    - `paymentMetadata` string — <p>Metadata about the payment that may be relevant to the specific rails or remote system making the payout</p> <p>The structure of the data will be dictated by the requirements of the payment rails</p>

## Response `202`

Successful submission of the payout

## Other responses

- `400` — Invalid request. See Error message payload for details of failure
- `401` — Invalid access token. May be expired or invalid
- `403` — The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions

---

[API](https://skmtc.net/velopaymentsapi/apis/velo-payments-apis.md) · [All operations](https://skmtc.net/velopaymentsapi/apis/velo-payments-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/velopaymentsapi/velo-payments-apis/revisions/05c3f09fc50a/schema)
