Insurance Co-Payment Billing
Rexolia supports insurance co-payment billing for businesses whose customers are covered by a medical insurance scheme. The system automatically splits each sale between the insurer and the patient based on the coverage rules configured for each scheme.
This feature is particularly relevant for pharmacies in Rwanda working with RSSB, RAMA, and Mutuelle de Santé Etc.
How Co-Payment Works
When a customer has an active insurance card linked to their profile, Rexolia calculates the split per line item at the time of sale:
- Covered products: split between insurer and patient according to the scheme's coverage percentage
- Uncovered products (drug): patient pays 100%, no insurer portion
- Products not on the formulary: treated as uncovered
Example with an RSSB 85/15 plan:
| Product | Unit Price | Covered | Insurer (85%) | Patient (15%) |
|---|---|---|---|---|
| Amoxicillin 500mg | 2,500 RWF | Yes | 2,125 RWF | 375 RWF |
| Surgical Gloves | 1,500 RWF | No | 0 RWF | 1,500 RWF |
| Total | 4,000 RWF | 2,125 RWF | 1,875 RWF |
The patient pays 1,875 RWF at the counter. The insurer owes 2,125 RWF, which Rexolia tracks as a pending insurance claim.
Setup
Three things must be configured before insurance billing works.
1. Create an Insurance Partner
Go to Finance → Insurance Partners → Insurances and Locale Add Insurer button a record for each insurer you work with.
| Field | Description |
|---|---|
| Name | Full name e.g. Rwanda Social Security Board |
| Short Name | Abbreviation e.g. RSSB |
| TIN | Insurer's tax identification number |
| Default Coverage % | The insurer's share e.g. 85.00 for 85% |
| EBM Insurance Code | RRA code for this insurer e.g. RSSB01 (Rwanda only) |
2. Configure Covered Products
Not all products in your inventory are covered by every insurer. Go to Finance → Insurance Partners → Formularies → Click on formulary You will see products covered in that formulary. You can add on remove a product on insurance. make sure you perform this addition or removal according to the formulary / List issued by RRSB for the current period.
To Add a product (drug), once on the formulary, Search Medicine and the participating insurers on that formulary will be shown, if this product is covered by all of them, click + Add to Coverage List If the product is not covered by all the shown insurers, you are on the wrong formulary, click Back to Formularies and find a formulary of type Specific Annex. if it does not exist, create one with + New Formulary
| Field | Description | Example |
|---|---|---|
| Product | The specific product covered | Amoxicillin 500mg |
| Coverage % | Percentage covered for this product — may differ from the insurer's default rate | 85.00 |
| Valid From | Date from which coverage applies | 01/01/2025 |
| Valid Until | Date on which coverage expires mandatory, see warning below | 31/12/2025 |
:::warning Valid Until is mandatory A product with no Valid Until date is treated as not covered. Always set an explicit end date even if coverage is open-ended use a far future date such as 31/12/2099. This is a deliberate safety rule to prevent stale coverage records from being applied silently. :::
3. Register Customer Insurance Cards
Just inside POS as you are processing sale, add items to cart then click Add Customer → New Customer and fill the form.
Make sure to check the box Patient has insurance card in order to have insurance related fields
| Field | Description |
|---|---|
| Names, Address, E-mail, ... | These are necessary information of the customer. |
| Insurance Partner | The insurance partner (RSSB, RAMA, etc.) |
| Beneficiary Number | The membership card number "Beneficial N°" on RSSB cards |
| Relationship | Self (if the customer in font of you is card owner), otherwise they are: Spouse, or Child or other |
| Affiliate Name | Head of family name. If present customer is not insurance card owner, the data you entered above must be for Head of the family |
| Duty Station | Patient's duty station |
| Date of Birth | Patient's date of birth |
A customer can hold cards from multiple insurers. At checkout, Rexolia shows all active cards and lets the cashier select the correct one for that sale.
Processing an Insured Sale
Once the setup above is complete, the POS flow handles the split automatically.
1. Link the customer before adding products
Search the customer in the cart panel. Their active insurance cards appear immediately below their name.
2. Select the insurance card
Click +Add Insurance → Use Card next to the correct card. The cart recalculates immediately each line item shows its insurer portion and patient portion side by side.
3. Enter the HSP name
An HSP (Health Service Provider) field appears in the cart. Enter the
name of the prescribing doctor or hospital, for example:
Dr. Olivia. This is required for RSSB billing and prints on
the insurance invoice.
4. Verify the split in cart totals
The cart footer shows three lines:
Total Invoice 6,208 RWF
RSSB pays (85%) 5,276 RWF
Patient pays (15%) 931 RWF
The cashier collects only the Patient pays amount at the counter.
5. Checkout
Select the payment method and click Checkout. Rexolia will:
- Lock the co-payment split per line item
- Generate the sales invoice with insurer and patient columns
- Create a pending Insurance Claim for the insurer's portion
- Generate the RSSB-format Sales invoice PDF
- Issue the EBM-signed receipt (Rwanda)
The Insurance Invoice
For insured sales, Rexolia generates a dedicated insurance invoice (Sales Invoices) separate from the standard sales receipt. This document is formatted to RSSB/RAMA requirements and contains:
- Patient details (Beneficial N°, name, relationship, duty station, date of birth)
- Affiliate name (head of family)
- Insurance TIN
- HSP (prescribing doctor/hospital)
- Product table with batch number, expiry date, quantity, unit price, total price, patient column (%) and insurer column (%)
- Tax breakdown (A-EX, B-18%, C-0% as applicable)
- Three-column total: Total 100%, Patient portion, Insurer portion
- Signature and stamp area for the pharmacy
- Visa area for the insurer
- Reception confirmation area for the patient
This document is printed and submitted to the insurer for reimbursement alongside the signed EBM receipt.
Insurance Claims
Every insured sale automatically creates an Insurance Claim record tracking the insurer's outstanding balance. Go to Finance → Insurance Claims to manage claims.
| Status | Meaning |
|---|---|
| Pending | Claim created, not yet submitted to insurer |
| Submitted | Sent to insurer, awaiting response |
| Approved | Insurer confirmed the amount |
| Partial | Insurer paid part of the claim |
| Paid | Fully settled |
| Rejected | Insurer refused — see rejection reason |
| Disputed | Under review |
Attach the doctor's prescription file to the claim record before submission — most insurers require it.
Troubleshooting
Co-payment split not appearing at checkout
Check the following in order:
- Is the customer linked to the cart before products were added? The card must be active and linked before checkout.
- Does the customer have an active insurance card registered? Go to their CRM record and verify.
- Is the card marked as Active? An inactive card is ignored.
- Are the products on the insurer's covered product list (Formulary)? A product not in the covered list is treated as 100% patient.
- Is the coverage (Formulary) still valid today? Check the Valid From and Valid Until dates on the covered product record.
Coverage percentage showing 0% for a covered product
The covered product record exists but the validity period has expired. Update the Valid Until date in Finance → Insurance Partners → Formulary
HSP field not appearing
The HSP field only appears after an insurance card has been selected in the cart. Link the customer and click Use Card first.
Insurance invoice not generating
The insurance invoice (Sales Invoice) is generated only when
both insurance_coverage and patient_card are set on the invoice.
If the standard receipt generated instead of the insurance invoice,
the card was not selected before checkout. Proceed with a refund and reprocess
the sale with the card linked.