Skip to main content
Version: 1.0

Application wallet transaction history

An application API key can read debit history attributable to that application in its linked wallet. Send the key in x-api-key; the server resolves the wallet from the application, so callers do not provide a wallet ID. An application without a linked wallet receives 404 WALLET_NOT_FOUND, and the key never receives transactions belonging to another application.

This access covers debit history only. It does not grant API-key access to balances, credits, recharges, exports, or wallet configuration.

Parent groups

GET /v1/organization/wallet/transaction-groups returns parent groups suitable for a transaction-history list:

  • a debit without a session is one standalone parent group;
  • all debits in one conversation session form one session parent group;
  • a session's services list summarizes its debits by service type without creating more parent groups.

Therefore, limit=10 means at most ten parent groups, not ten raw debit events. pagination.total and totalPages use that same parent-group count after application scope and filters are applied.

Use offset as a zero-based parent-group page number and limit from 1 to 200. serviceType may be sent more than once. startDate and endDate are inclusive UTC calendar dates in YYYY-MM-DD format.

curl --get 'https://app.chatt2.me/v1/organization/wallet/transaction-groups' \
--header 'x-api-key: YOUR_APPLICATION_API_KEY' \
--data-urlencode 'offset=0' \
--data-urlencode 'limit=10' \
--data-urlencode 'serviceType=AiChat' \
--data-urlencode 'serviceType=AudioTranscription' \
--data-urlencode 'startDate=2026-08-01' \
--data-urlencode 'endDate=2026-08-31'

Events inside a session

To expand one service summary, call GET /v1/organization/wallet/transaction-groups/{sessionId}/items with its required serviceType.

This endpoint has its own pagination. Its limit, from 1 to 50, counts raw debit events. nextCursor is opaque and must be passed back unchanged as cursor. Stop when hasMore is false.

Use the same date filters as the parent request when the expanded events must match the displayed service totals.

curl --get 'https://app.chatt2.me/v1/organization/wallet/transaction-groups/SESSION_ID/items' \
--header 'x-api-key: YOUR_APPLICATION_API_KEY' \
--data-urlencode 'serviceType=AudioTranscription' \
--data-urlencode 'limit=10' \
--data-urlencode 'cursor=NEXT_CURSOR_FROM_THE_PREVIOUS_RESPONSE'

The API reference defines the response schemas and validation rules for both routes.