Dentolize · Balance Invoice Webhooks & API Config Cleanup Walkthrough
On this pageWho needs to know about thisIf you do need to walk someone through API ConfigWhat triggers a balance webhook, concretelyCommon training mistake to avoid

For Training

Who needs to know about this

Realistically: nobody on the clinic-staff training track. Nothing in the day-to-day patient/appointment/invoice workflow changes. Add Balance, taking a payment, and overpayment-to-balance conversion all work exactly as they did before — same buttons, same forms, same outcomes for the patient and the invoice.

The only audience is whoever at a clinic manages third-party integrations (usually a technical admin, not front-desk staff), and only if that clinic has apiEnabled turned on.

If you do need to walk someone through API Config

  1. Settings → Integrations → API Config tab (only visible if enabled for

the company).

  1. Each row is one webhook destination: a Base URL, an optional **Verify

Token (used to HMAC-sign the payload so the receiving system can confirm it really came from Dentolize), and an APIs** multi-select of which events to receive.

  1. To receive balance activity, check Balance Invoices and **Patient

Balance** in that multi-select — they're separate checkboxes from "New Invoice" / "New Payment" and must be selected independently.

  1. There is no "Type" field to fill in anymore (it was removed in this PR —

if training material or screenshots predate this change, they'll show a Type dropdown that no longer exists).

  1. Up to 5 rows can be added in the UI (fields.length >= 5 disables the

"New Item" button), though the backend allows up to 10 via the API.

What triggers a balance webhook, concretely

Use this when training whoever configures/tests an integration, so they know what to click to generate a test event:

  • Add Balance button on any patient profile → fires one

NEW_BALANCE_INVOICE and one NEW_BALANCE_PAYMENT.

  • Recording a payment against an invoice for **more than the remaining

amount owed** → the system automatically creates a balance invoice for the difference and fires the same two events. (There's no separate UI action for this — it's a side effect of entering a large-enough payment amount.)

Common training mistake to avoid

Don't tell integration admins that subscribing to "New Invoice" also covers balance invoices — it doesn't. Balance invoices and balance payments are distinct event types that must be checked separately, even though a balance invoice is, underneath, still an Invoice record.