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

# Submit Payout

`POST /v3/payouts`

Create a new payout and return a location header with a link to get 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 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, required — Must match a valid source account name belonging to the payor
    - `payorPaymentId` string — A reference identifier for the payor for the given payee payment
    - `transmissionType` 'SAME_DAY_ACH' | 'WIRE' | 'ACH' | 'LOCAL' | 'SWIFT' — Optionally choose a specific transmission method for the payment
    - `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`

Detailed response of payout instructions

## 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

## Changes

- **2022-06-27** `1e7a1734a45c` — 4 info
  - added the new `LOCAL` enum value to the request property `file/items/transmissionType` (media type: multipart/form-data)
  - added the new `LOCAL` enum value to the request property `payments/items/transmissionType` (media type: application/json)
  - added the new `SWIFT` enum value to the request property `file/items/transmissionType` (media type: multipart/form-data)
  - added the new `SWIFT` enum value to the request property `payments/items/transmissionType` (media type: application/json)
- **2021-01-14** `5e4369698639` — 1 warning, 4 info
  - removed the request property `payorId` (media type: application/json)
  - added the new optional request property `file/items/paymentMetadata` (media type: multipart/form-data)
  - added the new optional request property `file/items/remoteSystemId` (media type: multipart/form-data)
  - added the new optional request property `payments/items/paymentMetadata` (media type: application/json)
  - …1 more
- **2020-09-25** `dd71433847a6` — 3 breaking, 18 info
  - the `errors/items/` response's property type changed from no type to `object` for status `400`
  - the `errors/items/` response's property type changed from no type to `object` for status `401`
  - the `errors/items/` response's property type changed from no type to `object` for status `403`
  - added the optional property `errors/items/errorCode` to the response with the `400` status
  - …17 more
- …earlier changes not shown

[Full history](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/changes/v3/payouts/post.md)

---

[API](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis.md) · [All operations](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/revisions/25a3d8f6e24a?raw)
