Skip to content

Billing portal

Billing portal lets each Customer replace a card, fix billing details, download receipts, change plans and cancel, on the Startup’s own Domain.

It is the billing section of the Portal, and nothing in it waits on the Startup.

Contract

The section lives at /portal/billing, under the Startup’s Brand. Stripe’s embedded form collects card details on that page, so no step sends the Customer to another domain.

Customer needWhat the Customer seesCall
Replace a cardSaved Payment Sources, the default marked, and a form to add onePaymentSource.add or PaymentSource.remove
Fix billing detailsBilling email, address and tax ids, printed on every new InvoiceCustomer.billingEmail, Customer.billingAddress and Customer.taxIds, set through Customer.update
Download a receiptEvery Invoice and receipt as a PDF that names the seller of recordInvoice.pdf
Pay a failed chargeThe unpaid Invoice and one button that pays it with the new cardInvoice.collect
Switch plansEach Offer the Customer can move to, and today’s prorated amount before confirmingSubscription.switch
Add or remove unitsUnits held against units in use, and the prorated amountSubscription.resize
PauseThe date billing resumesSubscription.pause
CancelOne confirm; access lasts until the period closesSubscription.unsubscribe
Undo a cancelA button that keeps the Subscription until the period closesSubscription.keep
RuleDetail
Preview firstA plan or unit change runs Subscription.switch or Subscription.resize as try, shows the prorated charge, then runs as do on confirm; see Modes.
Exits never waitSubscription.unsubscribe, a move to a cheaper Offer and Subscription.keep run at once, with no Limit, Approval or delay window.
Cancel paritySubscription.unsubscribe takes no more steps than buying did, as the renewals floor row requires.
Failed paymentsEvery Dunning message links here, signed in, at the unpaid Invoice.
Own records onlyPaymentSource.list and every view here return only the Customer’s own records; a Payment Source never moves to a sibling Startup.
Developer toolsA keyed Offer adds Portal.tools: keys, usage against each Limit, the request log, Watches, the version pin and the test twin of each key.

Verbs

Interfaces

Example

A clinic’s renewal on shiftnote.app fails on an expired card. The Dunning email opens shiftnote.app/portal/billing at the unpaid Invoice, and the office manager adds a new default card, which pays it at once. She then lowers the plan from 12 members to 9 and sees that the lower price starts at the next renewal.