Skip to main content

Reporting API

The Reporting API exposes account-level data and operations: transaction history, balances, ledger-backed refunds, CSV exports, API key management, webhook configuration and delivery logs, and supported currencies.

Most merchants don't need this

Everything here is also available in your dashboard, which is how most teams read it. Reach for the Reporting API only when you need to pull this data programmatically (e.g. into your own ledger or BI tooling).

Base URL and auth

The Reporting API is served on the same host as the main API, under the /v1 prefix. What differs is the auth scheme: it uses bearer-token auth with the same rail_* key the main API takes in an api-key header.

SandboxProduction
Base URLhttps://api.tensorrail.comhttps://api.tensorrail.com
AuthAuthorization: Bearer rail_…Authorization: Bearer rail_…
Route prefix/v1/v1

Both environments share the same host; a rail_<type>_test_… key reads sandbox data and a rail_<type>_live_… key reads production data. There is no separate sandbox hostname — the key selects the environment.

Transactions

A composed, filterable transaction history (filter by date, status, currency, or a free-text search):

curl -X GET "https://api.tensorrail.com/v1/transactions?limit=20&offset=0" \
-H "Authorization: Bearer rail_full_live_xxx"

Filter with from / to (or start_date / end_date), payment_status, settlement_status, currency and a free-text q, and page with limit and offset. For a single payment's live state, use GET /payments/{payment_id} on the main API instead. (The API reference covers the main API's endpoints; the /v1 surface is documented on these guide pages.)

Currencies

The currencies the API will validate, unauthenticated and platform-wide rather than account-specific. GET /v1/capabilities is the same kind of endpoint — unauthenticated and platform-wide, listing the markets, methods and currencies TensorRail covers. The corridors enabled on your own account are in your dashboard, and your account manager can confirm what else can be opened for you:

curl -X GET "https://api.tensorrail.com/v1/currencies"

See Multi-Currency for how currency selection affects a payment.

Webhook deliveries

Inspect recent webhook delivery attempts (useful when debugging your endpoint):

curl -X GET "https://api.tensorrail.com/v1/account/webhook-deliveries?limit=20" \
-H "Authorization: Bearer rail_full_live_xxx"

The same delivery log is available in the dashboard under Developers → Webhooks. See Webhooks for signature verification and retry behavior, and Webhook Endpoint & Deliveries for the richer /v1/webhooks/* surface (config, per-event attempt chains, manual retry).

Everything else on this surface

The /v1 surface goes beyond read-only history. Each area has its own guide:

AreaEndpointsGuide
BalancesGET /v1/balancesBalances
Ledger-backed refundsPOST|GET /v1/refunds, GET /v1/refunds/{id}Refunds via the Reporting API
CSV exportsGET /v1/exports/transactions.csv, POST /v1/exports, GET /v1/exports/{id}[/download]CSV Exports
API keysGET|POST /v1/api-keys, rotate / revoke, GET /v1/scopesAPI Key Management
Webhook self-serviceGET|PUT /v1/webhooks/config, deliveries, attempts, retryWebhook Endpoint & Deliveries

Requests on this surface are scope-gated — see the scope table. A key lacking the required scope receives 403 (ERR_1004).