NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Segment11 min read

HL7 PSL Segment: Product/Service Line Item

The PSL (Product/Service Line Item) segment represents a single billable product or service line within a product/service group. PSL was introduced in HL7 v2.6 alongside its companions PSS and PSG, and is the most detailed of the three — v2.8.1 publishes 48 fields covering identification, coding, quantities, monetary amounts, scaling factors, physician roles, and validation flags.

Purpose

PSL captures everything a payer needs to adjudicate one line of a bill: identifiers from both provider and payer, the product/service code and its modifiers, effective and expiration dates, quantity and unit cost, gross and billed amounts, physician roles, professional/technical part splits, VAT, and validation. A PSL is always anchored to a parent PSG, which in turn belongs to a PSS section.

Used in

PSL is used in product/service billing flows carried by financial and master-file messages such as DFT (Detailed Financial Transaction) variants and PMU events that exchange billable activity. See the DFT message page for the typical envelope.

Field-by-field reference

Source: HAPI HL7v2 v2.8.1 javadocs (https://hapifhir.github.io/hapi-hl7v2/v281/apidocs/ca/uhn/hl7v2/model/v281/segment/PSL.html) for sequence, name, data type, and repetition. Length is not published in the javadocs (); Required and Table # are filled from the HL7 v2 standard where well-established.

SeqNameData TypeLengthReqRepeatTable #Description
PSL-1Provider Product/Service Line Item NumbereiRProvider-assigned line identifier
PSL-2Payer Product/Service Line Item NumbereiOYPayer-assigned line identifier(s)
PSL-3Product/Service Line Item Sequence NumbersiROrdinal position within group
PSL-4Provider Tracking IDeiOYProvider-side tracking reference
PSL-5Payer Tracking IDeiOYPayer-side tracking reference
PSL-6Product/Service Line Item StatuscweO[HL70776]Status of the line item
PSL-7Product/Service CodecweRPrimary product/service code (e.g. CPT)
PSL-8Product/Service Code ModifiercweOYModifier(s) applied to the code
PSL-9Product/Service Code DescriptionstOYFree-text description of the code
PSL-10Product/Service Effective DatedtmOYDate the service became effective
PSL-11Product/Service Expiration DatedtmOYDate the service ceased to apply
PSL-12Product/Service QuantitycqOYQuantity of units delivered
PSL-13Product/Service Unit CostcpOYCost per unit
PSL-14Number of Items per UnitnmOYItems packaged per billed unit
PSL-15Product/Service Gross AmountcpOYPre-adjustment gross amount
PSL-16Product/Service Billed AmountcpOYNet billed amount for the line
PSL-17Product/Service Clarification Code TypecweOYType of clarification code supplied
PSL-18Product/Service Clarification Code ValuestOYValue of the clarification code
PSL-19Health Document Reference IdentifiereiOYLink to supporting health document
PSL-20Processing Consideration CodecweOYProcessing hint for the payer
PSL-21Restricted Disclosure IndicatoridO[HL70136]Flag: limit disclosure of line
PSL-22Related Product/Service Code IndicatorcweOYRelationship to other coded lines
PSL-23Product/Service Amount for PhysiciancpOYPhysician portion of the line amount
PSL-24Product/Service Cost FactornmOYMultiplier applied to base cost
PSL-25Cost CentercxOYCost center receiving the charge
PSL-26Billing PerioddrOYDate range covered by the line
PSL-27Days without BillingnmOYDays within period that are excluded
PSL-28Session-NonmOYTreatment session number
PSL-29Executing Physician IDxcnOYPhysician who performed the service
PSL-30Responsible Physician IDxcnOYPhysician accountable for the service
PSL-31Role Executing PhysiciancweOYRole code of executing physician
PSL-32Medical Role Executing PhysiciancweOYMedical-role code of executing physician
PSL-33Side of BodycweOYLaterality of the service
PSL-34Number of TP's PPnmOYCount of tariff positions, professional part
PSL-35TP-Value PPcpOYTariff value, professional part
PSL-36Internal Scaling Factor PPnmOYInternal scaling, professional part
PSL-37External Scaling Factor PPnmOYExternal scaling, professional part
PSL-38Amount PPcpOYComputed amount, professional part
PSL-39Number of TP's Technical PartnmOYCount of tariff positions, technical part
PSL-40TP-Value Technical PartcpOYTariff value, technical part
PSL-41Internal Scaling Factor Technical PartnmOYInternal scaling, technical part
PSL-42External Scaling Factor Technical PartnmOYExternal scaling, technical part
PSL-43Amount Technical PartcpOYComputed amount, technical part
PSL-44Total Amount Professional Part + Technical PartcpOYSum of professional + technical amounts
PSL-45VAT-RatenmOYVAT/tax rate applied to the line
PSL-46Main-ServiceidOY[HL70136]Flag: line is the main service
PSL-47ValidationidOY[HL70136]Flag: line has been validated
PSL-48CommentstOYFree-text comment for the line

Most-used fields

  • PSL-1 Provider Product/Service Line Item Number is the primary key emitted by every sender and the field receivers key on for reconciliation.
  • PSL-3 Product/Service Line Item Sequence Number guarantees deterministic ordering inside the parent PSG, which matters when groups are summed line-by-line.
  • PSL-7 Product/Service Code is the actual billing code (CPT, HCPCS, or local) and is non-negotiably required by virtually every receiver.
  • PSL-12 Product/Service Quantity and PSL-13 Product/Service Unit Cost together drive the primary math: quantity × unit cost should normalise to PSL-15 gross before any adjustment.
  • PSL-16 Product/Service Billed Amount is the figure that rolls up to PSG-5 and ultimately to PSS-4.
  • PSL-29 Executing Physician ID and PSL-30 Responsible Physician ID are essential for payers that require attribution by NPI.

Version differences

  • Introduced in HL7 v2.6 with 48 fields.
  • v2.7 refined several supporting tables (line item status moved to a CWE binding for [HL70776]).
  • v2.7.1, v2.8, and v2.8.1 carry the field list forward unchanged in structure; data type updates (e.g., TS → DTM) had already landed by v2.7.
  • v2.8.2 publishes the same 48 fields with editorial clarifications only.

Common mistakes

  • Sending PSL without a parent PSG — many engines silently discard the line because they cannot anchor it.
  • Putting a CPT code in PSL-9 (description) instead of PSL-7 (code) — receivers then fail eligibility checks.
  • Letting PSL-15 (gross) and PSL-16 (billed) drift: adjustments need to live in a separate adjustment segment, not be hidden inside PSL-15.
  • Emitting PSL-12 (quantity) with implicit "1" — be explicit; some receivers default to zero and reject the line.
  • Confusing PSL-29 (executing) with PSL-30 (responsible); they are intentionally separate to support supervising-physician workflows.
  • Mixing currencies inside one PSL (e.g., PSL-13 in USD, PSL-15 in EUR) — the CP type carries currency per occurrence and must agree.

Examples

Minimal:

PSL|LINE-9001^^VORRO^EI||1|||A^Active^HL70776|99213^Office visit^CPT

Fully populated (abridged repeating fields shown once):

PSL|LINE-9001^^VORRO^EI|PAYLN-55001^^AETNA^EI|1|TRK-PRV-12^^VORRO^EI|TRK-PAY-99^^AETNA^EI|A^Active^HL70776|99213^Office visit, established pt^CPT|25^Significant E/M^HL70776|Established patient office visit|20260610|20260610|1^visit^UCUM|125.00^USD|1|125.00^USD|125.00^USD||||||N||80.00^USD|1.0|CC-1010^^^HOSP-A|20260610-20260610|0|1|1234567890^SMITH^A^^^^^^NPI|9876543210^JONES^B^^^^^^NPI|EXEC^Executing^HL70443|MED^Medical^HL70444|N^None^HL70894|1|80.00^USD|1.0|1.0|80.00^USD|1|45.00^USD|1.0|1.0|45.00^USD|125.00^USD|0|Y|Y|Reviewed by coding team

Annotated breakdown:

PSL | LINE-9001^^VORRO^EI         # PSL-1  Provider line id
    | PAYLN-55001^^AETNA^EI       # PSL-2  Payer line id
    | 1                            # PSL-3  Sequence in group
    | TRK-PRV-12^^VORRO^EI         # PSL-4  Provider tracking id
    | TRK-PAY-99^^AETNA^EI         # PSL-5  Payer tracking id
    | A^Active^HL70776             # PSL-6  Line status
    | 99213^Office visit^CPT       # PSL-7  Product/service code
    | 25^Significant E/M^HL70776   # PSL-8  Modifier
    | Established patient ...      # PSL-9  Description
    | 20260610                     # PSL-10 Effective date
    | 20260610                     # PSL-11 Expiration date
    | 1^visit^UCUM                 # PSL-12 Quantity
    | 125.00^USD                   # PSL-13 Unit cost
    | 1                            # PSL-14 Items per unit
    | 125.00^USD                   # PSL-15 Gross amount
    | 125.00^USD                   # PSL-16 Billed amount
    ...                            # PSL-17..48 follow

In-context excerpt, DFT P03:

MSH|^~&|VORRO|HOSP-A|AETNA|PAYER|20260610101500||DFT^P03^DFT_P03|MSG00050|P|2.8.1
EVN|P03|20260610101500
PID|1||MRN-77110^^^VORRO^MR||CHEN^MEI^L||19850901|F
PV1|1|O|CLINIC-02^^^HOSP-A
PSS|SEC-501^^VORRO^EI||1|275.00^USD|Outpatient visit
PSG|GRP-9001^^VORRO^EI||1|Y|275.00^USD|E/M and ancillary
PSL|LINE-9001^^VORRO^EI||1|||A^Active^HL70776|99213^Office visit^CPT|||20260610||1^visit^UCUM|125.00^USD|1|125.00^USD|125.00^USD
PSL|LINE-9002^^VORRO^EI||2|||A^Active^HL70776|36415^Venipuncture^CPT|||20260610||1^procedure^UCUM|15.00^USD|1|15.00^USD|15.00^USD
PSL|LINE-9003^^VORRO^EI||3|||A^Active^HL70776|85025^CBC w/ diff^CPT|||20260610||1^test^UCUM|135.00^USD|1|135.00^USD|135.00^USD

In-context excerpt, DFT P11 with modifiers and physician attribution:

MSH|^~&|VORRO|SURG-CTR-C|UHG|PAYER|20260610141200||DFT^P11^DFT_P11|MSG00051|P|2.8.1
EVN|P11|20260610141200
PID|1||MRN-88420^^^VORRO^MR||PATEL^RAVI^K||19700418|M
PSS|SEC-610^^VORRO^EI||1|2450.00^USD|Surgical day
PSG|GRP-9210^^VORRO^EI||1|Y|2450.00^USD|Knee arthroscopy bundle
PSL|LINE-9201^^VORRO^EI||1|||A^Active^HL70776|29881^Arthroscopy knee^CPT|RT^Right side^HL70894|||20260610||1^procedure^UCUM|2200.00^USD|1|2200.00^USD|2200.00^USD||||||N|||||||1234567890^OSORIO^M^^^^^^NPI|2345678901^WONG^L^^^^^^NPI
PSL|LINE-9202^^VORRO^EI||2|||A^Active^HL70776|01400^Anesthesia knee^CPT|||20260610||1^session^UCUM|250.00^USD|1|250.00^USD|250.00^USD

FHIR mapping

PSL has no segment-level ConceptMap in the official v2-to-FHIR Implementation Guide. Conceptually, a PSL corresponds to a single Claim.item (or Invoice.lineItem) with most fields mapping straightforwardly:

  • PSL-1 → Claim.item.sequence + identifier extension
  • PSL-7 → Claim.item.productOrService
  • PSL-8 → Claim.item.modifier
  • PSL-10/PSL-11 → Claim.item.servicedPeriod
  • PSL-12 → Claim.item.quantity
  • PSL-13 → Claim.item.unitPrice
  • PSL-16 → Claim.item.net
  • PSL-29 / PSL-30 → Claim.careTeam references with role coding from PSL-31/PSL-32

Fields modelling tariff scaling and professional/technical splits (PSL-34..PSL-44) usually require local extensions because FHIR Claim does not model them natively.

Engine considerations

  • HAPI v2.8.1 exposes the segment via ca.uhn.hl7v2.model.v281.segment.PSL with typed accessors getProductServiceCode(), getProductServiceBilledAmount(), and array accessors for every repeating field.
  • Mirth Connect surfaces PSL inside the PSS_PSG_PSL nested group; repeating CWE and CP fields are accessed by index in the XML representation.
  • Rhapsody requires explicit iteration for PSL-2, PSL-8, PSL-12, and the tariff fields — default mappers stop at the first repetition.
  • When transforming to X12 837, mind that PSL-15 (gross) and PSL-16 (billed) collapse to a single SV1/SV2 monetary amount; preserve the gross in a sidecar field if your downstream needs it.

How Vorro parses and produces PSL

Vorro represents PSL as a ProductServiceLineItem node beneath its parent PSG, with all repeating fields exposed as ordered collections rather than HL7-style tilde-separated strings. The parser validates that PSL-12 × PSL-13 reconciles to PSL-15 within rounding tolerance and tags lines that fail the check for review. On the producer side, Vorro emits PSL-29 / PSL-30 with normalised NPI components when an upstream system supplied unstructured names, and round-trips the tariff scaling fields (PSL-34..PSL-44) verbatim because their use is country-specific.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 PSL Segment: Product/Service Line Item | Vorro Academy | Vorro