SMS credits — billing

SMS credits are bought separately from your plan. Top up, auto-top-up, receipts.

Owner

SMS in Pistonlog runs on a credit balance held per garage (garages.credits in the schema). Each text costs 1 credit per 160 characters (bodies are capped at 320 characters, so at most 2 credits per send). You buy credits in batches when you need them — they don't expire, and they're separate from your subscription plan.

Topping up

Open the credits page

Workshop Settings → Manage Workshop Credits (in the Billing & Integrations section).

Pick a bundle

Bundle sizes scale from small one-off top-ups to large bulk packs. Bigger bundles have a lower per-credit cost (between 7p and 10p depending on size).

Pay

Stripe Checkout handles the payment. Credits are added the moment the payment succeeds.

Check the balance

Visible at the top of the same page, alongside your credit history. Decreases by the message's credit cost each time an SMS sends (and is refunded automatically if the gateway fails).

Per-garage scope

If you run multiple garages, each garage has its own credit balance. Topping up at Bristol doesn't help Bath. Every SMS path (reminders, review requests, portal links, appointment confirmations) draws from the active garage's balance only.

What shows on the receipt

The Stripe payment shows the bundle name and price (e.g. "500 credits", £45.00). The listed price is what's charged; the checkout doesn't add tax on top.

What happens at zero

A send attempt with zero credits fails immediately. The reminder_logs row is marked failed with errorMessage: "Insufficient credits". Email sends keep working — they don't draw from this balance.

Why credits

Twilio charges Pistonlog per-message at carrier-set rates. Credits are how those costs land back on the garage's account without us reconciling Twilio bills in real time.

Related

Was this article helpful?