Authorize and capture payout

View as MarkdownOpen in Claude
Authorizes a payout and captures it in the same request, returning the capture result. Use this endpoint when you need the capture outcome synchronously: it does the same work as calling `POST /MoneyOut/authorize` followed by `GET /MoneyOut/capture/{referenceId}`, in a single call. Risk and fraud review runs at both the authorize and capture stages, exactly as it does for the two-call flow. Payabli ignores the `autoCapture` field in the request body, since this endpoint always captures inline. If the capture fails, the payout stays authorized. Retry the capture with `GET /MoneyOut/capture/{referenceId}` using the `referenceId` from the error response rather than resubmitting, which would create a second payout. See the [Manage payouts guide](/guides/pay-out-developer-payouts-manage#authorize-and-capture-in-one-call) for details.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

OR
requestTokenstring

Long-lived API token sent in the requestToken header. See API token authentication.

Headers

idempotencyKeystringOptional

Optional but recommended A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn’t generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed.

Query parameters

sameDayACHbooleanOptionalDefaults to false
When `true`, Payabli authorizes the payout for same-day ACH processing instead of standard ACH. Same-day ACH must be enabled for the paypoint, otherwise the authorization fails with a `400` response and `responseCode` `3492`. Only ACH payouts honor this flag. Wire and RTP payouts ignore it. Because this endpoint captures immediately, pass `autoConvertSameDayAch` with a value of `true` to fall back to standard ACH if the capture runs after the same-day ACH cutoff.
doNotCreateBillsbooleanOptionalDefaults to false

When true, Payabli won’t automatically create a bill for this payout transaction.

allowDuplicatedBillsbooleanOptionalDefaults to false

When true, the payout bypasses the requirement for unique bills, identified by vendor invoice number. This allows you to make more than one payout for a bill, like a split payment.

updateVendorPaymentMethodbooleanOptionalDefaults to false

When true, Payabli updates the vendor’s stored default payment method to the method used in this payout.

autoConvertSameDayAchbooleanOptionalDefaults to false
Controls what happens to a payout authorized with `sameDayACH` set to `true` when the capture runs after the same-day ACH cutoff. When `true`, Payabli converts the payout to a standard ACH payment and captures it. When `false`, the capture is declined. This parameter has no effect on payouts that weren't authorized for same-day ACH.

Request

This endpoint expects an object.
entryPointstringRequired<=50 characters
The entrypoint identifier.
paymentMethodobjectRequired

Payment method object for vendor payouts.

  • { method: "managed" } - Managed payment method
  • { method: "vcard" } - Virtual card payment method
  • { method: "check" } - Check payment method
  • { method: "ach", achHolder: "...", achRouting: "...", achAccount: "...", achAccountType: "..." } - ACH payment method with bank details
  • { method: "ach", storedMethodId: "..." } - ACH payment method using stored method ID
  • { method: "wire", achHolder: "...", achRouting: "...", achAccount: "...", achAccountType: "..." } - Wire transfer payment method (US only, irrevocable)
  • { method: "rtp", achHolder: "...", achRouting: "...", achAccount: "...", achAccountType: "..." } - Real-Time Payments method (US only, irrevocable)
paymentDetailsobjectRequired
Object containing payment details.
vendorDataobjectRequired
Object containing vendor data.
sourcestringOptional<=100 characters
Custom identifier to indicate the transaction or request source.
orderIdstringOptional<=250 characters
Custom identifier for the transaction.
orderDescriptionstringOptional<=250 characters
Text description of the transaction.
invoiceDatalist of objectsOptional

Bills to pay with this payout, each referenced by billId.

accountIdstringOptional
Custom identifier for payment connector.
subdomainstringOptional<=50 characters
Refers to the payment page identifier. If provided, then the transaction is linked to the payment page.
subscriptionIdlongOptional
Payabli identifier of the subscription associated with the transaction.
autoCapturebooleanOptional

When true, Payabli captures the transaction asynchronously after a successful authorization. The authorization request returns once the transaction is authorized; capture happens later, and the response doesn’t confirm capture. To confirm capture succeeded, listen for the payout_transaction_approvedcaptured webhook event.

When false, you must manually capture the transaction after a successful authorization. Defaults to false.

See Manage payouts with the API for more information.

Response

Success
responseCodeinteger

Code for the response. Learn more in API Response Codes.

pageIdentifierstring or null
Auxiliary validation used internally by payment pages and components.
roomIdlong

Field not in use on this endpoint. It always returns 0.

isSuccessboolean

Boolean indicating whether the operation was successful. A true value indicates success. A false value indicates failure.

responseTextstring

Response text for operation: ‘Success’ or ‘Declined’.

responseDataobject

Errors

400
Bad Request Error
401
Unauthorized Error
409
Conflict Error
422
Unprocessable Entity Error
500
Internal Server Error
503
Service Unavailable Error