Skip to main content

Posting Payments, Adjustments, and Denials on Billing Claims

A guide to the new line-level claim transaction posting workflow.

L
Written by Luke Longo

A guide to the new claim transaction posting workflow.

What changed

Payment posting is now line-level. Instead of recording one lump sum against a claim, you allocate money to the individual service lines it was paid against, and the claim's balances, status, and reporting all follow from those allocations. Three things come with that:

  • Every posting is allocated to service lines. The transaction total is calculated from the lines you fill in — you no longer type a total.

  • Balances and claim status are derived, not typed. The system recalculates Charge Balance, Allowed Balance, Total Paid, and the claim's workflow status every time you post.

  • Denials are recorded with reason codes. A denied line carries its adjustment group (CO, PR, OA, PI, CR) and CARC reason code, so denial reporting and appeals have real data behind them.

You can attach the EOB, ERA, or check image to the posting as you make it.


1. Before you start: reading the claim

Everything you post depends on what the claim already says, so it's worth knowing what the header is telling you.

Figure 1 — Claim overview. Patient and claim identifiers redacted.

  1. Workflow status (Partially Paid) and claim status code (F1) — both recalculated automatically from what's been posted.

  2. Charge Balance — what you billed and haven't collected. Largely contractual; not the follow-up number.

  3. Allowed Balance — what's still collectible based on allowed amounts. Work this number.

  4. Total paid — net cash: payments minus adjustments and write-offs. Denials don't move it.

  5. Workflow Status selector with its plain-language description — derived, so you rarely touch it.

Field

What it means

Workflow status (e.g. Partially Paid)

Where the claim sits in your process. Recalculated automatically from what's been posted.

Claim status code (e.g. F1)

The payer's adjudication response, in X12 277 terms. Also derived.

Charge

Total billed across all service lines.

Total paid

Net cash: payments minus adjustments and write-offs. Denials don't move this number.

Charge Balance

Charge minus what's been paid. What you billed and haven't collected.

Allowed Balance

What's still collectible based on the allowed amounts — the number that actually matters for follow-up.

Charge Balance vs. Allowed Balance

This is the distinction most worth internalizing. Charge Balance measures against what you billed. Allowed Balance measures against what the payer agreed to allow. When a payer allows less than you billed, the difference is a contractual adjustment — not money you can chase.

In the example claim: $2,216.90 billed, $886.76 allowed, $885.00 paid. Charge Balance = $1,331.90 — mostly contractual, not collectible. Allowed Balance = $1.76 — the real outstanding amount. Work the Allowed Balance. A large Charge Balance next to a near-zero Allowed Balance means the claim is essentially resolved.

Figure 2 — Financial Summary tiles.

  1. Total paid — net cash collected on the claim.

  2. Charge Balance — measured against billed charges.

  3. Allowed Balance — measured against payer-allowed amounts; the follow-up number.

Figure 3 — Service Lines and Charge Breakdown.

  1. Fee schedule fallback banner — the payer's schedule isn't loaded, so charges were computed from the default CMS / Medicare schedule and may differ from the contracted rate.

  2. Totals row — charge, total paid, adjustments, and remaining balance across all lines.

  3. Per-line charge math: units × fee schedule rate × multiplier, with the fee schedule source.


2. Opening the posting form

Open the claim, go to the Transactions tab, and click Post Transaction. From a claim card in a list view, + Add Transaction does the same thing.

Figure 4 — Transactions tab. Patient and claim identifiers redacted.

  1. Transactions tab on the claim.

  2. Post Transaction opens the posting form.

  3. The transaction list is your audit trail — expand a row to see its line allocations. Lines shows how many allocations a posting carries; Files shows whether an EOB or ERA is attached.

Figure 5 — Posting from a claim card. Patient and provider identifiers redacted.

  1. + Add Transaction opens the same posting form from a list view.

Figure 6 — The posting form before a type is selected.

  1. Type — choose this first; it sets defaults and clears any allocations already entered.

  2. Amount — not an input. It's the sum of the line allocations, updating as you type.

  3. Date — the date on the remittance, not today's date. It defaults to today, so change it.

  4. Claim Number — the payer's claim number (redacted here). Set from the first posting and locked for the claim.

  5. Line Allocations — pre-loaded with every service line at $0. Fill in only the lines this remittance touched; untouched $0 lines are ignored.


3. The fields on every posting

Figure 7 — Transaction types.

  1. Payment, Adjustment, Denial, or Write Off. Selecting a type sets sensible defaults and clears any allocations you've already entered — choose it first.

  2. Amount stays $0.00 until you allocate amounts to lines below.

Note: Write Off is available but not part of our current process. Use Adjustment instead unless you've been told otherwise.

Type (required) — Payment, Adjustment, Denial, or Write Off. Selecting a type sets sensible defaults for everything below it and clears any allocations you've already entered, so choose it first.

Amount — Not an input. It's the sum of the line allocations below, updating as you type. If it reads $0.00, you haven't allocated anything yet.

Date (required) — The date of the payment or adjudication as shown on the remittance, not today's date. Defaults to today, so change it.

Claim Number (required) — The payer's claim number from the remittance (not our internal CLM- number). It's set from the first posting on a claim and locked after that; on later postings you'll see it greyed out.

Claim Status — The X12 277 code describing the payer's response. Defaults from the type you picked: Payment → F1 (Paid), Denial → F2 (Denied), Adjustment → F3 (Revised), Write Off → F4 (No Payment). You can override it — the full code set is available, grouped by series (Acknowledgement, Pending, Finalized, Request for information, Error, Data search).

Notes — Optional. Worth using for anything the codes don't capture: check number, ERA batch, why an adjustment was made.

A note on status

The status you select records what the payer said. The claim's own workflow status is recalculated from the money you post, and that calculation wins: net cash collected > $0 → Paid, or Partially Paid if any line was denied; no net cash and every service line denied → Denied. So you don't need to hand-manage the claim's status to keep it accurate. Post the money correctly and the status follows.


4. The Line Allocations table

This is where the actual work happens.

Column

What to do with it

Line / Code / Billed / Charge

Read-only context from the claim.

Allowed

Editable. Enter the allowed amount from the remittance. The current stored value shows above the field.

Total paid

Read-only. What this line has already received across prior postings.

Status

The per-line X12 status. Defaults from the transaction type; override per line.

Qty

Units this allocation covers. Defaults to the line's billed units.

Amount

The dollar amount for this line — always a positive number (see below).

Group / Reason

Adjustment group code and CARC reason code.

+

Add another reason code to the same allocation.

Split

Divide the line into multiple allocations (see section 6).

Enter amounts as positive numbers

Always enter amounts as positive numbers, on every transaction type. The transaction type determines the direction — you never type a minus sign. Payment increases paid. Adjustment / Write Off reduce the collectible balance. Denial doesn't move cash; it adjusts balances. A negative amount will be rejected.

Known issue: the on-screen helper text under Line-Level Posting for Adjustment and Write Off currently says "Enter negative amounts per line." That text is wrong and is being corrected. Enter positive amounts. (See callout 4 in Figure 10.)

Updating the Allowed amount

The Allowed field is editable because remittances frequently correct it. Enter the allowed amount from the EOB and the claim's allowed amount updates when you post, which recalculates the Allowed Balance. When your entry differs from what's stored, the field flags the change before you post. If the payer didn't state an allowed amount, leave it alone.


5. The three transaction types

Payment — cash received

Figure 8 — Payment posting, with the $0-line validation message.

  1. Helper text: "Cash received. Total equals paid line amounts." Lines default to F1 — Paid.

  2. Validation: a line can't be $0 with status F1 — Paid. Enter a paid amount, set the line to F2 — Denied, or post a Denial.

  3. Per-line Status — defaults to F1 — Paid on a Payment; override per line.

To post a payment:

  1. Select Payment.

  2. Set the Date to the payment date on the remittance.

  3. Enter the payer's Claim Number if this is the first posting.

  4. For each line paid: enter the Allowed amount and the Amount paid.

  5. Leave lines that weren't paid at $0, or mark them F2 — Denied.

  6. Attach the EOB or ERA (section 7).

  7. Post Transaction.

A paid line can't be $0. If a line is marked F1 — Paid with a $0 amount, you'll get the validation shown in Figure 8. That's the system asking you to be explicit: was it paid, or was it denied? Any line with an amount needs a Qty greater than zero.

A fully $0 payment — every line at $0 — triggers a confirmation prompt unless every service line is marked F2 — Denied. A $0 payment where everything is denied is a legitimate way to record a full denial arriving on a payment remittance. A $0 payment with lines still marked Paid is almost always a mistake.

Denial — no cash, adjudicated

Figure 9 — Denial posting.

  1. Type = Denial. Lines default to F2 — Denied.

  2. Helper text: "Non-cash adjudication. Total equals denied line amounts."

  3. Claim Status defaults to F2 — Denied, with its derivation rule described beneath.

  4. Group / Reason per denied line — this is what makes denial reporting and appeals work.

To post a denial:

  1. Select Denial.

  2. Set the Date to the adjudication date.

  3. For each denied line: enter the denied Amount as a positive number.

  4. Set the Group and Reason for each denied line.

  5. Attach the EOB.

  6. Post Transaction.

Group code

Meaning

CO

Contractual Obligation — provider absorbs it; not billable to the patient

PR

Patient Responsibility — deductible, coinsurance, copay

OA

Other Adjustment

PI

Payer Initiated Reduction

CR

Correction / Reversal

Reason codes are standard CARC values from a searchable list — 1 (Deductible), 2 (Coinsurance), 3 (Copay), 16 (Lacks information), 18 (Duplicate), 29 (Filing limit expired), 45 (Exceeds fee schedule), 50 (Not medically necessary), 96 (Non-covered), 197 (No precertification), and more. Use + to add multiple reason codes to one line.

Partial denials: a remittance that pays some lines and denies others can be recorded as one Payment with the denied lines set to F2 — Denied, or as a Payment plus a separate Denial. Either way the claim lands on Partially Paid.

Adjustment — non-cash correction

Figure 10 — Adjustment posting.

  1. Type = Adjustment. Lines default to F3 — Revised.

  2. Helper text: "Non-cash adjustment. Total equals adjustment line amounts."

  3. Claim Status defaults to F3 — Revised (adjudication information has changed).

  4. Known issue — this helper text incorrectly says to enter negative amounts. Enter positive amounts; the type sets the direction.

Use an Adjustment when the collectible balance needs to change without cash moving — a contractual write-down beyond what the fee schedule captured, a correction to a prior posting, or a payer-directed reduction.

To post an adjustment:

  1. Select Adjustment.

  2. Set the Date.

  3. Enter the adjustment Amount per line as a positive number.

  4. Set Group and Reason where the remittance gives them.

  5. Add a Note explaining the adjustment — a bare adjustment with no explanation is difficult to audit later.

  6. Post Transaction.

Adjustments reduce Total paid (it's a net figure) and reduce the collectible balance. If adjustments exceed payments, Total paid can go negative — that's intentional, and surfaces recoupments.


6. Splitting a line

Split divides one service line into multiple allocations — for when a single line was partly paid and partly denied. Click Split on the line. A second row appears for the same line, pre-filled with the remaining units. On a Payment, the split row defaults to F2 — Denied, since a split usually means "these units paid, those denied."

Example: 28 units billed, 20 paid and 8 denied. Row 1: Qty 20, Amount = paid amount, Status F1 — Paid. Row 2: Qty 8, Amount = denied amount, Status F2 — Denied, with group and reason.

Two rules on splits: every split row needs a Qty — splits without quantities are rejected; and quantities can't exceed billed units — splitting 28 units into 20 + 12 fails. Use Remove to drop a split row.


7. Attaching an EOB, ERA, or check image

Figure 11 — Attachment panel on the posting form.

  1. Choose File — select the EOB, ERA, or check image.

  2. File type — set to EOB, ERA, or Other.

Attachments are optional but strongly recommended — the posting is far easier to defend later with the source document attached. Choose the file, set the type, and post as normal; the file uploads and links to the transaction.

Accepted: PDF, PNG, JPEG — up to 25 MB. Anything else is rejected immediately ("Only PDF, PNG, and JPEG files are allowed"). File contents are verified against the file type, so a renamed file won't pass. One file per posting through this form. For additional documents, attach them from the transaction list after posting.

If the upload fails but the posting succeeds, you'll be told so explicitly — "Transaction posted, but the file upload failed. Upload it from the transaction list." The transaction is saved; only the file needs retrying. Don't re-post. You can delete an attached file later if you attached the wrong one.


8. Worked example

Remittance: UnitedHealthcare, check dated Aug 4. Line 1 (A6021, 28 units, $2,097.90 billed) allowed $839.16, paid $840.00. Line 2 (A6219, 35 units, $119.00 billed) allowed $47.60, paid $45.00, $2.60 denied as CO-45.

  1. Transactions tab → Post Transaction.

  2. Type → Payment. Date → 08/04/2026. Claim Number → payer's number.

  3. Line 1: Allowed 839.16, Amount 840.00, Qty 28, Status F1 — Paid.

  4. Line 2: Split the line. Row 1: Amount 45.00, Status F1 — Paid, Qty covering the paid units. Row 2: Amount 2.60, Status F2 — Denied, Group CO, Reason 45, Qty covering the remaining units.

  5. Allowed on line 2 → 47.60.

  6. Amount now reads $887.60. Attach the EOB, file type EOB.

  7. Post Transaction.

Result: Total paid $885.00 net. Allowed Balance drops to $1.76. Workflow status becomes Partially Paid — cash was collected and a line was denied. Claim status becomes F1.


9. Corrections

A posted transaction can't be deleted or voided. This is deliberate — the transaction history is a financial audit trail. To correct a mistake, post an offsetting transaction: overstated a payment → post an Adjustment for the difference; posted to the wrong line → offset it, then post correctly; wrong attachment → delete the file and attach the right one, and the transaction stays. Add a Note to any correcting transaction explaining what it corrects.


10. Quick reference

Transaction types

Type

Cash?

Default status

Effect

Payment

Yes

F1 — Paid

Increases paid

Adjustment

No

F3 — Revised

Reduces collectible; reduces net paid

Denial

No

F2 — Denied

Adjusts balances; no cash

Write Off

No

F4 — No Payment

Not in current use

Claim status codes you'll see most

Code

Meaning

F1

Paid — derived when net cash resolves the collectible balance

F2

Denied — derived when no net cash and denials offset the balance

F3

Revised — adjudication information changed

F4

No payment forthcoming

A2

Accepted into adjudication

P1

In process at the payer

Group codes: CO (contractual), PR (patient), OA (other), PI (payer-initiated), CR (correction/reversal)

Rules that will stop a posting

  • At least one line allocation required

  • Amounts must be positive; the type sets the direction

  • A line with an amount needs Qty > 0

  • A Payment line can't be $0 and F1 — Paid

  • Split rows all need a Qty, and can't exceed billed units

  • Payer Claim Number required on the first posting

  • Attachments: PDF / PNG / JPEG, max 25 MB

Claims you can't post against: Draft, Voided, Denied, or Closed. A claim must be filed and not terminally resolved.


Questions? Contact the billing systems team.

Did this answer your question?