Skip to content

Get invoice receipt (PDF) link API Reference

GET
/tenants/{tenant}/invoices/{name}/receipt
curl --request GET \
--url https://api.kupe.cloud/api/v1/tenants/acme/invoices/acme-20260301/receipt \
--header 'Authorization: <Authorization>'

Returns a fresh, short-lived URL for the Paddle-hosted invoice (receipt) PDF of a charged invoice. Paddle is Merchant of Record, so this hosted invoice is the tax-inclusive (VAT) document — kupe invoice amounts exclude VAT. Only invoices that have been charged have a receipt: the invoice phase must be Paid or PastDue and the invoice must carry a Paddle transaction ID (set shortly after charging). Other phases return 409. The returned URL is short-lived and authenticated — open or download it immediately; do NOT store it. Request a fresh link each time.

tenant
required
string

Tenant name

name
required
string

Invoice name (server-controlled; usually {tenant}-{YYYYMMDD}, variants exist — take it from the list response)

Fresh receipt PDF URL (short-lived — do not store)

Media type application/json
object
url
string
Example
{
"url": "https://paddle.com/invoice/01hv8wptq8987qeep44cyrewp9?token=..."
}

Invalid name

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Missing or invalid authentication

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Not a member of this tenant

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Invoice not found, or no hosted invoice available

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Invoice has not been charged yet (phase not Paid/PastDue)

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Rate limit exceeded

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}

Billing integration not configured or Paddle unavailable

Media type application/json
object
code
string
error
string
field
string
message
string
severity
string
Example generated
{
"code": "example",
"error": "example",
"field": "example",
"message": "example",
"severity": "example"
}