Billing & FinOps

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Download the transaction ledger entry as CSV

GET
/scopes/{scopeId}/billing/transactions/{transactionId}/exports/download

Streams a one-data-row CSV export of the referenced transaction ledger entry — the synchronous CSV twin of GET .../receipts/download. Currency resolves from the owning subscription (USD fallback). The download does not mutate the ledger. Validation: scope and transaction context must exist and be visible (else 404 NOT_FOUND); caller needs reader-or-higher or billing role, otherwise 403 FORBIDDEN. Async & state: Synchronous read; no state change. The CSV is rebuilt from the live ledger row and streamed inline; no Operation is created and no resource.updated SSE frames are emitted. Errors: 401 unauthenticated; 403 caller lacks billing read permission; 404 unknown scope/transaction; 500 internal failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required. Repeated downloads return byte-identical CSVs for an unchanged ledger entry.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

transactionId*string

Transaction ledger entry identifier anchoring the download.

Response Body

One-data-row CSV export of the ledger entry.

response?unknowntext/csv
curl -X GET "https://example.com/scopes/string/billing/transactions/string/exports/download"
null