Payouts API
July 30, 2026
List FlowAlp Pay payouts and retrieve a single payout with its transactions, fees and bank reference to reconcile your settlements.
A Payout is the bank transfer that moves your collected FlowAlp Pay balance to your own account. The API is read-only: you can list payouts, fetch a single payout header, and page through the detailed transfers it contains — the individual transactions, fees and adjustments. For the merchant-facing settlement concept, start with Payouts and reconciliation.
List Payouts
https://api.pay.flowalp.com/v1.16/Payout/v1.14 · v1.15 · v1.16| Parameter | Type | Description |
|---|---|---|
| instance | string (required) | Query parameter: name of your instance (tenant). |
| limit | integer | Maximum number of rows to return. |
| offset | integer | Number of rows to skip, for pagination. |
| orderByDate | string | ASC (default) or DESC — sort order by payout date. |
curl "https://api.pay.flowalp.com/v1.16/Payout/?instance=<tenant>&orderByDate=DESC&limit=20" \
-H "x-api-key: <api-secret>"<?php
use FlowAlpPay\FlowAlpPay;
use FlowAlpPay\Models\Request\Payout;
$client = new FlowAlpPay(
getenv('FLOWALP_TENANT'),
getenv('FLOWALP_API_SECRET'),
FlowAlpPay::DEFAULT_COMMUNICATION_HANDLER,
'pay.flowalp.com',
'1.16'
);
try {
$payouts = $client->getAll(new Payout());
foreach ($payouts as $payout) {
echo $payout->getUuid() . PHP_EOL;
}
} catch (Exception $e) {
error_log('Payout list failed: ' . $e->getMessage());
}The list returns payout objects in data without the transfer breakdown (transfers stays empty). Use the details endpoint below to load the content of a payout.
Retrieve a Payout
https://api.pay.flowalp.com/v1.16/Payout/{uuid}/v1.14 · v1.15 · v1.16| Parameter | Type | Description |
|---|---|---|
| uuid | string (required) | Path parameter: UUID of the payout, for example from the list response or from a transaction's payoutUuid. |
| instance | string (required) | Query parameter: name of your instance (tenant). |
curl "https://api.pay.flowalp.com/v1.16/Payout/C6B438B9/?instance=<tenant>" \
-H "x-api-key: <api-secret>"This variant returns the payout header — totals, status, date and destination account — without resolving the contained transfers.
Retrieve a Payout with details
https://api.pay.flowalp.com/v1.16/Payout/{uuid}/detailsv1.14 · v1.15 · v1.16| Parameter | Type | Description |
|---|---|---|
| uuid | string (required) | Path parameter: UUID of the payout. |
| instance | string (required) | Query parameter: name of your instance (tenant). |
| limit | integer | Query parameter: number of transfer entries per page; a page size of 100 is recommended. |
| offset | integer | Query parameter: offset to use together with limit. Defaults to 0. |
curl "https://api.pay.flowalp.com/v1.16/Payout/C6B438B9/details?instance=<tenant>&limit=100&offset=0" \
-H "x-api-key: <api-secret>"<?php
use FlowAlpPay\Models\Request\Payout;
// $client: same constructor as in the list example above
$payout = new Payout();
$payout->setUuid('C6B438B9');
try {
$details = $client->details($payout);
} catch (Exception $e) {
error_log('Payout details failed: ' . $e->getMessage());
}Since v1.16, repeated payout attempts are resolved into their original underlying transfers. In earlier versions a repeated attempt appeared as a single aggregate entry with an empty transaction object; now the response lists the actual individual transactions of the original payout.
Response
Single payout endpoints return one payout object in data (the list returns an array). All amounts are in minor units. Each entry of transfers has a type, an amount, a date_time and an items array whose values always add up to the transfer amount — a CHF 300.00 payment with a CHF 3.00 fee shows items of 30000 and -300 and a transfer amount of 29700. When a transfer relates to a payment, its transaction object carries the transaction uuid and reference_id you can match against your orders; otherwise it is an empty object.
| Field | Type | Description |
|---|---|---|
| uuid | string | Public identifier of the payout. |
| mode | string | LIVE or TEST. |
| object | string | Always payout. |
| amount | integer | Total amount transferred, in minor units. |
| total_fees | integer | Sum of all fees contained in the payout, in minor units. |
| currency | string | ISO currency code of the payout. |
| date | string | Payout date, format YYYY-MM-DD. |
| statement | string | Text that appears on the bank statement. |
| status | string | Payout status, see table below. |
| destination | object | Target account: type (for example bank_account), iban and account_holder. |
| transfers | array | Content of the payout: transactions, fees, adjustments and reserves. |
| merchant | object | Your account data: name, site_title and an owner object. |
{
"status": "success",
"data": {
"uuid": "C6B438B9",
"mode": "LIVE",
"object": "payout",
"amount": 29690,
"total_fees": 310,
"currency": "CHF",
"date": "2026-07-06",
"statement": "Demo Shop Thun",
"status": "sent",
"destination": {
"type": "bank_account",
"iban": "CH93 0076 2011 6238 5295 7",
"account_holder": "Demo Firma"
},
"transfers": [
{
"type": "payout-fee",
"amount": -10,
"date_time": "2026-07-06T13:45:18+00:00",
"items": [
{ "type": "payout-fee", "amount": -10 }
],
"transaction": {}
},
{
"type": "transaction",
"amount": 29700,
"date_time": "2026-06-25T13:44:30+00:00",
"items": [
{ "type": "transaction", "amount": 30000 },
{ "type": "transaction-fee", "amount": -300 }
],
"transaction": {
"type": "transaction",
"amount": 30000,
"uuid": "aabb1122",
"fee": 300,
"currency": "CHF",
"time": "2026-06-25T14:44:31+01:00",
"payment": { "brand": "visa" },
"reference_id": "ORDER-2026-0815"
}
}
],
"merchant": {
"name": "demo-shop",
"site_title": "Demo Shop",
"owner": {
"company": "Demo Firma",
"first_name": "Anna",
"last_name": "Keller",
"address": "Bahnhofstrasse 12",
"zip": "3600",
"place": "Thun",
"email": "finance@demo-shop.example"
}
}
}
}Possible type values of a transfer: transaction, transaction-reversal, dispute, dispute-reversal, payout, payout-reversal, adjustment, manual-adjustment, payout-fee, payout-reserve, payout-reserve-reversal and alternative-currency-payout-fee-percent.
Payout status values
| Status | Description |
|---|---|
| initiated | The payout was initiated by the system. |
| pending | The payout is created and ready for processing. |
| under-review | The payout needs a closer look before it is released. |
| processing | The payout file has been handed over for bank execution. |
| sent | The payout was transmitted to the bank successfully. |
| failed | The payout failed and was returned by the bank. |
Webhook notifications are sent for the statuses processing, sent and failed — not for initiated, pending or under-review.
Errors
| HTTP status | Meaning |
|---|---|
| 400 | Malformed request — the message field of the error body describes the exact problem. |
| 404 | No payout with the given UUID exists on this instance. |
Every settled transaction exposes the payoutUuid of the payout it belongs to — see List and retrieve Transactions. For the full settlement and reconciliation workflow, read Payouts and reconciliation; to receive payout status changes automatically, configure webhooks.