Send instant payouts

Use wire transfer and Real-Time Payments (RTP) rails to send irrevocable, same-day payouts to US vendors

View as MarkdownOpen in Claude
Applies to:Developers

Payabli supports wire transfer and Real-Time Payments (RTP) as instant payout rails for fast vendor disbursements. Both use the same authorize-and-capture flow as ACH and check payouts, with a different method value in the request.

Considerations

Keep these considerations in mind when working with instant payouts:

  • Prefunding required. The paypoint must be prefunded before you authorize, or the payout is rejected. See Prefund the paypoint.
  • Irrevocable. Wire and RTP payouts can’t be cancelled or reissued after capture. Unlike ACH, there’s no window to reverse the transaction.
  • US domestic only. Instant payouts are available for US vendors only. Canadian vendors aren’t supported for wire or RTP.
  • Same statuses, faster transitions. Instant payouts use the same status flow as ACH (authorizedcapturedfundedpaid), but transitions happen in rapid succession after capture.

Prefund the paypoint

Prefunding is a prerequisite for instant payouts. Before you authorize a wire or RTP payout, the paypoint must have enough available payout balance to cover it. Payabli checks the balance at authorize time for wire and RTP only, so an unfunded paypoint can’t send an instant payout. ACH and other rails skip this check.

A wire or RTP payout is rejected at authorize time if the paypoint doesn’t have enough available payout balance. The request returns HTTP 400, error code 3729, and the message Transaction amount exceeds available payout balance. Fund the paypoint before you authorize. See Error handling for the separate 3730 response returned when a paypoint has no balance data on record.

To fund a paypoint, use the Deposit funds endpoint. Deposited funds enter a pending state and aren’t available for instant payouts until they’re confirmed through FBO reconciliation. Deposit ahead of the payout rather than at authorize time.

POST
/api/Funding/depositFunds
curl -X POST https://api-sandbox.payabli.com/api/Funding/depositFunds \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"amount": 1500,
"entrypoint": "48acde49",
"accountId": "333"
}'

Wire vs RTP

Both rails are much faster than ACH, but they differ in timing and availability.

Wire transferRTP
Method value"wire""rtp"
SpeedSame-day (during business hours)Near-real-time (seconds)
AvailabilityBusiness days onlyAny time, every day, all year
CancellableNoNo
Able to reissueNoNo
Required fieldsachHolder, achRouting, achAccount, achAccountTypeachHolder, achRouting, achAccount, achAccountType

Authorize an instant payout

Send a POST request to /api/MoneyOut/authorize with method set to "wire" or "rtp" in the paymentMethod object. See the API reference for full documentation.

The required bank detail fields are the same as ACH: achHolder, achRouting, achAccount, and achAccountType.

POST
/api/MoneyOut/authorize
curl -X POST https://api-sandbox.payabli.com/api/MoneyOut/authorize \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"entryPoint": "48acde49",
"paymentMethod": {
"method": "wire",
"achHolder": "Jane Smith",
"achRouting": "011401533",
"achAccount": "987654321",
"achAccountType": "checking"
},
"paymentDetails": {
"totalAmount": 2500
},
"vendorData": {
"vendorNumber": "7895433"
},
"orderDescription": "Contractor Payment",
"invoiceData": [
{
"billId": 54323
}
]
}'

A successful request returns a JSON response with a referenceId you’ll use to capture the transaction.

Response
{
"responseCode": 1,
"pageIdentifier": null,
"roomId": 0,
"isSuccess": true,
"responseText": "Success",
"responseData": {
"authCode": null,
"referenceId": "129-219",
"resultCode": 1,
"resultText": "Authorized",
"avsResponseText": null,
"cvvResponseText": null,
"customerId": 456,
"vendorId": 456,
"methodReferenceId": null
}
}

Capture the payout

Capture works the same as any other payout. Send a GET request to /api/MoneyOut/capture/{referenceId} with the referenceId from the authorization response.

Capturing a wire or RTP payout is irreversible. Unlike ACH payouts, you can’t cancel after capture. Make sure the amount, vendor, and bank details are correct before capturing.

Payout lifecycle

Instant payouts follow the same status progression as ACH, but with key behavioral differences:

StatusACH behaviorWire/RTP behavior
authorizedPayout created, awaiting captureSame
capturedAdded to next batch for processingTriggers immediate funding
fundedFunded when batch processesFunded immediately after capture
paidSet after bank confirmationSet when batch closes, unless a failure signal is received

Batching

Wire and RTP payouts are still grouped into batches, but batching is a grouping mechanism only. It doesn’t delay settlement. Instant payouts settle immediately regardless of when the batch closes.

Cancellation

You can cancel a wire or RTP payout while it’s in authorized status, before capture. Once captured, the payout is irrevocable. You can’t cancel or reissue it.

This is different from ACH, where there’s a short window after capture to cancel before processing begins.

Error handling

Instant payouts can return the same errors as other payout methods, plus two balance-specific errors. Both return HTTP 400 Bad Request, each with its own error code:

Error codeError messageCauseResolution
3729Transaction amount exceeds available payout balance.The requested payout amount is greater than the paypoint’s available balance.Deposit funds to increase the available balance before retrying.
3730Payout balance information is unavailable for this paypoint.The paypoint has no balance data on record, or the data can’t be read.Contact support to verify the paypoint’s balance configuration.

For standard payout errors, see Pay Out troubleshooting.

Webhooks

Wire and RTP payouts trigger the same webhook events as ACH payouts. There are no new or different events for instant rails. See TransEvents for the full list of payout events.

See these related resources to help you get the most out of Payabli.