Payments received / A4
Charitable donation receipt template
A charity's acknowledgement of a gift, in a form the donor can use as evidence for a tax deduction.
When this document is the right one
A donation is received. This is not a thank-you letter: it is a substantiation document, and the difference is one specific sentence about whether anything was given in return.
Why each part is there
The fields are visible in the markup. What is not visible is why they are present, which is the part that gets removed first when someone adapts a template for their own use.
- The charity's registration number, because that is what makes the organisation eligible and the deduction claimable.
- The amount and the date received, which is the date the funds arrived rather than the date the gift was pledged.
- A statement of whether goods or services were provided in exchange, and their value where they were. This sentence is required whether or not there was a benefit.
- Whether the gift is restricted to a purpose, since a restricted gift is a different accounting object from an unrestricted one.
- The name of a person at the charity who issued it, which is what turns the document from a printout into an acknowledgement.
The template
A complete file. Doctype, stylesheet, body: paste it into a renderer unchanged and it produces a finished A4 page. Replace the sample data and the styling holds.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Donation receipt DR-2026-1140</title>
<style>
@page { size: A4; margin: 20mm 18mm; }
* { box-sizing: border-box; }
body { margin: 0; font: 10pt/1.6 "Helvetica Neue", Arial, sans-serif; color: #1c2321; }
header { text-align: center; border-bottom: 3px solid #2f5d50; padding-bottom: 7mm; }
.mark { width: 18mm; height: 18mm; border-radius: 50%; background: #2f5d50;
margin: 0 auto 4mm; }
.org { font-size: 16pt; font-weight: 700; color: #2f5d50; }
.org-sub { font-size: 8.5pt; color: #5c6b66; margin-top: 1.5mm; }
h1 { margin: 9mm 0 0; font-size: 11pt; text-transform: uppercase;
letter-spacing: 0.14em; text-align: center; font-weight: 600; color: #5c6b66; }
.gift { margin: 7mm auto; max-width: 120mm; text-align: center;
border: 1px solid #cfdad6; padding: 6mm; }
.gift .amount { font-size: 28pt; font-weight: 700; line-height: 1;
font-variant-numeric: tabular-nums; color: #2f5d50; }
.gift .date { margin-top: 2.5mm; font-size: 9pt; color: #5c6b66; }
dl { display: grid; grid-template-columns: 42mm 1fr; gap: 2.5mm 5mm; margin: 8mm 0 0;
font-size: 9.5pt; }
dt { color: #5c6b66; }
dd { margin: 0; }
/* The substantiation sentence is what makes this a receipt a donor can use.
A thank-you letter without it does not do the job. */
.substantiation { margin-top: 9mm; background: #f2f6f5; border-left: 4px solid #2f5d50;
padding: 5mm 6mm; font-size: 9.5pt; break-inside: avoid; }
.substantiation strong { display: block; margin-bottom: 2mm; }
.sign { margin-top: 12mm; break-inside: avoid; }
.sign .rule { width: 65mm; border-top: 1px solid #1c2321; padding-top: 2mm;
margin-top: 15mm; font-size: 9pt; }
footer { margin-top: 12mm; border-top: 1px solid #cfdad6; padding-top: 4mm;
font-size: 8pt; color: #5c6b66; text-align: center; }
</style>
</head>
<body>
<header>
<div class="mark"></div>
<div class="org">Rivermouth Wetland Trust</div>
<div class="org-sub">Registered charity 1144207 · 9 Estuary Lane, Exeter EX2 8QQ</div>
</header>
<h1>Official donation receipt</h1>
<div class="gift">
<div class="amount">GBP 500.00</div>
<div class="date">Received 12 May 2026</div>
</div>
<dl>
<dt>Receipt number</dt><dd>DR-2026-1140</dd>
<dt>Donor</dt><dd>Ms Helen Ashworth</dd>
<dt>Donor address</dt><dd>41 Sylvan Road, Exeter EX4 6EW</dd>
<dt>Payment method</dt><dd>Bank transfer, reference ASHWORTH-MAY26</dd>
<dt>Designation</dt><dd>Unrestricted, general funds</dd>
<dt>Issued by</dt><dd>Rivermouth Wetland Trust, 14 May 2026</dd>
</dl>
<div class="substantiation">
<strong>Statement of goods and services</strong>
No goods or services were provided in exchange for this contribution. The full
amount shown is a gift. Where a donor has received a benefit, its value must be
stated here and deducted from the deductible amount, so this sentence is
required whether or not there was a benefit.
</div>
<div class="sign">
<div class="rule">
Marion Ellery, Finance Trustee<br>
Rivermouth Wetland Trust
</div>
</div>
<footer>
Retain this receipt with your tax records. A duplicate can be issued on request
to giving@rivermouth.example but will be marked as a duplicate.
</footer>
</body>
</html>The layout decision worth understanding
The substantiation statement is set in a tinted box rather than in the body copy. It is the sentence that makes this document work for its purpose, and in practice it is also the sentence most likely to be edited out by someone tidying up a template who does not know why it is there.
The mistake people make adapting it
Issuing a receipt for the full amount when the donor attended a fundraising dinner. The value of the meal has to be stated and deducted, and a receipt that ignores it is wrong in a way the donor will be the one to answer for.
Rendering it
The page box is declared in the template's own CSS as A4, so the size travels with the markup rather than living in the code that calls the renderer. A4 is also one of the six named formats the API accepts, so it can be passed in the request options instead if that suits your setup better.
curl -X POST https://api.pdfpipe.xyz/v1/pdf \
-H "Authorization: Bearer $PDFPIPE_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<!doctype html>...",
"options": { "format": "A4" }
}' \
--output donation-receipt.pdfFrequently asked
Can I use this template commercially?
Yes. Copy it, change it, ship it. It is sample markup written to be taken, and the sample data in it is invented, so replace the names and the numbers before anyone sees it.
Why is the page size in the CSS rather than in the API call?
Because a donation receipt is a A4 document, and that is a property of the document rather than of the code that renders it. Declaring it in the page box means the size cannot be lost between the template and the call, which is the usual way a document ends up on the wrong paper.
Will it look the same in every renderer?
The layout will, because it uses ordinary CSS. The page break behaviour will not: break-inside and break-after are implemented differently by browser engines and by dedicated print engines, and some of the paged media specification is not implemented in browser renders at all. That difference is documented per property in the paged CSS reference.
Other templates
Documents from the same part of a business, and one from each of the other groups.
Payment receipt HTML template
Proof that a payment was made: the amount, the payment reference, the method, and what it was for.
80mm thermal receipt HTML template
The point-of-sale receipt printed on an 80mm roll, designed for a print head that is narrower than the paper and has no greys.
Rent receipt format HTML template
A landlord's acknowledgement that rent was received for a stated period, in the form a payroll or tax process will accept.
HTML invoice template with CSS
The standard commercial invoice: a demand for payment with line items, a tax figure, and terms that say when the money is due.
Quotation HTML template with CSS
A priced proposal with a validity date, a scope, optional items kept out of the headline total, and somewhere to sign.
Packing slip HTML template
The document that goes in the box: what was ordered, what was actually shipped, and no prices at all.
Work order HTML template for field service
A job sheet issued to an engineer: the asset, the reported fault, space to record what was done and what parts were used, and two signatures.
Every template
The full set, grouped by what part of a business produces the document.
A4 page size for PDF generation
A4 is the default page for business documents everywhere except North America, and the default this API uses when no format is given.
Paste the template into the playground and get the PDF back. No signup, no key.