> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get recent payment transactions

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the app's most recent payments, refunds, and disputes, newest first.

Without a provider filter, this list spans every connected provider but only attempts customer enrichment against Stripe, so Wix customers may come back without a name or email. Filtering to one provider needs the extra access `provider` describes.

Send `start_date` and `end_date` together to set a window. With neither, or only one of the two, `period` selects the last 7, 30, or 90 whole UTC days including today.

Returns a single batch of up to `limit` records, with no cursor to retrieve the rest.

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

Requires read access to the app.



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/payments/analytics/recent-transactions
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/payments/analytics/recent-transactions:
    get:
      summary: Get recent payment transactions
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns the app's most recent payments, refunds, and disputes, newest
        first.


        Without a provider filter, this list spans every connected provider but
        only attempts customer enrichment against Stripe, so Wix customers may
        come back without a name or email. Filtering to one provider needs the
        extra access `provider` describes.


        Send `start_date` and `end_date` together to set a window. With neither,
        or only one of the two, `period` selects the last 7, 30, or 90 whole UTC
        days including today.


        Returns a single batch of up to `limit` records, with no cursor to
        retrieve the rest.


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


        Requires read access to the app.
      operationId: >-
        get_recent_transactions_api_apps__app_id__payments_analytics_recent_transactions_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the Base44 app.
            title: App Id
          description: ID of the Base44 app.
          example: 6820f3a4e7b91d003c45a1f2
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date-time
            description: >-
              Start of the window as an ISO 8601 timestamp. Send with end_date.
              Defaults to the period window.
            title: Start Date
          description: >-
            Start of the window as an ISO 8601 timestamp. Send with end_date.
            Defaults to the period window.
          example: '2026-08-01T00:00:00Z'
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date-time
            description: >-
              End of the window as an ISO 8601 timestamp. Send with start_date.
              Defaults to now when using period.
            title: End Date
          description: >-
            End of the window as an ISO 8601 timestamp. Send with start_date.
            Defaults to now when using period.
          example: '2026-08-31T23:59:59Z'
        - name: period
          in: query
          required: false
          schema:
            enum:
              - 7d
              - 30d
              - 90d
            type: string
            description: >-
              Fallback window. Either `7d`, `30d`, or `90d`. Defaults to `30d`.
              Used unless both dates are supplied.
            default: 30d
            title: Period
          description: >-
            Fallback window. Either `7d`, `30d`, or `90d`. Defaults to `30d`.
            Used unless both dates are supplied.
          example: 30d
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 10
            minimum: 1
            description: Maximum transactions to return, from 1 through 10. Defaults to 7.
            default: 7
            title: Limit
          description: Maximum transactions to return, from 1 through 10. Defaults to 7.
          example: 7
        - name: currencies
          in: query
          required: false
          schema:
            type: string
            description: >-
              Comma-separated currency codes, for example `usd,eur`. Defaults to
              no currency filter. Use one currency when comparing amounts.
            title: Currencies
          description: >-
            Comma-separated currency codes, for example `usd,eur`. Defaults to
            no currency filter. Use one currency when comparing amounts.
          example: usd
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecentTransactionsResponse'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app does not exist, or its
            workspace restricts payment management
            (`app_payment_management_not_allowed`).
        '404':
          description: >-
            The app is outside the credential grant, or a provider-scoped
            request names a provider that isn't connected.
        '409':
          description: The workspace requires an unlocked SSO session.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - PersonalAccessTokenAuth:
            - read_only
components:
  schemas:
    RecentTransactionsResponse:
      properties:
        transactions:
          items:
            $ref: '#/components/schemas/RecentTransactionResponse'
          type: array
          title: Transactions
          description: >-
            Recent payments, refunds, and disputes, newest first. Empty when
            none match.
          example:
            - 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-25 10:00:00'
              transaction_id: pi_T7mK2p9Q4r6S8v
      type: object
      required:
        - transactions
      title: RecentTransactionsResponse
      description: Response with recent transactions list.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RecentTransactionResponse:
      properties:
        timestamp:
          type: string
          title: Timestamp
          description: >-
            Transaction time in UTC as returned by the analytics store. The
            string can omit an explicit timezone offset.
          example: '2026-08-25 10:00:00'
        action:
          type: string
          title: Action
          description: >-
            What this entry represents. Either `payment`, `refund`, or
            `dispute_lost`.
          example: payment
        status:
          type: string
          title: Status
          description: >-
            Display status derived from the action. `payment` becomes
            `succeeded`, `refund` becomes `refunded`, and `dispute_lost` becomes
            `failed`. Other actions retain their action value. Defaults to an
            empty string.
          default: ''
          example: succeeded
        amount:
          type: integer
          title: Amount
          description: >-
            Amount in the currency's smallest unit. Read `action` to tell an
            incoming payment from an outgoing refund or dispute loss. Defaults
            to `0`.
          default: 0
          example: 2500
        currency:
          type: string
          title: Currency
          description: Currency code recorded with the transaction. Defaults to `usd`.
          default: usd
          example: usd
        customer_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Customer Id
          description: >-
            Provider customer ID, or `null` when none was recorded. Defaults to
            `null`.
          example: cus_T7mK2p9Q4r6S8v
        transaction_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Transaction Id
          description: >-
            Provider transaction ID, or `null` when none was recorded. Defaults
            to `null`.
          example: pi_T7mK2p9Q4r6S8v
        customer_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Customer Name
          description: >-
            Customer name when provider enrichment succeeds, or `null` when
            unavailable. Defaults to `null`.
          example: Jane Doe
        customer_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Customer Email
          description: >-
            Customer email when provider enrichment succeeds, or `null` when
            unavailable. Defaults to `null`.
          example: jane@example.com
        is_live:
          type: boolean
          title: Is Live
          description: >-
            Whether this was a real payment (`true`) or a test one (`false`), as
            the payment provider recorded it. Stripe reports it on every event,
            and Wix Payments marks test payments on the transaction and its
            order.
          example: true
      type: object
      required:
        - timestamp
        - action
        - is_live
      title: RecentTransactionResponse
      description: A recent transaction with optional customer details.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.