Shop & billing/Purchases & invoices
updated 2026-08-29
Shop & billing

Purchases & invoices

Every sale you have made and every invoice behind it: creating purchases, the statuses a purchase moves through, session credits, pausing and resuming, and working with invoices.

A purchase is one client buying one thing. It records who bought, what they paid, what they got access to, and where that access stands today. An invoice is the billing document behind it. A one-off purchase has one invoice, a subscription gets one per renewal, and an installment plan has one per dated payment.

Purchases live in Shop → Purchases.

The shop dashboard

Shop → Overview answers “how is the business doing” for a date range you pick:

  • Revenue in the period, with a weekly breakdown.
  • New subscriptions and one-time purchases started in the period.
  • Active subscriptions right now.
  • Expiring soon and Recently expired, both clickable straight through to the purchase.

Expiring soon is the one to watch. It is your renewal conversation list, a few days before access actually runs out.

Creating a purchase

Two ways in, for two situations:

QUICK ADD
From a client's profile
Name, amount, date, optional product. A few seconds while you are with the client
FULL DETAILS
Shop → Purchases → Add Purchase
Everything: tax, expiry, linked plans, guest billing details, installments
Quick Add for speed, the full form when the details matter. Both create the same kind of purchase, and anything Quick Add skips can be filled in afterwards.

Pick a product and the purchase inherits its price, currency, pricing type, session count, linked plans, and access expiry. You can override any of it before saving; the purchase keeps what you saved even if the product changes later.

Client or guest

  • Client links the purchase to a profile. The name and email come from that profile, the purchase shows on their page, and they see it in their app.
  • Guest is a manual name and email, for somebody who is not a client in Protocol.

A guest purchase still invoices and still sends email. It just has no profile behind it, so nothing appears in anybody’s app.

Statuses

1 · CREATED
PENDING
Recorded, not confirmed yet
2 · CONFIRMED
ACTIVE
Paid and in force. Plans granted, sessions usable
3 · ENDS
EXPIRED CANCELED
Access over, history kept
The normal path. Pausing, going past due, and refunds branch off the ACTIVE state.
Status Means Colour on the list
PENDING Recorded but not confirmed. Nothing has been granted yet Blue
ACTIVE Paid and in force Green
PAST_DUE An installment payment is late. See installments Red
PAUSED Deliberately parked by you, optionally with an auto-resume date Amber
CANCELED Ended early Amber
EXPIRED Ran out on its expiry date or at period end Grey
REFUNDED Money returned Red
FAILED Payment did not go through Red

Confirming a purchase, meaning moving it to ACTIVE, is what grants the linked plans and makes sessions usable. That is why a purchase you create as PENDING does not give the client anything until you confirm it.

Pausing and resuming

Pause a purchase when a client is away and you do not want their access or their payment clock running. Only an ACTIVE or PAST_DUE purchase can be paused, and you can set a date for it to come back on its own; leave that empty and it stays paused until you resume it.

A paused purchase is left alone by the rest of the shop. It is not chased for late installment payments, and it does not appear under the purchases list’s payment state filters, because a client you deliberately parked is not somebody to chase.

Session credits

A purchase made from a session-pack product tracks total, consumed, and remaining sessions.

Record a session against the purchase as you deliver it and the remaining balance drops by one. Each one is kept in a spend history with its date and an optional note, so you can see where a pack went. Recorded a session by mistake? Delete that history entry and the session goes back on the balance.

You cannot spend more sessions than remain, so a pack cannot go negative by accident.

Actions on a purchase

  • Send confirmation email, the receipt-style summary of what they bought. On the purchase itself, under Actions while editing.
  • Send invoice email, the invoice itself. On the invoice view (Shop → Purchases → the purchase → Invoice), the Send Invoice button beside Print and Download PDF. It goes to the purchase’s billing email, so a purchase with none recorded says so instead of sending. The client gets a short summary in the email and the invoice attached as a PDF, carrying your logo, brand colour, business details and the invoice footer text from Shop settings.
  • Renew, for a subscription: charges the next cycle, moves expiry forward, and produces a new invoice. Renewals normally run on their own; this is the manual override.
  • Pause and Resume, as above.

Invoices

Every purchase has at least one invoice, found on the purchase itself or at Shop → Purchases → the purchase → Invoice. An invoice carries its own number, the amount, the tax snapshot taken at purchase time, and the billing name and address from Shop settings.

Invoice status Means
DRAFT Created, not issued
ISSUED Sent or ready to send
SCHEDULED An installment payment with a future due date
PARTIALLY_PAID Some money in, a balance still owed
PAID Settled in full
VOID Cancelled. Kept for the record, counts for nothing

Void, do not delete. Voiding leaves the document in the history with a clear cancelled status, which is what an accountant wants. Deleting is for something created by mistake that should never have existed.

Invoices can be exported as a PDF for a client who wants one for their records, and the invoice footer text in Shop settings is where your payment terms or bank details go.

Recording payments, including partial ones, is covered in Selling in installments.

Finding things in the list

The purchases list searches across customer name, email, purchase name, access code, and external id, and sorts by any column. On top of that, filter chips narrow it to installment plans by payment state: Overdue, Due soon, On track, or Fully paid, each with the plan’s next due date and progress in its own column. That is all documented in Selling in installments.

Who is expiring soon

Beside those chips is an Expiring filter, for the other question the list has to answer: who is about to run out, so you can talk to them about renewing before it happens rather than after.

  • Pick a rolling window: the next 7, 14 or 30 days.
  • Or set an explicit range, for example everything expiring between 1 and 3 September. Either date on its own works too, so “anything after 1 December” is a valid question.

The two filters combine. Next 14 days together with Overdue gives you the list worth opening first: people whose access is about to lapse and who are already behind on payments.

A few things it deliberately does:

  • It only counts purchases a renewal still applies to. Something already cancelled, refunded or expired is not expiring, it is over, so it stays out. A paused purchase is included: the client is still yours, and their access still ends.
  • It never looks backwards. A window is from today forward.
  • A date range includes the whole of the last day. Asking for 1 to 3 September catches something that expires at six in the evening on the 3rd.

While the filter is on, the button carries a dot and shows the window, so a short list is never mistaken for an empty one.

This is separate from the expiry notification, which arrives 5 days before. That is a nudge; this is the list you pull when you want to plan a fortnight ahead.

Protocol is a wellness and optimization platform. It is not a medical device and does not diagnose, treat, cure or prevent any disease. Ranges and trends shown in the product are wellness reference points, not clinical thresholds. Always discuss your health, and any result that concerns you, with a qualified healthcare provider.