X12 270 Eligibility, Coverage or Benefit Inquiry Last updated: 2026-09-29
The 270 (005010X279A1) is the HIPAA transaction a provider sends to check a patient's insurance eligibility and benefits before a visit or service. The payer answers with a 271.
The inquiry identifies the payer, the provider, the subscriber and, when needed, the dependent, and asks about one or more service types in EQ segments - 30 is the general health benefit plan coverage.
At a glance
- Standard
- X12 HIPAA
- Implementation guide
005010X279A1- Functional group
HS(GS01)- Sent by
- Provider to payer
- Responses
- 271, 999 (batch)
- ediFabric .NET template
TS270inEdiFabric.Templates.Hipaa- OpenEDI definition
- View 270 in the spec library
270 structure
The full X12 270 layout from its OpenEDI definition, the same model ediFabric uses to parse, validate and generate it: 10 loops and 43 segment positions, in file order. Loops are shaded and their segments indented; Max use is how many times a segment or loop may repeat.
| Segment / loop | Name | Usage | Max use |
|---|---|---|---|
ST | Transaction Set Header | Required | 1 |
BHT | Beginning of Hierarchical Transaction | Required | 1 |
| Loop 2000A | Information Source Level | Required | >1 |
HL | Information Source Level | Required | 1 |
| Loop 2100A | Information Source Name | Required | 1 |
NM1 | Information Source Name | Required | 1 |
| Loop 2000B | Information Receiver Level | Required | >1 |
HL | Information Receiver Level | Required | 1 |
| Loop 2100B | Information Receiver Name | Required | 1 |
NM1 | Information Receiver Name | Required | 1 |
REF | Information Receiver Additional Identification | Situational | 9 |
N3 | Information Receiver Address | Situational | 1 |
N4 | Information Receiver City State ZIP Code | Situational | 1 |
PRV | Information Receiver Provider Information | Situational | 1 |
| Loop 2000C | Subscriber Level | Required | >1 |
HL | Subscriber Level | Required | 1 |
TRN | Subscriber Trace Number | Situational | 2 |
| Loop 2100C | Subscriber Name | Required | 1 |
NM1 | Subscriber Name | Required | 1 |
REF | Subscriber Additional Identification | Situational | 9 |
N3 | Subscriber Address | Situational | 1 |
N4 | Subscriber City State ZIP Code | Situational | 1 |
PRV | Provider Information | Situational | 1 |
DMG | Subscriber Demographic Information | Situational | 1 |
INS | Multiple Birth Sequence Number | Situational | 1 |
HI | Subscriber Health Care Diagnosis Code | Situational | 1 |
DTP | Subscriber Date | Situational | 2 |
| Loop 2110C | Subscriber Eligibilityor Benefit Inquiry | Situational | 99 |
EQ | Subscriber Eligibilityor Benefit Inquiry | Required | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
AMT | Subscriber Spend Down Amount | Situational | 1 |
AMT | Subscriber Spend Down Total Billed Amount | Situational | 1 |
III | Subscriber Eligibilityor Benefit Additional Inquiry Information | Situational | 1 |
REF | Subscriber Additional Information | Situational | 1 |
DTP | Subscriber Eligibility Benefit Date | Situational | 1 |
| Loop 2000D | Dependent Level | Situational | >1 |
HL | Dependent Level | Required | 1 |
TRN | Dependent Trace Number | Situational | 2 |
| Loop 2100D | Dependent Name | Required | 1 |
NM1 | Dependent Name | Required | 1 |
REF | Dependent Additional Identification | Situational | 9 |
N3 | Dependent Address | Situational | 1 |
N4 | Dependent City State ZIP Code | Situational | 1 |
PRV | Provider Information | Situational | 1 |
DMG | Dependent Demographic Information | Situational | 1 |
INS | Dependent Relationship | Situational | 1 |
HI | Dependent Health Care Diagnosis Code | Situational | 1 |
DTP | Dependent Date | Situational | 2 |
| Loop 2110D | Dependent Eligibilityor Benefit Inquiry | Required | 99 |
EQ | Dependent Eligibilityor Benefit Inquiry | Required | 1 |
III | Dependent Eligibilityor Benefit Additional Inquiry Information | Situational | 1 |
REF | Dependent Additional Information | Situational | 1 |
DTP | Dependent Eligibility Benefit Date | Situational | 1 |
SE | Transaction Set Trailer | Required | 1 |
Sample 270 file
An eligibility inquiry for one subscriber. Paste it into EdiNation to see every element named and validated.
ISA*00* *00* *ZZ*1234567 *ZZ*11111 *170508*1141*^*00501*000000101*1*P*:~ GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X279A1~ ST*270*1234*005010X279A1~ BHT*0022*13*10001234*20060501*1319~ HL*1**20*1~ NM1*PR*2*ABC COMPANY*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT****MI*11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*101~ IEA*1*000000101~
The same 270 as JSON
ediFabric turns every loop, segment and element into a named field. This is the transaction from the sample, in the JSON that ediFabric Native and Cloud return and accept.
{
"ST": {
"TransactionSetIdentifierCode_01": "270",
"TransactionSetControlNumber_02": "1234",
"ImplementationConventionPreference_03": "005010X279A1"
},
"BHT_BeginningOfHierarchicalTransaction": {
"HierarchicalStructureCode_01": "0022",
"TransactionSetPurposeCode_02": "13",
"SubmitterTransactionIdentifier_03": "10001234",
"TransactionSetCreationDate_04": "20060501",
"TransactionSetCreationTime_05": "1319"
},
"Loop2000A": [
{
"HL_InformationSourceLevel": {
"HierarchicalIDNumber_01": "1",
"HierarchicalLevelCode_03": "20",
"HierarchicalChildCode_04": "1"
},
"Loop2100A": {
"NM1_InformationSourceName": {
"EntityIdentifierCode_01": "PR",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "ABC COMPANY",
"IdentificationCodeQualifier_08": "PI",
"ResponseContactIdentifier_09": "842610001"
}
},
"Loop2000B": [
{
"HL_InformationReceiverLevel": {
"HierarchicalIDNumber_01": "2",
"HierarchicalParentIDNumber_02": "1",
"HierarchicalLevelCode_03": "21",
"HierarchicalChildCode_04": "1"
},
"Loop2100B": {
"NM1_InformationReceiverName": {
"EntityIdentifierCode_01": "1P",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "BONE AND JOINT CLINIC",
"IdentificationCodeQualifier_08": "SV",
"ResponseContactIdentifier_09": "2000035"
}
},
"Loop2000C": [
{
"HL_SubscriberLevel": {
"HierarchicalIDNumber_01": "3",
"HierarchicalParentIDNumber_02": "2",
"HierarchicalLevelCode_03": "22",
"HierarchicalChildCode_04": "0"
},
"TRN_SubscriberTraceNumber": [
{
"TraceTypeCode_01": "1",
"CurrentTransactionTraceNumber_02": "93175-012547",
"OriginatingCompanyIdentifier_03": "9877281234"
}
],
"Loop2100C": {
"NM1_SubscriberName": {
"EntityIdentifierCode_01": "IL",
"EntityTypeQualifier_02": "1",
"ResponseContactLastorOrganizationName_03": "SMITH",
"ResponseContactFirstName_04": "ROBERT",
"IdentificationCodeQualifier_08": "MI",
"ResponseContactIdentifier_09": "11122333301"
},
"DMG_SubscriberDemographicInformation": {
"DateTimePeriodFormatQualifier_01": "D8",
"DependentBirthDate_02": "19430519"
},
"DTP_SubscriberDate": [
{
"DateTimeQualifier_01": "291",
"DateTimePeriodFormatQualifier_02": "D8",
"DateTimePeriod_03": "20060501"
}
],
"Loop2110C": [
{
"EQ_SubscriberEligibilityorBenefitInquiry": {
"ServiceTypeCode_01": [
"30"
]
}
}
]
}
}
]
}
]
}
],
"SE": {
"NumberofIncludedSegments_01": "13",
"TransactionSetControlNumber_02": "1234"
}
}Parse and validate a 270 file
Read the file into typed objects with ediFabric .NET, convert it to JSON in process with the ediFabric Native bindings for Python, Java and C, or post it to the ediFabric Cloud REST API from any language.
using EdiFabric.Templates.Hipaa5010; License.SetSerial("YOUR_SERIAL_KEY"); using (var stream = File.OpenRead(@"C:\edi\GenericRequest.txt")) using (var reader = new X12Reader(stream, "EdiFabric.Templates.Hipaa")) { var items = await reader.ReadToEndAsync(); foreach (var transaction in items.OfType<TS270>()) { if (transaction.IsValid(out MessageErrorContext errors)) Console.WriteLine($"{transaction.ST.TransactionSetControlNumber_02} is valid"); else Console.WriteLine(string.Join(Environment.NewLine, errors.Flatten())); } }
import json import edifabric_x12 as ef serial = "YOUR_SERIAL_KEY" ef.load_library() ef.set_serial(serial) ef.set_map(json.dumps({"default": serial, "maps": {}})) edi = open("GenericRequest.txt", "rb").read() output, offset = ef.parse(edi, ef.ParseMode.JSON_VALIDATE) transactions = output[:offset] report = json.loads(output[offset:]) print(report["errors_count"])
import com.edifabric.nativex12.EdiFabricX12; import com.edifabric.nativex12.ParseMode; import com.edifabric.nativex12.ParseResult; String serial = "YOUR_SERIAL_KEY"; EdiFabricX12.loadLibrary(); EdiFabricX12.setSerial(serial); EdiFabricX12.setMap("{\"default\":\"" + serial + "\",\"maps\":{}}"); String edi = Files.readString(Path.of("GenericRequest.txt")); ParseResult result = EdiFabricX12.parse(edi, ParseMode.JSON_VALIDATE); System.out.println(result.getTransactions()); System.out.println(result.getReport());
#include "edifabric_x12.h" const char *serial = "YOUR_SERIAL_KEY"; ef_parse_result result; if (ef_load_library(NULL) != 0) return 1; ef_set_serial(serial); ef_set_map("{\"default\":\"YOUR_SERIAL_KEY\",\"maps\":{}}"); char *edi = read_file("GenericRequest.txt", NULL); /* helper in example_all_functions.c */ if (ef_parse(edi, EF_PARSE_JSON_VALIDATE, NULL, &result) == 0) { /* transactions = output[0 .. offset), report = output[offset .. length) */ fwrite(result.output.data, 1, (size_t)result.output.length, stdout); ef_free(result.output.data); }
curl -X POST 'https://api.edination.com/v2/x12/read' \ -H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \ -H 'Content-Type: application/octet-stream' \ --data-binary '@GenericRequest.txt'
Generate a 270 file
Populate a TS270 object in .NET, or pass JSON in the shape shown above to ediFabric Native or ediFabric Cloud, and get a valid 270 file back.
using EdiFabric.Templates.Hipaa5010; License.SetSerial("YOUR_SERIAL_KEY"); var transaction = new TS270(); // Transaction Set ID Code = 270 (Eligibility, Coverage or Benefit Inquiry) // Transaction Set Control Number = 1234 // Implementation Convention Reference = 005010X279A1 transaction.ST = new ST(); transaction.ST.TransactionSetIdentifierCode_01 = "270"; transaction.ST.TransactionSetControlNumber_02 = "0001"; transaction.ST.ImplementationConventionPreference_03 = "005010X279A1"; // Hierarchical Structure Code = 0022 (Information Source, Information Receiver, Subscriber, Dependent) // Transaction Set Purpose Code = 13(Request) Identification // Reference Identification = 10001234 // Date = 20060501(May 1, 2006) // Time = 1:19 PM transaction.BHT_BeginningOfHierarchicalTransaction = new BHT_BeginningOfHierarchicalTransaction(); transaction.BHT_BeginningOfHierarchicalTransaction.HierarchicalStructureCode_01 = "0022"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetPurposeCode_02 = "13"; transaction.BHT_BeginningOfHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "10001234"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationDate_04 = "20060501"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationTime_05 = "1319"; // ... set the remaining loops and segments the same way // SegmentBuilders is in the Common project of the example repository using (var stream = new MemoryStream()) { using (var writer = new X12Writer(stream)) { writer.Write(SegmentBuilders.BuildIsa("1")); writer.Write(SegmentBuilders.BuildGs("1", "SENDER1", "RECEIVER1", "005010X279A1")); writer.Write(transaction); } Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); }
import json import edifabric_x12 as ef serial = "YOUR_SERIAL_KEY" ef.load_library() ef.set_serial(serial) ef.set_map(json.dumps({"default": serial, "maps": {}})) # the transactions JSON returned by ef.parse, edited or produced by your application transactions = open("GenericRequest.json", "rb").read() edi = ef.build(transactions, postfix="\r\n") print(edi)
import com.edifabric.nativex12.EdiFabricX12; String serial = "YOUR_SERIAL_KEY"; EdiFabricX12.loadLibrary(); EdiFabricX12.setSerial(serial); EdiFabricX12.setMap("{\"default\":\"" + serial + "\",\"maps\":{}}"); // the transactions JSON returned by parse, edited or produced by your application String transactions = Files.readString(Path.of("GenericRequest.json")); String edi = EdiFabricX12.build(transactions, "\r\n"); System.out.println(edi);
#include "edifabric_x12.h" ef_buffer edi; if (ef_load_library(NULL) != 0) return 1; ef_set_serial("YOUR_SERIAL_KEY"); ef_set_map("{\"default\":\"YOUR_SERIAL_KEY\",\"maps\":{}}"); /* the transactions JSON returned by ef_parse, edited or produced by your application */ char *transactions = read_file("GenericRequest.json", NULL); if (ef_build(transactions, "\r\n", &edi) == 0) { fwrite(edi.data, 1, (size_t)edi.length, stdout); ef_free(edi.data); }
# the JSON returned by /read, edited or produced by your application curl -X POST 'https://api.edination.com/v2/x12/write' \ -H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \ -H 'Content-Type: application/json' \ --data-binary '@GenericRequest.json' \ -o 'GenericRequest.txt'
Complete ediFabric .NET example
A complete C# program for the X12 270, built on TS270 in EdiFabric.Templates.Hipaa. The same code is in the ediFabric .NET examples on GitHub.
using EdiFabric.Framework.Readers;
using EdiFabric.Framework.Writers;
using EdiFabric.Templates.Hipaa5010;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using EdiFabric.Core.Model.Edi;
using EdiFabric.Core.Model.Edi.X12;
using EdiFabric.Examples.X12.Common;
namespace EdiFabric.Examples.X12.T270
{
class Program
{
static void Main(string[] args)
{
SerialKey.Set(Common.SerialKey.Get());
Read();
Write();
}
///
/// Read Generic Request
///
static void Read()
{
var ediStream = File.OpenRead(Directory.GetCurrentDirectory() + @"\..\..\..\Files\Hipaa\GenericRequest.txt");
List ediItems;
using (var ediReader = new X12Reader(ediStream, "EdiFabric.Templates.Hipaa"))
ediItems = ediReader.ReadToEnd().ToList();
var transactions = ediItems.OfType();
foreach (var transaction in transactions)
{
if (transaction.HasErrors)
{
// partially parsed
var errors = transaction.ErrorContext.Flatten();
}
}
}
///
/// Write Generic Request
///
static void Write()
{
var transaction = BuildGenericRequest("1234");
using (var stream = new MemoryStream())
{
using (var writer = new X12Writer(stream))
{
writer.Write(SegmentBuilders.BuildIsa("1"));
writer.Write(SegmentBuilders.BuildGs("1", "SENDER1", "RECEIVER1", "005010X279A1"));
writer.Write(transaction);
}
var ediString = stream.LoadToString();
}
}
///
/// Builds generic request.
/// Original from http://www.x12.org/examples/005010X279/subscriber-who-is-also-the-patient/generic-request-by-clinic-for-patient-(subscriber)-eligibility/
///
static TS270 BuildGenericRequest(string controlNumber)
{
var result = new TS270();
// Transaction Set ID Code = 270 (Eligibility, Coverage or Benefit Inquiry)
// Transaction Set Control Number = 1234
// Implementation Convention Reference = 005010X279A1
result.ST = new ST();
result.ST.TransactionSetIdentifierCode_01 = "270";
result.ST.TransactionSetControlNumber_02 = controlNumber.PadLeft(9, '0');
result.ST.ImplementationConventionPreference_03 = "005010X279A1";
// Hierarchical Structure Code = 0022 (Information Source, Information Receiver, Subscriber, Dependent)
// Transaction Set Purpose Code = 13(Request) Identification
// Reference Identification = 10001234
// Date = 20060501(May 1, 2006)
// Time = 1:19 PM
result.BHT_BeginningOfHierarchicalTransaction = new BHT_BeginningOfHierarchicalTransaction();
result.BHT_BeginningOfHierarchicalTransaction.HierarchicalStructureCode_01 = "0022";
result.BHT_BeginningOfHierarchicalTransaction.TransactionSetPurposeCode_02 = "13";
result.BHT_BeginningOfHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "10001234";
result.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationDate_04 = "20060501";
result.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationTime_05 = "1319";
// Repeating 2000A Loops
result.Loop2000A = new List();
// Begin 2000A Loop
var loop2000A = new Loop_2000A_270();
// Hierarchical ID Number = 1
// Hierarchical Parent ID Number = *not used
// Hierarchical Level Code = 20(Information Source)
// Hierarchical Child Code = 1
loop2000A.HL_InformationSourceLevel = new HL_BillingProviderHierarchicalLevel();
loop2000A.HL_InformationSourceLevel.HierarchicalIDNumber_01 = "1";
loop2000A.HL_InformationSourceLevel.HierarchicalLevelCode_03 = "20";
loop2000A.HL_InformationSourceLevel.HierarchicalChildCode_04 = "1";
// Begin 2100A Loop
loop2000A.Loop2100A = new Loop_2100A_270();
// Entity Identifier Code = PR (Payer)
// Entity Type Qualifier = 2(Non - person)
// Last Name = ABC Company
// First Name = *not used
// Middle Name = *not used
// Name Prefix = *not used
// Name Suffix = *not used
// Identification Code Qualifier = PI(Payer Identification)
// Identification Code = 842610001
loop2000A.Loop2100A.NM1_InformationSourceName = new NM1_InformationSourceName();
loop2000A.Loop2100A.NM1_InformationSourceName.EntityIdentifierCode_01 = "PR";
loop2000A.Loop2100A.NM1_InformationSourceName.EntityTypeQualifier_02 = "2";
loop2000A.Loop2100A.NM1_InformationSourceName.ResponseContactLastorOrganizationName_03 = "ABC COMPANY";
loop2000A.Loop2100A.NM1_InformationSourceName.IdentificationCodeQualifier_08 = "PI";
loop2000A.Loop2100A.NM1_InformationSourceName.ResponseContactIdentifier_09 = "842610001";
// End 2100A Loop
// Repeating 2000B Loops
loop2000A.Loop2000B = new List();
// Begin 2000B Loop
var loop2000B = new Loop_2000B_270();
// Hierarchical ID Number = 2
// Hierarchical Parent ID Number = 1
// Hierarchical Level Code = 21
// Hierarchical Child Code = 1
loop2000B.HL_InformationReceiverLevel = new HL_InformationReceiverLevel();
loop2000B.HL_InformationReceiverLevel.HierarchicalIDNumber_01 = "2";
loop2000B.HL_InformationReceiverLevel.HierarchicalParentIDNumber_02 = "1";
loop2000B.HL_InformationReceiverLevel.HierarchicalLevelCode_03 = "21";
loop2000B.HL_InformationReceiverLevel.HierarchicalChildCode_04 = "1";
// Begin 2100B Loop
loop2000B.Loop2100B = new Loop_2100B_270();
// Entity Identifier Code = 1P (Provider)
// Entity Type Qualifier = 2(Non - person)
// Last Name = Bone and Joint Clinic
// First Name = *not used
// Middle Name = *not used
// Name Prefix = *not used
// Name Suffix = *not used
// Identification Code Qualifier = SV Service Provider Number
// Identification Code = 2000035
loop2000B.Loop2100B.NM1_InformationReceiverName = new NM1_InformationReceiverName();
loop2000B.Loop2100B.NM1_InformationReceiverName.EntityIdentifierCode_01 = "1P";
loop2000B.Loop2100B.NM1_InformationReceiverName.EntityTypeQualifier_02 = "2";
loop2000B.Loop2100B.NM1_InformationReceiverName.ResponseContactLastorOrganizationName_03 = "BONE AND JOINT CLINIC";
loop2000B.Loop2100B.NM1_InformationReceiverName.IdentificationCodeQualifier_08 = "SV";
loop2000B.Loop2100B.NM1_InformationReceiverName.ResponseContactIdentifier_09 = "2000035";
// End 2100B Loop
// Repeating 2000C Loops
loop2000B.Loop2000C = new List();
// Begin 2000C Loop 1
var loop2000C1 = new Loop_2000C_270();
// Hierarchical ID Number = 3
// Hierarchical Parent ID Number = 2
// Hierarchical Level Code = 22
// Hierarchical Child Code = 0
loop2000C1.HL_SubscriberLevel = new HL_SubscriberHierarchicalLevel();
loop2000C1.HL_SubscriberLevel.HierarchicalIDNumber_01 = "3";
loop2000C1.HL_SubscriberLevel.HierarchicalParentIDNumber_02 = "2";
loop2000C1.HL_SubscriberLevel.HierarchicalLevelCode_03 = "22";
loop2000C1.HL_SubscriberLevel.HierarchicalChildCode_04 = "0";
// Repeating TRN
loop2000C1.TRN_SubscriberTraceNumber = new List();
// Trace Type Code = 1 (Current Transaction Trace Number)
// Reference Identification = 93175 - 012547
// Originating Company Identifier = 9877281234
// Reference Identification = *not used
var trn = new TRN_DependentTraceNumber();
trn.TraceTypeCode_01 = "1";
trn.CurrentTransactionTraceNumber_02 = "93175-012547";
trn.OriginatingCompanyIdentifier_03 = "9877281234";
loop2000C1.TRN_SubscriberTraceNumber.Add(trn);
// Begin 2100C Loop
loop2000C1.Loop2100C = new Loop_2100C_270();
// Entity Identifier Code = IL (Insured or Subscriber)
// Entity Type Qualifier = 1(Person)
// Last Name = Smith
// First Name = Robert
// Middle Name = *not used
// Name Prefix = *not used
// Name Suffix = *not used
// Identification Code Qualifier = MI(Member Identification Number)
// Identification Code = 11122333301
loop2000C1.Loop2100C.NM1_SubscriberName = new NM1_SubscriberName();
loop2000C1.Loop2100C.NM1_SubscriberName.EntityIdentifierCode_01 = "IL";
loop2000C1.Loop2100C.NM1_SubscriberName.EntityTypeQualifier_02 = "1";
loop2000C1.Loop2100C.NM1_SubscriberName.ResponseContactLastorOrganizationName_03 = "SMITH";
loop2000C1.Loop2100C.NM1_SubscriberName.ResponseContactFirstName_04 = "ROBERT";
loop2000C1.Loop2100C.NM1_SubscriberName.IdentificationCodeQualifier_08 = "MI";
loop2000C1.Loop2100C.NM1_SubscriberName.ResponseContactIdentifier_09 = "11122333301";
// Date Time Period Format = D8 (Date Expressed in Format CCYYMMDD)
// Date Time Period = 19430519
loop2000C1.Loop2100C.DMG_SubscriberDemographicInformation = new DMG_DependentDemographicInformation();
loop2000C1.Loop2100C.DMG_SubscriberDemographicInformation.DateTimePeriodFormatQualifier_01 = "D8";
loop2000C1.Loop2100C.DMG_SubscriberDemographicInformation.DependentBirthDate_02 = "19430519";
// Repeating DTP
loop2000C1.Loop2100C.DTP_SubscriberDate = new List();
// Date/Time Qualifier = 291 (Plan)
// Date Time Period Format Qualifier D8(Dates Expressed in Format CCYYMMDD)
// Date Time Period = 20060501(May 1, 2006)
var dtp = new DTP_SubscriberOrDependentDate();
dtp.DateTimeQualifier_01 = "291";
dtp.DateTimePeriodFormatQualifier_02 = "D8";
dtp.DateTimePeriod_03 = "20060501";
loop2000C1.Loop2100C.DTP_SubscriberDate.Add(dtp);
// Repeating 2110C Loops
loop2000C1.Loop2100C.Loop2110C = new List();
// Begin 2110C Loop
var loop2110C = new Loop_2110C_270();
// Service Type Code = 30 (Health Benefit Plan Coverage
loop2110C.EQ_SubscriberEligibilityorBenefitInquiry = new EQ_SubscriberEligibilityorBenefitInquiry();
loop2110C.EQ_SubscriberEligibilityorBenefitInquiry.ServiceTypeCode_01 = new List { "30" };
// End 2110C Loop
loop2000C1.Loop2100C.Loop2110C.Add(loop2110C);
// End 2100C Loop
// End 2000C Loop 1
loop2000B.Loop2000C.Add(loop2000C1);
// End 2000B Loop
loop2000A.Loop2000B.Add(loop2000B);
// End 2000A Loop
result.Loop2000A.Add(loop2000A);
return result;
}
}
}More operations in ediFabric .NET
270 questions
What is the minimum data for a 270?
The payer, the provider with NPI, and enough to identify the member - usually the member ID with name and date of birth - plus at least one EQ service type code.
What does service type code 30 mean?
Health benefit plan coverage. It asks for the general benefits and returns the most common service types. Specific codes such as 88 pharmacy or 98 professional visit ask for those benefits only.
What is the response to a 270?
A 271 with the eligibility and benefit details, or AAA segments explaining why the request was rejected.
How do I parse and generate X12 270 files in .NET, Python, Java and C?
In .NET, install EdiFabric and EdiFabric.Templates.Hipaa, read the file with X12Reader into TS270 objects and write them back with X12Writer. From Python, Java or C, use ediFabric Native, which converts 270 files to JSON and JSON back to X12 inside your process. From any other language, post the file to the ediFabric Cloud REST API.
Resources
Parse your first X12 270 in five minutes
The Community plan is free forever and needs no credit card. It includes ediFabric .NET, Native and Cloud with one serial key.
Sign up free Validate EDI files free