Skip to main content

Payment Reconciliation

Payment Reconciliation records payments (and possibly adjustments) made toward one or more invoices or accounts. It answers: “Who paid, how much, and which invoice(s) or account(s) does this money apply to?” By storing a Payment Reconciliation entry each time a patient or insurer submits payment, the system can track how the invoice balances shift from unpaid to partially paid to fully settled.

If a payment is reversed (e.g., check bounces), the Payment Reconciliation is canceled or marked in error, restoring the invoice’s outstanding amount. This ensures a complete audit trail of all financial transactions.

Schema Definition

{
"id": "<str>", // Internal Identifier
"type": "<string>", // payment | adjustment | advance
"status": "<string>", // active | cancelled | draft | entered-in-error
"kind": "<string>", // e.g., "online", "online", "deposit"
"issuerType": "<string>", // "patient" or "insurer"
"outcome": "<string>", // queued | complete | error | partial
"facility": "<id|fk>",
"disposition": "<string>", // Additional message or outcome detail
"method": "<string>", // Payment method (cash, check, credit, etc.)
"datetime": "<datetime>", // When payment was posted
"referenceNumber": "<string>", // Check number or transaction reference
"authorization": "<string>", // Auth code if card-based
"tenderedAmount": { "value": "<decimal>", "currency": "<string>" },
"returnedAmount": { "value": "<decimal>", "currency": "<string>" },
"amount": { "value": "<decimal>", "currency": "<string>" }, // Net amount posted
"target_invoice": "<id|fk>", // If a single-invoice payment
"account": "<id|fk>", // If no invoice, apply to Account
"note": "<string>"
}

Essential Fields

FieldDescriptionTechnical Notes
idInternal system identifierPrimary key, auto-generated
typeCategory of payment transactionDistinguishes between payments, adjustments, and advances
statusCurrent state of the payment recordControls visibility and effect on balances
kindPayment workflow classificationTracks channel or method of payment receipt
issuerTypeSource of the paymentDistinguishes between patient payments and insurance payments
outcomeProcessing result of the paymentTracks whether payment was fully processed
facilityReference to the healthcare facilityLocation where payment was recorded
methodPayment method usedCash, check, credit card, bank transfer, etc.
datetimeDate and time of paymentWhen payment was received
referenceNumberExternal transaction identifierCheck number, transaction ID, etc.
amountPayment amountThe actual amount received
target_invoiceReference to the invoiceInvoice being paid (if applicable)
accountReference to the billing accountUsed when payment applies to account rather than specific invoice

Status Values

Status ValueDescriptionSystem Behavior
activePayment is complete and validIncluded in financial calculations
cancelledPayment has been reversedExcluded from balances; requires reversal processing
draftPayment is being processedNot yet included in financial calculations
entered-in-errorPayment recorded incorrectlyExcluded from all calculations

Payment Types

TypeDescriptionUsage
paymentStandard monetary transactionNormal payments from patients or insurance
adjustmentNon-monetary balance changeContractual adjustments, write-offs, etc.
advancePayment before servicesPre-payments or deposits

Payment Outcomes

OutcomeDescriptionNext Steps
queuedPayment is pending processingRequires follow-up to complete
completePayment fully processedNo additional action needed
errorPayment processing failedRequires investigation and correction
partialPayment partially processedRemaining processing needed

Payment Kinds

Kind ValueDescriptionUsage
depositOne-time payment depositUsed for upfront payments or security deposits
preriodic_paymentRecurring scheduled paymentFor payment plans or installments
onlinePayment made through web portalSelf-service online payments
kioskPayment made at payment kioskSelf-service kiosk payments

Payment Issuer Types

Issuer TypeDescriptionUsage
patientPayment from patientDirect payments from patients or their representatives
insurancePayment from insurancePayments from insurance companies or third-party payers

Payment Methods

Method CodeDescriptionUsage
cashCash paymentPhysical currency payments
cccaCredit card paymentPayment via credit card
cchkCredit checkPayment via credit check
cdacCredit/debit accountPayment via linked bank account
chckCheck paymentPayment via paper check
ddpoDirect depositPayment via bank deposit
debcDebit cardPayment via debit card

Flow

Business Logic

  • When a payment is recorded, the amount gets distributed to invoices:
    • If the user is recording a payment for a single invoice (like patient pays their bill), the system will auto-allocate full amount to that invoice (and check if it matches the invoice amount, if not, treat as partial payment).
    • If the payment is meant for multiple invoices (like an insurance bulk payment or patient paying multiple bills at once), the UI should allow selecting multiple target invoices and specifying amounts for each. The sum of allocations should equal the payment.
    • The account’s balance and each invoice’s balance need to update accordingly: subtract the paid amounts.
  • If a payment fully covers an invoice, mark the invoice balanced (paid in full). If partially, invoice remains issued with remaining balance.
  • If a payment exceeds what was due (overpayment), the system might either hold the extra as a credit on the account (unallocated) or ask the user to adjust the allocation (maybe the patient intended to pay only what was due).
  • Payment records can also represent refunds or chargebacks if negative amounts are allowed or by using cancellation:
    • We'll keep it simpler by saying to cancel or reverse the payment rather than negative entries.
  • The Payment Reconciliation acts as a receipt internally.
  • The module also handles adjustments from insurance. These might be recorded as a special kind of allocation (with no actual payment but reduces invoice balance).
  • Ensuring that after posting all payments, any remaining balance on an invoice is correctly represented.
  • Payments should update the Account as well: since account balance is charges minus payments, adding a payment will reduce the account’s balance.
  • If a Payment Reconciliation is cancelled (like a bounced check), the system should re-open those invoice balances:
    • The invoice status goes back from balanced to issued if it was fully paid by that payment.
    • If partial, increase the outstanding amount accordingly.
    • Possibly log the reason (bounced check fee maybe separate).
  • There should be integrity: you shouldn’t be able to apply more money to an invoice than its amount (except if intentionally overpay, which then needs handling like credit).
  • Payment Reconciliation records also help in reconciling with bank deposits (each day’s cash, check, credit totals). So you might have reports grouping payments by date/method for bank reconciliation.

Payment Posting

Handling a Payment Reversal (Bounced check or error):

  1. Locate the Payment record (e.g., search by check number or patient).
  2. Use a “Cancel Payment” or “Reverse Payment” action. The system might ask for a reason (“Check bounced due to insufficient funds”).
  3. On confirmation, the Payment Reconciliation status changes to Cancelled (or enters an error state). The system effectively negates the effects of that payment:
    • The associated invoices’ balances are increased back by the amounts that this payment had covered.
    • If those invoices were marked paid, they revert to issued (not paid). If partially paid, their outstanding increases.
    • The account balance goes up accordingly.
    • Optionally log an internal note on the invoice or account about this reversal.
  4. The cancelled payment record remains for audit, perhaps with a note, but is not counted in totals.

Viewing Payment History:

  • On a patient account or invoice screen, staff can see a list of payments applied. For each payment: date, amount, method, reference. If one payment covered multiple invoices, that payment might show up in each relevant account’s history (with the portion that applied).
  • There may also be a standalone Payment Reconciliation list (for all payments) where staff (like finance) can search by date range, method, etc., to do end-of-day reconciliation (e.g., total cash collected today).
  • Reports can be generated, like “Daily Cash Collection Report” summing all payments by type, which should match actual cash in hand or bank deposits.