List payment transactions
Changed on<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Returns one page of the app's payments, refunds, and lost disputes for one payment provider, newest first.
Unlike Get recent payment transactions, this covers the app's whole history unless you pass period or both start_date and end_date. Each row carries the customer's name and email when the provider can resolve them, including for a guest checkout.
New transactions are added at the top of the list, so one recorded while you're paging shifts the rest down and can cause a row to repeat at a page boundary.
Each row's is_live comes from the payment provider's own record of the payment, so it tells a real payment from a test one. Without mode, the list covers one mode per provider:
- Stripe: Live when the app's stored key is a live key, test otherwise.
- Wix Payments: Live, unless test-mode reporting is enabled for your account. Then it follows the app's Wix Payments test-mode setting.
Pass mode to choose instead. To see both, list live and test separately.
Results come from an analytics store and can lag behind the payment provider.
<Note>This endpoint accepts a personal access token belonging to a user with write access to the app. A read-only personal access token is refused, and so is a viewer.</Note>
Request
- Base URLhttps://app.base44.com
- URLhttps://app.base44.com/api/apps/{app_id}/payments/analytics/transactions
- AuthHTTP bearer
Path parameters
ID of the Base44 app.
Query parameters
Start of the window as an ISO 8601 timestamp. Send it with end_date, because a date sent on its own is ignored.
End of the window as an ISO 8601 timestamp. Send it with start_date.
Window to use when you don't send both dates, counted back over whole UTC days including today. Either 7d, 30d, or 90d. Defaults to no window, which covers the app's whole history.
Number of rows to skip, which is the number you've already read. Defaults to 0.
Items per page. Max 100. Defaults to 50.
Comma-separated currency codes, for example usd,eur. Defaults to no currency filter.
Payment provider whose transactions to use. Either stripe or wix. stripe covers payments taken through the app's Stripe integration, and wix covers payments taken through Wix Payments (Base44 Payments). The provider has to be connected to the app.
Which payments to list. Either live for real payments or test for test payments. Defaults to one mode per provider, as the endpoint description explains.
Response
One page of the app's transactions.
Example response
{
"transactions": [
{
"action": "payment",
"amount": 2500,
"currency": "usd",
"customer_email": "jane@example.com",
"customer_id": "cus_T7mK2p9Q4r6S8v",
"customer_name": "Jane Doe",
"is_live": true,
"status": "succeeded",
"timestamp": "2026-08-25T10:00:00Z",
"transaction_id": "pi_T7mK2p9Q4r6S8v"
}
],
"total": 347,
"has_more": true
}Changes
- breaking
the
queryrequest parametermodewas restricted to a list of enum values - breaking
the
queryrequest parameterperiodwas restricted to a list of enum values - breaking
queryrequest parametercurrencieslist-of-types was narrowed by removing typesnull - breaking
queryrequest parameterend_datelist-of-types was narrowed by removing typesnull - breaking
queryrequest parametermodelist-of-types was narrowed by removing typesnull - breaking
queryrequest parameterperiodlist-of-types was narrowed by removing typesnull - breaking
queryrequest parameterstart_datelist-of-types was narrowed by removing typesnull - info
added the new enum value
30dto thequeryrequest parameterperiod - info
added the new enum value
7dto thequeryrequest parameterperiod - info
added the new enum value
90dto thequeryrequest parameterperiod - info
added the new enum value
liveto thequeryrequest parametermode - info
added the new enum value
testto thequeryrequest parametermode - info
for the
queryrequest parametercurrencies, the type was generalized from no type tostring - info
for the
queryrequest parameterend_date, the type was generalized from no type tostring, and format from no format todate-time - info
for the
queryrequest parametermode, the type was generalized from no type tostring - info
for the
queryrequest parameterperiod, the type was generalized from no type tostring - info
for the
queryrequest parameterstart_date, the type was generalized from no type tostring, and format from no format todate-time
- breaking
- info
added the new optional
queryrequest parametermode - info
the response property
//became required for the status - info
the
response's property default valuetruewas removed for the status
- info