EDI X12 277 Health Care Claim Status Notification Parser
Parse payer 277 claim status responses, STC segment claim adjudication status codes, and pending payment dates in JSON. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches ANSI ASC X12 Standards (005010) without reading the source standard.
⚡ Live EDI X12 277 Health Care Claim Status Notification Parser Interactive Workbench
Test real-time validation and schema parsing for EDI X12 277 Health Care Claim Status Notification Parser directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Parse payer 277 claim status responses, STC segment claim adjudication status codes, and pending payment dates in JSON. Validates strictly against ANSI ASC X12 Standards (005010) with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against ANSI ASC X12 Standards (005010). Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
The ANSI X12 277 transaction is returned by health plans to report current claim adjudication status (Accepted, Rejected, Pending, Paid, Suspended).
Extracts STC (Status Information) segments with Claim Status Category Codes (e.g. A1=Acknowledged, P1=Pending, F1=Finalized Payment).
| Segment | Description | Key Elements Extracted | Usage |
|---|---|---|---|
| STC | Status Information | STC01-1 (Category: A1/P1/F1), STC01-2 (Status Code), STC02 (Status Date), STC03 (Action Code), STC04 (Total Paid) | Core adjudication state |
| REF | Payer Claim Control Number | REF01 (1K=Payer Claim Number), REF02 (ID) | Payer reference key |
| DTP | Adjudication / Check Date | DTP01 (050=Received, 573=Adjudication), DTP03 (Date) | Timeline audit |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"transactionSet": "277",
"inquiryResponseId": "TRK-99128",
"claimStatus": {
"category": "A1 (Acknowledged / Processed)",
"statusCode": "20 (Accepted for processing)",
"statusDate": "20260830",
"payerClaimControlNumber": "PAYER-CLM-889912"
}
}
Sample file
Copy or download this validated ANSI X12 5010 sample. It is parsed by the production engine in the test suite, so it works as a fixture as-is.
ISA*00* *00* *ZZ*PAYER1 *ZZ*PROVIDER01 *260830*1200*^*00501*000000001*0*P*:~GS*HN*PAYER1*PROVIDER01*20260830*1200*1*X*005010X212~ST*277*0001*005010X212~BHT*0010*11*RESP002*20260830*1200~HL*1**20*1~NM1*PR*2*PAYER CO*****PI*PAYER123~HL*2*1*21*1~NM1*1P*1*SMITH*JANE****XX*1234567893~HL*3*2*19*1~NM1*IL*1*DOE*JOHN****MI*987654321~TRN*2*12345*1999999992~STC*A1:19*20260830*WQ*500~SE*11*0001~GE*1*1~IEA*1*000000001~
Copy-Paste Integration Code (6 Languages)
Integrate EDI X12 277 Health Care Claim Status Notification Parser directly into your production application with native, zero-dependency code snippets in cURL, Node.js, Python, Go, C#, and a ready-to-paste Claude prompt. Get a free API key → (no credit card required):
curl --request POST \
--url "https://api.stanzaapi.com/x12-parser/api/v1/x12/parse" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
}'const response = await fetch("https://api.stanzaapi.com/x12-parser/api/v1/x12/parse", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
})
});
const data = await response.json();
console.log(data);import requests
import json
url = "https://api.stanzaapi.com/x12-parser/api/v1/x12/parse"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://api.stanzaapi.com/x12-parser/api/v1/x12/parse"
payload := []byte(`{"raw":"ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("API_KEY") ?? "YOUR_API_KEY");
var json = @"{""raw"":""ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/x12-parser/api/v1/x12/parse", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI x12-parser micro-API.
Endpoint: POST https://api.stanzaapi.com/x12-parser/api/v1/x12/parse
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"raw": "ISA*00* *00* *ZZ*SUBMITTER1 *ZZ*RECEIVER01 *260830*1200*^*00501*000000001*0*P*:~GS*HC*SENDER*RECEIVER*20260830*1200*1*X*005010X222A1~ST*837*0001*005010X222A1~BHT*0019*00*CLAIM001*20260830*1200*CH~NM1*41*2*DR DOE CLINIC*****46*1234567890~PER*IC*SUPPORT*TE*8005551212~HL*1**20*1~NM1*85*2*DR DOE CLINIC*****XX*1992837465~HL*2*1*22*0~NM1*IL*1*SMITH*JANE****MI*W123456780~CLM*CLM001*150.00***11::1*Y*A*Y*Y~LX*1~SV1*HC:99213*150.00*UN*1***1~SE*11*0001~GE*1*1~IEA*1*000000001~"
}
Rules:
- Send the request with a 2-second timeout.
- Parse the standard envelope { success, data, meta: { latency_ms, version } }.
- On failure, read { success: false, error, code } and branch on the code.
- Do not retry 4xx responses; surface the error code to the caller.
- Treat invalid-but-well-formed payloads as HTTP 200 with data.valid === false.Frequently Asked Questions & Technical Notes
All standard X12 code categories: A (Acknowledged), P (Pending), F (Finalized), R (Requests for additional information), and E (Errors).
Related Healthcare EDI ANSI X12 Parser API Formats
Explore sibling specifications and standards in the same developer cluster:
CARC 45 Denial Code (Charge Exceeds Fee Schedule / Maximum Allowable Amount) | ANSI 835 EDI Spec
Comprehensive healthcare EDI technical reference and denial resolution guide for Claim Adjustment Reason Code 45 (Charge Exceeds Fee Schedule / Maximum Allowable Amount) under ANSI ASC X12 835 005010X221A1.
View Format →EDI X12 276 Health Care Claim Status Request Parser
Extract claim status query parameters, provider identifiers, and patient encounter lookups from ANSI X12 276 streams.
View Format →CARC 16 Denial Code (Claim/Service Lacks Information or Has Submission Error) | ANSI 835 EDI Spec
Comprehensive healthcare EDI technical reference and denial resolution guide for Claim Adjustment Reason Code 16 (Claim/Service Lacks Information or Has Submission Error) under ANSI ASC X12 835 005010X221A1.
View Format →EDI X12 810 Electronic Commercial Invoice Parser
High-performance 810 commercial invoice parser extracting line item charges, discounts, taxes, and payment terms into JSON.
View Format →CARC 96 Denial Code (Non-Covered Charge(s)) | ANSI 835 EDI Spec
Comprehensive healthcare EDI technical reference and denial resolution guide for Claim Adjustment Reason Code 96 (Non-Covered Charge(s)) under ANSI ASC X12 835 005010X221A1.
View Format →EDI X12 850 Purchase Order Parser & JSON Converter
B2B supply chain EDI parser converting retail and enterprise ANSI X12 850 purchase orders into structured JSON.
View Format →CARC 1 Denial Code (Deductible Amount) | ANSI 835 EDI Spec
Comprehensive healthcare EDI technical reference and denial resolution guide for Claim Adjustment Reason Code 1 (Deductible Amount) under ANSI ASC X12 835 005010X221A1.
View Format →EDI X12 834 Benefit Enrollment and Maintenance Parser
Process employer benefit enrollments, terminations, and demographic modifications with high-speed 834 EDI to JSON parsing.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
FDA DSCSA Drug Serialization →
Verify pharmaceutical 2D DataMatrix barcodes, NDC verification, and EPCIS compliance.
FDA AccessGUDID & IMDRF UDI Decoder →
Decode medical device identifiers (DI + PI) conforming to 21 CFR 801.20 and EU MDR.
ISO 20022 Financial Messaging →
Transform enterprise remittance workflows between X12 835 ERA and ISO 20022 camt.053.