Receipt
Proof-of-payment receipt with an amount-paid panel and PAID badge, payment method and transaction ID, compact line items, discount, tax, and a support or refund-policy note.
receipt.pdf1 page

Rendered by the engine from the sample data below.
Render it
curl "https://api.quirepdf.dev/v1/render?template=receipt" \
-H "Authorization: Bearer $QUIRE_API_KEY" \
-H "Content-Type: application/json" \
-d @receipt.json -o receipt.pdfimport { Quire, type ReceiptData } from "quirepdf";
const data: ReceiptData = { /* … */ };
const pdf = await new Quire().render(data, { template: "receipt" });from quirepdf import Quire
Quire().render(data, template="receipt").save("receipt.pdf")npx quirepdf-cli templates receipt --sample > receipt.json
npx quirepdf-cli render receipt.json -t receiptEdit the sample in the playground
Fields
Required at the top level: number, paid_on, seller, customer, payment, items. Everything else is optional.
| Field | Type | Notes |
|---|---|---|
numberRequired | string | Receipt number, e.g. RCPT-2026-0388 |
paid_onRequired | string | Payment date, pre-formatted for display |
currency | string | Currency symbol prefix |
accent | string | Brand colour, e.g. #0b7285 |
sellerRequired | object | |
seller.nameRequired | string | |
seller.email | string | Shown under the brand name |
seller.address | string[] | |
seller.tax_id | string | |
customerRequired | object | |
customer.nameRequired | string | |
customer.company | string | |
customer.address | string[] | |
customer.email | string | |
paymentRequired | object | |
payment.methodRequired | string | e.g. Visa •••• 4242 |
payment.transaction_id | string | |
itemsRequired | object[] | |
items[].descriptionRequired | string | |
items[].detail | string | |
items[].qtyRequired | number | |
items[].unit_priceRequired | number | |
discount | object | |
discount.labelRequired | string | |
discount.rateRequired | number | |
tax | object | |
tax.labelRequired | string | |
tax.rateRequired | number | |
support | object | |
support.title | string | |
support.email | string | |
support.phone | string | |
support.url | string | |
note | object | |
note.title | string | e.g. Refund policy |
note.textRequired | string |
receipt.jsonShow sample data
{
"number": "RCPT-2026-0388",
"paid_on": "3 Oct 2026",
"currency": "$",
"accent": "#0b7285",
"seller": {
"name": "Tidewater Labs",
"email": "billing@tidewaterlabs.io",
"address": [
"500 Harbor Boulevard, Floor 3",
"Seattle, WA 98104",
"United States"
],
"tax_id": "EIN 91-7765432"
},
"customer": {
"name": "Maya Chen",
"company": "Harbor & Pine Design Co.",
"address": [
"88 Alder Lane",
"Portland, OR 97205",
"United States"
],
"email": "maya@harborandpine.co"
},
"payment": {
"method": "Visa •••• 4242",
"transaction_id": "ch_3PqL8x2eZvKYlo2C1aBcDe"
},
"items": [
{
"description": "Team plan — annual subscription",
"detail": "3 Oct 2026 – 2 Oct 2027",
"qty": 1,
"unit_price": 1188
},
{
"description": "Additional seats",
"detail": "Annual",
"qty": 3,
"unit_price": 96
},
{
"description": "Priority support add-on",
"detail": "Annual",
"qty": 1,
"unit_price": 240
}
],
"discount": {
"label": "Launch week coupon (15%)",
"rate": 0.15
},
"tax": {
"label": "Sales tax (10.25%)",
"rate": 0.1025
},
"support": {
"title": "Questions?",
"email": "support@tidewaterlabs.io",
"url": "tidewaterlabs.io/help"
},
"note": {
"title": "Refund policy",
"text": "Annual plans can be refunded in full within 30 days of purchase. After that, you can cancel any time and keep access until the end of your billing period."
}
}