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:

  • 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.
  • Balance required. The paypoint must have enough available payout balance to cover the transaction. Instant payouts that exceed the available balance are rejected with an Insufficient Funds error.
  • Same statuses, faster transitions. Instant payouts use the same status flow as ACH (authorizedcapturedfundedpaid), but transitions happen in rapid succession after capture.

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
1curl -X POST https://api-sandbox.payabli.com/api/MoneyOut/authorize \
2 -H "requestToken: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "entryPoint": "48acde49",
6 "paymentMethod": {
7 "method": "wire",
8 "achHolder": "Jane Smith",
9 "achRouting": "011401533",
10 "achAccount": "987654321",
11 "achAccountType": "checking"
12 },
13 "paymentDetails": {
14 "totalAmount": 2500
15 },
16 "vendorData": {
17 "vendorNumber": "7895433"
18 },
19 "invoiceData": [
20 {
21 "billId": 54323
22 }
23 ],
24 "orderDescription": "Contractor Payment"
25}'

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

Response
1{
2 "responseCode": 1,
3 "pageIdentifier": null,
4 "roomId": 0,
5 "isSuccess": true,
6 "responseText": "Success",
7 "responseData": {
8 "authCode": null,
9 "referenceId": "129-219",
10 "resultCode": 1,
11 "resultText": "Authorized",
12 "avsResponseText": null,
13 "cvvResponseText": null,
14 "customerId": 456,
15 "vendorId": 456,
16 "methodReferenceId": null
17 }
18}

Capture the payout

Capture works the same as any other payout. Send a POST 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.

Balance requirements

Instant payouts require the paypoint to have enough available payout balance. Payabli validates the balance at authorize time for wire and RTP only. ACH and other rails bypass this check.

To add funds to a paypoint’s available balance, use the Deposit funds endpoint. Deposited funds enter a pending state and aren’t available for instant payouts until confirmed through FBO reconciliation.

Error handling

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

Error messageCauseResolution
Payout 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.
Transaction 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.

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.