PDFPipe

Payments received / A5 landscape

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.

When this document is the right one

Rent is paid and the tenant needs evidence, usually because an employer requires it before allowing a housing allowance exemption. That downstream use is what decides which fields are mandatory.

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 amount in figures and in words, which is the convention this document has always followed and which payroll teams look for.
  • The exact period covered, not just the month name, because a part month is common at the start and end of a tenancy.
  • The full address of the premises, since that is what the claim is assessed against.
  • The landlord's tax identification number, which above an annual threshold is the field that decides whether the receipt is accepted at all.
  • The payment mode and reference, so the receipt can be corroborated against a bank statement.

The template

A complete file. Doctype, stylesheet, body: paste it into a renderer unchanged and it produces a finished A5 landscape page. Replace the sample data and the styling holds.

html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Rent receipt, May 2026</title>
<style>
  /* Half an A4 sheet. A rent receipt is a short document and this size is
     what receipt books have always been, so it looks like what it is. */
  @page { size: A5 landscape; margin: 10mm; }
  * { box-sizing: border-box; }
  body { margin: 0; font: 10pt/1.6 Georgia, "Times New Roman", serif; color: #14110d; }

  .frame { border: 1.5px solid #14110d; padding: 7mm 8mm; height: 100%; }
  header { display: flex; justify-content: space-between; align-items: baseline;
           border-bottom: 1px solid #14110d; padding-bottom: 3mm; }
  h1 { margin: 0; font-size: 15pt; letter-spacing: 0.02em; }
  .serial { font: 9pt/1 Arial, sans-serif; }

  .amount-line { margin: 6mm 0; font-size: 12pt; }
  .amount-line strong { font-size: 15pt; font-variant-numeric: tabular-nums; }

  .body-text { margin: 0 0 5mm; }
  .fill { border-bottom: 1px dotted #14110d; padding: 0 2mm; }

  dl { display: grid; grid-template-columns: 32mm 1fr 30mm 1fr; gap: 2mm 3mm;
       font: 9pt/1.4 Arial, sans-serif; margin: 0 0 6mm; }
  dt { color: #5a5348; }
  dd { margin: 0; }

  /* Landlord PAN is what makes this usable as evidence for a tax exemption
     claim above the annual threshold. Without it the receipt is decorative. */
  .pan-note { font: 8pt/1.4 Arial, sans-serif; color: #5a5348;
              border-top: 1px solid #d8d2c6; padding-top: 3mm; }

  .sign { margin-top: 8mm; text-align: right; font: 9pt/1.4 Arial, sans-serif; }
  .sign .rule { display: inline-block; width: 55mm; border-top: 1px solid #14110d;
                margin-bottom: 1.5mm; padding-top: 14mm; }
  .stamp { float: left; width: 26mm; height: 20mm; border: 1px dashed #a89f8d;
           font: 7pt/1.3 Arial, sans-serif; color: #a89f8d; text-align: center;
           padding-top: 6mm; }
</style>
</head>
<body>
<div class="frame">
  <header>
    <h1>Rent Receipt</h1>
    <div class="serial">No. 2026-05-014<br>Date: 05 May 2026</div>
  </header>

  <p class="amount-line">Received <strong>INR 28,000</strong>
    (Rupees Twenty Eight Thousand only)</p>

  <p class="body-text">
    from <span class="fill">Priya Menon</span> being the rent for the month of
    <span class="fill">May 2026</span> in respect of the premises at
    <span class="fill">Flat 3B, Sunbeam Residency, 14 Bannerghatta Road, Bengaluru 560076</span>,
    paid by bank transfer on 05 May 2026, reference UTR 401225884471.
  </p>

  <dl>
    <dt>Landlord</dt><dd>Rajesh Kumar Nair</dd>
    <dt>Tenant</dt><dd>Priya Menon</dd>
    <dt>Period</dt><dd>01 May 2026 to 31 May 2026</dd>
    <dt>Mode</dt><dd>NEFT</dd>
    <dt>Landlord PAN</dt><dd>AFTPN4471K</dd>
    <dt>Agreement</dt><dd>Dated 01 April 2025</dd>
  </dl>

  <p class="pan-note">
    The landlord's PAN is stated because an employer requires it before allowing a
    house rent allowance exemption where annual rent exceeds one lakh rupees.
    A receipt without it will be rejected at payroll verification, so it belongs
    on the document rather than in a covering email.
  </p>

  <div class="sign">
    <div class="stamp">Revenue<br>stamp<br>if applicable</div>
    <div class="rule"></div><br>
    Signature of landlord
  </div>
</div>
</body>
</html>

The layout decision worth understanding

Set on a landscape A5, which is the shape a receipt book has always been. It is not an arbitrary choice: this document is often produced alongside handwritten ones and looking like the same species of thing is part of being accepted as one.

The mistake people make adapting it

Omitting the landlord's tax identification number because it feels like personal data that does not belong on a receipt. Without it the receipt is rejected at payroll verification, and the tenant has to go back and ask, which is a worse outcome for everyone.

Rendering it

The page box is declared in the template's own CSS as A5, so the size travels with the markup rather than living in the code that calls the renderer. A5 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.

bash
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": "A5" }
  }' \
  --output rent-receipt.pdf

Frequently 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 rent receipt is a A5 landscape 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.

Paste the template into the playground and get the PDF back. No signup, no key.