IDA logoIda OS
Login
Browse all sections

Payments

/dashboard/payments

Payments is the studio's ledger. Tuition, bookings, workshops, shop orders, and competition fees all flow through one place, powered by Stripe. Staff track and reconcile the money; families pay and manage their own billing.

app.idaos.co/dashboard/payments
The payments ledger with outstanding, paid-this-month, and past-due summary cards, revenue charts, and an outstanding charges table
The iPhone app's Payments screen with the Due now total, next bill, and charges list

Tracking the money

The page is one filterable ledger. Search by family, then narrow by date range (this month, last month, the last 3 months, this year, or a custom range), type, status, method, and due date. The Due filter picks out charges by where they stand against their due date — Overdue, Due today, or Upcoming — and since only unpaid charges have a date to chase, it always shows charges still waiting to be paid, in the ledger and in the 'Awaiting payment' strip alike. The type filter lists every kind of payment the ledger can hold — from tuition and registration through calendar kinds like Private lesson, Class, Practice, and Rental to trials, workshops, competition fees, shop orders, adjustments, and the one-off fees you have named (those gather under a single Other charge entry) — each with a color dot matching its chip in the table, and the same list, in the same colors, filters the Payments screen in the iPhone app. Sort any column from its heading menu, and click a row to open the payment's full detail — amount, status, dates, any note, and how it was collected in plain English, with the Stripe reference for online payments. A payment that carries a note also shows a small note icon right in its row — hover over it to read the note without opening anything.

Charges still waiting to be paid also collect in an 'Awaiting payment' strip above the ledger — expand it to work through them. The strip follows your filters: narrow by search, type, status, or method and the strip's count and total narrow along with the ledger, so filtering the page to Tuition shows only the tuition still owed. Only the date range leaves the strip alone — outstanding charges are what is owed now, whatever period you are reviewing below. When any charge in that filtered view is past due, the strip carries an Overdue chip with the count: click it to see just the overdue charges (it flips the Due filter to Overdue, so the ledger below narrows with it, and clicking again brings everything back). Every row shows its type as a color-coded chip so you can tell tuition from bookings, workshops, registrations, shop orders, and competition fees at a glance — and a charge that came from a calendar booking names its actual kind, like Private lesson or Rental, in that type's calendar color, rather than reading as a generic Booking — and a paid trial booked through your booking form shows as Trial, in its own color, rather than blending in with workshops. The 'Export as CSV' button downloads exactly what you are looking at, with your filters and sort applied. Long histories load a page at a time — choose how many rows per page and step through — while the totals line under the table and the CSV export always cover everything your filters match, not just the rows on screen, so the page stays quick even with years of payments behind it.

Prefer the analytics view? Flip the 'Analytics' switch to swap the ledger for a compact analytics row — your total for whatever you have filtered, counted before tax, with the net after Stripe fees beneath it, next to revenue by month and revenue by type — plus the monthly matrix: each family's tuition and one-time totals month by month, with totals per month and per family. Click a family's row to break its months down by payment type — one line per type, color-coded to match the ledger's chips, so you can see how much of a month was tuition and how much was workshops or bookings — and use Expand all in the corner to open every family at once. The charts collapse to a single line that keeps your totals in view, so the matrix can take the whole screen when the numbers are what you are after. Your search and filters carry over, so you can chart a single family, one payment type, or any date range. Historical months come from your previous tracker, and new months fill in automatically from Stripe and recorded payments.

Sort and filter from any column

Web dashboard

Every column heading in the ledger carries a small arrow menu: open it to sort that column in either direction, or set a filter on just that column. Text columns — Date, Family, Type, Status, Method — filter by contains, equals, starts with, ends with, or whether the cell is empty; the amount columns — Amount, Stripe fee, Net — compare numbers, like greater than 200 or less than 50. Filters on different columns stack, so 'card payments over $200 from one family' is a few quick filters, and the table and the CSV export both follow exactly what you have narrowed to.

A dot on a column's arrow shows it has a filter on, Clear filter inside the menu removes that column's, and a 'Clear column filters' button above the table sweeps them all away. The monthly matrix in the analytics view has the same menus on its own columns — sort or filter by family name, any month's amount, or the family total — and its month totals and grand total recalculate to match the families left in view.

How each payment was collected

Every payment carries a method badge showing how the money arrived: Stripe for payments collected online by card or autopay, Manual for payments you recorded by hand (cash, cheque, or e-transfer), and Imported for history brought over from your previous tracker. A charge that has not been collected yet shows 'Awaiting payment' — its method is set once it is paid. Payment history has a Method column and a matching filter, alongside the existing type, status, and date filters.

A payment collected through Stripe also keeps its official receipt on hand once it is paid — refunded ones included. Choose View receipt in the row's ⋯ menu, or from the payment's detail, and the Stripe receipt opens in a new tab — the tuition invoice for autopay charges, or the card receipt for checkout payments. Front desk staff can open the same receipt from a payment in a family's record. Manual and imported payments have no online receipt — your ledger is the record for those.

Stripe fees, tax, and your net

The ledger keeps your prices, collected tax, and processing costs apart. The Amount column holds what the family actually paid — a paid Stripe payment notes the GST/HST it included, and while your Stripe Tax settings are active, a charge still awaiting payment shows its before-tax amount with a '+ tax at checkout, if applicable' note, since the exact tax is only known once the family pays. If your studio does not collect tax through Stripe, amounts appear plainly with no tax notes — in the ledger, the 'Awaiting payment' strip, a family's payment history, and each payment's detail alike. Beside it sit the Stripe fee and Net columns, both sortable: a payment's Net is what Stripe pays out on it, which includes any tax it collected. Opening a payment's detail breaks a payment that collected tax into Subtotal, Tax (GST/HST), and Total, alongside its Stripe fee and net.

The totals, on the other hand, keep collected tax out of your revenue: the totals line under the table adds up the gross (your before-tax amounts), the fees, and the net for exactly what you have filtered — and the net total sets aside collected tax along with Stripe's fee, since tax you collect is remitted, not earned, so it always shows what you actually keep and never reads higher than your gross. The analytics view works the same way: its headline Total is your before-tax revenue — the charts and the monthly matrix count the same amounts — with the net after Stripe fees beneath it, figured just like the ledger's net total.

The CSV export carries the full breakdown — Subtotal, Tax, Amount, Stripe Fee, and Net, plus each charge's due date when you have set one — so the file drops straight into your bookkeeping. Manual and imported payments have no processing fee, so their fee cell shows a dash and their net simply equals the amount, while an online payment whose fee Stripe has not reported yet shows a dash for both.

Note. Fees and tax are recorded when Stripe settles the payment, so a just-paid charge can show a dash for a moment before its fee, tax, and net fill in.

Creating payments, voiding, and refunding

Admins add to the ledger with the Create a payment button, which does two jobs in one dialog. Pick the family (the picker is searchable — just start typing a name), choose the payment type and amount, then choose how it settles: 'Bill the family' creates an outstanding charge the family sees in their portal and can pay online, while 'Already paid offline' logs cash, a cheque, or an e-transfer you have already collected and marks it paid on the spot — choosing it asks how the money was collected (cash, e-transfer, cheque, or other), just like recording a payment on an existing charge, and the answer is kept with the payment: its internal note leads with a line like 'Marked paid — Cash'. The dialog states the rule it lives by: bills stay unpaid until a family pays or you record a payment. A charge you create is never logged as paid unless you choose Already paid offline and say how it was collected — so even a charge created for several families at once can't be marked collected by a stray click. When you bill the family, you can also give the charge an optional due date: families see it right on the charge — 'Due Sep 5', 'Due today', and 'Overdue' once the date passes — the heads-up includes it when you choose to notify the family, and unpaid lists on your side bring overdue charges to the top, on the dashboard home's Needs attention card and in a family's payment history alike. The date is a reminder, not a trigger — nothing is charged automatically when it passes — and Edit changes or clears it later if plans move. One thing does key off it: on a tuition charge at a studio with a late-fee policy, late fees count from this date rather than the usual billing day. Two optional notes travel with the payment and show up in its row and detail: a note for families — 'October tuition after trial' — that the family sees on the charge in their portal and, once the payment settles, right on their receipt email; and an internal note — an e-transfer reference, say — that stays with staff and is never shown to the family. When the type is Tuition, a 'This payment covers' picker also names the class period the money is for: it starts on the current period, and you can choose an earlier or later one instead — fall-session tuition a family paid back in August, say. At studios whose bills go out the month before, each choice also says when it is billed, like 'September 2026 · billed in August'. The period follows the payment: its detail shows a Covers line, and if you leave the note for families blank on a tuition payment, it fills in with the period's name — 'September 2026 tuition' — so the family always sees what the money was for.

Each row's remaining actions live in the ⋯ menu at the end of the row. On an outstanding charge, Charge card collects it on the family's saved card right then — more on that below. Choose Record payment to log money collected outside Stripe: the dialog shows the outstanding balance, fills the amount in at that balance, and you pick how it was collected (cash, e-transfer, cheque, or other) and can add an optional note. Recording the full amount marks the charge paid, exactly as before. Recording less takes a partial payment — a family who hands you $40 against a $100 fee, say: the amount received becomes the paid record, receipt and all, and a new open charge for the remainder takes the original's place, so the family's balance and your outstanding totals stay right and the rest collects later like any other open charge. Only tuition already scheduled for autopay, and charges Stripe is collecting by invoice, must be recorded in full — wait for the card, or record the whole amount. If the family still has an open online payment link, recording a payment cancels that Stripe checkout first so a late card payment can't settle afterward. Or choose Void to cancel the charge (voiding asks you to confirm, since it will no longer be owed or payable). An unpaid charge keeps this same menu wherever its row appears — in the 'Awaiting payment' strip or down in the ledger itself when you search or filter — and its detail view carries a Record payment button too, so recording the cash never depends on which list you found the charge in. Edit note is available on unpaid and Stripe rows; full Edit (amount, type, date, note) stays on manual and imported payments.

On a paid payment, the menu offers Refund when it was collected through Stripe — the money goes back to the family's card — or Mark as refunded when it was a manual or imported payment, which only updates your records: there is no charge to reverse, so you return the money yourself. Either way you confirm first, with the exact amount and family spelled out. Refunding a payment tied to a booking or registration also updates that booking's status, so the calendar and Workshops stay in step with your ledger.

Paid class drop-ins keep the class roster in step the same way: the charge appears here when a family claims a paid drop-in, Record payment confirms their seat once the full amount has arrived outside Stripe — a partial payment is kept on the ledger but the seat stays awaiting payment until the rest is collected — Void releases a seat still awaiting payment, and refunding a paid drop-in takes the dancer back off that session's roster.

Workshop and camp registration charges follow their registration, so they work a little differently here: they cannot be edited, voided, or deleted from Payments — cancel the registration from Workshops instead. Record payment still works when an online payment link is open: it cancels that Stripe checkout first, then records the cash collection so a late card payment can't settle afterward. Only a full payment confirms the registration — a partial one is recorded and the spot stays awaiting the remainder. Refunds still happen right here.

Note. Editing, voiding, refunding, and deleting payments are admin actions, and instructors and front desk staff do not see this studio-wide ledger. Front desk can still take money in, though: from a family's record they can create a charge, log a payment collected offline, or record a payment against an open charge — in full or in part — and the family gets the usual receipt.

Charging a family's card on file

When a family keeps a card saved with Stripe — from autopay, or from a checkout they have paid before — you can collect what they owe without waiting for them to log in. On a family's Payments tab in Manage family, a Charge button appears beside Create a payment whenever there are charges it can collect; it collects everything outstanding in one go — skipping any tuition marked 'Autopay scheduled', since autopay is already set to collect that one on the family's billing day. To collect a single charge instead, choose Charge card in that charge's ⋯ menu — in the family's list, the ledger's 'Awaiting payment' strip, or any unpaid row of the ledger itself — or use the Charge card button on the payment's detail. A failed autopay charge can be retried the same way once the family's card is sorted out.

You always confirm before anything is collected. The dialog names the saved card — like 'Visa ••4242', usually the one autopay uses — and lists each charge it will collect, the online fee if your studio adds one for card payments, and, when your studio collects GST/HST, the tax calculated from the family's billing address the same way checkout does, ending in the exact total. Once the charge goes through, the ledger updates and the family gets the usual receipt by email and in the app. If the card is declined, nothing is collected — the charge stays owed, you see the decline message, and the family can still pay another way. Charging also closes any online payment link the family had open for the same charge first, so a late card payment can't settle twice.

When a family has no card saved, the button stays greyed out and says why: ask them to start autopay or pay once online, and Stripe keeps their card on file for next time.

Note. Charging the saved card is taking a payment, so front desk staff can do it from a family's record just like admins — the studio-wide ledger itself stays admin-only. It works the same in the iPhone app: the Charge button on a family's record on the Families tab, and Charge card on a payment's detail screen.

One-off fees with your own names

Costume fees, recital fees, photo day — one-off charges that are not merch or tuition can carry your own names. When you create a payment, those names appear in the Type list alongside Tuition, Merch, and Other charge. Pick Snack or Costume fee the same way you pick any other type — its default amount fills in (you can still change it). If the fee is not in the list yet, choose Add new charge type, name it there, and it is saved to Settings → Payments → Other charges for next time. Or pick Other charge to bill a one-off without adding a name to Settings. This works wherever payments are taken: the ledger's Create a payment dialog, a family's record, and the iPhone app alike.

The name you chose follows the charge everywhere. The family sees 'Costume fee' — not a generic label — on the charge in their portal, at online checkout, on their receipt, and in the heads-up when you notify them; on your side it shows on the payment's type chip in the ledger, on the dashboard home, and in the payment's detail. A generic Other charge shows as Other charge. In the type filter, all of these gather under a single 'Other charge' entry. Editing a payment can also move it onto one of these charges, or from one charge to another.

Note. Renaming or deleting a charge type in Settings never rewrites history — payments already billed keep the name they were billed with.

Fixing or removing a manual payment

Payments you recorded by hand — and history imported from your previous tracker — can be corrected after the fact. Choose Edit in the row's ⋯ menu (or from the payment's detail view) to change its type, amount, paid-on date, due date, or note — and, on a tuition payment, the class period it covers, so a payment sitting on the wrong month is easy to point at the right one; a receipt that already went out is not resent, so let the family know if the amount changed. Delete removes such a payment from your ledger, totals, and charts — it is kept for audit, and you confirm first.

Payments collected through Stripe cannot be edited or deleted — they mirror the actual charge. If one is wrong, refund it instead.

When tuition bills

By default each family on autopay bills on the anniversary of the day they signed up. If you would rather everyone bill on the same day, set a fixed tuition billing date in Settings (a day from the 1st to the 28th, so it lands in every month). You can also let families pick from a whitelist of those days — typically the 1st and the 15th — with your default used when they do not pick. New autopay sign-ups then anchor to the day that family uses; families already on autopay keep their existing date. On that same setting — in Settings on the web, and on the Billing screen of the iPhone app's Studio settings — First tuition bill chooses whether a family that joins mid-month also owes this month in full (they pay it now) or waits until next month — next month is the default. You can also split the difference with a cutoff day: joiners through, say, the 15th owe this month, later ones start next month. Late fees that count days after due are one studio rule from each family's due date. Calendar-day late fees are a specific day of the month — when parents can pick more than one autopay day, you set those dates separately for each choice (for example the 10th after the 1st, and the 20th after the 15th). For tuition billed straight from a family's plan, the fixed date applies to monthly plans only — plans that bill per quarter, 6 months, or year always charge from the day the family signed up, one full period at a time. At studios that price tuition by each dancer's classes, longer periods follow the billing day too: one bill per quarter, 6 months, or year, due on the billing day of the month that opens the period. Families who pay by open invoice (no autopay) stay due on the studio default day.

Letting families pick lives on the same Tuition billing date setting: turn on 'Parents can choose their day' and list the days you offer — your default day is always on the list, and choosing a new default adds it automatically. Families then pick their day when they set up autopay, or change it afterwards from their Payments page. You can also set a family's day for them — on the Billing tab of Manage family on the web, or from their family record in the iPhone app. For a family already on autopay, a new day starts on their next cycle, never a second charge for the period they have already paid; for a family not on autopay yet, the day you set is used when they start. A family whose day you stop offering keeps it until they choose a new one.

Tip. With a fixed billing date, First tuition bill on that same setting chooses whether a new family also owes this month in full (Pay now) or waits until next month. Next month is the default — the partial first period is free and the first full charge lands on your chosen day. This month bills the current month at signup, with no proration. You can also bill this month only through a cutoff day (for example the 15th).

Tuition bills without autopay

Families who have not started autopay are not left waiting for you to bill them by hand. For studios that price tuition by how many classes each dancer takes and bill on a fixed billing date, Ida OS raises each such family's tuition as an open charge ahead of time: it appears in your ledger and on the family's Payments page labeled with the month it covers — 'September 2026 tuition' — with a due date on your billing day, and the family gets the usual new-charge notice when it first appears. The charge itself lists what's in that month's bill — weekly classes and practice sessions, with their amounts — on Payments, on the charge's detail, and in the due notice and receipt emails, so a $105 September bill shows the five practice sessions behind it instead of leaving parents to compare it to next month. Programs added on a dancer's profile appear as their own named lines in the same breakdown, and a dancer taking two classes that share a name sees each labeled with its day — 'Ballet · Tue', 'Ballet · Thu' — so the lines match the real schedule. They pay it like any other open charge, online with Pay now, or you record cash or an e-transfer with Record payment. And this isn't only for monthly pricing: a family whose plans bill per quarter, 6 months, or year gets one charge per period the same way — raised for the billing day that opens the period, covering the whole period, and labeled with the month it starts.

How far ahead the next bill appears is your choice. A 'When families see the next bill' picker sits under the Tuition billing date setting — in Settings on the web, and on the Billing screen of the iPhone app's Studio settings (admins only). Leave it on 'As soon as the last one is billed' and next month's charge shows up the day after this month's — about a month early, notice email included. Or hold it back: a set number of days before it's due (counted from each family's own due date, so it follows a parent-chosen billing day), or on one fixed day of the month for everyone — 'the bill always shows up on the 24th', whatever day each family bills on. The charge and its email wait together, so a family who just paid isn't told about next month the very next morning; a bill already due, and the catch-up for a cycle that was missed, are never held back.

Until it is paid, the charge follows the family's live tuition: if their class counts change, the sibling discount changes, or their enrolment moves, the amount rewrites itself, and a bill that falls to zero is withdrawn on its own. Nobody is billed twice — when a family starts autopay, the cycle's open tuition charge is handed to autopay rather than left to collect twice: the very same charge stays on the ledger reading 'Autopay scheduled', its due date moves onto the family's billing day ('Charges automatically on…'), and their card pays that one row — autopay never adds a second tuition line for the cycle. A family who already paid the cycle by hand has autopay's first charge wait for the next one. Tuition you record yourself counts the same way: log a payment with Create a payment → 'Already paid offline', and the class period you pick under 'This payment covers' reads as paid, so the automatic charge for that period is never raised on top of it. The picker starts on the current period, and choosing another works just as well — fall tuition a family paid back in August counts for fall, not for August. A cycle that is already billed or paid never gets a second bill, even at studios whose bills go out in the month before the one they cover. A tuition charge marked 'Autopay scheduled' anywhere on your ledger means exactly that: autopay has taken it over, so it offers the family no Pay now and you no Charge card — collecting it by hand would double the family up, though Record payment is still there if money genuinely arrives outside Stripe — recorded in full, since a charge autopay has claimed is never split. And when a reserved month should not go on the card after all — the family has arranged to pay it themselves, say — you don't have to cancel or pause autopay: set the 'Skip card charges due before' date on the family's Billing tab and that cycle's reserved tuition turns back into a normal open charge, with Pay now for the family and Record payment or Charge card for you, while autopay carries on with the next cycle (see What billing status really means on the Families page of this guide). A month from before autopay stays a normal open charge: when a family joins autopay after a cycle was already due and their first card charge waits for the next cycle, the unpaid charge for the month in between keeps its Pay now button and counts toward what the family owes — they can pay it online, or you can Record payment or Charge card like any other open charge. If your late-fee policy is on, it counts from the charge's due date.

New offerings fold themselves into these bills, too. Add a plan or class after billing has already started — a program that begins mid-season, say — and Ida brings tuition up to date on its own: families it applies to are billed for it from here on, and the billing day that just passed is revisited as well, so a bill that was missed or came to $0 while the offering was brand new becomes the proper charge, labeled and dated for the cycle it covers, with the usual new-charge notice. The catch-up covers dancers, not just new plans: put a dancer on any plan after the billing day has passed and their family's charge for the cycle that already started is raised alongside the next one, so a mid-cycle start never slips a month. The catch-up runs as you make the change — saving the plan or the dancer's enrolment raises the charge right then — and a once-a-day check picks up anything that still slipped through, so a gap never waits for the next billing day. A bill a family has already paid is never rewritten. The catch-up also knows when to leave a month alone: it only fills in bills for a month of classes still underway or still ahead — once a month's classes are over, Ida never raises a new tuition charge for it after the fact, so changing your billing settings mid-season can't surprise families with a bill for a month that already ended. (A new family's first bill at joining is separate and arrives as your First tuition bill setting says.) Refunding a tuition bill doesn't write the month off either: if the family's live tuition still calls for that cycle, a fresh charge takes its place.

On the iPhone app

iPhone app

Payments puts the ledger in your pocket — for families it has its own spot in the tab bar along the bottom, while admins open it from the More tab's Money section (the studio-wide ledger stays admin-only in the app just as on the web — instructors do not see it, and front desk staff instead take payments from a family's record on the Families tab). Families see Due now at the top — the same amount as the web: overdue charges, anything due today, an undated charge, a failed card, and the registration fee when it is due and not yet billed. The line underneath is only what is still coming up, like '$415 due starting Sep 18'. When nothing needs you now and charges are still upcoming, the card says Coming up instead. Tap the total to jump to unpaid charges — the Unpaid tab counts a due registration fee too — then a compact next-bill line follows with the service month, amount, and due or charge date; tap that line to open what's in the bill. Your charges opens on Unpaid so what you owe is first; All and Paid are one tap away, and the Paid tab notes how much you paid this month. Each charge shows its amount, type, status, and a method badge showing how it was collected — Stripe, Manual, Imported, or Awaiting payment for charges not collected yet. When the studio's online fee is on, a card charge's number is the card total, spelled out beneath as the listed amount plus the fee — on charges already paid too, where the fee shown is the one the card actually collected. A tuition charge also lists what's in that month's bill — weekly classes and practice sessions — so the $105 September charge shows the five practice sessions inside it on the charge itself, not only on next month. The All, Unpaid, and Paid tabs show how many payments sit in each, a row of color-coded type chips filters by type (each with its count) — a charge from a calendar booking gets its own chip under its actual kind, like Private lesson or Rental, rather than hiding under a generic Booking chip, and a paid trial gets its own Trial chip rather than filing under Workshop — and you can search by type. A charge the studio gave a due date says so right in the list and on its detail screen — 'Due Sep 5', 'Due today', or 'Overdue' once the date passes. Autopay, your card, billing day, and the auto-charge switch live in Autopay & cards at the bottom, collapsed until you need them.

For admins, the screen is built around collecting. It opens on the week's pulse: how much you have collected this week in big type (weeks turn over on the same day your calendar's week starts), with your unpaid total and any failed charges beside it — tap either figure to jump straight to those families. Three tabs split the work. Needs lists the families to chase first — anyone with a failed charge, a charge past its due date, or an unpaid charge with no due date that has sat two weeks or more — with families carrying failed charges at the top, then the longest-overdue; each row shows the family, and when any charge is past due the large amount is only the overdue slice, with the unpaid total in the smaller line — so a family with one late tuition invoice and two fees due later is not painted as if the whole balance is late. The badge reads N overdue when only some charges have missed their date. Overdue is reserved for a household where every open charge has missed its due date; Failed still wins when a charge failed; Past due is only for a balance that has sat unpaid for two weeks with no due date. Unpaid shows every family with an open balance the same way, and both tabs have a search box for finding a family by name. When any families have charges past their due date, an Overdue chip sits above the search box with the count of those families — tap it to keep just them in view on either tab, tap again to see everyone. Tap a family's row to unfold their individual charges: each one shows its due date — Due Sep 18, Overdue · Aug 25 — or Created when it has none, and an Overdue chip only on the charges that have actually passed their date. Open any charge's detail, or tap the family's photo to open their full record right there — payments, students, and billing in a slide-up panel — so you can record a payment or check a detail without leaving the screen. History starts on the settled ledger — paid, refunded, and voided payments — with filter chips for Status, Type, and Created: the Type list offers every kind of payment, each beside the same color dot as the web ledger's filter, Created picks from the last 7, 30, or 90 days, this month, or your own from-and-to date range, and the Status chip pulls unpaid, draft, or failed charges into view too. A line under the filters counts the payments in view and totals them, so 'how much came in last month' is a couple of taps. The screen opens on whichever tab has work waiting — Needs when something needs action, Unpaid when balances are open, History when everything is collected.

Tap any payment to open its detail screen: the amount and badges up top with a plain-English line on how it was collected, then the full record — type, family (for staff), status, dates, the class period a tuition payment covers, any note, and the payment's Stripe reference when it was collected online — and, when tax was collected, the Subtotal, Tax (GST/HST), and Total breakdown. Staff also see the payment's Stripe fee and net amount once Stripe has reported them; a family's view keeps to what they paid. A payment collected through Stripe adds a View receipt button once it is paid or refunded — tap it to open the official Stripe receipt, or the tuition invoice for autopay charges, right inside the app. Just like the web, a charge still awaiting payment mentions tax at checkout only when the studio's Stripe Tax settings are active; otherwise it simply shows the amount. Families pay an open charge through Stripe right from the list or detail screen — Pay first asks how much, with the full amount filled in, and on most charges you can enter less to pay part now and leave the rest owed as its own charge, just as on the web (workshop and camp registrations, drop-ins, and shop orders are always paid in full); then the payment sheet takes your saved card, and offers Apple Pay too when it is set up on your phone; when the studio adds an online fee for card payments, the detail screen breaks the charge into the amount, the online fee, and the card total — before you pay, and still there once the charge is paid, when the fee shown is the one the card actually collected — and staff see the same fee noted on charges in a family's record. When the studio collects GST/HST, the app opens a secure Stripe checkout instead so tax can be calculated from your billing address, and once you finish there it closes and returns you to the app on its own. Staff manage a payment from its detail screen too: Charge card on an outstanding charge collects it on the family's saved card — you confirm first with the card and the exact total, and the button stays greyed out with the reason when the family has no card saved — with the same Charge button on a family's record on the Families tab, where it collects everything the family owes at once. For admins the detail screen also offers Record payment or Void on an outstanding charge — Record payment asks for the amount received, filled in at the outstanding balance, and a smaller amount records a partial payment and leaves the rest owed as its own open charge, just like the web — plus Refund (Stripe payments — the money goes back to the card) or Mark as refunded (offline payments — records only) on a paid one, and Edit or Delete on a manual or imported payment, each confirming first with the exact amount. Admins can also create a payment with the Create button at the top of the screen — the same dialog as the web, with a searchable family picker, the choice between billing the family and logging money already collected offline — logging it as collected asks the same 'Collected via' question as the web (cash, e-transfer, cheque, or other) before it will save, and a bill stays unpaid unless you make that choice, an optional due date when billing, the same 'This payment covers' class-period picker on tuition, and an optional note that travels with the payment into its detail; once saved, the payment is filed under the right tab, Unpaid for a charge the family will pay or History for money logged as collected. In a family's own list, payments that carry a note show a small note icon that opens it in a tap. Open Autopay & cards at the bottom and it says plainly where autopay stands — Start autopay and Manage payment appear until it is running (each opens Stripe's secure page and brings you back to the app when you are done), and Manage autopay takes over once it is. When your studio lets families choose a billing day, the card carries the same Billing day picker as the web: pick your day before you start autopay, or change it once autopay is running and your next cycle moves to the new day. The card also carries the same 'Auto-charge approved bookings' switch as the web Payments page, so families can decide from their phone whether approved bookings charge their saved card. However your family pays — a one-off charge, autopay, or a card update under Manage payment — the app keeps one saved payment record for you, so a card you save once is there the next time and you never have to type it in twice.