FlowAlp

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

GEThttps://api.pay.flowalp.com/v1.16/Payout/v1.14 · v1.15 · v1.16
ParameterTypeDescription
instancestring (required)Query parameter: name of your instance (tenant).
limitintegerMaximum number of rows to return.
offsetintegerNumber of rows to skip, for pagination.
orderByDatestringASC (default) or DESC — sort order by payout date.
List payoutsbash
curl "https://api.pay.flowalp.com/v1.16/Payout/?instance=<tenant>&orderByDate=DESC&limit=20" \
  -H "x-api-key: <api-secret>"
List payouts (PHP SDK)PHP
<?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

GEThttps://api.pay.flowalp.com/v1.16/Payout/{uuid}/v1.14 · v1.15 · v1.16
ParameterTypeDescription
uuidstring (required)Path parameter: UUID of the payout, for example from the list response or from a transaction's payoutUuid.
instancestring (required)Query parameter: name of your instance (tenant).
Retrieve a payout headerbash
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

GEThttps://api.pay.flowalp.com/v1.16/Payout/{uuid}/detailsv1.14 · v1.15 · v1.16
ParameterTypeDescription
uuidstring (required)Path parameter: UUID of the payout.
instancestring (required)Query parameter: name of your instance (tenant).
limitintegerQuery parameter: number of transfer entries per page; a page size of 100 is recommended.
offsetintegerQuery parameter: offset to use together with limit. Defaults to 0.
Retrieve payout detailsbash
curl "https://api.pay.flowalp.com/v1.16/Payout/C6B438B9/details?instance=<tenant>&limit=100&offset=0" \
  -H "x-api-key: <api-secret>"
Retrieve payout details (PHP SDK)PHP
<?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.

FieldTypeDescription
uuidstringPublic identifier of the payout.
modestringLIVE or TEST.
objectstringAlways payout.
amountintegerTotal amount transferred, in minor units.
total_feesintegerSum of all fees contained in the payout, in minor units.
currencystringISO currency code of the payout.
datestringPayout date, format YYYY-MM-DD.
statementstringText that appears on the bank statement.
statusstringPayout status, see table below.
destinationobjectTarget account: type (for example bank_account), iban and account_holder.
transfersarrayContent of the payout: transactions, fees, adjustments and reserves.
merchantobjectYour account data: name, site_title and an owner object.
Sample response (details)JSON
{
  "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

StatusDescription
initiatedThe payout was initiated by the system.
pendingThe payout is created and ready for processing.
under-reviewThe payout needs a closer look before it is released.
processingThe payout file has been handed over for bank execution.
sentThe payout was transmitted to the bank successfully.
failedThe 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 statusMeaning
400Malformed request — the message field of the error body describes the exact problem.
404No 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.