InvoicingInvoices

Invoicing

Invoices

Create, send and track invoices with lines, taxes and discounts. Each business numbers its own invoices with no gaps, and sent invoices change only by revision.

An invoice asks your client to pay for work you did or goods you sold. You build it from lines, taxes and discounts, send it by email or link, and your client pays on the pay page. Invoices are on every plan, including Free, with no limit on how many you create.

How invoices work

Every invoice belongs to one business and one client. It moves through a simple life:

  1. Draft. You create and edit the invoice freely. A draft has no number yet, so you can delete it without leaving a gap.
  2. Sent. The first time you send or share it, the invoice gets the next number from the business's sequence and a snapshot is stored. From now on it is fixed.
  3. Paid, partially paid or overdue. Payments move the balance down. An invoice turns paid only when a payment rail confirms it or a person records the payment, never because a browser was redirected.
  4. Void, if it was sent by mistake and nothing has been paid. A voided invoice keeps its number.

The full list is on Document statuses.

What is on an invoice

PartWhat it holds
Headerbusiness, client, currency, issue date, due date, terms and notes
Linesdescription, quantity, unit, unit price, discount and tax for each line (Line items)
Totalssubtotal, discounts, tax, total, amount paid, amount credited and balance
Accepted methodswhich of the business's payment methods the client may use on this invoice
Templatethe PDF template used to render it (PDFs and templates)

All totals are calculated by the same engine on every surface: the web app, the API, MCP, the CLI, the AI agent and the free generator. Amounts are stored as whole numbers of the currency's smallest unit (cents, paisa, fils), so rounding never creates or loses money between lines and totals. The balance is always total minus amount paid minus amount credited.

Fixed once sent

A sent invoice is a record your client already holds. To keep that record trustworthy:

  • The business details, client details, lines, tax rates and exchange rate are frozen in a snapshot when it is first sent.
  • Changing a sent invoice creates a revision with its own snapshot. Earlier versions stay readable.
  • A sent invoice can never be deleted. If it was a mistake, void it. If it was paid, issue a credit note.

Create an invoice in the web app

1

Start a new invoice

Click New invoice in the top bar (on a phone, the centre button of the bottom tab bar). If you can reach more than one business, check the business switcher first: the invoice is issued by the business you are working in.

2

Pick the client

Choose an existing client or add a new one. The client's defaults, such as currency, payment terms and default tax rate, are applied to the invoice.

3

Add lines

Type a description, or start typing the name of a saved item and pick it to fill the line. Set quantity, unit price, discount and tax on each line. The live preview on the right updates as you type.

4

Check dates, terms and notes

The due date comes from your payment terms (Due dates and payment terms). Add any terms and notes the client should see.

5

Save or send

Use Save draft to keep working later, or Send to number it and deliver it (Send a document).

Open Invoices to see every invoice. Filter by status, client and date, and click a row to open a side panel with the PDF preview, the timeline of what happened, and the actions you are allowed to take.

Create an invoice through the API or MCP

Every action in the app is also an API call with the same rules and permissions. A new invoice is always a draft.

curl -X POST "https://api.freeinvoiceautomation.com/v1/documents" \
  -H "Authorization: Bearer $FIA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4b1d7f2e-invoice-website" \
  -d '{
    "type": "invoice",
    "business_id": "0193f2a0-1b2c-7d3e-8f40-5a6b7c8d9e01",
    "client_id": "0193f2a1-0c11-7d2e-9a40-1b2c3d4e5f60",
    "currency": "USD",
    "issue_date": "2027-01-04",
    "due_date": "2027-01-18",
    "lines": [
      { "description": "Website design", "quantity": "1", "unit_price_minor": "120000" },
      { "description": "Hosting setup", "quantity": "2", "unit": "hour", "unit_price_minor": "4500" }
    ]
  }'
Response (201)
{
  "data": {
    "id": "0193f2b4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
    "type": "invoice",
    "status": "draft",
    "number": null,
    "currency": "USD",
    "subtotal_minor": "129000",
    "discount_minor": "0",
    "tax_minor": "0",
    "total_minor": "129000",
    "amount_paid_minor": "0",
    "amount_credited_minor": "0",
    "balance_minor": "129000"
  }
}

Money is a string of integer minor units, so "129000" is 1,290.00 USD. Floating-point amounts are refused.

TaskEndpointMCP tool
Create a draftCreate an invoicecreate_invoice
Change itUpdate an invoiceupdate_invoice
Read one or manyGet a document, List documentsget_document, list_documents
See what is lateList overdue documentslist_overdue
Send itSend a documentpreview_send, send_document

Integrations, MCP clients and the AI agent only ever create drafts. A person confirms each send unless the API key or MCP token was created with auto-send. See Drafts and confirmations.

Rules and limits

  • Unlimited. There is no cap on invoices, clients or businesses on any plan.
  • Numbers are per business and per type. Invoices have their own gap-free sequence, separate from estimates, credit notes and receipts. See Document numbering.
  • Number on first send. A draft has no number. The number is assigned in the same step that sends it.
  • Currency and exchange rate. When the invoice currency differs from the business's base currency, the rate is frozen on the invoice (Currencies).
  • Paid state comes only from trusted events: a verified webhook from the payment rail, a reconciliation run, or a payment a person records. A client saying "I have paid" does not mark it paid.
  • Clean for clients. No ads, affiliates or sponsors appear on your PDFs, pay pages or client emails.

Permissions

ActionPermission key
View invoicesdocuments.view
Create draftsdocuments.create
Edit drafts and make revisionsdocuments.edit
Send and sharedocuments.send
Voiddocuments.void
Issue credit notesdocuments.credit

Owners and Admins hold all of these by default; Editors can create, edit and send but not void or credit. See Roles and permissions.

Errors you may see

CodeMeaning
validation_failedA field is missing or wrong, for example a quantity of 0. details.issues lists each field.
document_not_editableThe invoice was sent. Change it by revision.
document_voidedThe action is not allowed on a void invoice.
business_out_of_scopeYour role cannot reach this business.
permission_deniedYour role lacks the permission key.

The full list is on Errors.