---
title: "Modèle de devis gratuit en ligne et mentions obligatoires"
canonical: https://luckpanda.app/fr/templates/quote-template
language: fr
updated: 2026-10-09
content: full
---

# Modèle de devis

**Qu’est-ce qu’un devis et que doit-il contenir ?** Un devis est une offre de prix détaillée qu’un professionnel remet avant d’exécuter un travail ou une vente. Il indique les parties, la date, le détail des prestations avec quantités et prix unitaires, les totaux HT et TTC, la TVA, la durée de validité et le caractère gratuit ou payant. Signé par le client, il engage les deux parties comme un contrat. Il est obligatoire dans certains métiers : travaux, déménagement, services à la personne.

- Le devis daté et signé, souvent avec « bon pour accord », vaut contrat au prix indiqué.
- Obligatoire avant des travaux de dépannage, de réparation ou d’entretien dans le bâtiment, avant un déménagement et pour des services à la personne de 100 € TTC ou plus par mois.
- Sans durée de validité écrite, l’offre reste ouverte pendant un délai raisonnable : indiquez une date.
- Avec un particulier, une somme versée d’avance est présumée être des arrhes, sauf si le devis dit « acompte ».

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

## À quoi sert un devis

Le devis fixe par écrit ce qui sera fait, à quel prix et à quelles conditions, avant que le travail commence. Pour le client, c’est la base de comparaison entre plusieurs entreprises ; pour vous, c’est la preuve de ce qui a été accepté si le chantier dérape ou si la facture est contestée.

Juridiquement, un devis précis est une **offre** : le contrat se forme quand le client l’accepte (article 1113 du code civil). Une fois signé, ni vous ni le client ne pouvez changer seul le prix ou le contenu. Tout ajout passe par un **avenant** ou un **devis complémentaire** signé.

> **Devis ou estimation** Une « estimation » ou un « prix indicatif » n’engage pas au même titre. Si vous ne pouvez pas chiffrer précisément, dites-le et prévoyez comment le prix final sera calculé (taux horaire, métré contradictoire). Un document intitulé « devis » qui détaille prix et quantités sera lu comme une offre ferme.

## Comment remplir ce modèle de devis

1. **Votre entreprise et le client** Dénomination, adresse, SIREN et numéro de TVA ; pour le bâtiment, ajoutez votre assurance décennale dans les conditions. Pour le client, son nom et l’adresse du chantier.
2. **Détaillez les lignes** Séparez fournitures, main-d’œuvre et frais annexes, avec quantité et prix unitaire HT. Le métré ou le nombre d’heures doit être lisible.
3. **Choisissez le taux de TVA** 20 %, 10 % ou 5,5 % selon les travaux et le logement, ou 0 % avec la mention de franchise ou d’autoliquidation.
4. **Écrivez les conditions** Durée de validité, devis gratuit ou payant, acompte (ou arrhes), échéances, date de début et durée estimée, exclusions.
5. **Connectez-vous pour l’envoyer** Le devis est numéroté et conservé dans votre entreprise ; accepté, il se transforme en facture d’acompte puis en facture sans ressaisie. Le téléchargement du PDF est gratuit, avec un petit pied de page LuckPanda ; l’envoi et le PDF sans la marque LuckPanda nécessitent le module Ventes.

## Quand le devis est obligatoire

En dehors des cas ci-dessous, le devis est facultatif, mais vivement conseillé dès que le montant ou la durée du travail sont significatifs. Dans ces métiers, l’absence de devis peut être sanctionnée par une amende administrative allant jusqu’à 3 000 € pour une personne physique et 15 000 € pour une société.

| Activité | Quand | Gratuit ? |
| --- | --- | --- |
| Dépannage, réparation et entretien dans le bâtiment et l’équipement de la maison (plomberie, électricité, serrurerie, couverture, vitrerie…) | Avant l’exécution des travaux (arrêté du 24 janvier 2017) | Gratuit ou payant ; le prix du devis doit être annoncé |
| Déménagement | Avant tout contrat, avec les conditions générales (arrêté du 27 avril 2010) | Gratuit |
| Services à la personne (ménage, garde, soutien scolaire…) | Si le prix mensuel atteint 100 € TTC ; en dessous, à la demande du client (arrêté du 17 mars 2015) | Gratuit |
| Location de voiture ou d’utilitaire sans chauffeur | Avant la location | Gratuit |
| Obsèques | Pour toute prestation, sur le modèle de devis réglementaire | Gratuit |
| Optique et aides auditives | Avant la vente | Gratuit |
| Produits et services liés à la perte d’autonomie | À partir de 500 € TTC, ou sur mesure | Gratuit |
| Chirurgie esthétique | À partir de 300 € ou en cas d’anesthésie générale | Gratuit |

## Exemple : devis de rénovation de salle de bains

Morel Rénovation, entreprise de second œuvre à Lyon, chiffre la réfection d’une salle de bains pour une particulière, dans un appartement achevé depuis plus de deux ans. Les travaux d’amélioration et d’entretien d’un tel logement relèvent du taux de TVA de 10 %.

![Exemple de devis D-2026-058 de Morel Rénovation SARL, Lyon, pour Claire Dubois : dépose, faïence, pose, receveur et paroi de douche, plomberie, avec TVA à 10 %, validité au 8 décembre 2026, acompte de 30 % et espace « bon pour accord », avec repères numérotés.](https://luckpanda.app/img/guide/fr--quote-template--devis-salle-de-bains.svg)

*Un devis de travaux avec les mentions attendues. Les montants sont ceux de l’exemple chiffré ci-dessous.*

1. **« Devis »** et un numéro : rien n’impose de format, mais une série continue facilite le suivi.
2. **Durée de validité** : au-delà, vous n’êtes plus tenu par le prix.
3. **Date de début et durée estimée** des travaux.
4. **Entreprise** : dénomination, adresse, SIREN et, pour le bâtiment, l’assurance professionnelle obligatoire (décennale).
5. **Client** et adresse du chantier.
6. **Décompte détaillé** : chaque prestation avec quantité et prix unitaire, fournitures et main-d’œuvre séparées.
7. **Taux de TVA** : 10 % ici, sous conditions ; 20 % par défaut.
8. **Totaux HT et TTC** : le client compare des TTC.
9. **Gratuit ou payant**, acompte et échéances de paiement.
10. **Acceptation** : date, signature, souvent précédées de « bon pour accord ».

**Les montants du devis D-2026-058**

| Désignation | Qté | Prix unitaire | Montant HT | TVA |
| --- | --- | --- | --- | --- |
| Dépose faïence et sanitaires | 1 | 650,00 € | 650,00 € | 65,00 € |
| Faïence 30 x 60, fourniture (m²) | 18 | 38,00 € | 684,00 € | 68,40 € |
| Pose de faïence (m²) | 18 | 55,00 € | 990,00 € | 99,00 € |
| Receveur et paroi de douche, posés | 1 | 1 240,00 € | 1 240,00 € | 124,00 € |
| Plomberie, main-d’œuvre | 12 | 52,00 € | 624,00 € | 62,40 € |
| Total HT |  |  | 4 188,00 € |  |
| TVA 10 % |  |  |  | 418,80 € |
| Total TTC |  |  |  | 4 606,80 € |

Le devis s’élève à 4 606,80 € TTC. Signé, il engage Morel Rénovation à réaliser ces travaux pour ce prix, et la cliente à le payer.

### À la signature : l’acompte de 30 %

**Facture d’acompte : 30 % de 4 188,00 € HT**

| Désignation | Qté | Prix unitaire | Montant HT | TVA |
| --- | --- | --- | --- | --- |
| Acompte de 30 % sur le devis D-2026-058 | 1 | 1 256,40 € | 1 256,40 € | 125,64 € |
| Total HT |  |  | 1 256,40 € |  |
| TVA 10 % |  |  |  | 125,64 € |
| Total TTC |  |  |  | 1 382,04 € |

La cliente verse 1 382,04 € TTC. Parce que le devis parle d’« acompte » et non d’« arrhes », ni l’une ni l’autre partie ne peut renoncer au contrat en abandonnant ou en restituant cette somme.

## Mentions obligatoires d’un devis

Les arrêtés propres à chaque métier fixent la liste exacte. Pour les travaux du bâtiment, et comme bonne pratique ailleurs, un devis comporte :

| Mention | Détail |
| --- | --- |
| Date | Date d’établissement du devis |
| Entreprise | Nom ou dénomination, adresse, forme juridique, SIREN, numéro de TVA ; « EI » pour un entrepreneur individuel |
| Client | Nom et adresse ; adresse du chantier si elle diffère |
| Objet | Nature exacte des travaux ou de la prestation |
| Décompte détaillé | Chaque prestation et fourniture : quantité, prix unitaire HT |
| Main-d’œuvre | Taux horaire TTC ou forfait, et méthode de calcul du temps |
| Frais annexes | Déplacement, évacuation des gravats, location de matériel |
| Totaux | Total HT, taux et montant de TVA, total TTC |
| Calendrier | Date de début et durée estimée |
| Validité | Durée de validité de l’offre ou date limite |
| Gratuit ou payant | Et le prix du devis s’il est payant |
| Paiement | Acompte ou arrhes, échéances, moyen de paiement |
| Assurance | Pour les artisans du bâtiment : assureur, n° de contrat, couverture géographique (décennale) |
| Acceptation | Date et signature du client, souvent avec « bon pour accord » |

Un micro-entrepreneur en franchise ajoute « TVA non applicable, art. 293 B du CGI » (à partir du 1er janvier 2027 : « TVA non applicable, article L. 233-3 du CIBS ») et chiffre en HT, qui est alors le prix final.

## Validité, signature et « bon pour accord »

**Quelle durée de validité pour un devis ?**
Aucune durée légale générale. Un mois à trois mois est courant ; 15 jours si vos prix de matériaux bougent vite. Sans durée écrite, l’offre ne peut pas être retirée avant un délai raisonnable (article 1116 du code civil) et devient caduque à son expiration : une date évite toute discussion.

**« Bon pour accord » est-il obligatoire ?**
Non. Ce qui compte est l’acceptation claire du client : signature et date suffisent. La formule « bon pour accord » est un usage utile, qui montre que le client a accepté le document entier.

**Un devis signé électroniquement est-il valable ?**
Oui. L’écrit électronique et la signature électronique ont la même valeur que sur papier, dès lors que le signataire est identifié et que le document est conservé intact (articles 1366 et 1367 du code civil). Une réponse par e-mail « j’accepte le devis n° D-2026-058 » vaut aussi acceptation, mais se prouve moins facilement.

**Peut-on modifier un devis signé ?**
Pas seul. Les travaux supplémentaires ou les changements de matériaux font l’objet d’un avenant ou d’un devis complémentaire, signé à son tour. Le devis initial reste la référence pour le reste.

**Le client peut-il se rétracter après avoir signé ?**
S’il a signé chez lui ou ailleurs que dans vos locaux (démarchage), il dispose en principe de 14 jours pour se rétracter, sauf travaux d’urgence qu’il a lui-même demandés. Les contrats signés dans une foire ou un salon n’ouvrent pas ce droit. Signé dans vos locaux, le devis l’engage sans délai de rétractation.

## Acompte ou arrhes : le mot change tout

|  | Acompte | Arrhes |
| --- | --- | --- |
| Nature | Premier paiement d’un contrat ferme | Somme qui permet de se dédire |
| Si le client renonce | Il reste redevable du prix ; l’acompte n’est pas un forfait d’annulation | Il perd les arrhes |
| Si le professionnel renonce | Il peut être condamné à exécuter ou à indemniser | Il rembourse le double des arrhes |
| À défaut de précision (vente à un particulier) | Non | Oui : les sommes versées d’avance sont des arrhes (article L214-1 du code de la consommation) |

Écrivez donc le mot voulu sur le devis. Entre professionnels, la présomption d’arrhes ne s’applique pas : c’est le contrat qui décide. Un acompte encaissé auprès d’un client professionnel donne lieu à une **facture d’acompte**, et la TVA sur l’acompte devient exigible à l’encaissement.

## Devis gratuit ou payant

Le principe est la liberté, sauf dans les métiers où le devis doit être gratuit (déménagement, services à la personne, obsèques, optique, location de véhicule…). Un devis de travaux du bâtiment peut être payant, à condition que le client le sache **avant** que vous l’établissiez et que le prix figure sur le devis. Beaucoup d’entreprises déduisent ensuite ce prix de la facture si le devis est accepté : écrivez-le.

Un devis payant est une prestation : il se facture, avec la TVA, que le client accepte ou non les travaux.

## TVA sur un devis de travaux : 20 %, 10 % ou 5,5 %

| Taux | Travaux concernés | Condition |
| --- | --- | --- |
| 20 % | Taux normal : construction neuve, locaux professionnels, équipements exclus des taux réduits | Aucune |
| 10 % | Amélioration, transformation, aménagement et entretien de logements | Logement achevé depuis plus de deux ans ; le client atteste que les conditions sont remplies |
| 5,5 % | Travaux d’amélioration de la qualité énergétique et travaux induits | Mêmes conditions de logement, équipements et matériaux répondant aux critères techniques |
| Autoliquidation | Sous-traitant du bâtiment facturant l’entreprise principale | Pas de TVA sur le devis ni la facture ; mention « Autoliquidation » |

Le taux réduit se décide au moment du devis : si les conditions ne sont pas remplies, c’est vous qui serez redevable de la différence. Conservez le justificatif du client avec le devis signé.

## Du devis signé à la facture

1. **Acceptation** Le client signe le devis ; vous le conservez avec son numéro.
2. **Acompte** Vous encaissez l’acompte et émettez une facture d’acompte qui cite le devis.
3. **Situations (chantiers longs)** Pour un chantier qui dure, des factures de situation constatent l’avancement, en pourcentage du devis.
4. **Facture finale** Elle reprend les lignes et les prix du devis, ajoute les avenants signés, rappelle les factures d’acompte et de situation et en déduit les montants.

|  | Devis | Facture proforma | Bon de commande | Facture |
| --- | --- | --- | --- | --- |
| Émis par | Le vendeur | Le vendeur | L’acheteur | Le vendeur |
| Rôle | Offre détaillée | Offre présentée comme une facture | Commande ferme | Constat de la vente |
| Engage | Une fois signé | Une fois acceptée | Dès l’envoi, si le vendeur l’accepte | Constate une obligation existante |
| Pièce comptable | Non | Non | Non | Oui |

## Erreurs fréquentes

- **Un forfait global sans détail.** Le client ne peut pas comparer, et en cas de litige vous ne pouvez pas montrer ce qui était compris.
- **Pas de durée de validité.** Votre prix vous engage pendant un délai raisonnable, même si les matériaux augmentent.
- **Écrire « arrhes » en pensant « acompte » (ou l’inverse).** Avec un particulier, l’absence de précision vaut arrhes : le client peut renoncer en les perdant.
- **Oublier les exclusions.** « Hors reprise du support », « hors évacuation des gravats » : ce qui n’est pas exclu est réputé compris.
- **Appliquer 10 % sans vérifier.** Logement de moins de deux ans ou locaux professionnels : 20 %, et le rappel est pour vous.
- **Commencer avant la signature.** Sans devis signé, le prix des travaux réalisés se discute après coup.
- **Facturer autre chose que le devis.** Tout écart doit venir d’un avenant signé.

## Termes clés

**Devis**: Offre de prix détaillée remise avant l’exécution ; signée, elle forme le contrat.

**Bon pour accord**: Formule d’usage, suivie de la date et de la signature, par laquelle le client accepte le devis.

**Acompte**: Premier versement d’un contrat ferme ; il ne permet pas de se dédire.

**Arrhes**: Somme versée d’avance qui permet de se dédire : le client la perd, le professionnel rend le double.

**Avenant**: Accord écrit qui modifie un devis signé (travaux supplémentaires, changement de matériaux).

**Facture de situation**: Facture intermédiaire qui constate l’avancement d’un chantier en pourcentage du devis.

## Questions fréquentes

### Un devis signé a-t-il une valeur juridique ?

Oui. Une offre précise acceptée forme le contrat : vous devez réaliser ce qui est décrit au prix indiqué, et le client doit payer. Tout changement passe par un avenant signé.

### Quand un devis est-il obligatoire ?

Avant les travaux de dépannage, de réparation et d’entretien dans le bâtiment, avant un déménagement, pour les services à la personne à partir de 100 € TTC par mois, et dans quelques autres secteurs (obsèques, optique, location de véhicule, chirurgie esthétique). Ailleurs, il reste conseillé.

### Quelle est la durée de validité d’un devis ?

Celle que vous écrivez. Un à trois mois est courant. Sans mention, l’offre reste ouverte pendant un délai raisonnable, ce qui peut vous lier plus longtemps que prévu.

### La mention « bon pour accord » est-elle obligatoire ?

Non. La date et la signature du client suffisent à montrer son accord. La formule reste un usage utile.

### Un devis peut-il être payant ?

Oui, sauf dans les métiers où il doit être gratuit. Le client doit être informé du prix avant que vous l’établissiez, et ce prix figure sur le devis.

### Quelle différence entre acompte et arrhes ?

L’acompte est un premier paiement d’un contrat ferme ; les arrhes permettent de renoncer, le client en les perdant, le professionnel en rendant le double. Avec un particulier, une somme versée d’avance est présumée être des arrhes si le devis ne dit rien.

### Faut-il mettre la TVA sur un devis ?

Oui, si vous êtes assujetti : taux et montant de TVA, totaux HT et TTC. En franchise, indiquez la mention de l’article 293 B du CGI.

### Comment numéroter ses devis ?

Librement : aucun texte n’impose de séquence pour les devis. Une série continue (D-2026-001…) permet toutefois de retrouver un devis et de le rattacher à la facture.

### Comment transformer un devis en facture ?

Émettez une facture numérotée dans la séquence des factures, qui reprend les lignes et prix du devis signé, ajoute les avenants et déduit les factures d’acompte.

## Sources

- [Devis obligatoire : activités concernées (Entreprendre.Service-Public.gouv.fr)](https://entreprendre.service-public.gouv.fr/vosdroits/F31144)
- [Arrêté du 27 avril 2010 relatif à la publicité des prix des prestations de déménagement (Légifrance)](https://www.legifrance.gouv.fr/loda/id/LEGITEXT000022192197)
- [Mentions obligatoires d’une facture (Entreprendre.Service-Public.gouv.fr)](https://entreprendre.service-public.gouv.fr/vosdroits/F31808)
- [BOFiP BOI-TVA-DECLA-30-20-20-10 (factures d’acompte)](https://bofip.impots.gouv.fr/bofip/140-PGP.html)

## For AI agents: create a quote with LuckPanda

You can make a quote 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/quote-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/quote-template to create a quote. Ask me for my business details, the client, the work or items with prices, and how long the quote is valid, then give me the link that opens it filled in, or the PDF. Follow the instructions at https://luckpanda.app/templates/quote-template.md

### Fields (quote, 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: until when the quote is valid. Default 30 days. |
| `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 | Validity, delivery and payment terms. |

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

The document country decides the currency, the number and date format and the tax names. Tax ID by country:

| Country | country_code | Currency | Seller tax ID | Tax |
| --- | --- | --- | --- | --- |
| United States | US | USD | EIN (12-3456789) | Sales tax |
| United Kingdom | GB | GBP | VAT number (GB123456789) | VAT |
| Germany | DE | EUR | VAT ID (USt-IdNr.) (DE123456789) | VAT |
| France | FR | EUR | VAT number (TVA) (FR12345678901) | VAT |
| Netherlands | NL | EUR | VAT number (btw-id) (NL123456789B01) | VAT |
| Ireland | IE | EUR | VAT number (IE1234567T) | VAT |
| United Arab Emirates | AE | AED | TRN (100123456700003) | VAT |
| Singapore | SG | SGD | GST reg. no. (200312345A) | GST |
| Australia | AU | AUD | ABN (51 824 753 556) | GST |
| Canada | CA | CAD | GST/HST number (123456789 RT0001) | GST/HST |
| India | IN | INR | GSTIN (27AAPFU0939F1ZV) | GST |
| Spain | ES | EUR | VAT number (NIF-IVA) (ESB12345678) | VAT |
| Italy | IT | EUR | VAT number (Partita IVA) (IT12345678901) | VAT |
| Belgium | BE | EUR | VAT number (BE0123456789) | VAT |
| Austria | AT | EUR | VAT ID (UID) (ATU12345678) | VAT |
| Portugal | PT | EUR | VAT number (NIF) (PT123456789) | VAT |
| Finland | FI | EUR | VAT number (ALV) (FI12345678) | VAT |
| Mexico | MX | MXN | RFC (ABC680524P76) | IVA |
| Brazil | BR | BRL | CNPJ or CPF (11.222.333/0001-81) | Tax |

**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=quote&country=US` or the MCP tool `get_document_rules`.

### Example document (JSON)

```json
{
  "kind": "quote",
  "currency": "USD",
  "country_code": "US",
  "seller": {
    "name": "Meridian Signs & Print",
    "email": "quotes@meridiansigns.example",
    "address": "19 Union Street\nMilwaukee",
    "country_code": "US"
  },
  "buyer": {
    "name": "Westfield Running Club",
    "email": "accounts@acme.example",
    "address": "Clubhouse, Westfield Park",
    "country_code": "US"
  },
  "issue_date": "2026-10-09",
  "due_date": "2026-11-08",
  "lines": [
    {
      "description": "Printed race banners, 3 x 1 m, PVC with eyelets",
      "quantity": "6",
      "unit_code": "item",
      "unit_price_minor": 8500,
      "tax_rate_bp": 0
    },
    {
      "description": "Finisher medals, 60 mm, custom enamel with ribbon",
      "quantity": "400",
      "unit_code": "item",
      "unit_price_minor": 310,
      "tax_rate_bp": 0
    },
    {
      "description": "Artwork and proof, one revision included",
      "quantity": "1",
      "unit_code": "unit",
      "unit_price_minor": 15000,
      "tax_rate_bp": 0
    }
  ],
  "terms": "This quote is valid for 30 days. Production starts on receipt of a 50% deposit; the balance is due on delivery. Prices exclude delivery outside the city."
}
```

### 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/quote-template?doc=eyJraW5kIjoicXVvdGUiLCJjdXJyZW5jeSI6IlVTRCIsImNvdW50cnlfY29kZSI6IlVTIiwic2VsbGVyIjp7Im5hbWUiOiJNZXJpZGlhbiBTaWducyAmIFByaW50IiwiZW1haWwiOiJxdW90ZXNAbWVyaWRpYW5zaWducy5leGFtcGxlIiwiYWRkcmVzcyI6IjE5IFVuaW9uIFN0cmVldFxuTWlsd2F1a2VlIiwiY291bnRyeV9jb2RlIjoiVVMifSwiYnV5ZXIiOnsibmFtZSI6Ildlc3RmaWVsZCBSdW5uaW5nIENsdWIiLCJlbWFpbCI6ImFjY291bnRzQGFjbWUuZXhhbXBsZSIsImFkZHJlc3MiOiJDbHViaG91c2UsIFdlc3RmaWVsZCBQYXJrIiwiY291bnRyeV9jb2RlIjoiVVMifSwiaXNzdWVfZGF0ZSI6IjIwMjYtMTAtMDkiLCJkdWVfZGF0ZSI6IjIwMjYtMTEtMDgiLCJsaW5lcyI6W3siZGVzY3JpcHRpb24iOiJQcmludGVkIHJhY2UgYmFubmVycywgMyB4IDEgbSwgUFZDIHdpdGggZXllbGV0cyIsInF1YW50aXR5IjoiNiIsInVuaXRfY29kZSI6Iml0ZW0iLCJ1bml0X3ByaWNlX21pbm9yIjo4NTAwLCJ0YXhfcmF0ZV9icCI6MH0seyJkZXNjcmlwdGlvbiI6IkZpbmlzaGVyIG1lZGFscywgNjAgbW0sIGN1c3RvbSBlbmFtZWwgd2l0aCByaWJib24iLCJxdWFudGl0eSI6IjQwMCIsInVuaXRfY29kZSI6Iml0ZW0iLCJ1bml0X3ByaWNlX21pbm9yIjozMTAsInRheF9yYXRlX2JwIjowfSx7ImRlc2NyaXB0aW9uIjoiQXJ0d29yayBhbmQgcHJvb2YsIG9uZSByZXZpc2lvbiBpbmNsdWRlZCIsInF1YW50aXR5IjoiMSIsInVuaXRfY29kZSI6InVuaXQiLCJ1bml0X3ByaWNlX21pbm9yIjoxNTAwMCwidGF4X3JhdGVfYnAiOjB9XSwidGVybXMiOiJUaGlzIHF1b3RlIGlzIHZhbGlkIGZvciAzMCBkYXlzLiBQcm9kdWN0aW9uIHN0YXJ0cyBvbiByZWNlaXB0IG9mIGEgNTAlIGRlcG9zaXQ7IHRoZSBiYWxhbmNlIGlzIGR1ZSBvbiBkZWxpdmVyeS4gUHJpY2VzIGV4Y2x1ZGUgZGVsaXZlcnkgb3V0c2lkZSB0aGUgY2l0eS4ifQ

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/quote-template?seller_name=Meridian%20Signs%20%26%20Print&buyer_name=Westfield%20Running%20Club&item=Printed%20race%20banners%2C%203%20x%201%20m%2C%20PVC%20with%20eyelets%7C6%7C85.00%7C0%7Citem

**Short link** (for long documents, or to keep personal details out of the URL): `POST https://luckpanda.app/api/public/drafts` with `{"page": "quote-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":"quote-template","doc":{"kind":"quote","currency":"USD","country_code":"US","seller":{"name":"Meridian Signs & Print","email":"quotes@meridiansigns.example","address":"19 Union Street\nMilwaukee","country_code":"US"},"buyer":{"name":"Westfield Running Club","email":"accounts@acme.example","address":"Clubhouse, Westfield Park","country_code":"US"},"issue_date":"2026-10-09","due_date":"2026-11-08","lines":[{"description":"Printed race banners, 3 x 1 m, PVC with eyelets","quantity":"6","unit_code":"item","unit_price_minor":8500,"tax_rate_bp":0},{"description":"Finisher medals, 60 mm, custom enamel with ribbon","quantity":"400","unit_code":"item","unit_price_minor":310,"tax_rate_bp":0},{"description":"Artwork and proof, one revision included","quantity":"1","unit_code":"unit","unit_price_minor":15000,"tax_rate_bp":0}],"terms":"This quote is valid for 30 days. Production starts on receipt of a 50% deposit; the balance is due on delivery. Prices exclude delivery outside the city."}}'
```

### 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":"quote","currency":"USD","country_code":"US","locale":"en-US","seller":{"name":"Meridian Signs & Print","email":"quotes@meridiansigns.example","address":"19 Union Street\nMilwaukee","country_code":"US"},"buyer":{"name":"Westfield Running Club","email":"accounts@acme.example","address":"Clubhouse, Westfield Park","country_code":"US"},"number":null,"issue_date":"2026-10-09","due_date":"2026-11-08","lines":[{"description":"Printed race banners, 3 x 1 m, PVC with eyelets","quantity":"6","unit_code":"item","unit_price_minor":8500,"tax_rate_bp":0},{"description":"Finisher medals, 60 mm, custom enamel with ribbon","quantity":"400","unit_code":"item","unit_price_minor":310,"tax_rate_bp":0},{"description":"Artwork and proof, one revision included","quantity":"1","unit_code":"unit","unit_price_minor":15000,"tax_rate_bp":0}],"notes":"","terms":"This quote is valid for 30 days. Production starts on receipt of a 50% deposit; the balance is due on delivery. Prices exclude delivery outside the city."}}' -o quote-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.
