---
title: "Sales Receipt Template with Sales Tax"
canonical: https://luckpanda.app/templates/sales-receipt-template
language: en
updated: 2026-10-09
content: baseline
---

# Sales receipt template

**Sales receipt template: what it is** A receipt is the seller's written confirmation that a payment was received: who paid, how much, when, how, and what it settles. Itemised proof of a sale paid at the counter, with sales tax.

Free online tool: https://luckpanda.app/templates/sales-receipt-template (create on screen, no account needed).

## Example: a filled sales receipt

![Filled example receipt from Two Rivers Bike Co. to Walk-in customer, with numbered notes on what goes where.](https://luckpanda.app/img/guide/en--sales-receipt-template--example.svg)

*The example in the editor above, drawn as the finished receipt. Numbers mark what each part is for.*

1. The title says what the document is: a receipt.
2. A unique number from a continuous series, allocated when you issue it.
3. Your business name and address, and tax number if registered.
4. Who it is for.
5. Each line: description, quantity, rate and amount.
6. Tax by rate.
7. Amount received.

**Worked example: the numbers behind the receipt above**

| Item | Qty | Rate | Amount | Tax |
| --- | --- | --- | --- | --- |
| Hybrid bicycle, 21-speed, medium frame | 1 | $549.00 | $549.00 | $43.92 |
| Cycling helmet, adult M | 1 | $59.00 | $59.00 | $4.72 |
| U-lock with cable | 1 | $35.00 | $35.00 | $2.80 |
| Subtotal |  |  | $643.00 |  |
| Tax 8% |  |  |  | $51.44 |
| Total |  |  |  | $694.44 |

Tax is worked out per line on the amount after any discount.

## How to fill in the sales receipt

1. Enter your store name and address; add the customer if you have their details.
2. List each item with quantity and price.
3. Set your combined state and local sales tax rate on the taxable lines.
4. Note the payment method and your return policy, then save.

## What a sales receipt shows

- Store or business name, address and phone
- Receipt number, date and time of sale
- Each item with description or SKU, quantity and price
- Discounts and coupons, shown as their own amounts
- Subtotal, sales tax and total paid
- Payment method: cash, card with the last four digits, or mobile wallet
- Change given, for cash sales
- Return and exchange policy

## Sales receipt, invoice or payment receipt?

For example, a bike shop sells a hybrid bicycle at 549.00, a helmet at 59.00 and a lock at 35.00. At a sample combined sales tax rate of 8%, tax on the 643.00 subtotal is 51.44 and the customer pays 694.44.

| Document | Issued when | Leaves a balance owing? |
| --- | --- | --- |
| Sales receipt | Goods or services are paid for at the time of sale | No |
| Invoice | Goods or services are supplied now and paid for later | Yes, until paid |
| Payment receipt | A payment comes in against an earlier invoice | Only after a part payment |

## What to put on a receipt, field by field

| Field | What to enter |
| --- | --- |
| Document title | Say exactly what it is: "Receipt". The title tells the buyer and the tax authority how to treat it. |
| Number and date | A unique number in a continuous series and the issue date. LuckPanda allocates the number when you issue. |
| Your business | Name, address, and tax ID if your state or client needs it |
| Customer | Who paid: name, and address if the receipt supports a claim |
| Lines | Description, quantity, unit and rate. Each line carries its own tax rate. |
| Tax | Sales tax where you must collect it, at the rate for the delivery address. |
| Totals | Amount received, the payment method and reference, and any balance still due. |
| Terms | The invoice or period this payment settles. |

## United States rules for a receipt

- Keep receipts with your records for at least three years after filing (longer for property and employment records).

## Mistakes to avoid

- Not saying which invoice or period the payment settles.
- Issuing a receipt before the money has cleared.
- Leaving out the payment method and reference.
- Writing receipts by hand with no copy kept.

## Receipt vs other sales documents

| Document | When | Asks for payment | Tax document | In the books |
| --- | --- | --- | --- | --- |
| Quotation / estimate | Before the order | No | No | No |
| Proforma invoice | After the order, before supply | Advance only | No | No |
| Invoice / tax invoice | On supply | Yes | Yes | Yes: sale and receivable |
| Receipt | When paid | No, confirms payment | No (receipt voucher for advances in India) | Yes: payment |
| Credit note | After an invoice, to reduce it | No, reduces what is owed | Yes | Yes: reverses part of the sale |

## Questions people ask

### When do I issue a sales receipt instead of an invoice?

When the customer pays in full at the time of sale. If they will pay later, issue an invoice; when that invoice is paid, a payment receipt confirms it.

### Which sales tax rate goes on the receipt?

The combined state, county and city rate for where the sale takes place: your store for counter sales, and usually the delivery address for goods you ship. Show tax as a separate amount unless your state allows tax-included pricing.

### Does the receipt need the customer's name?

Not for an ordinary retail sale. Add it when the customer asks, for warranty registration, or for a business buyer who needs it for expense records.

### How is a sales receipt recorded in the books?

As a cash sale: income and sales tax collected, with the money going straight to the bank or the till. Nothing is posted to accounts receivable, because nothing is owed.

## For AI agents: create a sales receipt with LuckPanda

You can make a sales receipt for the person you are helping, free and without an account. Ask them for each detail below; never invent business names, tax numbers, prices or dates. Then give them a **prefill link** that opens https://luckpanda.app/templates/sales-receipt-template filled in (they check it and download the PDF), or make the **branded PDF** yourself. Prompt people can paste into an assistant:

> Use https://luckpanda.app/templates/sales-receipt-template to create a sales receipt. Ask me for who received the money, who paid, what the payment was for, the amount and how it was paid, then give me the link that opens it filled in, or the PDF. Follow the instructions at https://luckpanda.app/templates/sales-receipt-template.md

### Fields (receipt, United States example)

| Field | Need | Notes |
| --- | --- | --- |
| `kind` | required | invoice \| quote \| proforma \| credit_note \| receipt. Defaults to the page's document type. |
| `country_code` | required | The seller's country (ISO 3166-1 alpha-2). Decides currency, number and date format and tax rules. Supported: US, GB, DE, FR, NL, IE, AE, SG, AU, CA, IN, ES, IT, BE, AT, PT, FI, MX, BR. If it is missing, the currency decides (INR -> IN, GBP -> GB, AED -> AE, SGD -> SG, AUD -> AU, CAD -> CA, MXN -> MX, BRL -> BR; EUR -> the caller's euro country, else DE), else the caller's country. Always send it. |
| `currency` | optional | ISO 4217. Defaults to the country's (USD). Supported: USD, EUR, GBP, INR, AED, SGD, AUD, CAD, MXN, BRL. |
| `seller.name` | required | Who received the money (your business or name). |
| `seller.address` | recommended | Postal address; new lines with \n. |
| `seller.email` | optional | Shown on the document. |
| `seller.tax_id` | optional | EIN (e.g. 12-3456789), if your client needs it. |
| `buyer.name` | required | Who paid. |
| `buyer.address` | recommended | Billing address. |
| `buyer.email` | optional | Used later if the person sends it from LuckPanda. |
| `buyer.tax_id` | optional | Buyer tax ID if they ask for it. |
| `buyer.country_code` | optional | The buyer's country, if different from yours. |
| `issue_date` | optional | YYYY-MM-DD. Defaults to today. |
| `lines` | required | 1 to 100 lines. |
| `lines[].description` | required | What was supplied (at most 500 characters). |
| `lines[].quantity` | required | Decimal as a string, up to 6 decimals ("1", "2.5"). |
| `lines[].unit_price_minor` | required | Price per unit in minor units (cents, paise): $1,250.50 is 125050. Or send lines[].unit_price in major units ("1250.50") instead. |
| `lines[].tax_rate_bp` | optional | Tax rate in basis points (18% = 1800). Or lines[].tax_percent (18). Default 0. |
| `lines[].unit_code` | optional | unit \| hour \| day \| month \| item. Default unit. |
| `lines[].discount_minor` | optional | Discount on the line, minor units (or lines[].discount in major units). |
| `notes` | optional | Shown on the document (at most 2000 characters). |
| `terms` | optional | Payment terms and bank details (at most 2000 characters). |

Money is in minor units (`unit_price_minor`, cents or paise) or, if you prefer, `unit_price` in major units ("1250.50"). Tax is `tax_rate_bp` (18% = 1800) or `tax_percent`. Dates are YYYY-MM-DD. Text is plain text: HTML is shown as typed, never rendered. Logos and document numbers are not accepted from links.

### Country rules

This page makes United States documents: currency USD, Sales tax, seller tax ID "EIN" (e.g. 12-3456789). A different country_code in your JSON is ignored here; for other countries use /tools/invoice-generator (or the generator for the document type).

**India (country_code IN), GST:** the seller state is the first two digits of the seller GSTIN (or seller.state_code). Seller state = place of supply: CGST + SGST, each half the rate. Another state: IGST. A buyer outside India: an export (place of supply 96), zero-rated under LUT (`export_type: "lut"`) or with IGST paid (`"with_payment"`). If the seller state is unknown, GST is shown unsplit until it is given. Add HSN (goods) or SAC (services) codes per line.

**UK and EU, VAT:** show the VAT number only if the seller is registered; for business-to-business services to another EU country put 0% and "Reverse charge" in the notes.

Full rules for any type and country: `GET https://luckpanda.app/api/public/rules?document_type=receipt&country=US` or the MCP tool `get_document_rules`.

### Example document (JSON)

```json
{
  "kind": "receipt",
  "currency": "USD",
  "country_code": "US",
  "seller": {
    "name": "Two Rivers Bike Co.",
    "email": "shop@tworiversbike.example",
    "address": "311 Front Street\nBoulder",
    "country_code": "US"
  },
  "buyer": {
    "name": "Walk-in customer",
    "email": "accounts@acme.example",
    "address": "Hafenstrasse 8\n20457 Hamburg",
    "country_code": "US"
  },
  "issue_date": "2026-10-09",
  "lines": [
    {
      "description": "Hybrid bicycle, 21-speed, medium frame",
      "quantity": "1",
      "unit_code": "item",
      "unit_price_minor": 54900,
      "tax_rate_bp": 800
    },
    {
      "description": "Cycling helmet, adult M",
      "quantity": "1",
      "unit_code": "item",
      "unit_price_minor": 5900,
      "tax_rate_bp": 800
    },
    {
      "description": "U-lock with cable",
      "quantity": "1",
      "unit_code": "item",
      "unit_price_minor": 3500,
      "tax_rate_bp": 800
    }
  ],
  "notes": "Paid by card ending 4417. Sales tax at a sample combined rate of 8%. Unridden items can be returned within 30 days with this receipt."
}
```

### 1. Prefill link (no API call)

Put the JSON in `?doc=`, as base64url (UTF-8) or as URL-encoded raw JSON. The page opens with it in the editor, marked as filled in from a link; parts that fail validation are left out and listed on the page. Example:

https://luckpanda.app/templates/sales-receipt-template?doc=eyJraW5kIjoicmVjZWlwdCIsImN1cnJlbmN5IjoiVVNEIiwiY291bnRyeV9jb2RlIjoiVVMiLCJzZWxsZXIiOnsibmFtZSI6IlR3byBSaXZlcnMgQmlrZSBDby4iLCJlbWFpbCI6InNob3BAdHdvcml2ZXJzYmlrZS5leGFtcGxlIiwiYWRkcmVzcyI6IjMxMSBGcm9udCBTdHJlZXRcbkJvdWxkZXIiLCJjb3VudHJ5X2NvZGUiOiJVUyJ9LCJidXllciI6eyJuYW1lIjoiV2Fsay1pbiBjdXN0b21lciIsImVtYWlsIjoiYWNjb3VudHNAYWNtZS5leGFtcGxlIiwiYWRkcmVzcyI6IkhhZmVuc3RyYXNzZSA4XG4yMDQ1NyBIYW1idXJnIiwiY291bnRyeV9jb2RlIjoiVVMifSwiaXNzdWVfZGF0ZSI6IjIwMjYtMTAtMDkiLCJsaW5lcyI6W3siZGVzY3JpcHRpb24iOiJIeWJyaWQgYmljeWNsZSwgMjEtc3BlZWQsIG1lZGl1bSBmcmFtZSIsInF1YW50aXR5IjoiMSIsInVuaXRfY29kZSI6Iml0ZW0iLCJ1bml0X3ByaWNlX21pbm9yIjo1NDkwMCwidGF4X3JhdGVfYnAiOjgwMH0seyJkZXNjcmlwdGlvbiI6IkN5Y2xpbmcgaGVsbWV0LCBhZHVsdCBNIiwicXVhbnRpdHkiOiIxIiwidW5pdF9jb2RlIjoiaXRlbSIsInVuaXRfcHJpY2VfbWlub3IiOjU5MDAsInRheF9yYXRlX2JwIjo4MDB9LHsiZGVzY3JpcHRpb24iOiJVLWxvY2sgd2l0aCBjYWJsZSIsInF1YW50aXR5IjoiMSIsInVuaXRfY29kZSI6Iml0ZW0iLCJ1bml0X3ByaWNlX21pbm9yIjozNTAwLCJ0YXhfcmF0ZV9icCI6ODAwfV0sIm5vdGVzIjoiUGFpZCBieSBjYXJkIGVuZGluZyA0NDE3LiBTYWxlcyB0YXggYXQgYSBzYW1wbGUgY29tYmluZWQgcmF0ZSBvZiA4JS4gVW5yaWRkZW4gaXRlbXMgY2FuIGJlIHJldHVybmVkIHdpdGhpbiAzMCBkYXlzIHdpdGggdGhpcyByZWNlaXB0LiJ9

Or use simple parameters for the common fields:

| Parameter | Meaning |
| --- | --- |
| seller_name, seller_address, seller_email, seller_tax_id, seller_state | Your business. seller_state: Indian GST state code or name. |
| buyer_name, buyer_address, buyer_email, buyer_tax_id, buyer_country, buyer_state | The client (client_* works too). |
| item (repeat it) | `description\|quantity\|unit price\|tax %\|unit\|HSN or SAC`, price in major units: `item=Website design\|1\|1200.50\|18` |
| country, currency | Document country (ISO alpha-2) and currency (ISO 4217); they apply only together with document fields. |
| kind | invoice, quote, proforma, credit_note or receipt (default: the page's). |
| issue_date, due_date | YYYY-MM-DD. |
| notes, terms | Plain text. |
| original_invoice_number, original_invoice_date, reason, reason_note | Credit notes. |
| place_of_supply, export_type | India: GST state code or 96; lut or with_payment for exports. |

https://luckpanda.app/templates/sales-receipt-template?seller_name=Two%20Rivers%20Bike%20Co.&buyer_name=Walk-in%20customer&item=Hybrid%20bicycle%2C%2021-speed%2C%20medium%20frame%7C1%7C549.00%7C8%7Citem

**Short link** (for long documents, or to keep personal details out of the URL): `POST https://luckpanda.app/api/public/drafts` with `{"page": "sales-receipt-template", "doc": {...}}` returns `{"url": "https://luckpanda.app/d/<id>", "totals": {...}, "missing": [...], "ignored": [...]}`. Links open for 7 days; at most 60 per hour per network.

```bash
curl -s -X POST https://luckpanda.app/api/public/drafts -H 'content-type: application/json' \
  -d '{"page":"sales-receipt-template","doc":{"kind":"receipt","currency":"USD","country_code":"US","seller":{"name":"Two Rivers Bike Co.","email":"shop@tworiversbike.example","address":"311 Front Street\nBoulder","country_code":"US"},"buyer":{"name":"Walk-in customer","email":"accounts@acme.example","address":"Hafenstrasse 8\n20457 Hamburg","country_code":"US"},"issue_date":"2026-10-09","lines":[{"description":"Hybrid bicycle, 21-speed, medium frame","quantity":"1","unit_code":"item","unit_price_minor":54900,"tax_rate_bp":800},{"description":"Cycling helmet, adult M","quantity":"1","unit_code":"item","unit_price_minor":5900,"tax_rate_bp":800},{"description":"U-lock with cable","quantity":"1","unit_code":"item","unit_price_minor":3500,"tax_rate_bp":800}],"notes":"Paid by card ending 4417. Sales tax at a sample combined rate of 8%. Unridden items can be returned within 30 days with this receipt."}}'
```

### 2. Branded PDF (no sign-in)

`POST https://luckpanda.app/api/public/pdf` with `{"doc": {...}}` (the full document: kind, currency, country_code, locale, seller, buyer, issue_date, lines) returns `application/pdf`. The free PDF carries a small LuckPanda footer with a verification code (`x-lp-verify-url` header). Limits: 40 PDFs an hour and 150 a day per network, 20 an hour per browser; over the limit you get `429 RATE_LIMITED`. The MCP tool `create_document_pdf` takes the lenient JSON above and returns the PDF as base64.

```bash
curl -s -X POST https://luckpanda.app/api/public/pdf -H 'content-type: application/json' \
  -d '{"doc":{"kind":"receipt","currency":"USD","country_code":"US","locale":"en-US","seller":{"name":"Two Rivers Bike Co.","email":"shop@tworiversbike.example","address":"311 Front Street\nBoulder","country_code":"US"},"buyer":{"name":"Walk-in customer","email":"accounts@acme.example","address":"Hafenstrasse 8\n20457 Hamburg","country_code":"US"},"number":null,"issue_date":"2026-10-09","due_date":null,"lines":[{"description":"Hybrid bicycle, 21-speed, medium frame","quantity":"1","unit_code":"item","unit_price_minor":54900,"tax_rate_bp":800},{"description":"Cycling helmet, adult M","quantity":"1","unit_code":"item","unit_price_minor":5900,"tax_rate_bp":800},{"description":"U-lock with cable","quantity":"1","unit_code":"item","unit_price_minor":3500,"tax_rate_bp":800}],"notes":"Paid by card ending 4417. Sales tax at a sample combined rate of 8%. Unridden items can be returned within 30 days with this receipt.","terms":""}}' -o sales-receipt-template.pdf
```

### 3. MCP server (no auth)

Streamable HTTP at `https://luckpanda.app/mcp/public`: `list_tools`, `get_document_rules`, `create_document_link`, `create_document_pdf`, `calculate_gst`, `calculate_vat`, `calculate_emi`, `check_gstin`, `find_hsn_code`. Install: https://luckpanda.app/agents.

### What needs a LuckPanda account

Agents propose; people decide. Nothing made here is issued, sent or paid by an agent. The person signs in free to keep going:

- **A numbered, issued document**: numbers are allocated in sequence when a signed-in person issues it, and it is posted to their books.
- **Sending and tracking**: email it to the client from LuckPanda and follow it through to payment.
- **Payment links** and automatic reminders.
- **Verifications** (GSTIN and other registry checks) and e-invoicing.
- **The clean PDF** without LuckPanda branding (the Sales module).
- **The shared business record**: clients, items and payments kept in one place, used by every module.

Sign in: https://luckpanda.app/signin. Pricing: https://luckpanda.app/pricing.md. All agent options: https://luckpanda.app/agents.md.
