List transactions
Lists transactions for the authenticated merchant using limit/offset
pagination, newest first (created_at descending). Only transactions created
through this API (live or sandbox) appear — checkout, storefront, and admin
transactions are never included. The response carries no total count; page
forward until a page comes back short or empty. Read-only. Requires a valid
API key or JWT bearer token (401 if missing/invalid, 403 if the
credential is not authorized).
curl --request GET \
--url https://api.fluid.app/api/payment/v2026-04/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/payment/v2026-04/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/payment/v2026-04/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/payment/v2026-04/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/payment/v2026-04/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/payment/v2026-04/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "fpi_01hxyzabc123",
"gateway_id": "stripe-usd",
"payment_method_id": "018f2c1a-9c4b-7e6d-9f10-3b4c5d6e7f80",
"card_network": "visa",
"parent_transaction_id": null,
"action": "purchase",
"status": "success",
"amount_cents": 4999,
"currency_code": "USD",
"payment_source": "CreditCard",
"gateway_transaction_id": "ch_3PQr7s2eZvKYlo2C",
"reference_token": "order_12345",
"description": null,
"processing_fee_cents": 175,
"platform_fee_cents": 130,
"credited_amount_cents": 0,
"retain_on_success": false,
"metadata": {},
"created_at": "2026-04-01T12:00:00Z",
"updated_at": "2026-04-01T12:00:00Z"
}
],
"meta": {
"request_id": "018f2c1a-8b3a-7e6d-9f10-2a3b4c5d6e7f",
"timestamp": "2026-04-01T12:00:00Z"
}
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"status": "<string>"
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}Authorizations
Merchant API key (fp_live_* for live, fp_test_* for sandbox) or an
admin-tier JWT (company admin or root admin). Non-admin JWTs are
rejected with 403; live API keys additionally require the merchant's
API access to be enabled.
A company admin, company token or partner token also needs the role
grant for the action, or gets 403: gateways.view, .create,
.update or .delete (or the matching apm.* grant) for gateway
configuration, transactions.update for purchase, authorize, verify,
capture, void and credit, and transactions.view to read transactions.
API keys, root admins and droplet tokens are not checked against roles.
Query Parameters
Maximum number of transactions to return in one page. Defaults to 25; capped at 100.
1 <= x <= 100Number of transactions to skip before the returned page, for offset-based pagination.
x >= 0curl --request GET \
--url https://api.fluid.app/api/payment/v2026-04/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/payment/v2026-04/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/payment/v2026-04/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/payment/v2026-04/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/payment/v2026-04/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/payment/v2026-04/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/payment/v2026-04/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "fpi_01hxyzabc123",
"gateway_id": "stripe-usd",
"payment_method_id": "018f2c1a-9c4b-7e6d-9f10-3b4c5d6e7f80",
"card_network": "visa",
"parent_transaction_id": null,
"action": "purchase",
"status": "success",
"amount_cents": 4999,
"currency_code": "USD",
"payment_source": "CreditCard",
"gateway_transaction_id": "ch_3PQr7s2eZvKYlo2C",
"reference_token": "order_12345",
"description": null,
"processing_fee_cents": 175,
"platform_fee_cents": 130,
"credited_amount_cents": 0,
"retain_on_success": false,
"metadata": {},
"created_at": "2026-04-01T12:00:00Z",
"updated_at": "2026-04-01T12:00:00Z"
}
],
"meta": {
"request_id": "018f2c1a-8b3a-7e6d-9f10-2a3b4c5d6e7f",
"timestamp": "2026-04-01T12:00:00Z"
}
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"status": "<string>"
}{
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": "error",
"message": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"errors": "<string>"
}