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>

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

Request

  • Base URL
    https://app.base44.com
  • URL
    https://app.base44.com/api/apps/{app_id}/payments/analytics/transactions
  • Auth
    HTTP bearer

Path parameters

app_idstring required

ID of the Base44 app.

Query parameters

start_datestring date-time

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

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

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

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.

limitinteger

Items per page. Max 100. Defaults to 50.

currenciesstring

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.

mode'live' | 'test'

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.

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

    • breaking

      the query request parameter mode was restricted to a list of enum values

    • breaking

      the query request parameter period was restricted to a list of enum values

    • breaking

      query request parameter currencies list-of-types was narrowed by removing types null

    • breaking

      query request parameter end_date list-of-types was narrowed by removing types null

    • breaking

      query request parameter mode list-of-types was narrowed by removing types null

    • breaking

      query request parameter period list-of-types was narrowed by removing types null

    • breaking

      query request parameter start_date list-of-types was narrowed by removing types null

    • info

      added the new enum value 30d to the query request parameter period

    • info

      added the new enum value 7d to the query request parameter period

    • info

      added the new enum value 90d to the query request parameter period

    • info

      added the new enum value live to the query request parameter mode

    • info

      added the new enum value test to the query request parameter mode

    • info

      for the query request parameter currencies, the type was generalized from no type to string

    • info

      for the query request parameter end_date, the type was generalized from no type to string, and format from no format to date-time

    • info

      for the query request parameter mode, the type was generalized from no type to string

    • info

      for the query request parameter period, the type was generalized from no type to string

    • info

      for the query request parameter start_date, the type was generalized from no type to string, and format from no format to date-time

    • info

      added the new optional query request parameter mode

    • info

      the response property // became required for the status

    • info

      the response's property default value true was removed for the status