Reference·X12 835·SVC
X12 835 Reference

X12 835 SVC Segment Guide: Fields, Format, and Testing Gotchas

Jul 27, 2026 · 6 min read

The SVC segment is where a remittance advice actually says what a payer decided about a single line of a claim: what was billed, what was paid, and how many units it covered. If your test data generator gets SVC wrong, every downstream reconciliation report inherits the error.

Quick answer

SVC (Service Payment Information) is a loop-level segment in the X12 835 that reports payment detail for one service line: the procedure billed, the charge submitted, the amount the payer actually paid, the revenue code when applicable, units paid, and — when the payer substituted a different procedure code than what was billed — the original code and units in SVC06 and SVC07.

The elements that actually matter in practice

SVC01-1 →
Product/Service ID Qualifier — tells you how to read SVC01-2 — HC for HCPCS/CPT, NU for revenue codes with no procedure, N4 for NDC, and a handful of others you will rarely see
SVC01-2 →
Procedure Code — the billed procedure code the payer is adjudicating; modifiers ride along as SVC01-3 through SVC01-6 in the same composite
SVC02 →
Line Item Charge Amount — the amount the provider billed for this line — compare against the paid amount to figure out where the payer disagreed with the provider
SVC03 →
Line Item Provider Payment Amount — what the payer actually paid on this line
SVC05 →
Units of Service Paid Count — how many units the payer is paying for on this line — not always the same number the provider billed
SVC06
Composite Medical Procedure Identifier — only present when the payer paid a different procedure code than was billed; SVC06-2 carries that original code
SVC07
Original Units of Service Count — pairs with SVC06 to show the units associated with the original, unadjusted procedure code

Example

Synthetic example Generated by Synthibase
SVC*HC:99213:25*125.00*100.00**1*HC:99212*1*

A synthetic office-visit line: billed as 99213 with a modifier 25 at $125, but the payer downcoded it to 99212 and paid $100 for 1 unit — SVC06 preserves the original 99212 code the provider actually submitted before the downcode.

Where this trips people up

Teams frequently assume SVC02 minus SVC03 always equals the sum of the CAS adjustment amounts that follow the SVC segment, then build reconciliation logic on that assumption. It usually does — but not when a downcode changes the allowed amount basis, or when multiple CAS segments at different levels touch the same dollars. Test data generators need to produce cases where SVC03 plus every associated CAS amount does not cleanly foot to SVC02, so reconciliation code has to handle the mismatch instead of silently swallowing it. The other common miss is skipping SVC06/SVC07 entirely in test fixtures — if your synthetic data never includes a downcoded or bundled line, your parser's handling of that composite never gets exercised until it breaks in production.

EDI 835 Remittance Advice: Complete Guide for Healthcare IT
How to Test 835 Remittance Reconciliation Before Go-Live
Generate realistic SVC test scenarios in minutes
Synthibase produces synthetic 835 files with downcodes, bundled lines, and partial payments built in, so your reconciliation logic gets tested against the edge cases that actually break it — not just the happy path.
Start free trial →
This page is written independently by Synthibase for testing and informational purposes. It is not an official publication of HL7 International or X12/Washington Publishing Company, and is not a substitute for reviewing the official standard or your trading partner's companion guide. See our Terms of Service for full legal terms.