Submit Payment

Sends one payment to its payee. The request is accepted and the payment is sent in the background.

Requires the Payment Approval permission. If your role has an approval limit, the payment amount must be within it.

When you can submit. The payment must be DRAFT, FAILED or RETURNED and not already being sent or cancelled
(isAutoSubmittable is true). The payee must be payable (isSubmittable is true), unless you send autoSubmit: true; then
a payment whose payee cannot be paid yet waits in WAITING_PAYABILITY and is sent when the payee finishes onboarding.

What happens. Payment Labs checks that your ledger account balance covers the payment amount and returns 202. The payment
shows SUBMITTED, then PROCESSING when it reaches the payout provider, then COMPLETED. It can also end in FAILED,
RETURNED, WAITING_COMPLIANCE or WAITING_PAYMENT_METHOD; see the PaymentStatus schema. Follow the progress with the
payment-status-changed webhook (/reference/payment-status-changed) or with Get Payment.

The balance check does not include fees. If the balance cannot cover the payment and its fees when it is sent, the payment
stays SUBMITTED until your account is funded.

Fees. Use Submit Payment Dry Run first to see the fees, the exchange rate and what the payee receives. feeCap sets how
much of the transaction fee you pay.

Retries. A payment can be sent only once at a time. Repeating the request while it is being sent returns 409, so retrying
after a timeout is safe. Read the payment to see whether the first request went through.

Errors

  • 403 FORBIDDEN_CONDITION_NOT_MET: the payment amount is above your role's approval limit.
  • 403 FORBIDDEN_MISSING_GROUP: your account is blocked from sending payments. Contact support.
  • 404 NOT_FOUND: the batch or the payment does not exist.
  • 409 (no code): the payment is not in a status that can be sent, is already being sent or cancelled, or its payee is not payable and autoSubmit is not true.
  • 409 CUSTOMER_FROZEN: payouts from your account are frozen. Contact support.
  • 423 INSUFFICIENT_BALANCE: the ledger account balance is lower than the payment amount. Fund the account and retry.
  • 423 NOT_EDITABLE: the batch is archived.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

ID of the batch, as returned by Create Batch.

string
required

ID of the payment, as returned by Create Payment.

Body Params

Options that control how a payment is sent. The same options apply to every submit operation.

string

The most you pay in transaction fees for each payment, as a decimal string in the payment's currency ("2.50"). Fees above the
cap are deducted from what the payee receives. Omit it to use the fee cap configured for the payout method or for your account.

string
enum

Who covers the difference when a RETURNED payment is sent again and the amount that came back is lower than the original
amount (because of exchange rates or return fees). payor: the payee receives the original amount again and you fund the
difference. payee: the amount that came back is sent. Ignored for payments that were never returned. Omit it to use your
account's setting for the payment category.

Allowed:
boolean
Defaults to false

Send the payment as soon as the payee can be paid. With true, a payment whose payee cannot be paid yet moves to
WAITING_PAYABILITY and is sent automatically, with these same options, when the payee finishes onboarding. With false,
such a payment is refused (or skipped, on batch submit).

Responses
202

The payment was accepted for sending. It is sent in the background; follow its status with webhooks or Get Payment.

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json