Skip to content

Billing

Billing charges each Invoice when it is owed, recovers failed payments, and refunds within Limits.

Outcome

PartThis Process
OutcomeEach Invoice ends paid, refunded, or written off, and its Customer heard why at every step.
ReadsInvoice, Order
LeavesTransaction, Invoice, Message, Approval, Evidence, Dispute
On timeWithin 1 day (business hours); the clock stops while an Action waits on awaitingInput. Late Actions go to the Finance Lead.
Runs inEach Startup

Accountable

Billing Specialist, Finance Team.

Responsible: Billing Specialist.

Consulted: Finance Lead.

Informed: Customer Lead, Success Manager.

Workflows

Who does each step

Billing: who does each step20 steps in 5 Workflows, across 3 Roles: Billing Specialist, Success Manager, Risk Analyst. The table below lists every step.Billing SpecialistBeaSuccess ManagerSiennaRisk AnalystRemyWorkflowDunningWorkflowIssue a refundWorkflowInvoice remindersWorkflowRenewal noticeWorkflowAnswer a chargeback1 · Invoice.collectRetry each unpaid Invoice on thedunning schedule.2 · Message.createTell the Customer once per retry, with alink to update payment.3 · Subscription.pausePause service only after the lastattempt fails.4 · Invoice.voidVoid the Invoice and write it off 30 daysafter service pauses unpaid.1Check the amount against the BillingSpecialist’s Limit.2Refund the Order through Stripe once itsdelay window passes.3 · Message.createTell the Customer the refund is sent.1 · Message.createRemind the Customer on each sendInvoice a week before its due date, withbank details and its purchase ordernumber.2 · Message.scheduleRemind again the day after it falls pastdue.3 · Subscription.pausePause service only after the lastreminder past due goes unpaid.1 · Subscription.listFind Subscriptions and Agreements of ayear or longer that renew inside thenotice window, 15 to 45 days out bydefault.2Find free trials longer than 31 days thatconvert to paid inside 3 to 21 days.3 · Message.createSend one Message with the renewaldate, the Price, usage against eachEntitlement, and a one-step cancel link.4Send it inside the Customer’s openThread when a complaint is open, neverafter the window’s last day.5 · Subscription.updateRecord the notice on the Subscription orAgreement with the date sent.6 · Renewal.openHand Customers whose usage fell thisterm to the Success Manager before therenewal date.1 · Evidence.createGather the Order, its delivery record, theMessages and the terms the Customeraccepted as Evidence.2 · Dispute.acceptAccept the Dispute only when theEvidence cannot win it; otherwiseanswer it.3 · Dispute.answerAnswer the Dispute through Stripebefore its deadline.4 · Party.screenSend a Customer with a second Disputeto fraud screening.Billing: who does each step20 steps in 5 Workflows, across 3 Roles: Billing Specialist, Success Manager, Risk Analyst. The table below lists every step.WorkflowDunningWorkflowIssue a refundWorkflowInvoice remindersWorkflowRenewal noticeWorkflowAnswer a chargebackBilling Specialist1 · Invoice.collectRetry each unpaid Invoice on the dunningschedule.Billing Specialist2 · Message.createTell the Customer once per retry, with a link toupdate payment.Billing Specialist3 · Subscription.pausePause service only after the last attempt fails.Billing Specialist4 · Invoice.voidVoid the Invoice and write it off 30 days afterservice pauses unpaid.Billing Specialist1Check the amount against the Billing Specialist’sLimit.Billing Specialist2Refund the Order through Stripe once its delaywindow passes.Billing Specialist3 · Message.createTell the Customer the refund is sent.Billing Specialist1 · Message.createRemind the Customer on each send Invoice aweek before its due date, with bank details andits purchase order number.Billing Specialist2 · Message.scheduleRemind again the day after it falls past due.Billing Specialist3 · Subscription.pausePause service only after the last reminder pastdue goes unpaid.Billing Specialist1 · Subscription.listFind Subscriptions and Agreements of a year orlonger that renew inside the notice window, 15 to45 days out by default.Billing Specialist2Find free trials longer than 31 days that convertto paid inside 3 to 21 days.Billing Specialist3 · Message.createSend one Message with the renewal date, thePrice, usage against each Entitlement, and aone-step cancel link.Billing Specialist4Send it inside the Customer’s open Thread when acomplaint is open, never after the window’s lastday.Billing Specialist5 · Subscription.updateRecord the notice on the Subscription orAgreement with the date sent.Success Manager6 · Renewal.openHand Customers whose usage fell this term to theSuccess Manager before the renewal date.Billing Specialist1 · Evidence.createGather the Order, its delivery record, theMessages and the terms the Customer acceptedas Evidence.Billing Specialist2 · Dispute.acceptAccept the Dispute only when the Evidencecannot win it; otherwise answer it.Billing Specialist3 · Dispute.answerAnswer the Dispute through Stripe before itsdeadline.Risk Analyst4 · Party.screenSend a Customer with a second Dispute to fraudscreening.
Each box is a step, numbered within its Workflow, with the Verb it calls, under the Role it runs as. The table below adds approvals.
WorkflowStepRoleCallsApproval
Dunning1. Retry each unpaid Invoice on the dunning schedule.Billing SpecialistInvoice.collectWithin a Mandate; waits 1 business hour
Dunning2. Tell the Customer once per retry, with a link to update payment.Billing SpecialistMessage.createNone
Dunning3. Pause service only after the last attempt fails.Billing SpecialistSubscription.pauseNone
Dunning4. Void the Invoice and write it off 30 days after service pauses unpaid.Billing SpecialistInvoice.voidAsks first; waits 1 business hour
Issue a refund1. Check the amount against the Billing Specialist’s Limit.Billing Specialist
Issue a refund2. Refund the Order through Stripe once its delay window passes.Billing Specialist
Issue a refund3. Tell the Customer the refund is sent.Billing SpecialistMessage.createNone
Invoice reminders1. Remind the Customer on each send Invoice a week before its due date, with bank details and its purchase order number.Billing SpecialistMessage.createNone
Invoice reminders2. Remind again the day after it falls past due.Billing SpecialistMessage.scheduleNone
Invoice reminders3. Pause service only after the last reminder past due goes unpaid.Billing SpecialistSubscription.pauseNone
Renewal notice1. Find Subscriptions and Agreements of a year or longer that renew inside the notice window, 15 to 45 days out by default.Billing SpecialistSubscription.listNone
Renewal notice2. Find free trials longer than 31 days that convert to paid inside 3 to 21 days.Billing Specialist
Renewal notice3. Send one Message with the renewal date, the Price, usage against each Entitlement, and a one-step cancel link.Billing SpecialistMessage.createNone
Renewal notice4. Send it inside the Customer’s open Thread when a complaint is open, never after the window’s last day.Billing Specialist
Renewal notice5. Record the notice on the Subscription or Agreement with the date sent.Billing SpecialistSubscription.updateNone
Renewal notice6. Hand Customers whose usage fell this term to the Success Manager before the renewal date.Success ManagerRenewal.openNone
Answer a chargeback1. Gather the Order, its delivery record, the Messages and the terms the Customer accepted as Evidence.Billing SpecialistEvidence.createNone
Answer a chargeback2. Accept the Dispute only when the Evidence cannot win it; otherwise answer it.Billing SpecialistDispute.acceptAsks first; waits 1 business hour
Answer a chargeback3. Answer the Dispute through Stripe before its deadline.Billing SpecialistDispute.answerAsks first; waits 1 business hour
Answer a chargeback4. Send a Customer with a second Dispute to fraud screening.Risk AnalystParty.screenNone

Events

DirectionWhenWhat happens
InEvery dayStarts Dunning
InOn every Order.refund callStarts Issue a refund
InEvery dayStarts Invoice reminders
InEvery dayStarts Renewal notice
InOn Dispute.openedStarts Answer a chargeback
InOn Invoice.overdueWakes this Process, the first time only. The first retry of a Customer’s payment has failed.
OutInvoice.collectedRaised by step 1 of Dunning
OutMessage.createdRaised by step 2 of Dunning
OutSubscription.pausedRaised by step 3 of Dunning
OutInvoice.voidedRaised by step 4 of Dunning
OutMessage.scheduledRaised by step 2 of Invoice reminders
OutSubscription.updatedRaised by step 5 of Renewal notice
OutRenewal.openedRaised by step 6 of Renewal notice
OutEvidence.createdRaised by step 1 of Answer a chargeback
OutDispute.acceptedRaised by step 2 of Answer a chargeback
OutDispute.answeredRaised by step 3 of Answer a chargeback
OutParty.screenedRaised by step 4 of Answer a chargeback

Plays

No Play names this Process.

Controls

Settings

SettingTypeDefaultSaySet with
dunning.retriesinteger4Retry failed payments four timesSetting.update
dunning.pauseServicebooleantruePause service after the last retry failsSetting.update
refunds.limitmoney$100Refund up to $100 without asking meSetting.update

Failure

A failed step retries; when retries run out, the Action goes to the Finance Lead.

StepOn failure
Dunning 1. Retry each unpaid Invoice on the dunning schedule.cardExpired: The card on file has expired, so no retry can succeed. Continues at tell.
Dunning 3. Pause service only after the last attempt fails.Remedy: Subscription.resume.
Issue a refund 2. Refund the Order through Stripe once its delay window passes.Goes to the Finance Lead.
Invoice reminders 3. Pause service only after the last reminder past due goes unpaid.Remedy: Subscription.resume.
Answer a chargeback 2. Accept the Dispute only when the Evidence cannot win it; otherwise answer it.contest: The Evidence shows the Order was delivered as sold, so the Dispute is answered. Continues at answer.
Answer a chargeback 3. Answer the Dispute through Stripe before its deadline.Goes to the Finance Lead.

Loop

StepValue
HypothesisRetrying a failed payment on the Customer’s usual pay day recovers more Invoices and keeps more Customers than retrying daily.
MeasureMonth-3 retention over 90d, at least 100 observations
LearnThe learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant.

Code

Text
Turn on billing

Enable

On by default for SaaS, Headless SaaS, Dataset API, Agent as a Service. Process.pause stops new Actions; Actions in progress finish.

Text
Retry failed payments four times

Example

A dental-reminder SaaS bills 140 offices on the 1st. Dunning recovers 9 of the 11 failed cards by the 14th. The Billing Specialist refunds one double charge of $49, inside its $100 Limit, the same hour.