Rent Receipt and Rent Invoice API
Yes. The LandLens rent document API makes monthly rent receipts (the tenant's proof for an HRA claim, with the landlord's PAN and an optional revenue stamp box) or rent invoices (the landlord's bill, with due dates and 18% GST split into CGST and SGST when the let is commercial and a GSTIN is given). One call covers up to 24 months and returns a PDF with one page per month, its download link and the receipt or invoice numbers. It costs nothing.
https://verified.realestate/api/v1/tools/rent_document- Price
- Free
- Source
- Generated from the details you send
- Coverage
- Any rented property in India
- Answers in
- Usually under a second
Example
curl -X POST https://verified.realestate/api/v1/tools/rent_document \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"receipt","landlord_name":"R. Kumar","tenant_name":"S. Priya","property_address":"12, 3rd Cross Street, Sholinganallur, Chennai 600119","rent_amount":18000,"period_from":"2026-04","period_to":"2026-06","payment_mode":"UPI","landlord_pan":"ABCDE1234F"}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"document_type": "Rent receipt",
"batch_id": "VRR-KJHYEP0C",
"count": 3,
"period": "April 2026 to June 2026",
"landlord_name": "R. Kumar",
"landlord_pan": "ABCDE1234F",
"tenant_name": "S. Priya",
"property_address": "12, 3rd Cross Street, Sholinganallur, Chennai 600119",
"payment_mode": "UPI",
"download_url": "https://verified.realestate/dashboard/utility/rent-receipt-generator/download/VRR-KJHYEP0C",
"months": [
{ "no": "VRR-KJHYEP0C/01", "month": "April 2026", "date": "30 April 2026", "amount": "18,000" },
{ "no": "VRR-KJHYEP0C/02", "month": "May 2026", "date": "31 May 2026", "amount": "18,000" },
{ "no": "VRR-KJHYEP0C/03", "month": "June 2026", "date": "30 June 2026", "amount": "18,000" }
],
"include_revenue_stamp": false,
"note": "The PDF holds one receipt per month, ready to sign. Remind the user: the landlord PAN is mandatory on the HRA claim once annual rent crosses Rs 1,00,000, and cash rent above Rs 5,000 per receipt should carry a Re 1 revenue stamp. Give the download link and the receipt count."
},
"credits_charged": 0
}
A real answer from the API for made-up names, run on our test server; the link's host is shown as the live site.
What it returns
One call, one PDF. found is false (status not_found) when the details are refused, with the reason in error and nothing made.
| Field | What it holds |
|---|---|
document_type | Rent receipt or Rent invoice. |
batch_id, count, period | The batch number, how many monthly pages it holds, and the months it covers. |
download_url | The PDF. It opens without signing in, for anyone holding the link. |
months[] | One line per month: no (the receipt or invoice number), month, date, due_date (invoices) and amount. |
landlord_name, landlord_pan, tenant_name, property_address, payment_mode | The details printed on every page, as accepted. |
include_revenue_stamp | Receipts: whether the Re 1 revenue stamp box is printed. |
property_type, landlord_gstin, gst_rate, monthly_rent, monthly_cgst, monthly_sgst, monthly_gst, monthly_total | Invoices: the taxable rent and the GST split for one month. gst_not_applied_because says why there is no GST (residential, or no_gstin). |
note | What to tell the reader about PAN and revenue stamp rules, or the GST basis. |
Ways to call it
type picks the document.
Rent receipts
For the tenant: proof of rent paid, for an HRA claim. Add landlord_pan, and include_revenue_stamp for cash rent.
{"type": "receipt","landlord_name": "R. Kumar","tenant_name": "S. Priya","property_address": "12, 3rd Cross Street, Sholinganallur, Chennai 600119","rent_amount": 18000,"period_from": "2026-04","period_to": "2027-03"}
Rent invoices
For the landlord: a bill for each month with a due date. landlord_address and property_type are required; landlord_gstin adds GST on a commercial let.
{"type": "invoice","landlord_name": "R. Kumar","landlord_address": "4, Lake View Road, Velachery, Chennai 600042","tenant_name": "Example Traders","property_address": "Shop 2, 18 OMR, Sholinganallur, Chennai 600119","property_type": "commercial","landlord_gstin": "33ABCDE1234F1Z5","rent_amount": 45000,"period_from": "2026-04","period_to": "2026-09"}
Inputs
The JSON body of the POST is the arguments. The same rent is billed for every month of the period. Months are YYYY-MM, and both ends count: 2026-04 to 2027-03 is twelve months.
| Argument | Type | What to send |
|---|---|---|
typerequired |
string: receipt, invoice | receipt = tenant HRA proof, invoice = landlord billing (GST aware) |
landlord_namerequired |
string | |
tenant_namerequired |
string | |
property_addressrequired |
string | Full address of the let property |
rent_amountrequired |
number | Monthly rent in rupees (the same amount is billed every month of the period) |
period_fromrequired |
string | First month, YYYY-MM (e.g. 2026-04). "April 2026" is accepted too. |
period_torequired |
string | Last month, YYYY-MM. Max 24 months from period_from. |
payment_mode |
string: Cash, UPI, Bank Transfer, Cheque | |
landlord_pan |
string | Landlord PAN, format ABCDE1234F. Needed on receipts when annual rent crosses Rs 1,00,000. |
include_revenue_stamp |
boolean | receipt only: print the Re 1 revenue stamp box (cash rent above Rs 5,000). |
landlord_address |
string | invoice only, REQUIRED: the landlord billing address. |
property_type |
string: residential, commercial | invoice only, REQUIRED. commercial + a GSTIN triggers the 18% GST lines. |
landlord_gstin |
string | invoice only: 15 character GSTIN. Only then is GST charged. |
due_day |
integer | invoice only: day of month the rent falls due, 1 to 28. Defaults to 5. |
signature_text |
string | Optional typed signature name to print in the signature box. |
Code
Set LANDLENS_KEY to your key. In an AI app, connect https://verified.realestate/mcp once and ask in plain words instead. In Postman, download this API's collection, import it (File, Import) and set apiKey.
curl -X POST https://verified.realestate/api/v1/tools/rent_document \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"receipt","landlord_name":"R. Kumar","tenant_name":"S. Priya","property_address":"12, 3rd Cross Street, Sholinganallur, Chennai 600119","rent_amount":18000,"period_from":"2026-04","period_to":"2026-06","payment_mode":"UPI","landlord_pan":"ABCDE1234F"}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/rent_document",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"type": "receipt",
"landlord_name": "R. Kumar",
"tenant_name": "S. Priya",
"property_address": "12, 3rd Cross Street, Sholinganallur, Chennai 600119",
"rent_amount": 18000,
"period_from": "2026-04",
"period_to": "2026-06",
"payment_mode": "UPI",
"landlord_pan": "ABCDE1234F"
},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/rent_document", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "receipt",
"landlord_name": "R. Kumar",
"tenant_name": "S. Priya",
"property_address": "12, 3rd Cross Street, Sholinganallur, Chennai 600119",
"rent_amount": 18000,
"period_from": "2026-04",
"period_to": "2026-06",
"payment_mode": "UPI",
"landlord_pan": "ABCDE1234F"
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
Make my rent receipts for April 2026 to March 2027. Rent is 18,000 a month paid by UPI to R. Kumar, PAN ABCDE1234F, for 12, 3rd Cross Street, Sholinganallur. I am S. Priya.
Your AI fills in the details, makes the twelve receipts and hands you the PDF link. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The PDF was made. download_url opens it. |
not_found | The details were refused (a missing field, more than 24 months, a malformed PAN or GSTIN, an invoice without landlord_address or property_type), with the reason in error. Nothing is made. |
invalid_args | A required input is missing from the call. |
Where the data comes from
No register is read. The document is built from the landlord, tenant, property, rent and period you send.
Any residential or commercial let. Receipts follow the usual HRA proof format; invoices apply GST only when the property is commercial and the landlord's GSTIN is given.
Not applicable. The rules applied: GST at 18% (CGST 9% and SGST 9%) on commercial rent with a GSTIN, none on residential rent.
Each month in the period gets its own numbered page, dated the last day of that month for a receipt, and dated with a due date for an invoice. A PAN or GSTIN that is given is checked against its format before anything is made, so a typo cannot turn a GST invoice into one without GST.
Who uses it
HR and payroll platforms
Let employees make the year's rent receipts for their HRA declaration inside the payroll app.
Landlords and property managers
Bill each tenant monthly with numbered invoices, with GST worked out on commercial lets.
AI assistants
Answer "make my rent receipts" in one call and hand back the PDF.
Limits and good practice
- At most 24 months in one call. Run a longer period as two calls.
- The same rent for every month. A rent change mid-period is two calls.
- GST is applied only to a commercial let with a valid GSTIN. Residential rent is invoiced without GST.
- The download link opens for anyone who has it. Share it as you would the receipts.
- The documents are formatted proofs of payment you declare. They do not check that rent was paid.
Pricing
Rent receipts and invoices cost nothing. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
Free calls have an hourly and daily allowance. For more than that, or a platform built on these registers, we set up limits and a plan to match.
Questions
Is there an API to generate rent receipts for HRA?
Yes, this one. Send the landlord, tenant, address, rent and months, and you get a PDF with one receipt per month and the landlord's PAN printed on each.
When does the landlord's PAN have to be on the receipt?
When the annual rent claimed for HRA crosses Rs 1,00,000. Below that it is optional, and the API makes the receipts either way.
Does the rent invoice add GST?
Only for a commercial let when the landlord's GSTIN is given: 18%, shown as CGST 9% and SGST 9%. Residential rent carries no GST.
Can I add a revenue stamp?
Yes, set include_revenue_stamp on a receipt. It prints the Re 1 stamp box, which cash rent above Rs 5,000 a receipt should carry.
How long does the download link work?
The link stays live; the PDF is drawn again each time it is opened.
Updated 22 Oct 2026 · OpenAPI description