List payment transactions

<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.

Pages use offset and limit. Pass the number of rows you've read so far as offset, and stop when has_more is false. New transactions are added at the top, so one recorded while you page shifts the rest down and can repeat a row at a page boundary.

For stripe, transactions come from live mode when the app uses a live Stripe key, and from test mode otherwise. For wix, they're live payments. While the app's Wix Payments checkout is in test mode, some accounts see its test payments instead. Read is_live on each row to tell them apart.

Results come from an analytics store and can lag behind the payment provider.

This is limited to 120 requests a minute per user. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with write access to the app. A read-only key is refused, and so is a viewer.</Note>

get/api/apps/{app_id}/payments/analytics/transactions

Path parameters

app_idstring required

ID of the Base44 app.

ID of the Base44 app.

Query parameters

start_datestring date-time nullable

Start of the window as an ISO 8601 timestamp. Send it with end_date, because a date sent on its own is ignored.

Start of the window as an ISO 8601 timestamp. Send it with end_date, because a date sent on its own is ignored.

end_datestring date-time nullable

End of the window as an ISO 8601 timestamp. Send it with start_date.

End of the window as an ISO 8601 timestamp. Send it with start_date.

period'7d' | '30d' | '90d' nullable

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.

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.

offsetinteger

Number of rows to skip, which is the number you've already read. Defaults to 0.

Number of rows to skip, which is the number you've already read. Defaults to 0.

limitinteger

Items per page. Max 100. Defaults to 50.

Items per page. Max 100. Defaults to 50.

currenciesstring nullable

Comma-separated currency codes, for example usd,eur. Defaults to no currency filter.

Comma-separated currency codes, for example usd,eur. Defaults to no currency filter.

provider'stripe' | 'wix' required

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.

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.

Response

One page of the app's transactions.

totalinteger

Total number of matching transactions.

has_moreboolean

Whether there are more items to fetch.

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

Changed in 1 of the 22 revisions of this API.1

Of the 22 revisions, 1 has no diff computed.