Solutions

Invoicing for meal-plan businesses

An invoice from a meal-plan kitchen has to agree with something physical — a set of boxes that did or did not arrive — which makes it harder to get right than a simple recurring charge.

The document has to match the operation

Disputes in this business are almost never about the rate. They are about the count: a customer who paused for a week, or had two failed deliveries, and believes the amount does not reflect that. If the invoice is generated from a different source than the delivery record, that argument cannot be settled by looking — only by negotiating.

Generating the document from the same records that drove production and delivery makes the invoice evidence rather than an assertion.

What the record has to carry

  • Correct amounts as integers

    Money stored in minor units with an explicit currency. Floating-point arithmetic on money produces rounding errors that surface as one-off complaints nobody can reproduce.

  • Seller and buyer tax details

    The identifying fields a compliant tax invoice needs, captured once rather than typed per document.

  • A stable document identity

    A number that does not move, so the copy the customer holds and the copy you hold are provably the same document.

  • A link to what was delivered

    The days and boxes the amount covers, so a query is answered by reference rather than by memory.

Designing for e-invoicing before it is required of you

Saudi Arabia’s ZATCA regime and the UAE’s VAT rules push in the same direction: invoices become structured records with mandated fields rather than a formatted document you designed. Retrofitting that later is genuinely painful, because historic records lack the fields.

The cheap version of preparing is to design the invoice record with those fields present from the beginning — tax registration numbers, a hash or reference chain, the data an authority expects — even while issuance itself stays simple. Storing the fields costs nothing today and removes a migration later.

Common questions

Should a paused week reduce the invoice automatically?
Only if that is how the plan was sold. What matters more is consistency: pick whether a pause extends the term or forfeits the days, apply it every time, and make the invoice show which rule was used.
Why store money as integers rather than decimals?
Because decimal arithmetic on money accumulates rounding errors that appear as small, irreproducible discrepancies across many invoices. Storing minor units with an explicit currency code removes the entire class of bug.
Does a meal-plan business need e-invoicing today?
That depends on the jurisdiction and the size of the business, and it is a question for an accountant rather than a software vendor. Designing the record so the required fields exist is worth doing regardless, because adding them retroactively is far harder.

See it running against a real kitchen

The product pages show the actual admin, loaded with a demonstration kitchen — production, packing, routes and the dashboard, exactly as an operator sees them.