Reference·MSA Segment·MSA-3
HL7 v2 Reference

HL7 v2 MSA-3 Field Guide: Text Message Values and Common Mistakes

Jul 28, 2026 · 4 min read
← MSA-2

MSA-3 is the only place in a bare ACK where a human-readable explanation can show up, and it is routinely left blank in test data even on the error and reject cases where it matters most.

Quick answer

MSA-3 is the Text Message field, an optional free-text value that gives additional context about the acknowledgment, most commonly used to explain why a message received an AE or AR code. On a plain AA acknowledgment it is frequently left empty since there's nothing to explain.

What this field contains

Format
Free text — unstructured, sender- or receiver-defined wording with no required vocabulary
Typical use
Error and reject detail — most valuable when MSA-1 is AE or AR, giving a human a starting point for troubleshooting
Optionality
Frequently blank — many systems leave it empty on AA acknowledgments, so parsers and log viewers need to handle its absence gracefully

Example

Synthetic example Generated by Synthibase
MSA|AE|SYNTHIB00045821|Patient identifier not found in master index

MSA-3 (Patient identifier not found in master index) is a synthetic error description paired with the AE acknowledgment code.

Where this trips people up

Because MSA-3 is optional, test data generators often skip it entirely, which means log viewers, alerting dashboards, and error-triage tooling only ever get tested against a blank field. When production starts sending genuinely long or oddly formatted error text — including punctuation that collides with the pipe or component delimiters if it isn't escaped — those downstream tools can choke on their first real encounter with a populated MSA-3.

HL7 v2 MSA Segment Guide: Fields, Format, and Testing Gotchas
EDI 999 vs 997: What's the Difference and Why It Matters
How to Write EDI Test Cases That Actually Catch Go-Live Failures
Test error-text handling before it's a live incident
Synthibase generates ACK messages with realistic, properly escaped error and reject text in MSA-3, so your logging and triage tooling gets exercised against real-world content, not empty fields.
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.