Estimates and quotes issue free here, and the free part lives in one condition

by•

An invoice spends a credit. An estimate or a quote spends none, on any balance, including an empty one. It is not a trial allowance or a monthly cap. The reasoning is ordinary enough: a proposal is what brings the account that later issues the invoice we do charge for, and pricing the offer is charging for the sales call.

The part worth reading is where that lives. It is not a promise on a pricing page and it is not a check at each endpoint. It is one line in the service that creates documents: leaving draft charges a credit, and only for a type that can ask for money. Everything that could bill goes through it, the editor, the API create, the API issue, the recurring run.

Which means it is one condition away from being undone. The obvious way to write the check at the API is that this endpoint issues a document, so bill it. That reads correctly, passes review, and starts charging for estimates. The note beside our only 402 says exactly that, because the person likeliest to break it is us in six months, and by then the reasoning is gone.

Two consequences we took on purpose. Only invoices can go on a recurring schedule, because a timer issuing documents that spend nothing is unbounded free work. And the charge is on leaving draft rather than on becoming issued, because saving straight to paid and then marking it unpaid lands on issued, which was a way to be issued for free.

Where does your pricing actually live: one line in a service, or a condition repeated everywhere that could charge? I would guess mostly the second, and that is how a free thing quietly stops being free.

Add a comment

Replies

Be the first to comment