Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.veridianhp.com/llms.txt

Use this file to discover all available pages before exploring further.

Payment flow

This page walks through what happens at each step when a patient pays an invoice through Veridian Bridge.

The happy path

1

Practice creates an invoice

Inside your practice management system, you finalize an invoice or statement for a patient — typically a copay, deductible balance, or out-of-network responsibility.
2

Your backend mints a Veridian session

Your server calls POST /api/practice/sessions with the invoice amount and minimal patient identifiers. Veridian returns a sessionId and a hostedUrl.
3

You send the link to the patient

Your existing SMS or email pipeline delivers the hostedUrl to the patient. The link is short-lived (typically 30 minutes from first open).
4

Patient opens the Bridge

The patient taps the link. The Bridge loads with your practice branding, the amount owed, and a single primary action: Pay with bank.
5

Bank connection

The patient connects their bank through Veridian’s bank-connection partner. The patient logs into their bank in the partner’s secure flow. Veridian never sees the patient’s bank credentials.
6

Patient confirms payment

The Bridge shows the patient the final confirmation: amount, account ending in last 4, the practice they’re paying. The patient taps Confirm.
7

Processing

Veridian initiates the ACH transfer. The session moves to processing. The patient sees a confirmation page and gets a receipt by email.
8

Settlement

Within 1-3 business days, the ACH settles. The session moves to succeeded. Veridian fires the session.payment.succeeded webhook to your server.
9

Your backend marks paid

Your webhook handler verifies the signature, dedupes the event, and marks the invoice paid in your practice management system. Done.

Unhappy paths

Veridian Bridge handles common failure modes gracefully so you don’t have to.

Patient abandons before paying

The session simply expires. No webhook fires. Your invoice remains unpaid. You can mint a new session for the same invoice at any time.

Bank connection fails

The Bridge shows a friendly error with a retry button. If the patient gives up, the session moves to failed and Veridian fires session.payment.failed. You can mint a new session.

ACH return after settlement

Rarely, an ACH transfer is returned by the patient’s bank after initial settlement (NSF, account closed, etc.). Veridian fires session.payment.reversed and your handler reverses the invoice payment.

Patient pays the wrong amount through another channel

You can cancel a pending session at any time via POST /api/practice/sessions/:id/cancel. The Bridge will show the patient that the payment is no longer needed.

What’s next

Integration guide

Detailed walkthrough of building the integration.

Webhooks

All webhook events, payloads, and retry semantics.