Skip to main content

Membership Lifecycle & Invoicing

Definitions

Term Data Source Description
Stripe Subscription Stripe Subscription created in stripe (usually via sign-up page) for an individual customer.
Class Nookal A type of Class set up in your PMS
Membership Type BOS Links a Stripe Product with one or more Classes so The BOS can report on Memberships using this product and generate matching invoices. 
Stripe Invoice Stripe An Invoice is generated at the start of every subscription period. 
EG: A Weekly subscription will generate a new invoice covering the next 7 days on the signup date and every week after. 
Matching Classes BOS When looking at a particular Invoice the matching classes are classes that are:
  • attended by the client who the subscription belongs to
  • covered by that MembershipType
  • not cancelled or DN
Nookal Invoice BOS then Nookal A Nookal Invoice is generated at the end of a Stripe Invoice period and sent to Nookal to bill off any class attendances in that period

How the Nookal Invoice is calculated

Find Matching Classes

Matching classes are determined by: Invoice.Subscription.Membership.MatchingClasses which means:

  1. Find the Stripe Subscription that this invoice belongs to
  2. Find the matching BOS Managed Membership that has been set up (if any)
  3. Find the classes that this BOS Managed Membership has been set up for

The BOS then finds any classes of those types that have been booked for the patient associated with the subscription, then ignores any of the following:

  • Any attendances that are marked as Cancelled or DNA
  • Any attendances that have been marked as invoiced manually (IE: not by BOS Memberships system)

Any classes that remain will be included in the Nookal Invoice. If there are no classes remaining then an AdHoc Invoice is generated, which is associated with the client but is not linked to any classes and is just there to represent that the client was charged. 

To calculate the charges:

  • The 'normal' price of a class is completely ignored.
  • Divide subscription amount (full amount client was charged) by the number of classes
  • Make small adjustments to amounts to ensure that the totals match (EG: 3 classes at $100.00 would be $33.33, $33.33, and $33.34 so it matches exactly $100). 

If you use the Invoice Shipper: The 'normal' stripe invoice is shipped to Xero so it will simply be a charge for whatever the subscription is called, not an itemised invoice for individual classes like we send to Nookal.