FlowAlp

List and retrieve Transactions

July 30, 2026

List and filter FlowAlp Pay transactions or retrieve a single one by ID, with all transaction status values explained for the Merchant API.

Every payment processed through FlowAlp Pay is stored as a Transaction. The Merchant API exposes two read endpoints for this resource: one that returns a filtered list and one that returns a single record by its numeric ID. Use API version v1.16 for new integrations and authenticate every call with the x-api-key header as described in Authentication.

List Transactions

GEThttps://api.pay.flowalp.com/v1.16/Transaction/v1.14 · v1.15 · v1.16

The list endpoint returns the transactions of your instance ordered by creation time. Combine the UTC date filters with limit and offset to page through large result sets. All parameters except instance are optional.

Request parameters

ParameterTypeDescription
instancestring (required)Name of your instance (tenant). Identifies the account the request runs against.
filterDatetimeUtcGreaterThandateLower bound in UTC, format YYYY-MM-DD HH:MM:SS. Only transactions created after this moment are returned.
filterDatetimeUtcLessThandateUpper bound in UTC, same format as above.
filterMyTransactionsOnlybooleanDefaults to false. When set to 1, only transactions created with the API key used for this request are returned.
orderByTimestringASC (default) or DESC — sort order by transaction time.
offsetintegerNumber of rows to skip, for pagination.
limitintegerMaximum number of rows to return.
List transactionsbash
curl "https://api.pay.flowalp.com/v1.16/Transaction/?instance=<tenant>&orderByTime=DESC&limit=20&offset=0" \
  -H "x-api-key: <api-secret>"
List transactions (PHP SDK)PHP
<?php
use FlowAlpPay\FlowAlpPay;
use FlowAlpPay\Models\Request\Transaction;

$client = new FlowAlpPay(
    getenv('FLOWALP_TENANT'),
    getenv('FLOWALP_API_SECRET'),
    FlowAlpPay::DEFAULT_COMMUNICATION_HANDLER,
    'pay.flowalp.com',
    '1.16'
);

$request = new Transaction();
$request->setFilterDatetimeUtcGreaterThan(new DateTime('2026-07-01 00:00:00'));
$request->setFilterDatetimeUtcLessThan(new DateTime('2026-07-31 23:59:59'));
$request->setOrderByTime('DESC');
$request->setLimit(20);

try {
    $transactions = $client->getAll($request);
    foreach ($transactions as $transaction) {
        echo $transaction->getId() . ': ' . $transaction->getStatus() . PHP_EOL;
    }
} catch (Exception $e) {
    error_log('Listing transactions failed: ' . $e->getMessage());
}

Retrieve a Transaction

GEThttps://api.pay.flowalp.com/v1.16/Transaction/{id}/v1.14 · v1.15 · v1.16
ParameterTypeDescription
idinteger (required)Path parameter: numeric ID of the transaction to retrieve. You receive it when the transaction is created and in every webhook notification.
instancestring (required)Query parameter: name of your instance (tenant).
Retrieve a transactionbash
curl "https://api.pay.flowalp.com/v1.16/Transaction/4712/?instance=<tenant>" \
  -H "x-api-key: <api-secret>"
Retrieve a transaction (PHP SDK)PHP
<?php
use FlowAlpPay\Models\Request\Transaction;

// $client: same constructor as in the list example above
$request = new Transaction();
$request->setId(4712);

try {
    $transaction = $client->getOne($request);
    echo $transaction->getStatus();
} catch (Exception $e) {
    error_log('Transaction lookup failed: ' . $e->getMessage());
}

Response

Both endpoints reply with a status field and a data array; the single retrieve returns an array containing exactly one element. Amounts are expressed in minor units (6250 = CHF 62.50). refundable and partiallyRefundable tell you which refund operations are currently possible, and payoutUuid links the transaction to the payout that settled it.

Sample responseJSON
{
  "status": "success",
  "data": [
    {
      "id": 4712,
      "uuid": "f384000b",
      "status": "confirmed",
      "time": "2026-07-12 09:41:27",
      "lang": "de",
      "psp": "Native_PSP",
      "pspId": 26,
      "mode": "LIVE",
      "referenceId": "ORDER-2026-0815",
      "pageUuid": "892dcf5c",
      "payment": {
        "brand": "visa",
        "wallet": null
      },
      "payoutUuid": "AB12CD34",
      "invoice": {
        "currencyAlpha3": "CHF",
        "products": [
          { "quantity": 1, "name": "Hoodie", "amount": 5900 }
        ],
        "discount": null,
        "shippingAmount": 350,
        "totalAmount": 6250,
        "customFields": null
      },
      "refundable": true,
      "partiallyRefundable": true,
      "contact": {
        "id": 16,
        "uuid": "9c9c0282",
        "firstname": "Anna",
        "lastname": "Keller",
        "email": "anna.keller@example.com",
        "country": "Switzerland",
        "countryISO": "CH"
      }
    }
  ]
}

Transaction status values

The status field reflects where a transaction stands in its lifecycle:

StatusDescription
waitingThe payment was initiated but not completed yet.
confirmedThe payment succeeded and the amount was debited.
authorizedA payment method was tokenized successfully; no amount was debited yet.
reservedAn amount was reserved through a pre-authorization.
refundedThe full amount was returned to the customer.
partially-refundedPart of the amount was returned to the customer.
refund_pendingA refund is currently being processed.
cancelledThe payment was aborted by the customer.
declinedThe payment failed 3-D Secure or was rejected by the issuing bank.
chargebackThe cardholder reclaimed the funds through their bank.
disputedA dispute was opened for this transaction.
errorA technical problem occurred during processing.
expiredThe payment was aborted due to inactivity.

Errors

HTTP statusMeaning
400Malformed request — the message field of the error body describes the exact problem.
404No transaction with the given ID exists on this instance.

Error responses use the shape {"status": "error", "message": "..."}.

Post-payment operations — charging, capturing, refunding and cancelling — are covered in Charge, capture, refund and cancel Transactions. To see how confirmed transactions reach your bank account, read the Payouts API, and subscribe to webhook events for real-time status changes.