---
title: "Construction Invoice Template with Progress Billing"
canonical: https://luckpanda.app/templates/construction-invoice-template
language: en
updated: 2026-10-09
content: full
---

# Construction invoice template

**How do you invoice a construction job?** Most construction jobs are invoiced in progress draws. Each invoice bills the share of every line in the schedule of values completed since the last draw, adds approved change orders and, if the contract allows, materials stored on site, then subtracts retainage and previous payments to show the amount due now. A lien waiver for the payment usually goes with it.

- Bill against a schedule of values that adds up to the contract sum.
- Show retainage held this draw and to date; many states cap it at 5 to 10%.
- Bill approved change orders on their own lines, never folded into a base item.
- Sales tax depends on the state and on whether materials are stated separately from labor.

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

## How construction billing works

A small repair is billed once, when it is done. Anything longer is billed in **draws**: a deposit or mobilization payment, then an invoice every month or at each milestone for the work completed so far. The contract fixes the price; the invoices spread it over the job in proportion to progress.

Three numbers run through every progress invoice. The **contract sum** (the original price plus approved change orders), **work completed to date** (measured against a schedule of values), and **retainage**, the share of each payment the owner holds back until the job is substantially complete. The amount due is work completed to date, less retainage, less what has already been paid.

| Billing method | How each invoice is worked out | Typical use |
| --- | --- | --- |
| Progress billing (percent complete) | Percent of each schedule-of-values line completed this period | Remodels, new homes, commercial jobs |
| Milestone billing | A fixed amount when a stage is reached: foundation, dry-in, drywall | Residential contracts and lender draws |
| Time and materials | Hours at the labor rate plus materials at cost or with markup | Repairs, undefined scope, service work |
| Cost plus fee | Actual costs plus a fixed fee or percentage | Custom homes, owner-controlled budgets |
| Lump sum, single invoice | The whole price on completion, sometimes with a deposit | Short, small jobs |

## How to fill in this construction invoice template

1. **Add your business and the owner** Enter your legal name, address and license number, and the owner or general contractor who pays you.
2. **Identify the project and draw** In the notes, give the job number, project name, site address, draw number and the date work is measured to.
3. **Bill this period's progress** Add one line per schedule-of-values item billed this period, with the percent complete in the description and the amount earned as the price. Add approved change orders and any allowed stored materials as their own lines.
4. **Set tax for your state** Leave tax at zero on a lump-sum job where you pay tax on materials when buying. On a separated contract in a state that requires it, put materials on their own line and set the rate on that line only.
5. **State retainage, waiver and terms** In the terms, give the retainage rate, the amount withheld this draw, the due date and the lien waiver that goes with the invoice.
6. **Sign in to issue** Sign in to number the draw, keep every draw on the job together and record each payment as it clears. Issuing and sending need the Sales module.

## Example: draw 2 on a kitchen and bath remodel

Granite Ridge Builders in Denver has a $48,000.00 contract to remodel Thomas and Elena Wright's kitchen and bath, billed monthly against a schedule of values with 10% retainage. Draw 1 billed 60% of demolition and framing. By the end of September framing is finished, plumbing rough-in is half done and the owners have approved one change order for an extra window.

![Example construction progress invoice GRB-24118-02 from Granite Ridge Builders LLC, Denver, to Thomas and Elena Wright for draw 2 of a kitchen and bath remodel: framing completed, plumbing rough-in at 50%, change order 1 for a window, gross $11,400.00, with 10% retainage and a conditional lien waiver noted.](https://luckpanda.app/img/guide/en--construction-invoice-template--progress-invoice.svg)

*A progress invoice for draw 2. It bills only the work completed this period; retainage and the lien waiver are stated under the lines. The numbers match the worked example and pay application below.*

1. **Invoice number** built from the job number and draw, so every draw on the job sorts together.
2. **Application number and period**: which draw this is and the date work is measured to.
3. **Contractor** name, address and **license number** where your state or city requires it on contracts and bids.
4. **Project and site address**: needed for lien rights and for the owner's lender.
5. **Schedule-of-values lines** billed for this period only, with the percent complete; **change orders** on their own lines with the approval date.
6. **Gross amount** earned this period, before retainage.
7. **Retainage and net due**, plus the **lien waiver** that accompanies the payment request.

**The numbers: draw 2, gross amount for the period**

| Item | Qty | Rate | Amount | Tax |
| --- | --- | --- | --- | --- |
| Draw 2, demolition and framing: now 100% complete (60% billed on draw 1) | 1 | $4,800.00 | $4,800.00 | $0.00 |
| Draw 2, plumbing rough-in: 50% complete | 1 | $4,750.00 | $4,750.00 | $0.00 |
| Change order 1: additional kitchen window, approved 12 September | 1 | $1,850.00 | $1,850.00 | $0.00 |
| Subtotal |  |  | $11,400.00 | $0.00 |
| Total |  |  |  | $11,400.00 |

The gross amount earned this period is $11,400.00. The owners withhold 10% retainage ($1,140.00), so $10,260.00 is payable now. Colorado treats contractors on a lump-sum job as the consumers of their materials (they pay sales or use tax when they buy), so no sales tax is added to the invoice.

### The same draw as a pay application

Commercial owners, lenders and architects usually want the draw on a **pay application**: a summary sheet with the contract figures and a continuation sheet with every schedule-of-values line. The AIA G702 and G703 forms are the best-known versions; you can lay out the same information yourself. On the G703 the columns run from the item and its scheduled value, through work completed on previous applications, this period and materials presently stored, to the total completed and stored to date, the percent complete, the balance to finish and, where retainage varies by line, the retainage. For draw 2 the continuation sheet looks like this:

Continuation sheet (schedule of values), application 2, period to 30 September 2026

| Item | Scheduled value | Previous | This period | Stored | To date (%) | Balance to finish |
| --- | --- | --- | --- | --- | --- | --- |
| 1 Demolition, framing | $12,000.00 | $7,200.00 | $4,800.00 | $0.00 | $12,000.00 (100%) | $0.00 |
| 2 Plumbing rough-in | $9,500.00 | $0.00 | $4,750.00 | $0.00 | $4,750.00 (50%) | $4,750.00 |
| 3 Electrical rough-in | $7,000.00 | $0.00 | $0.00 | $0.00 | $0.00 (0%) | $7,000.00 |
| 4 Cabinets, countertops | $11,500.00 | $0.00 | $0.00 | $0.00 | $0.00 (0%) | $11,500.00 |
| 5 Tile and finishes | $8,000.00 | $0.00 | $0.00 | $0.00 | $0.00 (0%) | $8,000.00 |
| CO 1 Kitchen window | $1,850.00 | $0.00 | $1,850.00 | $0.00 | $1,850.00 (100%) | $0.00 |
| **Totals** | **$49,850.00** | **$7,200.00** | **$11,400.00** | **$0.00** | **$18,600.00 (37.3%)** | **$31,250.00** |

Summary sheet, application 2

| Line | Amount |
| --- | --- |
| 1. Original contract sum | $48,000.00 |
| 2. Net change by change orders | $1,850.00 |
| 3. Contract sum to date (1 + 2) | $49,850.00 |
| 4. Total completed and stored to date | $18,600.00 |
| 5. Retainage, 10% of completed work | $1,860.00 |
| 6. Total earned less retainage (4 − 5) | $16,740.00 |
| 7. Less previous payments (draw 1: $7,200.00 less $720.00 retainage) | $6,480.00 |
| 8. Current payment due (6 − 7) | $10,260.00 |
| 9. Balance to finish, including retainage (3 − 6) | $33,110.00 |

Both routes arrive at **$10,260.00**. The pay application is longer, but it shows the owner the whole job at once: how much of each line is done, how much retainage is held ($1,860.00 to date) and what is left to bill.

## What goes on a construction invoice, field by field

| Field | What to enter | Why |
| --- | --- | --- |
| Contractor | Legal business name, address, phone, license number | Several states require the license number on contracts and bids; owners check it |
| Owner or client | Name and billing address; the general contractor if you are a subcontractor | The party that owes the money under the contract |
| Project | Project name, job number, site address, contract date | Lien notices and waivers identify the property |
| Invoice or application number | Job number plus draw number, e.g. GRB-24118-02 | Keeps draws in order and avoids double billing |
| Period | The date work is measured to | Fixes what "this period" means |
| Contract sum | Original sum, approved change orders, revised sum | Shows the invoice stays within the agreed price |
| Lines | Each schedule-of-values item: scheduled value, percent complete, amount this period | The owner or architect checks progress line by line |
| Change orders | Number, description, approval date, amount | Unapproved changes are disputes, not invoice lines |
| Stored materials | Materials delivered but not yet installed, with location | Billable only if the contract allows it |
| Retainage | Rate, amount this period, total held to date | Tracks what is owed at completion |
| Previous payments | Total paid on earlier draws | Gives the current amount due |
| Sales tax | Only where your state requires it on this type of contract | Depends on lump-sum or separated contract and the state |
| Terms and waiver | Due date, late-payment terms, lien waiver enclosed | Owners and lenders often require a waiver before paying |

## Retainage: how much can be held and when it is released

Retainage (or retention) protects the owner against unfinished or defective work. It is set by the contract, usually 5 to 10% of each payment, and released at substantial completion or final acceptance, sometimes reduced once the job is half done. Many states cap it, especially on public work, and some now cap it on private jobs too.

| Where | Cap | Source |
| --- | --- | --- |
| Federal contracts | Full payment if progress is satisfactory; up to 10% may be retained only while it is not | FAR 52.232-5(e) |
| California public works | 5% of each payment and of the contract price, with narrow exceptions | Public Contract Code § 7201 |
| California private works | 5% for contracts entered into from 1 January 2026; small residential projects excluded | Civil Code § 8811 |
| Texas public works | 10%, or 5% on contracts of $5 million or more | Government Code § 2252.032 |
| New York municipal public works | 5% of each progress payment | General Municipal Law § 106-b |

On the invoice, show retainage **this period** and **to date**, every time. When it is released, issue a separate invoice for the retainage held, with a final lien waiver.

> **Subcontractors** A general contractor usually holds back from its subcontractors the same percentage the owner holds from it, and several states forbid holding back more. A subcontractor's invoice to the general contractor follows the same layout, with the general contractor as the client.

## Lien waivers: conditional, unconditional, progress and final

A mechanics' lien lets an unpaid contractor or supplier claim against the property itself. Owners and lenders protect themselves by asking for a **lien waiver** with every payment: the contractor gives up its lien rights for the amount paid. There are four kinds.

| Waiver | When to sign it | Effect |
| --- | --- | --- |
| Conditional, progress payment | With the draw request, before you are paid | Waives lien rights for this draw only once the payment actually clears |
| Unconditional, progress payment | After the draw payment has cleared | Waives lien rights for the amount received, with no condition |
| Conditional, final payment | With the final invoice, including retainage | Waives all lien rights once the final payment clears |
| Unconditional, final payment | After the final payment has cleared | Waives all lien rights on the job |

Never sign an unconditional waiver before the money is in your account. Some states prescribe the exact wording, and a waiver that does not substantially follow it is unenforceable: California (Civil Code §§ 8132 to 8138), Texas (Property Code § 53.284) and Arizona (A.R.S. § 33-1008) each set out all four forms, and Georgia (O.C.G.A. § 44-14-366) sets out interim and final forms. Use your state's form and refer to it in the invoice terms.

## Change orders and stored materials

### Change orders

A change order is a signed amendment to the contract that changes the scope, the price or the schedule. Bill it only once it is approved, on its own line with its number and approval date, and add it to the contract sum, as change order 1 does above (contract sum to date $49,850.00). Work done on a verbal instruction without a signed change order is the most common source of construction billing disputes; if the contract requires written approval, you may not be able to collect it.

### Materials stored on site

Many contracts let the contractor bill for materials delivered but not yet installed, so it is not financing the owner's cabinets for weeks. Standard contract terms generally allow it for materials suitably stored at the site, and for materials stored elsewhere only with the owner's advance approval, with proof of title and insurance. On the continuation sheet they go in the stored-materials column and move to "this period" when installed.

**Draw 3: electrical complete, plumbing complete, cabinets delivered and stored**

| Item | Qty | Rate | Amount | Tax |
| --- | --- | --- | --- | --- |
| Electrical rough-in: 100% complete | 1 | $7,000.00 | $7,000.00 | $0.00 |
| Plumbing rough-in: remaining 50% | 1 | $4,750.00 | $4,750.00 | $0.00 |
| Stored materials: kitchen cabinets delivered 28 Oct, stored in garage, invoice and insurance certificate attached | 1 | $6,200.00 | $6,200.00 | $0.00 |
| Subtotal |  |  | $17,950.00 | $0.00 |
| Total |  |  |  | $17,950.00 |

Draw 3 is $17,950.00 gross. Retainage of 10% is $1,795.00, leaving $16,155.00 due. When the cabinets are installed on draw 4, their $6,200.00 moves from stored materials to work completed; it is not billed again.

## Sales tax on construction invoices: materials vs labor

There is no federal sales tax, and states treat construction very differently. The common pattern: on a **lump-sum** contract the contractor is the consumer of the materials and pays sales tax when buying them, so it charges no sales tax to the owner. On a **separated** (time-and-materials) contract the contractor may be treated as selling the materials, collects tax on them and buys them tax-free for resale. Labor is often, but not always, untaxed.

| State | Rule in short | What the invoice shows |
| --- | --- | --- |
| Colorado | Lump-sum: contractor pays tax on materials when buying. Time-and-materials with materials and labor separately stated: contractor collects tax on the materials charge, not on labor | Lump sum: no sales tax line. T&M: tax on the materials line only |
| California | Contractors are consumers of materials they furnish and install, and retailers of fixtures; separately stating materials does not turn a lump-sum contract into a time-and-material one | Lump sum: no tax line. T&M: tax on fixtures and separately priced materials |
| Texas | Lump-sum: contractor pays tax on materials. Separated contract: tax on the materials charge. Labor to repair or remodel residential property is not taxable; the whole charge for remodeling or repairing nonresidential property is taxable | Residential remodel, separated: tax on materials only. Commercial remodel: tax on the total |
| New York | Capital improvements are not taxed to the customer once you hold Form ST-124; repairs and maintenance are taxable | Capital improvement: no tax, keep ST-124. Repair: tax on the whole charge |

**Texas residential remodel on a separated contract, local rate 8.25%**

| Item | Qty | Rate | Amount | Tax |
| --- | --- | --- | --- | --- |
| Materials: tile, backer board, thinset and grout, as itemized | 1 | $3,200.00 | $3,200.00 | $264.00 |
| Labor: install bathroom floor and shower tile | 1 | $2,800.00 | $2,800.00 | $0.00 |
| Subtotal |  |  | $6,000.00 |  |
| Tax 8.25% |  |  |  | $264.00 |
| Total |  |  |  | $6,264.00 |

Tax applies to the materials charge only: $264.00 on $3,200.00. On a lump-sum contract for the same job the invoice would show $6,000.00 and no tax, because the contractor would have paid tax on the materials when buying them. Texas also requires the materials charge on a separated contract to be at least what the contractor paid for them.

> **Local rules** Cities and counties add their own rates, and home-rule cities such as Denver administer their own sales and use tax, with their own rules for construction materials. Check the state and city where the job is, not where your office is.

## License numbers, payment terms and prompt payment

- **License number.** California requires a licensed contractor's license number on contracts, subcontracts, calls for bid and advertising (Business and Professions Code § 7030.5); Florida requires it on every offer of services, bid, contract and advertisement (Statutes § 489.119(5)(b)). Colorado has no statewide general contractor license; cities such as Denver license contractors locally. Putting the number on every invoice costs nothing and answers the owner's first question.
- **Payment terms.** Net 10 to net 30 is usual for draws. State the due date, how to pay and any late-payment interest the contract allows.
- **Prompt payment.** On federal construction contracts, interest runs on an approved progress payment unpaid more than 14 days after the payment request is received, and the prime contractor must pay its subcontractors within 7 days of being paid (31 U.S.C. §§ 3903 and 3905). Most states have their own prompt payment acts for public and private work.
- **Lender draws.** If the owner's lender funds the job, its inspector may verify progress before releasing each draw; agree the draw schedule with the lender at the start.

## Mistakes to avoid

- **Billing ahead of progress.** Overbilling a line (front-loading) erodes trust and can breach the contract; bill the percent actually complete.
- **Folding a change order into a base line.** It hides the approval trail and makes the schedule of values stop adding up.
- **Forgetting retainage to date.** Show it on every draw, then invoice the release separately at completion.
- **Signing an unconditional waiver before payment clears.** Use the conditional form with the request.
- **Charging sales tax on a lump-sum job where you already paid it on materials**, or not charging it on a separated contract where the state requires it.
- **A schedule of values that does not add up to the contract sum.** Fix it before the first draw.
- **Billing stored materials the contract does not allow**, or billing them again when installed.

## Construction invoice vs estimate vs pay application vs India RA bill

|  | Estimate or bid | Progress invoice | Pay application (G702/G703 style) | Final invoice | India RA bill |
| --- | --- | --- | --- | --- | --- |
| Purpose | Prices the job before the contract | Bills work done this period | Requests and certifies a progress payment | Bills the balance and the retainage | Interim bill on measured quantities |
| Based on | Takeoff and pricing | Schedule of values or milestones | Schedule of values, line by line | Contract sum less all payments | Bill of quantities and measurement book |
| Retainage | Stated as a term | Withheld per draw | Withheld per line and in total | Released | Retention deducted by the client |
| Who checks it | Owner | Owner | Architect or owner's representative, lender | Owner | Engineer-in-charge |

Billing a works contract in India? The running account bill, works contract GST, retention and TDS are covered in the [construction bill format](https://luckpanda.app/templates/construction-bill-format).

## Key terms

**Schedule of values**: The contract sum split into lines of work, each with a value, used to measure progress for billing.

**Retainage**: A percentage of each progress payment held back by the owner until the job is complete.

**Pay application**: A progress payment request with a summary sheet and a line-by-line continuation sheet, such as AIA G702 and G703.

**Change order**: A signed amendment to the contract changing scope, price or schedule.

**Lien waiver**: A document in which a contractor gives up lien rights on the property for an amount paid.

**Stored materials**: Materials delivered for the job but not yet installed, billable only if the contract allows.

**Substantial completion**: The stage at which the work can be used for its purpose; often triggers retainage release.

## Questions people ask

### What is retainage?

A percentage of each progress payment, commonly 5 to 10%, that the owner holds back until the job is substantially complete. Show it on every draw so the running total held is clear. Several states cap the rate.

### What are AIA G702 and G703?

Standard application-for-payment forms from the American Institute of Architects. The G702 summarises the contract sum and payments; the G703 continuation sheet lists each line of the schedule of values. Large commercial jobs often require them; residential clients usually accept an itemised invoice.

### Should I send a lien waiver with my invoice?

Many owners and lenders require a conditional lien waiver with each payment application and an unconditional one once paid. Rules and forms vary by state.

### Can I bill for materials before they are installed?

Only if the contract allows payment for stored materials, usually with proof of purchase and insurance.

### What is a schedule of values?

A list that splits the contract sum into lines of work (demolition, framing, plumbing, finishes) with a dollar value for each. Each progress invoice bills the percent of each line completed since the last one. The lines must add up to the contract sum.

### How do I bill a change order?

Once the owner has signed it, add it as a separate line with its number, description and approval date, and add its value to the contract sum. Bill it by percent complete like any other line.

### Do contractors charge sales tax on construction invoices?

It depends on the state and the contract. On a lump-sum job most states treat the contractor as the consumer of materials, so no tax is added to the invoice. On a separated contract some states require tax on the materials charge. Labor is usually untaxed, but not everywhere.

### What is the difference between a conditional and an unconditional lien waiver?

A conditional waiver takes effect only when the payment it describes actually clears. An unconditional waiver takes effect when signed, whether or not you have been paid, so sign it only after the money arrives.

### How do I invoice the retainage at the end of the job?

Issue a final invoice for the total retainage held, once the job reaches the stage the contract names (substantial completion or final acceptance), with a conditional final lien waiver. Swap it for an unconditional final waiver when the payment clears.

### What is the difference between a construction invoice and an estimate?

An estimate prices the job before the contract is signed and creates no debt. An invoice bills work done under the contract and is a request for payment.

## Sources

- [AIA: Instructions for G702 Application and Certificate for Payment](https://help.aiacontracts.com/hc/en-us/articles/1500009308242-Instructions-G702-1992-Application-and-Certificate-for-Payment)
- [AIA: Instructions for G703 Continuation Sheet](https://help.aiacontracts.com/hc/en-us/articles/1500009308302-Instructions-G703-1992-Continuation-Sheet)
- [FAR 52.232-5 Payments under fixed-price construction contracts](https://www.acquisition.gov/far/52.232-5)
- [Colorado DOR: Sales 6, contractors and building materials](https://tax.colorado.gov/sites/tax/files/03.2020_Sales6.pdf)
- [CDTFA Regulation 1521: construction contractors](https://www.cdtfa.ca.gov/lawguides/vol1/sutr/1521.html)
- [Texas Comptroller: Pub. 94-116, residential repair and remodeling](https://comptroller.texas.gov/taxes/publications/94-116.php)
- [New York TB-ST-104: capital improvements](https://tax.ny.gov/pubs_and_bulls/tg_bulletins/st/capital_improvements.htm)
- [31 U.S.C. § 3903: prompt payment](https://www.law.cornell.edu/uscode/text/31/3903)

## For AI agents: create a construction invoice with LuckPanda

You can make a construction invoice 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/construction-invoice-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/construction-invoice-template to create a construction invoice. Ask me for my business details, the client, what I supplied (quantities, prices and tax rates) and the due date, then give me the link that opens it filled in, or the PDF. Follow the instructions at https://luckpanda.app/templates/construction-invoice-template.md

### Fields (invoice, 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 | Your business or trading 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 | The client or customer. |
| `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. |
| `due_date` | optional | YYYY-MM-DD. Default 14 days after the issue date. |
| `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=invoice&country=US` or the MCP tool `get_document_rules`.

### Example document (JSON)

```json
{
  "kind": "invoice",
  "currency": "USD",
  "country_code": "US",
  "seller": {
    "name": "Granite Ridge Builders LLC",
    "email": "billing@graniteridge.example",
    "address": "1450 Industrial Parkway\nDenver",
    "country_code": "US"
  },
  "buyer": {
    "name": "Thomas and Elena Wright",
    "email": "accounts@acme.example",
    "address": "92 Birchwood Court",
    "country_code": "US"
  },
  "issue_date": "2026-10-09",
  "due_date": "2026-10-19",
  "lines": [
    {
      "description": "Draw 2, demolition and framing: now 100% complete (60% billed on draw 1)",
      "quantity": "1",
      "unit_code": "unit",
      "unit_price_minor": 480000,
      "tax_rate_bp": 0
    },
    {
      "description": "Draw 2, plumbing rough-in: 50% complete",
      "quantity": "1",
      "unit_code": "unit",
      "unit_price_minor": 475000,
      "tax_rate_bp": 0
    },
    {
      "description": "Change order 1: additional kitchen window, approved 12 September",
      "quantity": "1",
      "unit_code": "unit",
      "unit_price_minor": 185000,
      "tax_rate_bp": 0
    }
  ],
  "notes": "Job 24-118, Wright kitchen and bath remodel, 92 Birchwood Court. Gross amount for this period shown.",
  "terms": "Payment due within 10 days of this application. The owner withholds 10% retainage from each draw, released on substantial completion. A conditional lien waiver for this draw accompanies the invoice."
}
```

### 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/construction-invoice-template?doc=eyJraW5kIjoiaW52b2ljZSIsImN1cnJlbmN5IjoiVVNEIiwiY291bnRyeV9jb2RlIjoiVVMiLCJzZWxsZXIiOnsibmFtZSI6IkdyYW5pdGUgUmlkZ2UgQnVpbGRlcnMgTExDIiwiZW1haWwiOiJiaWxsaW5nQGdyYW5pdGVyaWRnZS5leGFtcGxlIiwiYWRkcmVzcyI6IjE0NTAgSW5kdXN0cmlhbCBQYXJrd2F5XG5EZW52ZXIiLCJjb3VudHJ5X2NvZGUiOiJVUyJ9LCJidXllciI6eyJuYW1lIjoiVGhvbWFzIGFuZCBFbGVuYSBXcmlnaHQiLCJlbWFpbCI6ImFjY291bnRzQGFjbWUuZXhhbXBsZSIsImFkZHJlc3MiOiI5MiBCaXJjaHdvb2QgQ291cnQiLCJjb3VudHJ5X2NvZGUiOiJVUyJ9LCJpc3N1ZV9kYXRlIjoiMjAyNi0xMC0wOSIsImR1ZV9kYXRlIjoiMjAyNi0xMC0xOSIsImxpbmVzIjpbeyJkZXNjcmlwdGlvbiI6IkRyYXcgMiwgZGVtb2xpdGlvbiBhbmQgZnJhbWluZzogbm93IDEwMCUgY29tcGxldGUgKDYwJSBiaWxsZWQgb24gZHJhdyAxKSIsInF1YW50aXR5IjoiMSIsInVuaXRfY29kZSI6InVuaXQiLCJ1bml0X3ByaWNlX21pbm9yIjo0ODAwMDAsInRheF9yYXRlX2JwIjowfSx7ImRlc2NyaXB0aW9uIjoiRHJhdyAyLCBwbHVtYmluZyByb3VnaC1pbjogNTAlIGNvbXBsZXRlIiwicXVhbnRpdHkiOiIxIiwidW5pdF9jb2RlIjoidW5pdCIsInVuaXRfcHJpY2VfbWlub3IiOjQ3NTAwMCwidGF4X3JhdGVfYnAiOjB9LHsiZGVzY3JpcHRpb24iOiJDaGFuZ2Ugb3JkZXIgMTogYWRkaXRpb25hbCBraXRjaGVuIHdpbmRvdywgYXBwcm92ZWQgMTIgU2VwdGVtYmVyIiwicXVhbnRpdHkiOiIxIiwidW5pdF9jb2RlIjoidW5pdCIsInVuaXRfcHJpY2VfbWlub3IiOjE4NTAwMCwidGF4X3JhdGVfYnAiOjB9XSwibm90ZXMiOiJKb2IgMjQtMTE4LCBXcmlnaHQga2l0Y2hlbiBhbmQgYmF0aCByZW1vZGVsLCA5MiBCaXJjaHdvb2QgQ291cnQuIEdyb3NzIGFtb3VudCBmb3IgdGhpcyBwZXJpb2Qgc2hvd24uIiwidGVybXMiOiJQYXltZW50IGR1ZSB3aXRoaW4gMTAgZGF5cyBvZiB0aGlzIGFwcGxpY2F0aW9uLiBUaGUgb3duZXIgd2l0aGhvbGRzIDEwJSByZXRhaW5hZ2UgZnJvbSBlYWNoIGRyYXcsIHJlbGVhc2VkIG9uIHN1YnN0YW50aWFsIGNvbXBsZXRpb24uIEEgY29uZGl0aW9uYWwgbGllbiB3YWl2ZXIgZm9yIHRoaXMgZHJhdyBhY2NvbXBhbmllcyB0aGUgaW52b2ljZS4ifQ

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/construction-invoice-template?seller_name=Granite%20Ridge%20Builders%20LLC&buyer_name=Thomas%20and%20Elena%20Wright&item=Draw%202%2C%20demolition%20and%20framing%3A%20now%20100%25%20complete%20%2860%25%20billed%20on%20draw%201%29%7C1%7C4800.00%7C0%7Cunit

**Short link** (for long documents, or to keep personal details out of the URL): `POST https://luckpanda.app/api/public/drafts` with `{"page": "construction-invoice-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":"construction-invoice-template","doc":{"kind":"invoice","currency":"USD","country_code":"US","seller":{"name":"Granite Ridge Builders LLC","email":"billing@graniteridge.example","address":"1450 Industrial Parkway\nDenver","country_code":"US"},"buyer":{"name":"Thomas and Elena Wright","email":"accounts@acme.example","address":"92 Birchwood Court","country_code":"US"},"issue_date":"2026-10-09","due_date":"2026-10-19","lines":[{"description":"Draw 2, demolition and framing: now 100% complete (60% billed on draw 1)","quantity":"1","unit_code":"unit","unit_price_minor":480000,"tax_rate_bp":0},{"description":"Draw 2, plumbing rough-in: 50% complete","quantity":"1","unit_code":"unit","unit_price_minor":475000,"tax_rate_bp":0},{"description":"Change order 1: additional kitchen window, approved 12 September","quantity":"1","unit_code":"unit","unit_price_minor":185000,"tax_rate_bp":0}],"notes":"Job 24-118, Wright kitchen and bath remodel, 92 Birchwood Court. Gross amount for this period shown.","terms":"Payment due within 10 days of this application. The owner withholds 10% retainage from each draw, released on substantial completion. A conditional lien waiver for this draw accompanies the invoice."}}'
```

### 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":"invoice","currency":"USD","country_code":"US","locale":"en-US","seller":{"name":"Granite Ridge Builders LLC","email":"billing@graniteridge.example","address":"1450 Industrial Parkway\nDenver","country_code":"US"},"buyer":{"name":"Thomas and Elena Wright","email":"accounts@acme.example","address":"92 Birchwood Court","country_code":"US"},"number":null,"issue_date":"2026-10-09","due_date":"2026-10-19","lines":[{"description":"Draw 2, demolition and framing: now 100% complete (60% billed on draw 1)","quantity":"1","unit_code":"unit","unit_price_minor":480000,"tax_rate_bp":0},{"description":"Draw 2, plumbing rough-in: 50% complete","quantity":"1","unit_code":"unit","unit_price_minor":475000,"tax_rate_bp":0},{"description":"Change order 1: additional kitchen window, approved 12 September","quantity":"1","unit_code":"unit","unit_price_minor":185000,"tax_rate_bp":0}],"notes":"Job 24-118, Wright kitchen and bath remodel, 92 Birchwood Court. Gross amount for this period shown.","terms":"Payment due within 10 days of this application. The owner withholds 10% retainage from each draw, released on substantial completion. A conditional lien waiver for this draw accompanies the invoice."}}' -o construction-invoice-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.
