# Payments & Invoices

Welkin supports end-to-end patient billing through a built-in invoicing system backed by Stripe. Care teams and billing managers can create invoices from encounters or independently, collect payments via multiple methods, manage recurring subscriptions, and track patient balances — all without leaving Welkin.

> **Before you begin:** Stripe must be connected to your Welkin environment before invoices and payment collection can be used. See [Stripe Setup and Configuration](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/integrations/stripe-setup-and-configuration.md).

***

## Invoice structure

An invoice is a financial document that creates a billing obligation for services or products rendered. Each invoice includes:

* **Client information** — patient name and responsible party details if different
* **Care member** — the provider associated with the services
* **Issue date** and optional **due date**
* **Date of service**
* **Line items** — service description, quantity, unit, and charges
* **Amount paid** and **balance owed**
* **Notes**
* **Created by** — either a system action or a user

***

## Invoice statuses

| Status             | Description                                                                                                                                            |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Draft**          | Invoice created but not finalized. No payment method attached. Details can still be modified.                                                          |
| **Pending**        | Invoice finalized with a payment method added. Awaiting payment. When a Stripe payment link is sent, the invoice stays Pending until the patient pays. |
| **Paid**           | Payment successfully completed.                                                                                                                        |
| **Partially Paid** | A partial payment has been received. The invoice is not yet fully settled.                                                                             |
| **Overdue**        | The due date has passed without full payment. Status updates automatically.                                                                            |
| **Deleted**        | Soft-deleted invoice. No longer affects the patient balance, but the record is retained in the audit log.                                              |

***

## Creating an invoice

### From an encounter

Invoices can be created directly within an encounter for any uninvoiced amount:

1. Open the patient's encounter in the Care portal
2. In the billing section, click **Create Invoice**
3. Services from the encounter are pre-populated — review and adjust as needed
4. Set the **due date** (optional) and add any **notes**
5. Click **Save** — the invoice is created in **Draft** status

Multiple invoices can be created for the same encounter to cover separate charges.

### Standalone invoice

Invoices can also be created independently of an encounter — for example, to charge a separate fee for paperwork or administrative services:

1. Navigate to the patient's **Billing** section or the organization-wide **Billing** tab
2. Click **Create Invoice**
3. Manually add line items with description, quantity, and amount
4. Set issue date, due date (optional), and notes
5. Click **Save** — invoice is created in **Draft** status

### Via automation

Invoices can be created automatically based on automation rules — for example, when a patient completes a payment through a Patient Facing Assessment (PFA), the system can generate the associated invoice automatically.

***

## Collecting payment

Once an invoice exists (in Draft or Pending status), you can collect payment using any of these three methods:

### 1. Charge card on file

If the patient has a saved payment method in Stripe:

1. Open the invoice
2. Select **Charge Card on File**
3. Confirm the charge amount
4. Click **Charge** — the card is billed immediately through Stripe
5. Invoice status updates to **Paid**

### 2. Send Stripe payment link

To let the patient pay on their own device:

1. Open the invoice
2. Select **Send Stripe Invoice Link**
3. Stripe sends a secure payment link to the patient's email on file
4. Invoice moves to **Pending** status
5. Once the patient pays via the link, invoice status automatically updates to **Paid**

### 3. Report a cash payment

For payments collected outside of Stripe (cash, check, wire transfer):

1. Open the invoice
2. Select **Report Cash Payment**
3. Enter the amount received
4. Confirm — the payment is logged and the invoice status updates accordingly

***

## Subscriptions

Welkin supports recurring billing through subscriptions, allowing healthcare providers to charge patients on a regular schedule — weekly, monthly, or yearly. Subscriptions are managed via Stripe and are visible in the **Subscriptions** tab of the Billing section.

### How subscriptions work

A subscription automatically generates an invoice on each billing cycle. When a charge is due:

* If the patient has a **card on file**, it is charged automatically
* If there is **no card on file**, the invoice is created in **Draft** status and must be collected manually

### Creating a subscription

A subscription can be created in two ways:

**From the patient record:**

1. Open the patient record and navigate to **Billing → Subscriptions**
2. Click **Create Subscription**
3. Fill in the subscription details:
   * **Name** — a label for the subscription plan
   * **Amount** — charge per cycle
   * **Start date** — when billing begins
   * **End date** — optional; leave blank to continue until cancelled
   * **Recurrence** — Monthly, Weekly, or Yearly
   * **Number of recurrences** — optional limit; leave blank to run indefinitely
4. Click **Save**

**From the organization Billing tab:**

1. Navigate to the **Billing** tab in the main menu
2. Click **Create Subscription** and select the patient
3. Fill in the same fields as above

Subscriptions can also be initiated programmatically via the Welkin API — for example, when a patient self-enrolls through a patient-facing form or landing page.

### Managing subscriptions

* **Edit** — subscription details can be updated before the next billing cycle processes
* **Cancel immediately** — stops the subscription at the current date; no further invoices are generated
* **Cancel on a future date** — sets an end date; the subscription continues until that date, then stops automatically
* **Multiple subscriptions** — a patient can have more than one active subscription (e.g., one for a membership plan and one for a recurring service fee)

### Failed payments

If a subscription payment fails (e.g., expired card), Stripe will retry according to your [Stripe retry settings](https://dashboard.stripe.com/settings/billing/automatic). Failed payment attempts are logged in the patient's billing history. You can resolve a failed payment by updating the patient's card on file and retrying the charge.

***

## Managing invoices

### Patient-level invoice list

All invoices for a patient are accessible from the **Billing → Invoices** section of their patient record. The list supports sorting and filtering by status, date, and amount.

### Organization-level billing tab

A general billing view across all patients is available for billing managers. It includes:

* **Invoices** — all patient invoices across the organization, filterable by status, date, and amount
* **Subscriptions** — all active and past subscriptions
* **Claims** — insurance claims (if Candid integration is enabled)

### Editing an invoice

* **Draft invoices** can be fully edited (add/remove line items, update amounts, change notes)
* **Once finalized** (Pending or later), the invoice cannot be modified — delete it and create a new one if changes are needed
* An invoice cannot be deleted until all associated payments have been refunded

***

## Patient balance

Welkin maintains a running **patient balance** that reflects the net of all invoices and payments:

* When an invoice is created, the patient's outstanding balance increases by the invoiced amount
* When a payment is applied, the balance decreases accordingly
* Draft and deleted invoices do not affect the patient balance
* The balance is visible in the patient record and updates in real time

***

## Issuing refunds

Refunds are processed through Stripe and are available for any paid or partially paid invoice:

1. In the patient's payment history, locate the charge to refund
2. Click **Refund**
3. Enter the refund amount (up to the original charge)
4. Confirm — Stripe processes the refund, which appears on the patient's statement within 5–10 business days
5. Invoice status updates to **Partially Paid** (partial refund) or back to **Pending** (full refund)

> **Note:** A full refund does not delete the invoice. The invoice remains in the audit history.

***

## Invoice PDF templates

Welkin supports custom invoice PDF templates that can be configured in Designer:

1. Go to **Designer → Invoice Templates**
2. Upload your organization's invoice template (supports Welkin template variables for patient name, service date, line items, totals, etc.)
3. Multiple templates can be configured for different use cases

Generated invoice PDFs are stored in the patient's Document Center and can be sent manually by attaching them to an outbound email or message.

***

## API access

Invoices and subscriptions can be created, updated, and managed programmatically via the Welkin API. Key capabilities include:

* Create a new invoice for a patient
* Update invoice status
* Retrieve invoice details and payment history
* Create and manage subscriptions
* Trigger invoice or subscription creation from automation rules

Refer to the [Welkin API Postman Collection](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/developer/welkin-api-postman-collection.md) for the full list of invoice and payment endpoints, including example requests and response schemas.

For API authentication setup, see [Provisioning API Client](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/admin/provisioning-api-client.md).

***

## Related articles

* [Stripe Setup and Configuration](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/integrations/stripe-setup-and-configuration.md)
* [Welkin API Postman Collection](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/developer/welkin-api-postman-collection.md)
* [Automation](https://github.com/welkincloud-io/welkin-docs/blob/master/kb/admin/automation.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.welkinhealth.com/care/billing/payments-and-invoices.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
