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 receipt PDF

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

Streams the receipt document for a transaction — the "Download PDF" action on the receipt tab. For wire transfers this is the uploaded SWIFT/EFT receipt file (e.g. swift-receipt-9f31ad.pdf); for card/credit/refund entries it is the system-generated receipt for the ledger entry ({reference}.pdf). The response is the binary file itself, not JSON; no resource state changes. Validation: scope and transaction must exist and be visible to the caller (else NOT_FOUND); a receipt document must exist for the entry — entries without any generated or uploaded receipt map to NOT_FOUND; caller needs reader-or-higher or billing role, otherwise FORBIDDEN. Async & state: Synchronous read; no state change. The stream returns Content-Disposition: attachment with the receipt file name. Errors: 401 unauthenticated; 403 caller lacks billing read permission in the scope; 404 unknown scope/transaction or no receipt available for this entry; 429 bulk download bursts rate-limited; 500 object-store read failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required. Repeated downloads return the identical artifact for an unchanged receipt (strong ETag on the file content).

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.

Response Body

Receipt document stream (attachment).

response?unknown
curl -X GET "https://example.com/scopes/string/billing/transactions/string/receipts/download"
null