Invoicing & payments
Generate invoices automatically and collect payments at checkout.
On this page
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.sendpermission to do this. -
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.
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.
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.
| Report | What it shows |
|---|---|
| Daily summary | Total collected, outstanding, and refunded for a given day |
| Outstanding balances | All open invoices with amount due and age |
| Revenue by provider | Charges and collections broken down by veterinarian |
| Revenue by service | Which 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
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.
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.
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.
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.