Skip to main content

Billing your sessions

Everything about billing as a solo therapist — how sessions become billable, cash pay, insurance claims, auto-billing, eligibility, ERAs, superbills, and troubleshooting.

Written by Hashem Abdou

This article is for providers using the Oasys web platform.

This guide covers billing as a solo therapist — from setting up payment processing and insurance, to understanding how sessions become billable, managing claims, and handling payments.

In this article:

1. Setting up payment processing

To collect card payments from clients, connect Stripe.

Where to find it: Go to the Billing tab → Billing Setup (under the Setup section in the left sidebar) → Payment Processing.

  1. Click Connect Stripe Account.

  2. Complete Stripe’s onboarding — business info, banking details, and tax ID. It takes about 5 minutes.

  3. When it’s done, the status reads Active, with checkmarks for Accept Payments, Receive Payouts, and Account Details. If it still says Setup Incomplete, click Complete Setup to finish.

⚠️ This is not your Oasys subscription. Payment processing (the Billing tab) is how you collect money from clients. Your Oasys subscription (Settings → Subscription & fees) is a separate thing — see section 22.

2. Setting up insurance billing

Before submitting insurance claims, configure your provider information and your accepted payers.

Provider information

Where to find it: Billing → Billing Setup → Provider Information.

  • Provider type — Individual or Organization/Group.

  • NPI — your 10-digit National Provider Identifier.

  • Tax ID — your EIN or SSN (organizations must use an EIN).

  • Provider taxonomy — your taxonomy code.

  • Accept Assignment — whether you agree to take Medicare’s approved amount as payment in full.

  • Contact information and billing address.

💡 If you've already filled out your therapist profile, some fields will be pre-filled automatically.

Accepted payers

In the Insurance Billing section of Billing Setup:

  1. Click Start Setup (or Manage if already configured).

  2. Search for insurance companies by name and add them.

  3. For each payer, enroll for the transaction types you need:

  • 1500 (Claims) — submit CMS-1500 claims electronically

  • ERA — receive Electronic Remittance Advice (payment notifications)

  • Eligibility — verify client insurance coverage online

Enrollment is processed through our clearinghouse and timelines vary by payer. A payer can show Pending or Action Required while it’s being set up — open Accepted Payers and click into any payer marked Action Required to see what’s needed.

💡 Note that after a payer is accepted it can take additional time to fully activate for claims and ERAs, and eligibility checks may start working before claim submission does. You cannot submit a claim for a client whose payer isn’t on your Accepted Payers list.

3. Entering client insurance information

Where to find it: Billing → Patient Billing (or Client Billing) → find the client → the action menu (three dots) → Configure Insurance (or Add Insurance if none is set yet).

The wizard walks through five steps:

  1. Insurance information — provider, Member ID, Group Number, subscriber relationship, optional card photos, optional secondary insurance.

  2. Client information — name (must match the insurance card exactly), sex (required for verification), date of birth.

  3. Subscriber information — only if the client isn’t the primary subscriber (spouse, child, etc.).

  4. Client address — a valid US address matching insurance records; no PO boxes.

  5. Review and verify — Oasys runs an eligibility check to confirm coverage.

💡 Complete the subscriber step. If a subscriber is selected but the subscriber details are left blank, claims can come back rejected — sometimes with a misleading error such as “incorrect ZIP code.” If a claim is rejected and everything else looks right, check that the subscriber information is fully filled in.

4. Running eligibility checks

You can verify a client’s insurance coverage yourself — any clinician can run a check, you don’t need to route it through a billing admin. Checks run automatically during the insurance wizard, and you can run one anytime from the client’s Billing tab → Eligibility Check (as long as the client’s insurance information is complete). You can also run checks on draft insurance for clients who haven’t signed up yet.

An eligibility check returns:

  • Coverage status — active or inactive

  • Network status — in-network, out-of-network, or unknown

  • Mental health benefits — sessions allowed/used, copay, coinsurance, prior auth requirements

  • Deductible info — individual and family, in-network and out-of-network, year-to-date and remaining

  • Out-of-pocket info — maximums and remaining amounts

You can run eligibility checks for clients who haven't signed up to Oasys yet — the wizard supports draft insurance data.

💡 Each eligibility check costs $0.15.

5. How billing works after a session

💡 Key concept: You do not need to manually create claims or invoices. When a session is completed, it automatically becomes billable and appears in the Bill Sessions tab.

Here's the flow:

  1. You complete a session (or mark it as a no-show).

  2. The session automatically appears in Billing → Bill Sessions under the Ready tab (if all info is present) or the Incomplete tab (if something is missing).

  3. If auto-billing is on: at your cutoff hour (default 11 PM), Oasys automatically submits the claim or sends the invoice.

  4. If auto-billing is off: you go to Bill Sessions, select the ready sessions, and send them out yourself.

⚠️ About standalone items: You cannot create an insurance claim as a standalone item — claims always come from completed sessions. You can create a standalone invoice for a charge not tied to a session (e.g., a late-cancellation fee), but that’s rare.

6. The Bill Sessions tab

Where to find it: Billing → Bill Sessions.

Ready tab

Sessions with all required information, ready to be billed. Select one or more and choose to submit a claim (insurance) or send an invoice (cash pay).

Incomplete tab - CONFIRM LIST

Sessions that can't be billed yet. Each shows the specific reason:

  • Insurance setup not complete — finish your provider info in Billing → Setup → Billing Setup.

  • Missing insurance payer — update the client's insurance in Client Billing.

  • Missing diagnosis codes — add them in the client's clinical information.

  • Missing CPT code — update the service type or edit the session.

  • Missing service charge amount — set a price on the service type.

  • Incomplete client insurance details — complete the client's insurance profile.

  • Missing provider taxonomy — add it in Billing → Setup → Provider Information.

  • Unsigned clinical notes — sign the note first, then bill.

  • Claim validation errors — specific error shown.

  • Awaiting supervisor approval — blocked until supervisor approves (shown as "Blocked").

Session not showing up at all?

If a completed session doesn't appear in either tab, check:

  • A $0 service type (or a client pricing rule set to $0).

  • The client’s billing type set to Not Billed. Sessions for a Not-Billed client never appear here — this is a setting, not a delay.

  • Billing disabled on the client’s relationship.

7. Choosing a client's billing type

Each client has a billing type: Insurance, Cash pay, or Not billed. Set it in Billing → Patient Billing (the per-client billing-type dropdown). A session only appears in Bill Sessions when the client is Cash pay or Insurance.

  • A brand-new active client defaults to Cash pay.

  • Clients brought over from another system during a migration come in as Not billed — you’ll need to switch them to Cash pay or Insurance before their sessions can be billed.

There’s no bulk billing-type editor today; if a large number of migrated clients need switching at once, contact support.

8. Auto-billing

Auto-billing processes all ready items each night at your cutoff hour (default 11 PM). It handles all three billing types:

  • Cash-pay invoices — sends invoices for completed and no-show sessions. Charges the card on file if available.

  • Insurance claims — submits claims for ready insurance sessions.

  • Client responsibility invoices — after ERAs show a client balance (copay, deductible, coinsurance), creates invoices for the client's share.

💡 If auto-billing is off, sessions still appear in Bill Sessions as Ready. You just need to go there and send them out yourself.

It’s opt-out per client, not all-or-nothing

Turn auto-billing on at the account level from the Auto-Billing toggle on your Patients/Billing header. With it on, every client is auto-billed unless you opt one out individually:

  • The per-client Auto-Billing toggle only appears while account-level auto-billing is on.

  • Turning the account-level switch off pauses auto-billing for everyone — it doesn’t erase your per-client choices. Turn it back on and everyone returns to auto-billed except the clients you opted out.

Good to know

  • Signing a note does not submit a claim. The session has to be completed; auto-billing then creates the client’s invoice on the next nightly run after the claim adjudicates as Paid or Partial.

  • Charging a saved card is a separate setting from auto-billing. If a client’s sessions are only sending an invoice instead of charging their card, their card auto-charge may have been turned off — check the client’s payment settings.

  • If you void an invoice for a client with no card on file, Oasys automatically re-bills that session about two weeks later under a new date. The voided one won’t simply reappear as unbilled — you’ll need to void that newer invoice too. Consider turning off auto-billing for clients without a card on file.

  • Only fully ready items are included — incomplete sessions stay in the Incomplete tab.

9. Insurance claims after submission

Track submitted claims in Billing → Manage Claims, which has two views: All Claims and Requires Attention (denied, rejected, and action-required claims). Use the search box (client name, claim number, or check number) and the status dropdown to narrow the list.

Claim statuses

  • Draft — created but not yet submitted. Review and submit from the claims queue.

  • Submitting — being finalized

  • Submitted — sent to the clearinghouse. Wait for acknowledgment (1–2 business days).

  • Acknowledged — he clearinghouse and payer have received the claim. This is not a payment decision — a claim can sit here for weeks before it’s paid. (If you see s code akin to “277CA,” that’s the acknowledgment code, not a claim number.)

  • In Review — payer is actively reviewing. Monitor for updates.

  • Rejected — clearinghouse rejected due to formatting error. Fix and resubmit from the Denied tab.

  • Denied — payer denied the claim. See denial code in the Denied tab. Correct, appeal, or write off.

  • Paid — payer has fully paid. Details appear in Payment Remittances.

  • Partially paid — payer paid part. Remaining may be client responsibility or billable to secondary insurer.

  • Patient responsibility — adjudicated with the remaining balance owed by the client.

  • Requires attention — a submission error to fix.

  • Needs investigation — A $0 adjudication to review.

  • Voided — original claim cancelled. Replacement may be resubmitted.

  • Failed — technical error during submission. Retry.

  • Validation Failed — system error before submission. Review and retry.

  • Closed — administratively closed. No further action.

Correcting and resubmitting

For a rejected claim, use Fix & Resubmit. Your corrected insurance fields won’t display on the resubmission screen itself — that’s expected; verify them in the client’s Insurance record before resubmitting.

⚠️ Multiple units of one CPT code. Oasys can’t currently submit more than one unit of the same CPT code (for example, two units of 96131) on a single electronic claim — it will be rejected. For now, those claims need to be filed on paper.

Manage Claims sub-tabs

  • Submitted — in-flight claims. Highlights claims aging beyond 30 days.

  • Secondary — claims ready for secondary insurance after primary partially paid.

  • Denied — rejected and denied claims. For each: correct and resubmit, appeal, or write off.

10. Payment Remittances (ERAs)

When an insurance payer processes your claim, they send an ERA — viewable in Billing → Payment Remittances.

Each ERA shows:

  • Payer name, check/EFT date, and check number

  • Total payment amount and number of claims

  • Claim-by-claim breakdown: billed, allowed, paid, and client responsibility

  • Adjustment codes and reasons

If the ERA shows client responsibility, you can create an invoice for the client's share — or if auto-billing is on, this happens automatically.

Matched or Unmatched

An ERA shows as Matched or Unmatched. Unmatched remittances aren’t counted toward your income until they’re reconciled. Occasionally a client’s copay is auto-billed slightly before the ERA appears in this tab — that’s a short posting lag, not a lost remittance.

Recording a payment by hand (no ERA)

If a payer never sends an electronic ERA (for example, a paper remittance or a third-party administrator), open the claim in Manage Claims, use the three-dot menu, and choose Mark claim paid manually. Enter the EOB details (insurance paid, allowed amount, deductible, coinsurance, copay, check number, and date). This is available on claims that are Submitted, Acknowledged, or In Review with no ERA yet. If an ERA later arrives for that claim, you’ll need to reconcile the two by hand.

Two different “paid” actions

These are easy to confuse:

  • Mark claim paid manually records the insurer’s payment (the manual EOB above).

  • Mark externally paid records that the client paid their patient-responsibility balance to you directly, outside Oasys.

Correcting a manual insurance payment

There’s no direct edit. To fix a wrong amount: void the patient-responsibility invoice tied to the claim, choose Undo manual payment on the claim, then Mark claim paid manually again with the correct figures, and re-bill the client’s responsibility if needed.

11. Manage Invoices

Where to find it: Billing → Manage Invoices.

Invoice statuses

  • Processing — created, not yet sent.

  • Sending — being delivered.

  • Outstanding — sent, awaiting payment.

  • Paid.

  • Payment Failed — the card couldn’t be charged.

  • Processing Failed — a delivery error (see the tip below).

  • Void, Refunded, Partially Refunded.

Actions

  • Send Reminder — on outstanding invoices; resends the payment link.

  • Retry Charge — on payment-failed auto-billed invoices.

  • Copy Payment Link — on outstanding or payment-failed invoices.

  • Void Invoice (or Clear Failed Invoice on a failed one).

  • Refund Invoice — on paid invoices.

⚠️ “Processing Failed” is almost always a same-day due date. An invoice’s payment due date must be in the future — a due date of today is rejected and the invoice quietly shows “Processing Failed.” Clicking Resend won’t fix it. Instead, open the invoice’s three-dot menu, choose Clear Failed Invoice, and recreate it with a due date of tomorrow or later. (If it still fails, check that the client has a real email on file — a placeholder email on a chart-only client will also block sending.)

The Request New Card button on a failed invoice simply opens your own billing-settings tab so you can update the card — it does not send anything to the client.

12. External Payments

When a client pays you outside Oasys (cash, check, or another method), record it so the session isn’t billed again.

On Bill Sessions, use a session’s Mark as Paid → Mark as paid (external). Choose Cash, Check (check number required), or Other (with an optional note). You don’t enter an amount — it uses the full session price. Only sessions in Unbilled status can be marked this way, and group sessions are marked per attendee.

To review or change one later, use the Manage Payments tab. You can edit the method or check/reference number, or revert the session to unpaid so it becomes billable again. The amount can’t be edited — to correct an amount, revert to unpaid and re-record. There are no partial payments or installments; a recording always covers the full session price.

13. Client credits & prepayments

You can hold a prepaid balance for a client as credits (1 credit = $1). Add them from the client’s billing panel with Add Credits — optionally collecting a prepayment invoice first, or recording a balance already paid.

Applying credits (and a lump sum)

Credits apply to unbilled sessions, from Bill Sessions → the session’s three-dot menu → Apply Credits. This is also how you spread a single lump-sum prepayment across multiple sessions. If a session has already been invoiced, void that invoice first so the session returns to Unbilled, then apply the credit.

Refunding or removing credits

Use Refund on the Credits panel. Choosing Cash, Check, or Other records the refund for your books without moving money (useful for reversing a credit added by mistake); choosing Card issues an actual refund. Credits are never silently deleted — every add and removal is kept for your records.

14. Refunds

To refund a paid invoice, open it and choose Refund Invoice (you’ll enter a reason). This issues a full refund and returns the session to Unbilled. Partial refunds are available only for prepaid-credit invoices, via the Credits panel. Refunds issued through Oasys don’t carry an extra processing fee.

15. Manage Superbills

A Superbill is a statement a cash-pay client submits to their own insurance for out-of-network reimbursement — different from an invoice (which the client pays you) and a claim (which you submit to insurance).

Where to find it: Billing → Manage Superbills.

  1. Click Create Superbill.

  2. Choose one client.

  3. Pick an eligibility window (Year to date, Last month, Last 3 months, Custom, or All time).

  4. Review eligible sessions: date, amount, CPT code, diagnosis codes.

  5. Preview the PDF, and send it by email.

  6. The client needs diagnosis codes on file.

💡

  • Clients can also generate their own superbill from their portal.

  • You can create individual superbills (one per session) or consolidated superbills (multiple sessions in one PDF).

What's on a superbill

A superbill pulls together everything a payer needs to reimburse, in three parts:

Your provider details

  • Provider name with credentials — your name followed by your license type (e.g., "Jane Smith, LCSW").

  • License(s) — license type, number, and state (e.g., "LCSW #12345 (CA)"). More than one is listed if you hold several.

  • NPI — your National Provider Identifier.

  • Tax ID — your EIN or SSN.

  • Address and phone.

  • If your practice bills under its own identity, the superbill shows a Billing Provider (the practice, its organization name, and its NPI/Tax ID) and a separate Rendering Provider (you). If you're supervised, the supervisor's NPI is included.

Client and insurance details

  • Client name (and the guardian, for a minor).

  • Insurance: plan/payer name, Member ID, Group Number, and the client's relationship to the subscriber — plus secondary insurance if one is on file.

The session line items

  • Date of service for each session.

  • CPT code (the service/procedure code).

  • Diagnosis codes (ICD-10).

  • Modifiers and place of service.

  • Service fee and amount paid per session, plus totals.

Where to fill each piece in

If something is missing or wrong on the superbill, here's where it comes from:

On the superbill

Where you set it

Provider name + credentials, License(s)

Your therapist profile — add your license type, number, and state there

NPI, Tax ID, address, phone

Billing → Billing Setup → Provider Information

Practice billing NPI/Tax ID (if practice-billed)

Your practice's provider/insurance setup in Practice HQ

Client insurance — plan, Member ID, Group Number, subscriber relationship

Billing → Patient Billing → the client → Configure Insurance (the 5-step wizard)

CPT code

The service type (Settings → Default Services), or a client Pricing Rule if you've set a custom code

Diagnosis codes

The client's clinical/diagnosis information

Service fee

The service type price (or the client's Pricing Rule)

Amount paid

Pulled automatically from the client's paid invoices for those sessions

💡 Tip: If a client's insurance details don't appear on the superbill even though they're entered, it's usually because that payer isn't set to show insurance details on superbills. Check the payer's settings, or contact support to have it enabled. And a superbill can only be created for a client who has diagnosis codes on file — that's a requirement, not optional.

16. Custom pricing per client

Override your default rates for specific clients:

  1. Open the client's billing settings in Billing → Client Billing → [Client] → Settings → Pricing Rules.

  2. Add a pricing rule for a specific service type.

  3. Set a custom price and/or CPT code.

Client-specific pricing takes priority over default service rates.

💡 Pricing rules honor a start date. A rule only applies to sessions on or after its effective start date — earlier sessions bill at your default rate and won’t take a conflicting manual override. To apply a special rate to an earlier session, the rule’s start date needs to be backdated (contact support/your admin).

17. Client statements & reports

A client billing statement (charges, payments, and balance) is a report you view and export as a PDF or Excel file from your Reports area. It can’t be sent to the client through the portal today — download it and share it directly. The only billing document that reaches the client’s portal is the superbill.

Other billing reports include payment history, revenue, and aging.

18. Secondary insurance

When a primary insurer partially pays, the claim offers Draft Secondary Insurance Claim and Acknowledge & bill patient. Drafting creates a secondary claim you review and submit; the primary then shows a Billed to Secondary badge. (There’s no tertiary-insurance step.)

19. Billing for minor & dependent clients

A minor client has their own account that a parent or guardian manages, and billing is scoped to that account.

  • Set up billing inside the minor’s account. A guardian who also has their own Oasys account must use Switch account (top right) to move into the minor’s account before adding a card — anything done in their own account applies only to their own billing.

  • “Your therapist needs to complete their payment setup” usually means one of two things: the therapist hasn’t finished Stripe onboarding, or (very often) the guardian is in the wrong account — check the Self/Minor badge and switch accounts.

  • Choose who pays in Payment Settings → “Who Pays for Your Sessions?”: the guardian, or another person (an alternative payer). Each payer has their own saved cards and autopay setting.

  • Collect a card without a login by assigning a Card on File Request — the payer gets a secure link (no account needed) that expires after 14 days. Only one such request can be open per client at a time, so to collect from two parents, wait for the first to finish before sending the second.

20. Good Faith Estimates

Under the No Surprises Act, uninsured or self-pay clients should get a Good Faith Estimate before treatment.

To create a GFE:

  1. Generate one from Billing → the client → the GFEs tab → Generate GFE.

  2. Pick a service, the expected number of sessions, and a start date.

  3. Oasys builds the estimate (a flat price per session × the number of sessions) with the required rights language.

  4. Then Download, Send, or Send Later.

  5. Sending adds a “Good Faith Estimate” to the client’s Documents for them to acknowledge.

💡 Good to know. Oasys doesn’t enforce or remind you to send GFEs — it’s a manual step. There’s no in-place edit: to change one, delete it and generate a new one (you can’t delete one a client has already acknowledged, since it’s the record). Each GFE covers one service.


Frequently asked questions

  • Do I need to create an invoice or claim manually?
    No. When a session is completed, it automatically becomes billable and appears in Bill Sessions. From there, you either let auto-billing handle it or send it yourself.

  • What's the difference between a claim, invoice, and superbill?
    A claim is submitted to insurance for payment. An invoice is sent to the client for direct payment. A superbill is a statement the client submits to their insurance for reimbursement.

  • Why isn't my completed session showing in Bill Sessions?
    Check for: $0 service type, client pricing rule set to $0, or client billing type set to "Not Billed."

  • How long does it take to get paid on a claim?
    After submission: acknowledgment in 1–2 days, payer decision in 5–30 days. Timelines vary by payer.

  • What should I do with a denied claim?
    Go to Manage Claims → Denied. Review the denial code and reason. You can correct and resubmit, file an appeal, or write it off.

  • Does auto-billing only handle cash pay?
    No. Auto-billing handles cash-pay invoices, insurance claims, and client responsibility invoices — all three.

  • Can I create a standalone invoice?
    Yes, from Manage Invoices → Create Standalone. But this is rare — most billing happens automatically through Bill Sessions.

Did this answer your question?