Invoicing
Receipts
Issue a receipt for a sale that was paid on the spot, such as a store order paid at checkout. Receipts have their own gap-free numbers and PDF.
A receipt confirms that a client has already paid. Where an invoice asks for money, a receipt records money that was received, for example an order paid at checkout in your online store. Receipts are their own document type, with their own number sequence and PDF, and they are on every plan.
Receipts compared with invoices
| Invoice | Receipt | |
|---|---|---|
| Purpose | asks the client to pay | confirms the client paid |
| Default number | INV-2027-0001 | RCT-2027-0001 |
| Typical source | you, the API, MCP or the AI agent | a store order paid at checkout, or a payment you received |
| Statuses | draft, sent, partially paid, paid, overdue, void | issued, void |
Receipts use the same line items, taxes, discounts and currencies as every other document, and the same engine computes their totals in integer minor units.
How receipts work
- Own type, own sequence. Each business has a gap-free receipt sequence, separate from invoices, estimates and credit notes. The default pattern is
RCT-{YYYY}-{SEQ:4}, and you can change it in Settings > Templates and numbering. See Document numbering. - Issued, not drafted. The proposed status list for receipts has two states:
issuedandvoid. A receipt records a payment that already happened, so there is no draft stage waiting for a send. - A snapshot is kept. Like any issued document, the business and client details, lines, taxes and totals are frozen, and changes are made by revision.
- Verification QR. The receipt's PDF carries the same verification QR as every PDF from a signed-in account, so the client can check it is genuine at
/v/[code]. See Verification codes. - Deliver it like any document. Email it, download the PDF or copy its link. See Send a document.
Where receipts come from
From your online store
The main use of receipts is store orders that were paid at checkout:
- The Shopify app (February 2027) and the WordPress and WooCommerce plugin (week of 25 January 2027) let you choose, per install, whether an order creates an invoice or a receipt. The default is invoice.
- Numbers always come from your business's own receipt sequence, never from the store's order numbers.
- Sending the receipt to the store's customer stays a draft unless you turn on "send automatically" for that install, which needs a fresh sign-in.
From the AI agent
You can set up an automation such as "when a Stripe payment arrives, make the receipt". The agent creates the receipt through the same action as the API, under your permissions, and each automation run uses 1 AI credit. As with everything the agent does, sending it to the client waits for your confirmation unless you enabled auto-send for that automation.
By hand or through the API
Create a receipt yourself in the web app, or with the API:
curl -X POST "https://api.freeinvoiceautomation.com/v1/documents" \
-H "Authorization: Bearer $FIA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7d3a9b02-receipt-order-1042" \
-d '{
"type": "receipt",
"client_id": "0193f2a1-0c11-7d2e-9a40-1b2c3d4e5f60",
"currency": "GBP",
"issue_date": "2027-02-03",
"lines": [
{ "description": "Ceramic mug, blue", "quantity": "2", "unit_price_minor": "1800" }
]
}'The endpoint is Create a receipt. There is no dedicated MCP tool for receipts at launch; MCP clients can list and read them with list_documents and get_document, and the capability is available in the REST API, the CLI (from the week of 25 January 2027) and the AI agent.
Connectors send a deterministic Idempotency-Key built from the store and order id, so the same order never creates two receipts.
Create a receipt in the web app
Start a new document
Create a new document, choose the receipt type and pick the client.
Add what was paid for
Add the lines, taxes and any discount, exactly as the client paid.
Issue and deliver it
Issuing gives the receipt the next number in the sequence. Then email it, download the PDF or copy its link.
Rules and edge cases
- Voiding a receipt. A receipt can be voided, with a reason, if it was issued by mistake. It keeps its number and shows a "VOID" stamp. See Void and delete.
- No deletion once numbered. Like every numbered document, a receipt is never deleted, so your sequence stays complete.
- Platform email quota. Emailing a receipt through the platform mailer counts against your monthly quota (Free 20, Team 100). Your own SMTP is unlimited. See Platform email.
- Clean for clients. No ads, affiliates or sponsors on receipts. The "Powered by Free Invoice Automation" line appears on Free and is removed on Team.
Permissions
| Action | Permission key |
|---|---|
| View receipts | documents.view |
| Create receipts | documents.create |
| Revise receipts | documents.edit |
| Email and share | documents.send |
| Void | documents.void |
Errors you may see
| Code | Meaning |
|---|---|
validation_failed | A field is missing or invalid. |
idempotency_key_reused | The same Idempotency-Key was sent with a different body. |
document_voided | The receipt is void. |
quota_exceeded | Your platform emails for this month are used up. Connect your own SMTP to keep sending. |