Generate invoices automatically and collect payments at checkout.

app.chartling.io C Chartling GETTING STARTED Quick start PATIENTS & CLIENTS Patients Clients CLINICAL Visits & SOAP AI scribe Medications & Rx Controlled subs. Lab orders Discharge & comms AI FEATURES Clinic Copilot Clinical support SCHEDULING Appointments BILLING Invoicing & pmts SERVICE MODULES Boarding Daycare Grooming Training TEAM & SETTINGS Team & permissions Clinic settings SMS & reminders Audit log Docs › Chartling › Invoicing & payments Invoicing & payments INV-0249 · Luna Rodriguez Unpaid SERVICE QTY PRICE TOTAL Wellness exam 1 $85.00 $85.00 Metronidazole 250 mg × 10 1 $18.00 $18.00 CBC panel (in-house) 1 $42.00 $42.00 Total due $145.00 Record payment Send invoice Refund
Invoicing is an Operations/Practice capability

Everything on this page assumes your plan includes invoicing. That's Operations and Practice, not Intelligence. Chartling's tiers aren't a strict ladder: Intelligence is the clinical AI layer on top of your existing PIMS, so it deliberately doesn't duplicate your billing system. On Intelligence, charges still get captured in the SOAP for reference, but finalizing doesn't draft an invoice, send reminders, or auto-advance an appointment to checkout. Bill through whatever system you already run. Upgrade to Practice for Chartling to run the money side of the practice too.

The SOAP-plan flow below is the clinical path (Practice, since Intelligence doesn't invoice). A pure Operations clinic (no vets on staff) never has a SOAP note to finalize at all: its invoices draft automatically when a grooming appointment, boarding stay, or daycare session is checked out/finished, using that module's own rates. Same invoice, payment, and refund tooling either way, with a different trigger for when the draft appears.

  1. Charges are captured during the visit

    Every service, medication, and procedure added to the SOAP plan automatically becomes a line item on the pending invoice. There's nothing separate to enter. The clinical record and the financial record are the same document until finalized.

    You can also add ad-hoc charges (boarding, lab fees, retail) directly to the invoice before finalizing.

  2. Review line items before finalizing

    Open the Invoice tab within the visit. Review all line items, quantities, and prices. Edit any item. Adjusting a quantity here adjusts the invoice only, not the clinical record. Apply any discounts.

  3. Finalize the visit to generate the invoice

    Click Finalize visit. The invoice is created and assigned an invoice number. The visit record is sealed. Clinical content can be amended but not silently edited after this point.

    The invoice is immediately available in the owner portal if they have a portal account.

  4. Send the invoice

    From the invoice view, click Send invoice to email or SMS the invoice to the client. Or print it for in-person checkout. Payment can be collected in person, or owners can pay through the portal.

  5. Record payment

    Click Record payment on any open invoice. Select the payment method (card, cash, check, other) and enter the amount. If the client pays in full, the invoice is marked paid. Partial payments are tracked and the remaining balance stays open.

Taking card payments

To accept card payments and receive direct payouts, connect a payment processor before your first invoice: go to Settings → Billing → Payments and click Connect Stripe. This opens Stripe's onboarding flow to verify your clinic's business details and bank account. Until this is connected, you can still record cash, check, and manual card payments. The Connect Stripe step is only required for owners to pay by card themselves, whether in person or through the portal.

Estimates

Send a cost estimate to an owner before work begins. Estimates let clients approve a budget before you finalize the invoice.

  1. Create the estimate

    From any visit or the client record, click + New estimate. Add line items the same way you'd add them to an invoice: services, medications, procedures, and fees. You can include a cost range for each item if the final amount depends on what you find.

  2. Send to the client

    Click Send estimate to deliver it by email or SMS. The client receives a summary with a total range and a link to review the breakdown. You need the estimate.send permission to do this.

  3. Client approves

    The owner reviews and approves the estimate in the portal (or verbally, which staff can record by marking it approved in the app). Approval is logged in the audit trail.

Estimates become invoices

When you finalize a visit, any approved estimate for that visit converts to the draft invoice automatically. You can still add or remove line items before the invoice is finalized.

Refunds

To issue a refund, open the invoice and click Refund. Enter the refund amount and reason. Refunds can be full or partial. The refund is recorded in the invoice history and reflected in billing reports.

Household balances

If a household has multiple pets, all invoices appear on the household's account. Refunds for any pet in the household are visible to the owner in the portal under their account balance.

Insurance claims

On the Practice tier, invoices can carry a linked insurance claim (e.g. Trupanion) that tracks status through your billing workflow: draft, submitted, partially paid, paid, denied, or closed. This is a claims-tracking and reconciliation workflow inside Chartling, not an automated wire integration to the insurer: submitting a claim records it as sent and lets you log the insurer's response as it comes back, rather than filing it through a live API. Requires the billing.insurance_direct permission.

Payment plans & financing

On the Operations and Practice tiers (feature payment_plans), an invoice can be split into a payment plan of scheduled installments instead of one payment in full. Creating a plan, marking an installment paid, or cancelling a plan all use the payment.collect permission, the same one used to record any other payment.

Separately, you can record a third-party financing offer against an invoice (CareCredit, ScratchPay, Pumpkin Pay, Affirm, Wisetack, VetBilling, or another provider) noting the approved amount, a reference code, and its status (pending, approved, declined, funded, or refunded). Like the insurance-claims workflow above, this is a tracking record inside Chartling, not a live application through the provider's API: the owner still applies with the financing company directly. Recording or removing a financing offer requires the billing.financing permission.

Auto-charge queue (Boarding, Grooming)

If your clinic runs Boarding or Grooming, you can opt in to charging a client's saved card when a stay or appointment completes, instead of collecting payment by hand at pickup. Turn it on per service under Settings → Payments → Auto-charge after service (permission billing.autocharge.configure).

"Auto-charge" doesn't mean the card is billed with no human in the loop: a completed stay or appointment for a client with a saved card lands in the Auto-charges tab on the Billing page as pending review, and a staff member with billing.autocharge.review clicks Charge now to actually run it (or Skip to bill some other way instead). An owner with no saved card never generates a queue entry. Nothing silently attempts a charge. A declined card shows up flagged so you can follow up rather than losing track of it.

Billing reports

Go to Analytics in the sidebar (Operations and Practice tiers, feature analytics) to view revenue by date range, provider, service type, or payment method. Export the dashboard as CSV or XLSX for your accountant or billing software.

ReportWhat it shows
Daily summaryTotal collected, outstanding, and refunded for a given day
Outstanding balancesAll open invoices with amount due and age
Revenue by providerCharges and collections broken down by veterinarian
Revenue by serviceWhich services and products drive the most revenue

Income statement & operating expenses

The same Analytics page has an Income statement panel: revenue by category, inventory COGS, and operating expenses through net income, on a cash basis, for the same date range as the dashboard above it. Export it as CSV or XLSX with the CSV/XLSX buttons next to it (permission report.financial.view, feature analytics).

Revenue and inventory COGS populate automatically from your invoices and dispensing records; the bottom line only reaches true net income once you record the expense side. Go to Expenses in the sidebar (permission expense.write to add/edit/delete; viewing reuses report.financial.view) to log rent, payroll, utilities, insurance, marketing, supplies, equipment, professional fees, and other overhead by date and category. Each entry feeds directly into the income statement's expense lines.

If you'd rather have your daily revenue post straight into your books instead of exporting it by hand, see QuickBooks accounting, a separate tool that maps charge codes and payment methods to QuickBooks accounts and posts each day as its own journal entry.

FAQ

When exactly is the invoice created?

The invoice is created when you finalize the visit. Before that, line items are in a "pending" state on a draft invoice. You can see and edit the draft invoice at any time during the visit, but it doesn't have an invoice number until finalization.

Can I split a payment across multiple methods?

Yes. Click Record payment and enter the amount for the first method. Repeat for additional methods. Partial payments are tracked cumulatively until the invoice is paid in full.

Can I add a charge after an invoice has been finalized?

Yes. Open the invoice and click Add line item. A supplemental charge is added to the existing invoice, and the total is updated. This creates an audit entry noting who added the charge and when.

Can owners pay through the portal?

Yes. Owners can pay invoices directly from the portal using the Pay link on their invoice. Payment is recorded automatically and the invoice status updates to paid.

Something missing? We're always improving these docs.

Contact support Open app