Payouts
A payout moves funds from an account's available balance to an external bank account. This guide covers retrieving a single payout and listing payouts.
To move funds between two accounts that both hold a balance with Rootline, without touching an external bank, use Balance transfers instead.
Operations
Payouts live under the accounting service.
Endpoints
| Environment | Base URL |
|---|---|
| Staging | https://accounting-api.staging.rootline.com/v1/payouts |
| Production | https://accounting-api.rootline.com/v1/payouts |
Retrieve a payout
Returns a single payout:
List payouts
Newest first, paginated:
Walk forward by passing the previous response's next_page_token back as ?page_token=<token>. Treat the token as opaque: pass it back unchanged, do not parse it.
The payout object
A payout records a single transfer of funds out of an account's available balance to an external bank account. The bank details sit under payout_rails, which names the rail used and both ends of the transfer.
Payout
| Property | Type | Description |
|---|---|---|
id | string | Unique identifier, prefixed pyt_. |
object | string | Always payout. |
status | string | The payout's current state. See Statuses. |
account_id | string | The account the payout is made from. Its available balance is the source of funds. |
amount | money | The payout amount. |
payout_rails | object | How the payout is sent, and the sender and recipient details. See Payout rails. |
reference | string | Your reference for the payout. |
description | string | Free text description. |
created_at | string | Creation timestamp (ISO 8601, UTC). |
Payout rails
| Property | Type | Description |
|---|---|---|
payout_method | string | The rail the payout is sent over. Currently bank_transfer. |
bank_transfer | object | Present when payout_method is bank_transfer. Holds the sender and recipient. |
The bank_transfer.sender is the account funds are paid from:
| Property | Type | Description |
|---|---|---|
account_holder_name | string | Name on the sending account. |
iban | string | IBAN of the sending account. |
bic | string | BIC of the sending account. |
bank_country | string | ISO 3166 country code of the sending bank. |
The bank_transfer.recipient is the account funds are paid to:
| Property | Type | Description |
|---|---|---|
id | string | Identifier of the stored bank account, prefixed tba_. |
account_holder_name | string | Name on the receiving account. |
iban | string | IBAN of the receiving account. |
bank_country | string | ISO 3166 country code of the receiving bank. |
Statuses
A payout moves through the states below as it is prepared, sent to the bank, and settled.
| Status | Description |
|---|---|
scheduled | The payout has been scheduled for processing, and the amount has been reserved from the account's available balance. |
submitted | The payout has been included in the transfer instruction to the bank. |
confirmed | The bank has confirmed execution of the transfer. |
rejected | The bank rejected the transfer, and the reserved amount is returned to the account's available balance. |
returned | The funds were returned after the transfer was initially accepted, for example because the destination account was closed. |
Webhook events
Subscribe to these events to follow a payout without polling. Each event is named for the status it moves the payout to, so a subscriber and a caller polling GET /v1/payouts/{id} use the same word for the same state.
| Event | Sent when |
|---|---|
payout.scheduled | The payout was scheduled and the amount reserved from the account's available balance. |
payout.submitted | The payout was included in the transfer instruction to the bank. |
payout.confirmed | The bank confirmed execution of the transfer. |
Every event carries the full payout object in its payout field, in the same shape as Retrieve a payout. Delivery is at-least-once, so deduplicate on the event type together with the payout id.
Not every status has an event. The rejected and returned statuses are visible on the payout object only, so read status with Retrieve a payout rather than waiting for an event.
See Webhook events for the envelope these arrive in, and Configure webhooks to subscribe.