Professional Documents
Culture Documents
This document and all other documents, materials, and information, transmitted or orally communicated by
Surescripts® in the course of the parties’ dealings constitute and are hereby designated as proprietary and
confidential information of Surescripts, and may not be reproduced or distributed (in whole or in part) without the
express written consent of Surescripts.
TABLE OF CONTENTS
Section 1: Overview 11
1.1 About Surescripts 11
1.2 About This Guide 11
1.3 Document References 12
Section 2: Integration & Production 13
2.1 Integration Process 13
2.2 Terminology Usage 13
2.3 Transition to Production 14
2.4 Connectivity 14
2.5 Timeouts 14
2.5.1 Data Load Connectivity 14
2.5.1.1 Secure FTP 14
2.6 Security 15
2.7 Compliance 15
Section 3: Messages Overview 16
3.1 Prescription Benefit & Medication History Process Flow 16
3.2 Message Descriptions 16
3.3 General Interface Description 18
3.3.1 Dynamic Delimiters 18
3.3.2 Delimiter Examples 19
3.3.3 Representation 20
3.3.3.1 Numeric Representation 20
3.3.3.2 Character Set 21
3.3.3.3 Requirement Designation 21
3.4 Message Validation 22
3.5 Failure Mode/Response Approach 23
3.5.1 Error Processing for 270 and 271 23
Section 4: Eligibility 24
4.1 Introduction 24
4.2 Relationship to X12N 270/271 Standard 24
The table below tracks significant changes made to the document since it was last published.
1.3 Documentation Updated the NCPDP External Code List version Clarification
References from December 2010 to July 2016.
2.8 Moving from Older Deleted section as it was no longer applicable. Clarification
Versions
3.3.1 Dynamic Delimiters Updates ISA segment example to reflect the Correction to
accurate number of characters and to be consistent Examples
with examples later in the guide.
3.5.2 Error Processing for Re-wrote section for clarification purposes. Clarification
270 and 271
4.5 Patient Match Updated the section for clarity and to reflect fields Change to
Verification that are now used for patient matching. Requirements
7.3 Formulary and Updated note to remove information that was not Clarification
Benefit Data necessary for the process for clarification purposes.
Overview
7.9 Formulary and Update wording for the update and full replace Change to
Benefit Publishing processes to reflect the new process. Requirements
(for PBM/Payers)
7.9.3 Formulary and Updated the Directory Structure example to reflect Clarification
Benefit File Naming the file format.
and Structure
7.12 Formulary and Updated the wording from: “Where there are optional Clarification
Benefit Data Load fields at the end of the record, trailing delimiters are
Specification not required to be sent” to “Where there are optional
fields at the end of the record, it is recommended to
not send trailing delimiters”.
7.13 Formulary Status List Added detail to the ID(s) field to clarify where this Clarification
information is returned in the 271.
7.14 Formulary Added detail to the ID(s) field to clarify where this Clarification
Alternatives List information is returned in the 271.
7.15 Benefit Coverage List Added detail to the ID(s) field to clarify where this Clarification
information is returned in the 271.
7.16 Benefit Copay List Added detail to the ID(s) field to clarify where this Clarification
information is returned in the 271.
7.17.1 Formulary and Remove Full Replace and Update Validation Clarification
Benefit File Header information as this is captured elsewhere in the
and Trailer Validation guide.
7.17.6 Reject Code Update section to detail the error and reject process. Change to
Summary Requirements
Appendix Secure File Transfer Added the following note: “Compression should be Clarification
B used when possible while sending files to
Surescripts. The preferred file type is .gzip, but other
supported file types are .zip and .bzip.”
SECTION 1: OVERVIEW
Note: The terms PBM/payer or processor, who acts on behalf of the PBM/payer, are referred
to as PBM/payer throughout this guide.
Note: The terms message and transaction are used interchangeably throughout this guide. The
term transaction will be used when referring to the X12 guide.
The audience for this document includes any customer responsible for developing a system
interface for these electronic prescribing messages. This guide describes the Surescripts
Prescription Benefit messages and provides other information needed for their implementation.
Document Title
ASC X12N/005010X279A1 Health Care Eligibility Benefit Inquiry and Response (270/271) – Referred to as the”
X12 Guide” in the rest of this guide.
The Guide utilizes the NCPDP (National Council for Prescription Drug Programs) Formulary and
Benefit Standard Implementation Guide (Version 3, Release 0) as a baseline. In conjunction with
this Surescripts Implementation Guide, customers should have a copy of these documents readily
available for use with the messages. Members of NCPDP can access standards at
http://ncpdp.org/Standards/Standards-Info. To become a member, please go to
https://ncpdp.org/membership/Apply-Online.aspx.
NCPDP
9240 E. Raintree Drive
Scottsdale, AZ 85260-7518
Phone: (480) 477-1000
Fax: (480) 767-1042
http://www.ncpdp.org
Some copyrighted materials in this guide are reproduced with the consent of the National Council
for Prescription Drug Programs, Inc.
Note: The time frame of the project can vary depending on your resource allocation for the
project.
The integration process includes testing to ensure that the customer meets all Surescripts'
requirements. Surescripts provides a detailed plan outlining the necessary milestones for
integration and moving into production. Customers will be required to pass certification prior to
transitioning to production.
Certification focuses on message format, and when appropriate, application workflow and display
in accordance with Surescripts' implementation guides and the associated Application Certification
Requirements (ACR). By holding all customers accountable for meeting the ACRs, our customers
can send and receive the highest quality messages as e-prescribing and clinical messaging
continue to progress overall as an industry.
In addition, Surescripts Integration focuses on patient safety, efficiency of the electronic prescribing
process and ease of use by end-users.
should Used for guidance and best practices. Best practices can also be found in Best Practice sections.
Customers are encouraged, but not required, to meet best practices in order to be certified on the
Surescripts network.
2.4 CONNECTIVITY
Please refer to the Surescripts Connectivity and Authentication Implementation Guide for
additional connectivity and authentic information. For the network to be reliable, there are
communication rules to which all customers must adhere.
2.5 TIMEOUTS
For timeouts, consider the following:
l When sending a message to Surescripts, the initiator should set the http timeout to no less
than 30 seconds.
l A receiving system must reply with a valid 271/999/TA1/NAK response within 10 seconds.
Secure FTP is supported for the transfer of Master Patient Index (MPI) data loads and Formulary
and Benefit data uploads using FTP over SSL, SSH with FTP and HTTP/S. Surescripts supports
both Client-to-Server and Server-to-Server communications with compatible client software. A list
of compatible software should be requested from Surescripts. Surescripts processes do not have
file naming requirements. Security is enforced through data encryption during transfer and User
ID/Password. Customer files are isolated from other customer’s files.
Connectivity to Secure FTP can be established through an Internet route or through a Private
Virtual Circuit with Surescripts’ contracted MPLS service provider. If using the Private Virtual
Circuit, the customer must allow Surescripts to install and manage two routers in their data center
that connect to the customer’s extranet. The customer must have dual network connectivity for
redundancy.
2.6 SECURITY
Each customer must ensure that appropriate security measures are in place within its scope of
operations to the extent of its interface with Surescripts and Surescripts’ systems and data. These
security measures must be designed to protect against fraud and abuse and to maintain patient
confidentiality.
Each customer must provide a Surescripts Trading Partner ID (ISA06 for X12) and password
(ISA04 for X12) in all messages and a static network path (IP address). Surescripts will only allow
message connectivity from the customer specified network path. Provision of an otherwise-valid ID
and password from a network path not assigned to the customer will result in rejection of the
message, and will be logged as a potential security violation.
2.7 COMPLIANCE
Surescripts’ goal is efficiency and consistency across the network so that all customers can meet
the highest measures of patient safety, end-to-end reliability, and quality. To ensure that customers
comply with, and adhere to, the approved certification requirements, Surescripts:
l initiates a remediation process for identified compliance issues,
l conducts scheduled and ad-hoc compliance checks of all customers transacting on the
network, and
l monitors customers in production to ensure all network customers remain in compliance with
certification requirements and contractual terms.
Customers agree to notify Surescripts when they have altered, reconfigured or disabled any
portion of a Surescripts certified software product or module, before moving such changes into
production, as they may create a circumstance of non-compliance with the Surescripts certification
issued. In those instances, Surescripts will work with the customer to perform a timely re-
certification, if required, to ensure network compliance and safety.
The guide is intended for certification on our network only and is not intended to ensure compliance
with state and federal law. In accordance with customer’s legal agreement with Surescripts, each
customer is responsible for conducting its own due diligence to ensure compliance with all
applicable laws including, but not limited to, local and state laws and regulations in which the
customer’s application is deployed.
Figure 3 1 Surescripts Prescription Benefit & Medication History Process Flow Diagram
The X12 Health Care Eligibility, Coverage, or Benefit Inquiry (270) and Health Care Eligibility,
Coverage, or Benefit Information (271) message sets are used to request and respond to a patient
eligibility check. These messages enable prescribers to supply a patient’s name and demographic
information to Surescripts and get back the some or all of the following information from each
PBM/payer that covers the patient:
Interchange Acknowledgment
This X12 specification, TA1, is utilized to acknowledge receipt/header errors for batch messages
and errors in real time messages. For the Surescripts message set, it only applies to the X12
specifications (270 & 271). None of the other specifications utilize this message.
Implementation Acknowledgement
The implementation acknowledgement, or 999, informs the submitter that the functional group
arrived at the destination and is required as a response to receipt of an X12 message in a batch
environment, and only for errors with real time messages. Surescripts only supports a real time
environment for the 270/271 messages, so the 999 will only be sent if there are errors. The 999
reports on errors generated due to data or segment issues that do not comply with the X12 guide.
This message is used to load a PBM/payer’s patient directory into a directory at Surescripts. This
directory is an index Surescripts uses when looking up a patient’s prescription benefit. The Patient
Directory indicates which PBM/payer(s) can provide current coverage information. The elements
provided are limited to the demographic data needed for patient searches.
After a patient’s eligibility has been determined, this message is used to retrieve a listing of
dispensed medications that were paid for by a patient’s PBM/payer. The message format is
NCPDP SCRIPT.
For X12 messages, the delimiter set is defined within the ISA segment. The following is an
example:
ISA*00* *01*PWPHY12345*ZZ*POCID
*ZZ*S00000000000001*091217*0309*^*00501*000000001*1*P*>~
In the example above, the asterisk (*) is a delimiter based on its position immediately following ISA.
The segment delimiter is determined by calculating the last character of the fixed width row. The
row is 106 total bytes; therefore, the segment delimiter is the 106th character.
Choosing a Delimiter
Surescripts has published a list of allowed delimiters for the X12 messages (Refer to Dynamic
Delimiters on page 302 for a full list of acceptable characters). The customers may choose any
allowed delimiter desired for the messages they create. However, it is important that customers
communicate which delimiters they are using to ensure they will not cause issues with their trading
partners’ messages.
A Surescripts customer can expect to receive delimiters that are different than the set they define
for their messages. The customer needs to determine the delimiters dynamically when the
message is processed according to the rules listed in the above section. See Dynamic Delimiters
on page 302 for a complete list of acceptable characters.
Example 1:
NM1*IL*1*SMITH*JOHN*L***34*444115555~
Elements 6 and 7 are not included; therefore, the asterisks (**) act as placeholders for the omitted
elements.
When data elements are omitted from the end of a segment, the data element delimiters do not
need to be used. The segment is ended with a segment terminator.
Example 2:
Elements 8 and 9 can be omitted in the same segment as Example 1. The new segment would
become:
NM1*IL*1*SMITH*JOHN*L~
And not:
NM1*IL*1*SMITH*JOHN*L****~
Example 3:
Surescripts does not publish segments that are HIPAA compliant but not utilized by Surescripts. If
a message contains these segments, it will still be valid and accepted; but the data within the
segment may not be utilized.
ABC*ABC01*ABC02*ABC03*ABC04*ABC05*ABC06~
If elements ABC02 and ABC03 are not used (not shown on the Surescripts EDI specifications)
then no value should be sent. However, the elements must be represented with a place holder
because there are used elements (ABC04, 05 and 06) after them.
ABC*ABC01***ABC04*ABC05*ABC06~
ABC02 and ABC03 must be represented so that it is known that the next data value is ABC04.
ABC*ABC01*ABC04*ABC05*ABC06~
If the placeholders for ABC02 and ABC03 are removed, ABC04 would be mistaken for ABC02.
Example 4:
ABC*ABC01*ABC02*ABC03*ABC04*ABC05*ABC06~
If elements ABC05 and ABC06 are not used (not shown on the Surescripts EDI specifications)
then no value should be sent. When elements 05 and 06 are located at the end of the segment
there is no need to represent them.
ABC*ABC01*ABC02*ABC03*ABC04~
ABC*ABC01*ABC02*ABC03*ABC04**~
3.3.3 REPRESENTATION
The following table lists the Field Type Notation used within the messages:
Date DT DT
Decimal R R
ID Number ID ID
Numeric n Nn
String AN AN
Time TM TM
Note: Each element, if sent, has a minimum and maximum length. For example:
AN 1/3 means an alphanumeric with range from one to three characters.
AN 3/3 means an alphanumeric with three characters.
l only when there are significant digits to the right of the decimal
l when there is a digit before and after the decimal point
l not with whole numbers
For example, consider the following possible values for a 5-digit field:
There are separate tables for X12 eligibility and NCPDP Formulary and Benefit since the base
standards use differing requirement designations.
X12
X12 Description
M Required/Mandatory - the segment must be used.
Segments that are not used have been removed from the message specifications.
X12 Description
M Required/Mandatory - the element must be used.
NCPDP
Segment Attributes
Code Description
M Required/Mandatory – the segment must be used.
Element Attributes
Code Description
M Required/Mandatory – the element must be used.
C Situational/Conditional – the element must be used if conditions are met. Some fields do not have
specific conditions. Data should be sent if available.
Where comments are “Not used for Prescription Benefit”, information will be passed on, but not used, by
Surescripts for processing.
Some codes have strikethrough indicating they are not to be used for that element for this
implementation.
Example: In this case in this position the only allowed code would be “A”.
SECTION 4: ELIGIBILITY
4.1 INTRODUCTION
This section provides guidelines for the data messaging interfaces between the provider vendor
and PBM/payers. Standard segments will be required for commonly transmitted data such as basic
patient demographics and eligibility information.
The Patient and Eligibility Data will be transmitted between the Physician System, Surescripts, and
PBM/payer using the currently accepted X12 envelope segments. Message formats used include
the X12N 270 (Eligibility Benefit Inquiry) and the X12N 271 (Eligibility Benefit Response).
The guidelines for data messaging interfaces provided in this document are tailored to the needs of
Physician System and PBM/payer customers related to prescription drug benefits and are a subset
of the X12N 270/271 standard. The X12N 270/271 standard covers a great number of other
business scenarios that are not described in this section; however, Surescripts will support the
minimum requirements of the X12N 270/271 transaction. See Section 1.4.7 of the 270/271
Implementation Guide (“Implementation Compliant Use of the 270/271 Transaction Set”).
Note: Even though Surescripts has implemented a subset of the X12N 270/271 standard,
customers should be able to handle receiving all the segments, elements and related codes
contained in the HIPAA X12N 270/271 standard. Refer to the Document References on
page 12 for the exact reference guides needed.
If a provider vendor's customer submits an eligibility request that does not comply with the X12N
270/271 transaction standard, Surescripts will return a 999 response. If a Physician System
customer submits an eligibility request that complies with the X12N 270/271 transaction but
contains information that is unexpected by Surescripts, Surescripts will return a 271 response
based on the information received by Surescripts that was expected, but the response may include
AAA segments if insufficient information expected by Surescripts is submitted to generate a
meaningful response.
If a PBM/payer customer submits an eligibility response that does not comply with the X12N
270/271 transaction standard, Surescripts will return a 999 response to the PBM/payer. The
response to the PBM/payer should be responded to with an ACK. If a PBM/payer customer
submits an eligibility response that complies with the X12N 270/271 transaction but contains
information that is unexpected by Surescripts, Surescripts will pass the response to the requesting
prescriber system customer. However, PBM/payer customers should be aware that such
responses may not be understood or usable by the recipient prescriber system customer.
By design, the 270 allows the requester to submit a patient as a subscriber or a dependent with a
subscriber. Surescripts will follow the following process to determine the unique ID for the patient to
retrieve eligibility.
transaction and distributed to the PBM/payer. At this point, Surescripts does not know if this patient
is a subscriber or dependent.
These fields could be in the subscriber loop, the dependent loop, or both; however, Surescripts
strongly suggests refraining from using the dependent loop because PBM/payers assign unique
IDs, thus according to the standard they are subscribers.
Different types of information sources identify patients in different manners depending upon how
their eligibility system is structured. There are two common approaches for the identification of
patients by an information source. One approach is to assign each member of the family (and plan)
a unique ID number. This number can be used to identify and access that individual's information
independent of whether he or she is a child, spouse, or the actual subscriber to the plan. In this
approach, the patient will be identified at the subscriber hierarchical level because a unique ID
number exists to access eligibility information for this individual. This is the approach that
PBM/payers use.
The second approach is where the primary subscriber and all dependents share one ID. Any
related spouse, children, or dependents are identified through the primary subscriber's
identification number and do not have a unique identification number of their own.
If any of the demographic fields listed above are different from what the provider vendor sent in, the
change flag must be set. If a field comes in blank and the PBM/payer sends back a value, this is
considered a change. However, if the provider vendor sends a value in a field and the PBM/payer is
unable to compare this field because they do not store this field in their patient data, the change flag
must not be set and the data from the request must not be returned. If both subscriber and
dependent information is sent, these rules apply to both.
The change flag is in the INS segment. INS03 = 001, INS04 = 25.
In the case of error conditions including patient not found - AAA error 75, contract /authorization
error - AAA error 41, and general system errors – AAA error 42, the same general rule should be
followed. Do not send back patient information from the 270 request. Therefore, in these error
conditions, no patient data should be sent back. The provider vendor should disregard any patient
information under these error scenarios.
Examples:
1. Here is an example where the PBM/payer should indicate that a change has been made and
set the change flag in the INS segment.
Provider vendor sends in: Joe M Doe, DOB 19550412, Gender Male, and Address 55
HIGH STREET, SEATTLE, WA 55111
PBM/payer returns: Joseph M Doe, DOB 19550412, Gender Male, and Address 55 HIGH
STREET, St. Paul, MN 55111
2. In this example, the PBM/payer does not need to set the change flag because they have not
changed any of the information returned, but the middle initial is blank due to the field not
being supported in the PBM/payer’s system:
Provider vendor sends in: Joe M Doe, DOB 19550412, Gender Male, and Address 55
HIGH STREET, St. Paul MN, 55111
PBM/payer returns: Joe Doe, DOB 19550412, Gender Male, and Address 55 HIGH
STREET, St. Paul MN, 55111
3. In this example, the PBM/payer looks up the information and finds a blank for the middle
name (which is a supported field in the PBM/payer’s system). This is considered a change so
the change flag needs to be set:
Provider vendor sends in: Joe M Doe, DOB 19550412, Gender Male,
4. This is an example where the patient is not found, so none of the patient information is
returned.
Provider vendor sends in: Joe M Doe, DOB 19550412, Gender Male, and Address 55
HIGH STREET, St. Paul MN 55111
This Surescripts draft specification contains the format and establishes the data contents of the
Eligibility, Coverage or Benefit Inquiry Transaction Set (270) for use within the context of an
ePrescribing environment.
Note: For the complete set of segments and for more detail on items marked "Situational", refer
to the X12 guide.
Since PBM/payers uniquely identify each member, the subscriber level should be used
instead of the dependent level. However, receivers of the 270 should be able to handle
patients at the dependent level since the standard allows it. Because of this, the
dependent level sections of the guide are not displayed in this guide.
Heading:
Detail
LOOP ID – 2000A
LOOP ID – 2100A 1
LOOP ID – 2000B 1
LOOP ID – 2100B 1
LOOP ID – 2000C 1
HL Subscriber Level R 1
LOOP ID – 2100C 1
N3 Subscriber Address S 1
LOOP ID - 2110C 99
Trailer
This is used for identifying the security information about the interchange sender
or the data in the interchange; the type of information is set by the Security
Information Qualifier (I03)
*From the POC/PPMS, this is the Password assigned by Surescripts for the
POC/PPMS.
*From Surescripts, this is the password for Surescripts to get to the PBM/Payer.
M ISA05 I05 Interchange ID Qualifier ID 2/2
Qualifier to designate the system/method of code structure used to designate the
sender or receiver ID element being qualified
ZZ Mutually Defined
M ISA06 I06 Interchange Sender ID AN 15/15
Identification code published by the sender for other parties to use as the receiver
ID to route data to them; the sender always codes this value in the sender ID
element
*From the provider vendor system, this is the Participant ID as assigned by
Surescripts.
*From Surescripts to the PBM/payer, this is Surescripts’ ID.
M ISA07 I05 Interchange ID Qualifier ID 2/2
Qualifier to designate the system/method of code structure used to designate the
sender or receiver ID element being qualified
ZZ Mutually Defined
M ISA08 I07 Interchange Receiver ID AN 15/15
Identification code published by the receiver of the data; When sending, it is used
by the sender as their sending ID, thus other parties sending to them will use this
as a receiving ID to route data to them
*From the provider vendor system, this is Surescripts’ ID (S00000000000001 for
Medication History for Ambulatory and S00000000000002 for Medication History
for Reconciliation) as assigned by Surescripts.
*From Surescripts to the PBM/payer, this is PBM/payer's Participant ID.
M ISA09 I08 Interchange Date DT 6/6
Date of the interchange
*Date format YYMMDD required.
M ISA10 I09 Interchange Time TM 4/4
Time of the interchange
*Time format HHMM required.
M ISA11 I65 Repetition Separator 1/1
Type is not applicable; the repetition separator is a delimiter and not a data
element; this field provides the delimiter used to separate repeated occurrences of
a simple data element or a composite data structure; this value must be different
than the data element separator, component element separator, and the segment
terminator.
3 The data interchange control number GS06 in this header must be identical to the same
data element in the associated functional group trailer, GE02.
Comments:
1 A functional group of related transaction sets, within the scope of X12 standards,
consists of a collection of similar transaction sets enclosed by a functional group header
and a functional group trailer.
1 The transaction set identifier (ST01) is used by the translation routines of the
interchange partners to select the appropriate transaction set definition (e.g., 810 selects
the Invoice Transaction Set).
Comments:
Notes: Use this control segment to mark the start of a transaction set. One ST segment exists for every
transaction set that occurs within a functional group. As per the X12 guide, it is required that the
270 transaction contain only one patient request when using the transaction in a real time mode.
Example: ST*270*0001*005010X279A1~
The transaction set control numbers in ST02 and SE02 must be identical. This
unique number also aids in error resolution research. Start with the number, for
example "0001", and increment from there. This number must be unique within
a specific group and interchange, but can repeat in other groups and
interchanges.
*1This ID will be returned on an AK202 of the 999 acknowledgment if an error
occurs. Providing a unique number will assist in resolving errors and tracking
messages.
M ST03 1705 Implementation Convention Reference AN 1/35
Reference assigned to identify Implementation Convention
The implementation convention reference (ST03) is used by the translation
routines of the interchange partners to select the appropriate implementation
convention to match the transaction set definition. When used, this
implementation convention reference takes precedence over the
implementation reference specified in the GS08. This element must be
populated with 005010X279A1.
This element contains the same value as GS08. Some translator products strip
off the ISA and GS segments prior to application (ST/SE) processing. Providing
the information from the GS08 at this level will ensure that the appropriate
application mapping is utilized at translation time.
1 BHT03 is the number assigned by the originator to identify the transaction within the
originator's business application system.
2 BHT04 is the date the transaction was created within the business application system.
3 BHT05 is the time the transaction was created within the business application system.
1 A gray shaded note that is preceded by an asterisk is a Surescripts’ specific note and is not from the X12 guide.
Comments:
Notes: Use this required segment to start the transaction set and indicate the sequence of the
hierarchical levels of information that will follow in Table 2.
Example: BHT*0022*13*199800114000001*19980101*1400~
2 HL01 shall contain a unique alphanumeric number for each occurrence of the HL
segment in the transaction set. For example, HL01 could be used to indicate the number
of occurrences of the HL segment, in which case the value of HL01 would be "1" for the
initial HL segment and would be incremented by one in each subsequent HL segment
within the transaction.
3 HL02 identifies the hierarchical ID number of the HL segment to which the current HL
segment is subordinate.
4 HL03 indicates the context of the series of segments following the current HL segment
up to the next occurrence of an HL segment in the transaction. For example, HL03 is
used to indicate that subsequent segments in the HL loop form a logical grouping of data
referring to shipment, order, or item-level information.
5 HL04 indicates whether or not there are subordinate (or child) HL segments related to
the current HL segment.
Notes: Segment to identify the hierarchical or entity level of information being conveyed. The HL
structure allows for the efficient nesting of related occurrences of information. The developers'
intent is to clearly identify the relationship of the patient to the subscriber and the subscriber to
the provider.
Additionally, multiple subscribers and/or dependents (i.e., the patient) can be grouped together
under the same provider or the information for multiple providers or information receivers can be
grouped together for the same payer or information source.
In a batch environment, only one Loop 2000A (Information Source) loop is to be created for each
unique information source in a transaction. Each Loop 2000B (Information Receiver) loop that is
subordinate to an information source is to be contained within only one Loop 2000A loop. There
has been a misuse of the HL structure creating multiple Loops 2000As for the same information
source. This is not the developer's intended use of the HL structure, and defeats the efficiencies
that are designed into the HL structure.
An example of the overall structure of the transaction set when used in batch mode is:
Information Source (Loop 2000A)
Information Receiver (Loop 2000B) Physician
Subscriber (Loop 2000C)
Dependent (Loop 2000D)
Eligibility or Benefit Inquiry
Example: HL*1**20*1~
20 Information Source
Identifies the payer, maintainer, or source of the
information
M HL04 736 Hierarchical Child Code ID 1/1
Code indicating if there are hierarchical child data segments subordinate to
the level being described
Use this code to indicate whether there are subordinate (or child)
hierarchical levels to the hierarchical level being described.
Because of the hierarchical structure, and there will always be an
Information Receiver HL subordinate to this Information Source HL the code
value in the HL04 at the Loop 2000A level must always be "1".
1 Additional Subordinate HL Data Segment in This
Hierarchical Structure.
Notes: Use this NM1 loop to identify an entity by name and/or identification number. This NM1 loop is
used to identify the eligibility or benefit information source.
Example: NM1*2B*2*SURESCRIPTS LLC*****PI*S00000000000001~
*Physician identification
Syntax Notes:
Semantic Notes:
Comments: Refer to X12 guide
Notes: Use this segment to identify an entity by name and/or identification number. This
NM1 loop is used to identify the eligibility/benefit information receiver.
Example: NM1*1P*1*JONES*TIM****XX*111223333~
Notes: Use this segment when needed to convey other or additional identification numbers for the
information receiver. The type of reference number is determined by the qualifier in REF01. Only
one occurrence of each REF01 code value may be used in the 2100B loop.
*Surescripts defined Participant ID for the provider vendor system. Required by Surescripts.
Example: REF*EO*477563928~
Notes: Required when the information receiver is a provider who has multiple locations and it is needed
to identify the location relative to the request. If not required by this implementation guide, may
be provided at sender’s discretion, but cannot be required by the receiver.
Example: N3*201 PARK AVENUE*SUITE 300~
1A combination of either N401 through N404, or N405 and N406 may be adequate to
specify a location.
2 *State (N402) and Postal (N403) are required if city name (N401) is in the U.S. or
Canada.
Notes: Required when the information receiver is a provider who has multiple locations and it is needed
to identify the location relative to the request. If not required by this implementation guide, may
be provided at sender’s discretion, but cannot be required by the receiver.
Example: N4*NEW YORK*NY*10003~
Notes: Required when information receiver or clearinghouse intends to use the TRN segment as a
tracing mechanism for the eligibility transaction and the subscriber is the patient. If not required by
this implementation guide, do not send.
Trace numbers assigned at the subscriber level are intended to allow tracing of an
eligibility/benefit transaction when the subscriber is the patient.
The information receiver may assign one TRN segment in this loop if the subscriber is the
patient. A clearinghouse may assign one TRN segment in this loop if the subscriber is the
patient. See Section 1.4.6 Information Linkage of the X12 HIPAA Implementation Guide.
Example: TRN*1*98175-012547*8877281234*RADIOLOGY~
Notes: Use this segment to identify an entity by name and/or identification number. Use this NM1 loop
to identify the insured or subscriber.
Example: NM1*IL*1*SMITH*JOHN*L***MI*444115555~
Notes: Use this segment when needed to convey the address information for the subscriber. Use if
information is known and will assist in identification of the person named, particularly when not
utilizing the HIPAA search option. See the X12 guide.
Example: N3*15197 BROADWAY AVENUE*APT 215~
1 A combination of either N401 through N404, or N405 and N406 may be adequate to
specify a location.
2 State (N402) and Postal (N403) are required if city name (N401) is in the U.S. or
Canada.
Notes: Use this segment when needed to convey the city, state, and ZIP code for the subscriber. Use if
information is known and will assist in identification of the person named, particularly when not
utilizing the HIPAA search option.
Example: N4*NEW YORK*NY*10003~
1 DTP02 is the date or time or period format that will appear in DTP03.
Comments:
Notes: Absence of a Plan date indicates the request is for the date the transaction is processed and the
information source is to process the transaction in the same manner as if the processing date was
sent.
Example: DTP*291*D8*20151015~
Level: Detail
Usage: Situational
Max Use: 1
Purpose: To specify inquired eligibility or benefit information
Syntax Notes:
Notes: Required when the subscriber is the patient whose eligibility or benefits are being verified. Since
dependent level is not used in this implementation, this is required.
Example: EQ*30~
Notes: Use this segment to mark the end of a transaction set and provide control information on the
total number of segments included in the transaction set.
Example: SE*41*0001~
1 The data interchange control number GE02 in this trailer must be identical to the same
data element in the associated functional group header, GS06.
Comments:
1 The use of identical data interchange control numbers in the associated functional
group header and trailer is designed to maximize functional group integrity. The control
number is the same as that used in the corresponding header.
The X12 guide defines loops 2110C/D and 2120C/D. This guide has numbered occurrences of
these loops as C1 through C4 to help clarify what should go in each occurrence of the loop.
PBM/payer's uniquely identify each patient, thus the subscriber level should be used instead of the
dependent level. However, receivers of the 270 should be able to handle patients at the dependent
level since the standard allows it. Also, when the patient is submitted in the dependent loop (in 270)
they must be moved to subscriber loop (in 271). This is due to the fact that PBM/payer's assign
unique identifiers to all members thus they are deemed to be subscribers according to the
standard.
Note: For the complete set of segments and for more detail on items marked "Situational", refer
to the X12 guide.
Heading:
Detail
LOOP ID – 2100A 1
HL Subscriber Level S 1
LOOP ID – 2100C 1
N3 Subscriber Address S 1
LOOP ID – 2110C1 1
LS Loop Header2110C1 S 1
LOOP ID – 2120C1 23
LOOP ID – 2110C2-5 (One loop for retail, one for mail order, and 23
optionally, one for specialty pharmacy, and/ or LTC)
LOOP ID – 2120C2-5 23
Trailer
Identification code published by the sender for other parties to use as the
receiver ID to route data to them; the sender always codes this value in the
sender ID element
*From the PBM/payer to Surescripts, this is the PBM/payer's Participant
ID.
*From Surescripts to the provider vendor system, this is Surescripts’ ID.
M ISA07 I05 Interchange ID Qualifier ID 2/2
Qualifier to designate the system/method of code structure used to
designate the sender or receiver ID element being qualified
ZZ Mutually Defined
M ISA08 I07 Interchange Receiver ID AN
15/15
Identification code published by the receiver of the data; When sending, it
is used by the sender as their sending ID, thus other parties sending to
them will use this as a receiving ID to route data to them
*From the PBM/payer, this is Surescripts’ ID.
*From Surescripts to the provider vendor system, this is the provider
vendor’s Participant ID.
M ISA09 I08 Interchange Date DT 6/6
Date of the interchange
*Date format YYMMDD required.
M ISA10 I09 Interchange Time TM 4/4
Time of the interchange
*Time format HHDD required.
M ISA11 I65 Repetition Separator 1/1
Type is not applicable; the repetition separator is a delimiter and not a data
element; this field provides the delimiter used to separate repeated
occurrences of a simple data element or a composite data structure; this
value must be different than the data element separator, component element
separator, and the segment terminator
*Surescripts recommends using Hex 1F.
M ISA12 I11 Interchange Control Version Number ID 5/5
This version number covers the interchange control segments
00501 Standards Approved for Publication by X12 Procedures Review
Board through October 2003
M ISA13 I12 Interchange Control Number N0 9/9
A control number assigned by the interchange sender
3 The data interchange control number GS06 in this header must be identical to the same
data element in the associated functional group trailer, GE02.
Comments:
1 A functional group of related transaction sets, within the scope of X12 standards,
consists of a collection of similar transaction sets enclosed by a functional group header
and a functional group trailer.
1 The transaction set identifier (ST01) is used by the translation routines of the
interchange partners to select the appropriate transaction set definition (e.g., 810 selects
the Invoice Transaction Set).
Comments:
Notes: Use this control segment to mark the start of a transaction set. One ST segment exists for every
transaction set that occurs within a functional group.
Example: ST*271*0001*005010X279A1~
This element contains the same value as GS08. Some translator products
strip off the ISA and GS segments prior to application (ST/SE) processing.
Providing the information from the GS08 at this level will ensure that the
appropriate application mapping is utilized at translation time.
1 BHT03 is the number assigned by the originator to identify the transaction within the
originator’s business application system.
2 BHT04 is the date the transaction was created within the business application system.
3 BHT05 is the time the transaction was created within the business application system.
Comments:
Notes: Use this required segment to start the transaction set and indicate the sequence of the
hierarchical levels of information that will follow in Table 2.
Example: BHT*0022*11*199800114000001*19980101*1401~
1 AAA01 designates whether the request is valid or invalid. Code “Y” indicates that the
code is valid; code “N” indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or
application level and to indicate what action the originator of the request
transaction should take.
Use of this segment at this location in the HL is to identify reasons why a request
cannot be processed based on the entities identified in ISA06, ISA08, GS02 or
GS03.
Example: AAA*Y**42*Y~
Use this code to indicate the reason why the transaction was unable to be
processed successfully by the entity identified in either ISA08 or GS03.
04 Authorized Quantity Exceeded
Use this code to indicate that the transaction exceeds the
number of patient requests allowed by the entity identified in
either ISA08 or GS03. See the X12 Implementation Guide
(Section 1.4.3 Batch and Real Time) for more information
regarding the number of patient requests allowed in a
transaction. This is not to be used to indicate that the number of
patient requests exceeds the number allowed by the Information
Source identified in Loop 2100A.
41 Authorization/Access Restrictions
Use this code to indicate that the entity identified in GS02 is not
authorized to submit 270 transactions to the entity identified in
either ISA08 or GS03. This is not to be used to indicate
Authorization/Access Restrictions as related to the Information
Source Identified in Loop 2100A.
42 Unable to Respond at Current Time
Use this code to indicate that the entity identified in either ISA08
or GS03 is unable to process the transaction at the current time.
This indicates that there is a problem within the systems of the
entity identified in either ISA08 or GS03 and is not related to any
problem with the Information Source Identified in Loop 2100A.
*Note: Surescripts could not process the transaction.
79 Invalid Participant Identification
Use this code to indicate that the value in either GS02 or GS03
is invalid.
M AAA04 889 Follow-up Action Code ID 1/1
Code identifying follow-up actions allowed
Use this code to instruct the recipient of the 271 about what action needs
to be taken, if any, based on the validity code and the reject reason code (if
applicable).
C Please Correct and Resubmit
N Resubmission Not Allowed
P Please Resubmit Original Transaction
R Resubmission Allowed
S Do Not Resubmit; Inquiry Initiated to a Third Party
Y Do Not Resubmit; We Will Hold Your Request and Respond
Again Shortly
Notes: Use this segment to identify an entity by name and/or identification number.
This NM1 loop is used to identify the eligibility or benefit information source
(e.g., insurance company, HMO, IPA, employer).
Example: NM1*2B*2*PBM NAME*****PI*87728~
* This will contain the actual source of the information (The PBM). It does
not include Surescripts at any point.
M NM108 66 Identification Code Qualifier ID 1/2
Code designating the system/method of code structure used for
Identification Code (67)
* Surescripts will utilize PI to identify the Payer (The PBM).
PI Payer Identification
(Recommended by
Surescripts)
M NM109 67 Identification Code AN 2/80
Code identifying a party or other code
Use this code for the reference number as qualified by the preceding data
element (NM108).
* This is the PBM’s Participant ID.
1 AAA01 designates whether the request is valid or invalid. Code “Y” indicates that the
code is valid; code “N” indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or application level and to
indicate what action the originator of the request transaction should take.
Use this segment to indicate problems in processing the transaction specifically related to the
information source data contained in the original 270 transaction’s information source name loop
(Loop 2100A) or to indicate that the information source itself is experiencing system problems.
Example: AAA*Y**42*Y~
Use this code for the reason why the transaction was unable to be
processed successfully. This may indicate problems with the system, the
application, or the data content.
04 Authorized Quantity Exceeded
Use this code to indicate that the transaction exceeds the
number of patient requests allowed by the Information Source
identified in Loop 2100A. See the X12 Implementation Guide
(Section 1.4.3 Batch and Real Time) for more information
regarding the number of patient requests allowed in a
transaction.
41 Authorization/Access Restrictions
Use this code to indicate that the entity identified in ISA06 or
GS02 is not authorized to submit 270 transactions to the
Information Source Identified in Loop 2100A.
*For the Physician System (from Surescripts), 41 would
indicate that the Physician System cannot request
transactions for the identified PBM.
*For Surescripts (from the PBM), 41 would indicate that
Surescripts cannot request eligibility from this PBM.
42 Unable to Respond at Current Time
Use this code to indicate that Information Source Identified in
Loop 2100A is unable to process the transaction at the current
time. This indicates that there is a problem within the
Information Source’s system.
*PBM cannot process at current time.
79 Invalid Participant Identification
* The PBM will use this code to indicate that Information
Source Identified in Loop 2100A is invalid.
80 No Response received – Transaction Terminated
Use this code only if the transaction is processed by a
clearing house, VAN, etc. Use this code to indicate that the
transaction was sent to the Information Source Identified in
Loop 2100A however no response was received in the
expected time frame.
This code must not be used by the Information source
identified in Loop 2100A.
T4 Payer Name or Identifier Missing
Use this code to indicate that either the name or identifier for
Information Source Identified in Loop 2100A is missing.
M AAA04 889 Follow-up Action Code ID 1/1
Code identifying follow-up actions allowed
Use this code to instruct the recipient of the 271 about what action needs
to be taken, if any, based on the validity code and the reject reason code
(if applicable).
C Please Correct and Resubmit
N Resubmission Not Allowed
P Please Resubmit Original Transaction
R Resubmission Allowed
S Do Not Resubmit; Inquiry Initiated to a Third Party
W Please Wait 30 Days and Resubmit
X Please Wait 10 Days and Resubmit
Y Do Not Resubmit; We Will Hold Your Request and Respond
Again Shortly
Notes: Use this segment to identify an entity by name and/or identification number. This NM1 loop is
used to identify the eligibility/benefit information receiver (e.g., provider, medical group, IPA, or
hospital).
Example: NM1*1P*1*JONES*TIM****XX*111223333~
Comments:
1 AAA01 designates whether the request is valid or invalid. Code “Y” indicates that the
code is valid; code “N” indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or application level and to
indicate what action the originator of the request transaction should take.
Use this segment to indicate problems in processing the transaction specifically related to the
information receiver data contained in the original 270 transaction’s information receiver name
loop (Loop 2100B).
Example: AAA*N**43*C~
Notes: Required when the 270 request contained one or two TRN segments and the subscriber is the
patient. One TRN segment for each TRN submitted in the 270 must be returned.
Notes: Use this segment to identify an entity by name and/or identification number. This NM1 loop is
used to identify the insured or subscriber.
* See the Patient Match Verification for more details.
Example: NM1*IL*1*SMITH*ROBERT*B***MI*33399999~
Notes: Required when the 270 request contained a REF segment with a Patient Account Number in Loop
2100C/REF02 with REF01 equal EJ;
OR
Required when the 270 request contained a REF segment and the information provided in that
REF segment was used to locate the individual in the information source’s system (See Section
1.4.7).
* See the Patient Match Verification for more details.
Example: REF*SY*SOCSEC126329818~
REF*HJ*CARDID23111 ~
REF*49*01~
Notes: Required when the Subscriber is the patient or when the Information Source requires this
information to identify the Subscriber for subsequent EDI transactions, but not required if a
rejection response is generated and this segment was not sent in the request. If not required by
this implementation guide, may be provided at sender’s discretion but cannot be required by the
receiver.
Example: N3*15197 BROADWAY AVENUE*APT 215~
* See the Patient Match Verification for more details.
2 State (N402) and Postal (N403) are required if city name (N401) is in the U.S. or
Canada.
Notes: Required when the Subscriber is the patient or when the Information Source requires this
information to identify the Subscriber for subsequent EDI transactions, but not required if a
rejection response is generated and this segment was not sent in the request. If not required by
this implementation guide, may be provided at sender’s discretion but cannot be required by the
receiver.
Example: N4*NEW YORK*NY*10003~
* See the Patient Match Verification for more details.
1 AAA01 designates whether the request is valid or invalid. Code “Y” indicates that the
code is valid; code “N” indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or application level and to
indicate what action the originator of the request transaction should take.
Use this segment to indicate problems in processing the transaction specifically related to the
data contained in the original 270 transaction’s subscriber name loop (Loop 2100C).
Example: AAA*N**72*C~
Use this code to instruct the recipient of the 271 about what action needs
to be taken, if any, based on the validity code and the reject reason code (if
applicable).
C Please Correct and Resubmit
N Resubmission Not Allowed
R Resubmission Allowed
Use only when AAA03 is “42”.
S Do Not Resubmit; Inquiry Initiated to a Third Party
W Please Wait 30 Days and Resubmit
X Please Wait 10 Days and Resubmit
Y Do Not Resubmit; We Will Hold Your Request and
Respond Again Shortly
Use only when AAA03 is “42”.
Notes: Use this segment to convey the birth date or gender demographic information for the subscriber.
Use this segment only if the subscriber is the patient and if this information is available from the
Information Source’s database unless a rejection response is generated and the elements were
not valued in the request.
*See the Patient Match Verification for more details.
Example: DMG*D8*19430917*M~
1 INS01 indicates status of the insured. A “Y” value indicates the insured is a subscriber:
an “N” value indicates the insured is a dependent.
Comments:
Notes: Required when acknowledging a change in the identifying elements for the subscriber from
those submitted in the 270 or the Birth Sequence Number submitted in INS17 of the 270 was
used to locate the Subscriber.
If not required by this implementation guide, do not send.
Example: INS*Y*18*001*25~
*Surescripts only uses this segment to indicate if any of the identifying elements for the
subscriber have been changed from those submitted in the 270.
If the INS segment student status and handicap status are used it will be rejected.
Use this element (and code “001” in INS03) if any of the identifying
elements for the subscriber have been changed from those submitted in the
270.
001 Change
O INS04 1203 Maintenance Reason Code ID 2/3
Code identifying the reason for the maintenance change
Use this element (and code “001” in INS03) if any of the identifying
elements for the subscriber have been changed from those submitted in the
270.
25 Change in Identifying Data Elements
Use this code to indicate that a change has been made to the
primary elements that identify a specific person. Such elements
are first name, last name, date of birth, identification numbers, and
address.
1 DTP02 is the date or time or period format that will appear in DTP03.
Comments:
Notes: Use this segment to convey any relevant dates. The dates represented may be in the past, the
current date, or a future date. The dates may also be a single date or a span of dates. Which
date(s) to use is determined by the format qualifier in DTP02.
When using code “291” (Plan) at this level, it is implied that these dates apply to all of the
Eligibility or Benefit Information (EB) loops that follow.
Example: DTP*291*D8*19950818~
Notes: Required when the subscriber is the person whose eligibility or benefits are being described and
the transaction is not rejected or if the transaction needs to be rejected in this loop. If not
required by this implementation guide, do not send.
Use this segment to begin the eligibility/benefit information looping structure. The EB segment
is used to convey the specific eligibility or benefit information for the entity identified.
If the transaction is rejected, and the MESSAGE field is utilized in the EB segment, then the
segment will exist with a V- Cannot process, and the associated message.
Example: EB*1**30**HEALTH PLAN NAME~
Use if available.
* See X12 guide for additional qualifiers.
47 Medicare Secondary, Other Liability Insurance is
Primary
CP Medicare Conditionally Primary
MC Medicaid
MP Medicare Primary
OT Other (Used for Medicare Part D)
O EB05 1204 Plan Coverage Description AN 1/50
A description or number that identifies the plan or coverage
This element is to be used only to convey the specific product name or
special program name for an insurance plan. For example, if a plan has a
brand name, such as “Gold 1-2-3", the name may be placed in this element.
This element must not be used to give benefit details of a plan.
Required when a specific Plan Name exists for the plan which the individual
has coverage in conjunction with the 2110C loop with EB01 Status = 1, 2, 3,
4, 5, 6, 7 or 8 and EB03 Service Type Code = 30 (See Section 1.4.7 in the
X12 Guide).
*The health plan name for patients that are eligible should be sent at this
level.
*Surescripts requires applications display this if sent.
O EB07 782 Monetary Amount R 1/18
Monetary amount
INDUSTRY: Benefit Amount
Use this monetary amount as qualified by EB01.
Use if eligibility or benefit must be qualified by a monetary amount;
e.g., deductible, copayment.
* Surescripts is utilizing this field for Out of Pocket Accumulator. EB01 set
to G.
2 Group number (6P) refers to the prescription benefit coverage Group ID (which is
typically 15 charters or less), not the Member Plan Group ID Number that refers to
Medical, Dental, etc. coverage.
Comments:
Notes: Example:
REF*18*PLAN ID~
REF*6P*GROUP NUMBER*GROUP NAME~
REF*ALS*ALTERNATIVE ID~
REF*CLI*COVERAGEID~
REF*FO*FORMULARYID~
REF*IG*COPAYID~
REF*N6*BIN*PCN~
1 DTP02 is the date or time or period format that will appear in DTP03.
Comments:
Notes: *Surescripts recommends sending back the date range of the health plan benefit for this patient’s
coverage.
When using the DTP segment in the 2110C loop this date applies only to the 2110C Eligibility or
Benefit Information (EB) loop in which it is located.
If a DTP segment with the same DTP01 value is present in the 2100C loop, the date is overridden
for only this 2110C Eligibility or Benefit Information (EB) loop.
Example: DTP*291*RD8*20100101-20101231~
1 AAA01 designates whether the request is valid or invalid. Code "Y" indicates that the
code is valid; code "N" indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or application level and to
indicate what action the originator of the request transaction should take.
Use this segment to indicate problems in processing the transaction specifically related to
specific eligibility/benefit inquiry data contained in the original 270 transaction's subscriber
eligibility/benefit inquiry information loop (Loop 2110C).
Example: AAA*N**70*C~
1 MSG02 is not related to the specific characteristics of a printer, but identifies top of
page, advance a line, etc.
2 If MSG02 is "AA - Advance the specified number of lines before print" then MSG03 is
required.
Notes: *This free text field will be populated by Surescripts as a hint to the requester on what fields
would assist in identifying the patient. This is sent if patient is not found and one or more of the
following fields are missing; first name, last name, zip code or date of birth.
Under no circumstances can an information source use the MSG segment to relay information
that can be sent using codified information in existing data elements (including combinations of
multiple data elements and segments).
Example: MSG*Unable to find patient in Surescripts system. Supplying some of these fields will
help find a match: patient zip code~
Notes: Use this segment to identify the beginning of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
Example: LS*2120~
Notes: Use this segment to identify an entity by name and/or identification number. This NM1 loop is
used to identify a provider (such as the primary care provider), an individual, another payer, or
another information source when applicable to the eligibility response.
Example: NM1*SEP*2*SECONDARY PAYER NAME*****PI*PAYERPARTID~
Required when NM102 is “1" and NM103 is used. If not required by this
implementation guide, do not send.
O NM105 1037 Name Middle AN 1/25
Individual first name
Use this name only if available and NM102 is "1".
O NM107 1039 Name Suffix AN 1/10
Suffix to individual name
Use name suffix only if available and NM102 is "1"; e.g., Sr., Jr., or III.
O NM108 66 Identification Code Qualifier ID 1/2
Code designating the system/method of code structure used for
Identification Code (67)
PI Payer Identification
O NM109 67 Identification Code AN 2/80
Code identifying a party or other code
Use this code for the reference number as qualified by the preceding data
element (NM108).
Notes: Use this segment to identify the end of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
See X12 guide.
Example: LE*2120~
Notes: Use this segment to identify the end of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
Example: LE*2120~
Notes: Required when the subscriber is the person whose eligibility or benefits are being described and
the transaction is not rejected or if the transaction needs to be rejected in this loop. If not
required by this implementation guide, do not send.
See X12 Guide. Use this segment to begin the eligibility/benefit information looping structure.
The EB segment is used to convey the specific eligibility or benefit information for the entity
identified.
*If the previous EB loop – EB 30 was set to 6 for not active, then no other EB loops are required.
Example:
EB*1**88**RETAIL HEALTH PLAN NAME ~
EB*1**90**MAIL ORDER HEALTH PLAN NAME ~
EB*1****SPECIALTY HEALTH PLAN NAME ~
MSG*SPECIALTY PHARMACY~
EB*1****LTC HEALTH PLAN NAME ~
MSG*LTC~
1 DTP02 is the date or time or period format that will appear in DTP03.
Comments:
Notes: *Surescripts recommends sending back the date range of the health plan benefit for this patient’s
coverage.
When using the DTP segment in the 2110C loop this date applies only to the 2110C Eligibility or
Benefit Information (EB) loop in which it is located.
If a DTP segment with the same DTP01 value is present in the 2100C loop, the date is overridden
for only this 2110C Eligibility or Benefit Information (EB) loop.
1 AAA01 designates whether the request is valid or invalid. Code "Y" indicates that the
code is valid; code "N" indicates that the code is invalid.
Comments:
Notes: Use this segment when a request could not be processed at a system or application level and to
indicate what action the originator of the request transaction should take.
Use this segment to indicate problems in processing the transaction specifically related to
specific eligibility/benefit inquiry data contained in the original 270 transaction's subscriber
eligibility/benefit inquiry information loop (Loop 2110C).
Example: AAA*N**70*C~
Use this code for the reason why the transaction was unable to be
processed successfully. This may indicate problems with the system, the
application, or the data content.
15 Required application data missing
33 Input Errors
Use this code only when data is present in this transaction and no
other Reject Reason Code is valid for describing the error. Detail
of the error must be supplied in the MSG segment of the 2110C
loop containing this Reject Reason Code.
52 Service Dates Not Within Provider Plan Enrollment
53 Inquired Benefit Inconsistent with Provider Type
54 Inappropriate Product/Service ID Qualifier
55 Inappropriate Product/Service ID
56 Inappropriate Date
57 Invalid/Missing Date(s) of Service
60 Date of Birth Follows Date(s) of Service
61 Date of Death Precedes Date(s) of Service
62 Date of Service Not Within Allowable Inquiry Period
63 Date of Service in Future
69 Inconsistent with Patient's Age
70 Inconsistent with Patient's Gender
See X12 guide for additional codes.
M AAA04 889 Follow-up Action Code ID 1/1
Code identifying follow-up actions allowed
Use this code to instruct the recipient of the 271 about what action needs
to be taken, if any, based on the validity code and the reject reason code (if
applicable).
C Please Correct and Resubmit
N Resubmission Not Allowed
R Resubmission Allowed
W Please Wait 30 Days and Resubmit
X Please Wait 10 Days and Resubmit
Y Do Not Resubmit; We Will Hold Your Request and
Respond Again Shortly
1 MSG02 is not related to the specific characteristics of a printer, but identifies top of
page, advance a line, etc.
2 If MSG02 is "AA - Advance the specified number of lines before print" then MSG03 is
required.
Notes: *This free text is used for Specialty Pharmacy and LTC since there is not a service type code
available to use. The text SPECIALTY PHARMACY will indicate this EB loop is for Specialty
Pharmacy and the text LTC will indicate this is for Long Term Care.
Under no circumstances can an information source use the MSG segment to relay information
that can be sent using codified information in existing data elements.
See X12 guide.
Example: MSG*SPECIALTY PHARMACY~
MSG*LTC~
Notes: Use this segment to identify the beginning of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
See X12 guide.
Example: LS*2120~
Notes: Use this segment to identify an entity by name and/or identification number. This NM1 loop is
used to identify a provider (such as the primary care provider), an individual, another payer, or
another information source when applicable to the eligibility response.
See X12 guide.
Example: NM1*SEP*2*SECONDARY PAYER NAME*****PI*PAYERPARTID~
Example: NM1*13*2*PHARMACY ABC*****SV*NCPDPID~
Notes: Use this segment to identify the end of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
See X12 guide.
Example: LE*2120~
Notes: Use this segment to identify the end of the Subscriber Benefit Related Entity Name loop.
Because both the subscriber’s name loop and this loop begin with NM1 segments, the LS and
LE segments are used to differentiate these two loops. Required if Loop 2120C is used.
Example: LE*2120~
Notes: Use this segment to mark the end of a transaction set and provide control information on the
total number of segments included in the transaction set.
Example: SE*52*0001~
1 The data interchange control number GE02 in this trailer must be identical to the same
data element in the associated functional group header, GS06.
Comments:
1 The use of identical data interchange control numbers in the associated functional
group header and trailer is designed to maximize functional group integrity. The control
number is the same as that used in the corresponding header.
Introduction
The purpose of this standard is to define the control structures for the electronic interchange of one
or more encoded business transactions including the EDI (Electronic Data Interchange) encoded
transactions of Accredited Standards Committee X12. This standard provides the interchange
envelope of a header and trailer for the electronic interchange through a data transmission, and it
provides a structure to acknowledge the receipt and processing of this envelope.
Identification code published by the sender for other parties to use as the
receiver ID to route data to them; the sender always codes this value in the
sender ID element
*The Sender Participant ID. Participant ID is the Surescripts system
Participant ID.
M ISA07 I05 Interchange ID Qualifier ID 2/2
Qualifier to designate the system/method of code structure used to
designate the sender or receiver ID element being qualified
ZZ Mutually Defined
M ISA08 I07 Interchange Receiver ID AN
15/15
Identification code published by the receiver of the data; When sending, it is
used by the sender as their sending ID, thus other parties sending to them
will use this as a receiving ID to route data to them
*The Receiver Participant ID. Participant ID is assigned by Surescripts.
M ISA09 I08 Interchange Date DT 6/6
Date of the interchange
*Date format YYMMDD required.
M ISA10 I09 Interchange Time TM 4/4
Time of the interchange
*Time format HHMM required.
M ISA11 I65 Repetition Separator 1/1
Type is not applicable; the repetition separator is a delimiter and not a data
element; this field provides the delimiter used to separate repeated
occurrences of a simple data element or a composite data structure; this value
must be different than the data element separator, component element
separator, and the segment terminator
*Surescripts recommends using Hex 1F.
M ISA12 I11 Interchange Control Version Number ID 5/5
This version number covers the interchange control segments
00501 Draft Standards for Trial Use Approved for Publication by X12
Procedures Review Board through October 2003
M ISA13 I12 Interchange Control Number N0 9/9
A control number assigned by the interchange sender
*A unique number assigned by the sender. Used to communicate from the
receiver back to the sender to identify this transaction.
M ISA14 I13 Acknowledgment Requested ID 1/1
Code sent by the sender to request an interchange acknowledgment (TA1)
* No TA1s are returned for TA1s
0 No Acknowledgment Requested
Notes: *Surescripts only supports the TA1 for errors. It is not sent as an acknowledgement for
successful messages.
All fields must contain data.
This segment acknowledges the reception of an X12 interchange header and trailer from a
previous interchange. If the header/trailer pair was received correctly, the TA1 reflects a valid
interchange, regardless of the validity of the contents of the data included inside the
header/trailer envelope.
Example: TA1*000000905*940101*0100*A*000~
Refer to the 005010X231A1 guide for purpose and scope of this transaction.
Heading:
Detail
AK1 Functional Group Response Header M 1
Trailer
SE Transaction Set Trailer M 1
GE Functional Group Trailer M 1
IEA Interchange Control Trailer M 1
The 999 Acknowledgment shall not be acknowledged, thereby preventing an endless cycle of
acknowledgments of acknowledgments. Nor shall an Implementation Acknowledgment be sent to
report errors in a previous Implementation Acknowledgment.
There is only one Implementation Acknowledgment Transaction Set per acknowledged functional
group.
Only one acknowledgement should be generated for a functional group unless mutually agreed
upon.
AK1 is used to respond to the functional group header and to start the acknowledgment for a
functional group. There shall be one AK1 segment for the functional group that is being
acknowledged.
The Implementation Acknowledgement is generated at the point of translation, intended for the
originator (not any intermediate parties).
The Functional Group Header Segment (GS) is used to start the envelope for the Implementation
Acknowledgment Transaction Sets. In preparing the functional group of acknowledgments, the
application sender’s code and the application receiver’s code, taken from the functional group
being acknowledged, are exchanged; therefore, one acknowledgment functional group responds
to only those functional groups from one application receiver’s code to one application sender’s
code.
AK2 is used to start the acknowledgment of a transaction set within the received functional group.
The AK2 segments shall appear in the same order as the transaction sets in the functional group
that has been received and is being acknowledged.
The data segments of this standard are used to report the results of the syntactical analysis of the
functional groups of transaction sets; they report the extent to which the syntax complies with the
standards or proper subsets of transaction sets and functional groups as expressed in compliant
implementation guides. They do not report on the semantic meaning of the transaction sets (for
example, on the ability of the receiver to comply with the request of the sender).
The CTX Segment shall be used to disambiguate a reported error that is dependent on context.
If any implementation guide errors have been reported in IK3 or IK4, then code I5 shall be reported
in the IK5 Segment.
0 No Acknowledgment Requested
1 Interchange Acknowledgment Requested
M ISA15 I14 Usage Indicator ID 1/1
Code to indicate whether data enclosed by this interchange envelope is
test, production or information
P Production Data
T Test Data
M ISA16 I15 Component Element Separator AN 1/1
Type is not applicable; the component element separator is a delimiter and
not a data element; this field provides the delimiter used to separate
component data elements within a composite data structure; this value
must be different than the data element separator and the segment
terminator.
*Surescripts recommends using Hex 1C.
3 The data interchange control number GS06 in this header must be identical to the same
data element in the associated functional group trailer, GE02.
Comments:
1 A functional group of related transaction sets, within the scope of X12 standards,
consists of a collection of similar transaction sets enclosed by a functional group header
and a functional group trailer.
Notes:
1 The transaction set identifier (ST01) is used by the translation routines of the
interchange partners to select the appropriate transaction set definition (e.g., 810 selects
the Invoice Transaction Set).
Comments:
This element contains the same value as GS08. Some translator products
strip off the ISA and GS segments prior to application (ST/SE) processing.
Providing the information from the GS08 at this level will ensure that the
appropriate application mapping is utilized at translation time.
1 AK101 is the functional ID found in the GS segment (GS01) in the functional group
being acknowledged.
2 AK102 is the functional group control number found in the GS segment in the functional
group being acknowledged.
Comments:
1 AK201 is the transaction set ID found in the ST segment (ST01) in the transaction set
being acknowledged.
2 AK202 is the transaction set control number found in the ST segment in the transaction
set being acknowledged.
Notes: Required when an error is present in a transaction set contained in the functional group to which
this 999 transaction set is responding.
Comments:
Notes: Required when an error is present in the transaction set identified in this AK2
loop and the location of the data segment containing the error can be identified
by the submitter of this 999.
1 In no case shall a value be used for AK404 that would generate a syntax error, e.g., an
invalid character.
Notes: Required when the error in the segment described in the IK3 segment applies to a
data element and the location of the data element containing the error can be
identified by the submitter of the 999.
Comments:
Data Element Summary
1 If AK901 contains the value "A" or "E", then the transmitted functional group is
accepted.
1 The data interchange control number GE02 in this trailer must be identical to the same
data element in the associated functional group header, GS06.
Comments:
1 The use of identical data interchange control numbers in the associated functional
group header and trailer is designed to maximize functional group integrity. The control
number is the same as that used in the corresponding header.
Note: In the examples, line breaks are used at the end of the segments for display purposes –
live transactions should not contain line breaks.
BHT 3920394930203 The Transaction reference number that ties the request to the response.
HL1:NM1 SURESCRIPTS LLC Source does not know PBM/payer so they put in Surescripts.
Note: Surescripts has located the patient and populated the PBM Unique Member ID.
ISA*00* *01*PW12345PBM*ZZ*S00000000000001*ZZ*PBM123
*011217*0309*^*00501*000000001*1*P*>~
GS*HS*S00000000000001*PBM123*20011217*16150000*1*X*005010X279A1~
ST*270*0001*005010X279A1~
BHT*0022*13*3920394930203*20091217*16150000~
HL*1**20*1~
NM1*2B*2*PBM COMPANY*****PI*PBM123~
HL*2*1*21*1~
NM1*1P*1*JONSON*TIM*T**M.D.*XX*3334444555~
REF*EO*POCID~
N3*55 HIGH STREET~
N4*SEATTLE*WA*98123~
HL*3*2*22*0~
NM1*IL*1*CROSS*DAVID*M***MI*DD145645645601~
N3*6785 LAUGHALOT LANE~
N4*TRENTON*NJ*08608~
DMG*D8*19720910*M~
DTP*291*D8*20150206~
EQ*30~
SE*17*0001~
GE*1*1~
IEA*1*000000001~
BHT 3920394930203 The Transaction reference number that ties the request to the
response.
HL3:NM1 DAVID CROSS David Cross with PBM Unique Member ID DD145645645601
DD145645645601
BHT 3920394930203 The Transaction reference number that ties the request to the
response.
HL2:NM1 TIM JONSON: 3334444555 Dr. Jonson with NPI number 3334444555.
HL3:NM1 DAVID CROSS: David Cross with PBM Unique Member ID DD145645645601.
DD145645645601
HL3:REF FO Formulary ID
HL3:REF IG Copay ID
The rest of this message is the same as the prior message Eligibility Response (from PBM/payer to
Surescripts).
IEA*1*000000001~
BHT 3920394930203 The Transaction reference number that ties the request to the
response.
HL2:NM1 Tim Jonson : 3334444555 Dr. Jonson with NPI number 3334444555.
HL3:NM1 DAVID CROSS: David Cross with PBM Unique Member ID DD145645645601
DD145645645601
HL3:REF FO Formulary ID
HL3:REF IG Copay ID
The system (Surescripts) will store the request until the receiver responds to the message or until the specified time has elapsed. If the
timeout elapses before the message is processed, an error message will be returned to the sender as the reply (explained below). If the
sender has timed out, the message is discarded.
The Eligibility (270/271) message is a message where Surescripts is a defined customer in the process and adds processing value in the
middle. For that reason, additional error processing needs to be handled. The following section outlines the life of the Eligibility message
with the expected responses to different flows of events. It is broken down into the following stages:
l Surescripts receives the 270 from the requesting party.
l Surescripts processes the 270, identifying the coverage(s).
l Surescripts passes the 270 on to the defined source. (If multiple coverages are found, multiple 270’s are sent.)
l The source processes the request(s) and returns a 271 response.
l Surescripts combines the response(s) into one envelope.
l Surescripts passes the response back to the original requester.
5.1 SURESCRIPTS RECEIVES THE 270 FROM THE REQUESTING PARTY (PROVIDER VENDOR)
Event Location Event Surescripts Error Description Requestor Follow-
Id Response Up
1.0 Connectivity Cannot get response from Surescripts None None Investigate and
Error contact Surescripts
production support
1.1 Translation Surescripts cannot identify the NAK A Negative Acknowledgement (NAK) with a message Investigate and
message or does not have enough info that says: “TRANSACTION CANNOT BE IDENTIFIED contact Surescripts
to create a TA1 NOR PROCESSED” production support
1.2 Translation Translator cannot identify the file (bad TA1 Refer to X12 005010 Data Element Dictionary for Investigate and
ISA or IEA segments) but can produce acceptable codes contact Surescripts
a TA1 response production support
1.3 Translation EDI Format has Fatal errors - 999 Refer to the 999 spec for a complete list of errors Investigate and
At any Level: contact Surescripts
Data Segment production support
Data Element
Transaction Set
Functional Group
2.2 Source Requester puts bad data in the source segment. This should be 271 Loop ID 2000A C – Please correct
Segment Surescripts’ Participant ID. AAA – Error 79 and resubmit
Loop ID – Invalid participant
2000A identification
2.3 Source Requester is not set up to send eligibility message to Surescripts. 271 Loop ID 2000A N – Resubmission
Segment AAA – Error 41 not allowed
Loop ID – Authorization/Access
2000A Restrictions
2.4 Source Requester does not have a contract set up with the PBM/payer that 271 Subscriber Segment Loop N – Resubmission
Name was determined through patient lookup or the receiver is not ID 2100A not allowed
Segment authorized to receive an eligibility request. AAA – Error 75 -
Loop ID – Subscriber/Insured Not
2100A Found
2.5 Subscriber Surescripts cannot find the desired patient 271 Subscriber Segment Loop N – Resubmission
Name ID 2100C not allowed
Segment AAA – Error 75 -
Loop ID Subscriber/Insured Not
2100C Found
2.5a Subscriber Surescripts cannot find the desired patient 271 Subscriber Segment Loop C – Please correct
Name One of the demographic fields is missing ID 2100C and resubmit (Hint
Segment AAA – Error 75 – is sent back)
Loop ID Subscriber/Insured Not
2100C Found. Hint is in MSG
segment.
2.6 Dependent Surescripts cannot find the desired patient 271 Dependent Segment Loop N – Resubmission
Name ID 2100D not allowed
Segment AAA – Error 67 - Patient Not
Loop ID Found
2100D
2.6a Dependent Surescripts cannot find the desired patient 271 Dependent Segment Loop C – Please correct
Name One of the demographic fields is missing ID 2100D and resubmit (Hint
Segment AAA – Error 67 - Patient Not is sent back)
Loop ID Found
2100D
2.7 Dependent Version translation fails for outgoing 270 271 Dependent Segment Loop C – Please correct
Request ID 2110D and resubmit
Validation AAA – Error 15 - Required
Segment application data missing
Loop ID MSG – Details of Error
2110D
3.1 PBM/payer Some failure at PBM/payer NAK Text Error Investigate and Source Segment S – Do not resubmit;
Internal where they cannot produce a Message create AAA error Loop 2000A Inquiry initiated to a
TA1 or 999 for requestor third party.
AAA – Error 42
Unable to respond at
current time
AAA – Error 42
Unable to
respond at
current time
Event Location Event PBM/payer PBM/payer Error Description Surescripts Follow Provider Requestor Follow Up
Id Response up Vendor Error
4.1 Translation EDI Format 999 Refer to the 999 spec to Investigate and create Source S – Do not resubmit;
Initiation has Fatal determine AK level and AAA error for Segment Inquiry initiated to a third
errors - appropriate error requestor Loop 2000A party.
At any Level:
Data AAA – Error 42
Segment Unable to
Data respond at
Element current time
Transaction
Set
Functional
Group
Generic Error messages for the following messages would result in a 42 within the segment where the error occurred.
Event Location Event PBM/payer PBM/payer PBM/payer Surescripts Provider Vendor Requestor
Id Response Error Follow up Follow up Error Follow Up
Description
5.0 Source Any issue that caused the process to 271 Source Investigate None Source Segment P – Please
Segment halt during processing Segment and contact Loop 2100A Resubmit
Loop ID Loop 2100A Surescripts Original
production AAA – Error 42 Transaction
2100A AAA – Error 42 support if
(Note: Unable to respond
Information Unable to additional at current time
Source is respond at information
the current time or
PBM/payer clarification
info that is needed.
was
supplied by
Surescripts)
Event Location Event PBM/payer PBM/payer PBM/payer Surescripts Provider Vendor Requestor
Id Response Error Follow up Follow up Error Follow Up
Description
5.1 Source PBM/payer validates the Source 271 Source Investigate Investigate Source Segment S – Do not
Segment Identifier to make sure it’s their own. Segment and contact and Loop 2100A resubmit;
Loop ID Surescripts puts in wrong identifier Loop 2100A Surescripts translate to Inquiry
production AAA system AAA – Error 79 initiated to a
2100A AAA – Error 79 support
(Note: error for Invalid participant third party
Information Invalid requestor Identification
Source is participant
the Identification
PBM/payer
info that
was
supplied by
Surescripts)
5.2 Source PBM/payer validates the source 271 Source Investigate Investigate Source Segment S – Do not
Name contact information. Surescripts puts Segment and contact and Loop 2100A resubmit;
Segment in wrong PBM/payer contact name, Loop 2100A Surescripts translate to Inquiry
Loop ID etc. production AAA system AAA – Error 79 initiated to a
2100A AAA – Error 79 support error for Invalid participant third party
(Note: Invalid requestor Identification
Information participant
Source is Identification
the
PBM/payer
info that
was
supplied by
Surescripts)
Event Location Event PBM/payer PBM/payer PBM/payer Surescripts Provider Vendor Requestor
Id Response Error Follow up Follow up Error Follow Up
Description
5.3 Receiver PBM/payer validates the receiver. 271 Receiver None None Receiver Segment C – Please
Segment PBM/payer wants more fields Segment Loop Loop ID 2100B correct and
Loop ID populated than what is required by ID 2100B AAA – Error 15 resubmit
2100B Surescripts; i.e. – the POC is not AAA – Error 15 Surescripts
(This loop identified. Required
Required application data recommends
contains this value,
the application missing
data missing however a
physician PBM/Payer
info and the might send a
Physician different value
System
info)
5.4 Receiver PBM/payer validates receiver. 271 Receiver None None Receiver Segment N–
Segment PBM/payer cannot return eligibility Segment Loop Loop ID 2100B Resubmission
Loop ID for this patient because of the ID 2100B AAA – Error 41 – not allowed
2100B patients group or plan. AAA – Error 41 Authorization/ Surescripts
(This loop – recommends
contains Access restrictions
Authorization/ this value,
the however a
physician Access
restrictions PBM/Payer
info and the might send a
Physician different
System value
info)
Event Location Event PBM/payer PBM/payer PBM/payer Surescripts Provider Vendor Requestor
Id Response Error Follow up Follow up Error Follow Up
Description
5.5 Receiver PBM/payer validates the physician 271 Receiver None None Receiver Name C – Correct
Name Identifier Name Segment Loop ID and Resubmit
Segment Segment Loop – 2100B Surescripts
Loop ID – ID – 2100B Physician Loop recommends
2100B AAA – Error 43 this value,
AAA – Error 43
Invalid/Missing however a
Invalid/Missing PBM/Payer
Provider Provider
Identification might send a
Identification different value
5.8 Subscriber Patient found at Surescripts, but not 271 AAA – Error 75 None None AAA – Error 75 - S – Do not
Name Loop in the PBM/payer’s system (could be – Subscriber / Subscriber/Insured resubmit;
ID 2100C caused by a difference between Insured Not Not Found Inquiry
Surescripts and the PBM/payer’s Found initiated to a
patient databases or caused by the third party
patient demographic mismatch
between requestor and PBM/payer).
5.11 Dependant Patient found at Surescripts, but not 271 Dependant None None Dependant Name S – Do not
Name Loop in the PBM’s system (could be Name Segment Loop ID resubmit;
ID 2100D caused by a difference between Segment Loop 2100D AAA – Inquiry
Surescripts and the PBM’s patient ID 2100D AAA Error 67 – Patient initiated to a
databases or caused by the patient – Error 67 – not found third party
demographic mismatch between Patient not
requestor and PBM). found
6.1 Translation EDI Format 999 Refer to the 999 Investigate Investigate and Source S - Do not
of 271 from has Fatal spec to and contact translate to Segment resubmit;
PBM/payer errors - determine AK Surescripts AAA system Loop Inquiry
At any Level: level and production error for 2100A initiated to a
Data appropriate error support requestor third party
Segment AAA –
Data Error 42
Element Unable
Transaction to
Set respond
Functional at
Group current
time
Error Description
Source Segment Generic error message for all errors that occurred that were not caused by the Physician System.
Loop 2000A
AAA – Error 42
Receiver Segment If the provider vendor fails to give enough information in the message to identify themselves or the physician to the
Loop ID- 2100B PBM/payer.
AAA – Error 15
Source Segment The sending customer is not set up to send an eligibility message.
Loop ID- 2000A
AAA – Error 41
Error Description
Subscriber Name Surescripts determines that there is no contract between the provider vendor and the PBM/payer. Coordinate with Event
Segment Loop ID 2100C ID 2.4 above.
AAA – Error 75
Receiver Segment If the PBM/payer determines that they cannot return information for this patient based off of the plan or group.
Loop ID- 2100B
AAA – Error 41
Receiver Segment If the PBM/payer requires a DEA or state license number for the prescribing office but the provider vendor does not
Loop ID- 2100B provide it.
AAA – Error 43
Subscriber Name Segment Loop Surescripts cannot find the patient in the MPI.
ID
AAA – Error 75
6.1 INTRODUCTION
PBM/payers use the ID Load message to provide Surescripts with their member roster to populate
the Surescripts Master Patient Index (MPI). Surescripts uses these files from the PBM/payers to
establish uniqueness for individuals across PBM/payers. Surescripts’ search process uses
demographics to identify a patient and then uses the PBM/payer's unique member ID to
communicate with the PBM/payers.
Surescripts responds to PBM/payer ID Loads with a Member Directory Response File indicating
the status of each load, including details at both the file and detail level. Information provided by
Surescripts indicates if a file loaded successfully, loaded with errors or was not loaded at all.
Affected records are detailed in the response file which indicates the specific reason each line had
an error or warning.
Surescripts will also provide statistical data about the processing for a given Delimited File received
from a PBM/payer (not provided for those that submit flat files). The Member Directory Response
Summary File will allow PBM/payers new insight into the processing of MPI files, and will allow
them to better determine whether all of the records sent to Surescripts were loaded as expected.
5. The PBM/payer creates an update file to keep the Surescripts MPI internal directory up-to-
date.
Note: Updates should only be sent if there is a change in the members’ demographic
data that Surescripts has defined in the file layout. If other member information not
contained in the file layout changes, no update should be sent.
Note: For flat fixed width files with more than 10 million lives, customers should notify
Surescripts to ensure the file can be processed.
Transaction Time File was created (HHMMSSDD) where H = hours (00-23), TM 60 67 Yes
Time M = minutes (00-59), S = integer seconds (00-59) and DD = 8/8
decimal seconds (00-99)
Detail Info
Record Number for this detail row in the AN 2 11 Yes Number that will be
Sequence message 1/10 utilized in the response
Number document.
Member Date that the member is no DT 222 229 No If multiple dates are
Expiration Date longer eligible (D8) 8/8 available (i.e. Term Date,
Expired Date, End Date),
use the earliest date of
the three.
Address Line 1 First Line of the Address (No C/O AN 344 398 No
type info) 1/55
Gender Member Gender (M,F,U, Blank) AN 758 758 No If gender not given, a
1/1 blank space will be used.
Trailer Info
Sender ID ID of Surescripts An 32 61
3/30
Incoming Date Original Incoming File was DT 72 79 Echoes the date from the
Transaction Date created (D8 - CCYYMMDD) 8/8 incoming file.
Incoming Time Original Incoming File was TM 80 87 Echoes the time from the
Transaction created (HHMMSSDD) 8/8 incoming file.
Time
Transaction Date Date Response was created (D8 - DT 88 95 The date that Surescripts
CCYYMMDD) 8/8 processed the file in GMT.
Transaction Time Response was created TM 96 103 The time that Surescripts
Time (HHMMSSDD) 8/8 processed the file in GMT.
Transaction Code Explaining the status of the load AN 104 105 01-17
Response 2/2 See Member Directory Codes
on page 202
Detail Info
PBM Unique ID as AN 12 71
Unique ID identified by the 1/60
for the PBM/payer for the
member member
Trailer Info
Detail Info
Trailer Info
Note: If the source file had an extension, the extension remains and the .rsp is added after it.
For example: NewPatient_TestingPBMC_MPI.1450188243095.txt.rsp
Header
Recipient Password assigned by AN Yes Note: If the inbound MPI file included an
Participant Surescripts for accessing 10/10 invalid Sender ID, Sender Participant
Password the PBM/payer system. Password, Transmission Date, or
Transmission time, this field in the response
file will be populated with: “INV_HEADER”.
Load Status Code Explaining the AN Yes See Member Directory Codes on page 202
status of the load. 2/2
Detail Info
Error Code Describes error for this row AN Yes See Member Directory
3/3 Codes on page 202
W - Signifies a Warning
E - Signifies a Error
Trailer Info
Note: The PBM/payer needs to request an opt-in from Surescripts in order to receive this .smd
file.
Example: erx_RXHUB_member_directory_02082015_
201919.1423456259313.smd
5 Incoming File Date time that Surescripts received the AN 12/05/2014 04:34:02
Received inbound file. 24 hour time used - UTC 19/19
Datetime in MM/DD/YYYY HH:MM:SS
format.
6 Total Number Number of active lives in the MPI before N Yes 10000
of Active Lives processing. 1/12
in MPI Before Note: Number of active lives reflects the
Processing customer's requested lag days. For
example, if the customer's lag day value is
7, all members in their MPI file are
considered active for 7 days beyond the
Member Expiration date provided by the
customer in the MPI file.
7 Total Records Number of patient records in the MPI file. N Yes 1000
in File 1/12
21 Total Number Number of active lives in the MPI after N Yes 10300
of Active Lives processing. 1/12
in MPI After After processing the new file, the number of
Processing records where the Member Expiration Date
is >= to today's date in the Surescripts
system.
22 Processing Date time the new MPI file began AN Yes 12/05/2014 05:04:00
Start Time processing in 24 hour clock - UTC Datetime 19/19
in MM/DD/YYYY HH:MM:SS format
23 Processing Date time the new MPI file began AN Yes 12/05/2014 07:16:02
End Time processing in 24 hour clock - UTC Datetime 19/19
in MM/DD/YYYY HH:MM:SS format
Code Description
01 File loaded correctly.
Code Description
E01 Missing PBM Unique Member ID, record not loaded.
W08 Duplicate PBM Unique Member ID found in update file, record not loaded. This warning will only occur
for the membership update process. If a duplicate PBM Unique Member ID is found in the initial
membership load, no records are loaded and the entire file is rejected.
7.1 INTRODUCTION
During the prescribing process, provider vendor systems typically use the information retrieved
through the Formulary and Benefit Data Load service to inform prescribers of the following:
l Drugs that the patient’s benefit plan considers to be “on formulary” (Formulary Status), and
alternative medications for those which are not preferred (Alternatives);
l Limitations that may impact whether the patient’s benefit will cover a drug being considered
(Coverage);
l The copay for one drug option versus another.
Note: Provider vendors should refrain from displaying unnecessary information to prescribers,
(e.g. NDC numbers, Formulary IDs, Coverage IDs, PBM Unique Member IDs etc.).
This section provides an overview of the information that can be communicated using the
Formulary and Benefit Data Load service.
Note: The prior authorization function that is part of the standard is not explained in this guide.
The PA lists are not complete in this version and NCPDP has adopted specific messages to
handle prior authorization work flow.
Note: The cross reference function that is part of the standard is not explained in this guide
because it is not supported in Surescripts’ business model, since eligibility check is always
performed prior to the formulary and benefit check.
A drug formulary is a list of prescription drugs published by a health plan, pharmacy benefit
manager, payer, or provider. Each drug within a formulary is assigned a "formulary status", which is
an indicator of a formulary publisher’s preference for the drugs on the formulary relative to other
drugs in the same or a related therapeutic class. Formulary publishers periodically publish revisions
to their drug formularies as new clinical and cost issues influence their preferences.
Note: Payers determine a drug’s formulary status by considering its efficacy and value
compared to other drugs in the same therapeutic class (a grouping of medications known to be
effective for a particular diagnosis). Those drugs with a higher rating obtain a higher formulary
status.
If a therapeutic class contains multiple drugs, those drugs with a higher formulary status are
commonly referred to as being "preferred" to those with lower ratings.
Formulary Status:
U = Unknown Status
1 = Non-Formulary
2 = On Formulary/Non-Preferred
If formulary status 2 or less is sent, the provider vendor will need to check alternatives (whether
from the alternatives file or from the therapeutic alternatives as defined by the drug database).
Payers can flag drugs that the benefit simply does not cover at any level. These drugs are referred
to as “non-reimbursable,” meaning that the patient bears full responsibility for their cost.
0 = Non-Reimbursable
If a drug is not listed in the file, a Formulary Status can be specified by using the Non-Listed
Formulary Status fields in the header (e.g. Non-listed Prescription Brand Formulary Status, Non-
Listed Prescription Generic Formulary Status, Non-Listed Brand Over The Counter Formulary
Status etc.).
It is possible for drugs within the same therapeutic class to have a different formulary status. For
example, there may be several non-reimbursable drugs as well as five formulary drugs; three of
which are a preferred level ‘3’ and two designated as a preferred level ‘4’. Note that the “most
preferred” products in this example are the two level ‘4’ products.
Note: Payer formulary data, including copay and specific coverage factors, is at the plan level –
not a real-time check at the patient level. Specific nuances such as remaining deductibles or a
Prior Authorization requirement may still apply for a patient at time of prescription filling.
Payers can explicitly state alternatives for specific drugs. These payer-specified alternatives are
communicated in Alternatives lists, which contain the following information:
l Source drug: the off-formulary drug
l Alternative drug: the preferred alternative
l Alternative drug preference level: if there are multiple preferred alternatives, the payer’s
order of preference (higher number equals greater preference)
A payer may send multiple quantity limits, step medications, text messages and resource links for
the same drug.
For instance, a flat $10 patient copay may apply to one drug, and a 15% copay may apply to
another. One payer may state copay exclusively in terms of copay tiers, where lower tiers mean a
lower patient copay. The publisher determines what is appropriate to send, based on their benefit
design.
Payers can communicate the following copay terms to provider vendor systems using the file load:
l Flat copay (dollar amount)
l Percentage copay
l Combination flat / percentage
l Copay tier (tier of given drug versus the number of tiers)
l Minimum and maximum copay
l Days supply per stated copay
l Copay differences by type of pharmacy
l Copay specific text message (via the text message Coverage list type)
Summary-level copay. Often, a class of medications will receive the same copay (generics, for
example). Payers can state a summary-level copay rule, based on a drug’s Formulary Status and
its type (Branded, Generic, Over The Counter, Supply, or Compound). Any drug with the
characteristics stated in the summary-level rule receives the copay defined in the rule.
Drug-specific copay. Exceptions to these summary-level rules will also frequently exist. To
accommodate these exceptions, Payers can provide drug-level copays. These copays apply to
specific drugs, as identified with one of the supported drug identifiers or a representative 11-digit
NDC ID.
7.3.5 ROLL UP
Formulary information is provided to Surescripts by all PBM/payers customers. This data identifies
formulary status, coverage, and copay data for the payer’s active members. Today, most
PBM/payers are providing formulary files at the NDC-11 packaged drug level. All provider vendors
prescribe at a dispensable drug level (drug name, form, and strength). In order to display formulary
correctly the data must be rolled up to a dispensable drug level. This process involves Surescripts
performing this roll-up feature before the data is supplied to the clinical vendor. Surescripts will
select a representative NDC from the drug database vendor and roll all formulary information to
this level.
During the roll-up process, Surescripts will identify any discrepancies in the files provided. Reports
will be generated and sent back to the PBM/Payer that will indicate conflicts in formulary status,
coverage factors, and copay details. The reports will be made available to the PBM/payer for
periodic download and review.
This may not be done in all cases (PBM/payer has to opt in, and the drug database vendor needs to
support Roll Up.)
7.4.2 RXNORM
RxNorm provides standard names for clinical drugs (active ingredient + strength + dose form) and
for dose forms as administered to a patient. It provides links from clinical drugs, both branded and
generic, to their active ingredients, drug components (active ingredient + strength), NDC codes
and related brand names. RxNorm links its names to many of the drug vocabularies commonly
used in pharmacy management and drug interaction software. By providing links between these
vocabularies, RxNorm can mediate messages between systems not using the same software and
vocabulary.
l Formulary Status
l Product Type
Note: This search may yield multiple record matches, indicating there are multiple preferred
alternatives for the drug.
Method Two: Use a third-party drug classification system to determine formulary alternatives
1. Note the Not Reimbursable, Non Formulary, or On Formulary (Not Preferred) medication’s
NDC(s) (“drug ID”).
2. Reference a third-party drug classification scheme to locate medications within the same
drug class. Within these medications, reference the patient’s Formulary Status List to identify
preferred alternatives.
Note: The third party classification system mentioned above is a Surescripts approved drug
database.
Formulary Publishers
Within the Formulary and Benefit Data Load process, Formulary Publishers:
l Load and maintain updated formulary information (formulary drugs, status, and alternatives)
at Surescripts.
l Maintain a formulary distribution list at Surescripts that indicates which provider vendors
have access to which plan/group formulary and benefit lists.
Formulary Retrievers
Formulary Retrievers download the formulary information from the Surescripts WebDAV server
and integrate it into their point-of-care application. With this information, prescribers can check a
prescription drug against a patient’s formulary, view coverage/copay limitations, and consider
alternative medications.
Surescripts
Surescripts’ role in the Formulary and Benefit Data Load process is to:
l Facilitate the distribution of formulary and benefit lists between the Formulary Publishers and
Retrievers.
l Document and communicate the Formulary and Benefit Data Load specification, process,
and usage guidelines.
l Validate the formulary and benefit files against the current Surescripts specification.
l Certify the provider vendor's retrieval of the formulary and benefit lists.
1. The Formulary Publisher develops their formulary and benefit file layout according to
Surescripts’ standard Formulary and Benefit Data Load specification.
2. The Formulary Publisher sends Surescripts a formulary and benefit file on a defined
schedule that contains one or more of the formulary and benefit list types (e.g. formulary
status and/or alternatives). The Formulary and Benefit Data is electronically transmitted to
Surescripts via the selected file transfer method as a single physical file.
3. Surescripts performs a physical validation of the file.
4. Surescripts sends the Formulary Response File back to the Publisher indicating the
Formulary and Benefit Data load status. The Response file indicates any errors encountered
in the load process.
5. The Formulary Publisher provides Surescripts with a Formulary Distribution List. The
Formulary Distribution List indicates which customers have access to which formulary and
benefit lists.
6. Surescripts separates the file into individual formulary and benefit lists, processing each with
its own list identifier. If there are no errors the lists are loaded into the database.
6. During the prescribing process, the physician views patient formulary and benefit information
within the POC application to verify that a particular medication is on the patient’s formulary
and covered under the patient’s plan. If not, the prescriber can view “preferred” alternative
drugs within that medication’s therapeutic class.
Update Process:
After receiving the formulary and benefit files from the Formulary Publisher, Surescripts checks
each section of the file to validate that the data is formatted correctly. If any of the lists were
previously loaded in the database, the new lists replace the existing ones, thereby updating the
information. Any new information not previously loaded in the database is added. Updates will be
processed even if the file contains validation errors. This process is outlined in the Reject Code
Summary on page 258.
When a Formulary Publisher would like to notify its partners of the discontinuation of a list, they
send an action code of “D” (Delete) within the list header and include no detail rows in the list. The
Formulary Retriever responds by removing the previously loaded list with that ID.
Note: If the Formulary Publisher wants the Formulary Retriever to be notified of the delete, they
cannot remove access to the deleted list within the distribution list.
With the Full Replace process, the new formulary and benefit file overwrites all the previously
loaded lists from that Formulary Publisher. Full loads will be processed even if the file contains
validation errors. This process is outlined in the Reject Code Summary below.
l Full replace option should only be used when all list types can be sent to Surescripts in one
physical file.
l Any formulary and benefit list previously loaded in the database that is not included in the
new file is purged from the system. There will be a delay removing these lists as the lists will
be removed when the next full load is successful. Removal of a list is always one full load
behind.
File Naming
The individual formulary and benefit lists are named according to the value specified within the
formulary and benefit list file header (the “Formulary ID” field). The field is a text field; it can only
contain the following characters (A-Z, a-z, Numeral 0-9, period “.”, and a dash “-“). This also
applies to Alternative ID, Coverage ID, Copay ID, and Classification ID as these fields are also
used to create file names. The Formulary ID can be up to 10 characters long. The list names are
tied to each Participant’s ID; therefore, if two Formulary Publishers use the same file name, the
Participant ID is what distinguishes them within the system.
Note: Underscores are not allowed in the List ID portion of the file name.
Each list is available to Formulary Retrievers on the WebDAV server in a directory respective to the
list’s type. The file name contains the date the list was extracted from the Publisher’s system. The
date the list was made available through Surescripts is displayed as date modified. For coverage
and copay lists the first two characters of the file name are the type of coverage list.
Directory Structure
The WebDAV environment contains a directory structure similar to the examples below. The actual
appearance may vary slightly due to the different WebDAV client interfaces that Formulary
Retrievers may use. The three examples in this section use the following customer names:
l ABC - ABC Corporation (Health Plan)
l BMI - Benefit Management, Inc. (PBM/payer)
Note: This structure assumes that the Formulary Retriever has access to files from the
following Formulary Publishers: “ABC Corporation”, and “Benefit Management, Inc.”.
ABC
ALT
FSL
COP
COV
BMI
FSL
COV
Access rights are tracked at the individual list level. For example, a particular Formulary Retriever
may be given access to Formulary Status Lists 1111, 2222, and 3333, while another Formulary
Retriever is given access for Alternative List 4444.
Publishers can use an “All customers” wildcard in the distribution list instead of a particular
Technology Provider Participant ID to indicate that all Technology Providers that have a formulary
contract relationship with the Formulary Publisher can access a particular list. In the same way, an
“All lists” wildcard may also be used to indicate that the named customer has access to all lists for
that Publisher. Wildcards take precedence over all other entries in the distribution list.
Surescripts updates its system according to the information provided by the Publisher in the
distribution list and validates that all Technology Providers included in the list have Formulary
Contract Relationships with the Publisher. The Surescripts system also determines what has
changed since the last distribution and identifies the specific access changes (adds and deletes)
that are reflected in the list.
When an update has been made to the list, Surescripts re-runs the distribution process, treating the
Publisher’s complete, current set of formulary information as a new load. If a particular Technology
Provider has gained access to a file due to the Publisher’s new access rules, Surescripts distributes
the most recent version of the list to them. If a Technology Provider loses access to a file in the new
rules, Surescripts removes the files from the customer’s folder. Surescripts also records distribution
lists that have references to lists that do not exist (for example, in cases where lists have been
deleted). For more information, refer to File Processing Options on page 214.
The Formulary Retriever downloads formulary and benefit data from WebDAV by an automated or
manual process on a periodic basis. Retrieval of the formulary and benefit lists can be done by
utilizing the WebDAV clients creating a script that periodically checks for updates to formulary and
benefit data, or by using both a WebDAV client and a script. (For more information please refer to
http://www.webdav.org/).
The frequency of updates to the formulary and benefit data depends on the Formulary Publisher,
but generally changes are made on a monthly or quarterly basis. After the Formulary Retriever
downloads the updated formulary and benefit data, it is stored in the Retriever’s database and then
displayed to physicians based on the Retriever’s system presentation rules.
7.10.1 WEBDAV
WebDAV can be used with the following specifications:
l Username and password are communicated during implementation.
l Each customer is configured with a unique secure directory. The customer will have access
Customers may use one of the following network connectivity methods with WebDAV:
l Internet:
l Address filtering will be done in the Surescripts firewall.
l Surescripts will work with customers to review their current connection speed and
bandwidth to ensure they are adequate for anticipated message volumes.
l Frame Relay:
l 128 kbps minimum bandwidth over a frame relay circuit between Surescripts and the
customer.
l The line must be encrypted with 3DES.
l The customer must allow Surescripts to install and manage two routers in their data
center that connect to their extranet environment.
l The customer must have dual network connections through two different
telecommunication providers.
Implementation and support for WebDAV clients is the responsibility of the provider vendor. Some
WebDAV clients and configurations are known to provide a faster, more consistent formulary
retrieval experience. Surescripts expects that full formulary retrieval will take less than a day with
the appropriate client and configuration.
The following principles should be followed when choosing or building a WebDAV Client:
1. Concurrency is expected when downloading from WebDav. Choose a client that can
request multiple files concurrently. Surescripts recommends that the level of concurrency be
between 10 and 50 threads.
l If more than 50 simultaneous connections are used, Surescripts reserves the right to
block the vendor from downloading until they limit concurrency to an acceptable level.
2. Only new or modified files should be downloaded. The last modified date field should be
utilized to determine if a file has been modified.
3. Surescripts WebDAV servers can use GZip compression to speed up downloads if HTTP
compression is accepted by the client software.
l Client software that allows compression will advertise that in the HTTP header
information sent: Accept-Encoding: gzip
l The WebDAV server’s response will indicate that it has compressed the payload in the
response header: Content-Encoding: gzip
Note: Although supported, compression may not always occur as it is only beneficial for larger
files.
CyberDuck
Cyberduck is a cross platform downloader that supports WebDAV as well as other protocols. It is
available for Mac, Linux, and Windows. CyberDuck offers both a command line interface version as
well as a graphical version.
Sample Configuration:
Once installed, a command similar to the following could be used. Items in red should be replaced
with your credentials. Items in green should be the absolute path of the local folder files will be
saved to.
DAVIX
Davix is a set of command line tools to work with DAV file systems over the web. Davix is available
on most Linux distributions and may also work on other platforms.
Sample Configuration:
Once installed, a command similar to the following could be used. Items in red should be replaced
with your credentials. Items in green should be the absolute path of the local folder files will be
saved to.
Rsync
Rsync over a remotely mounted davfs file system should not be used. This configuration has been
known to take over 1 week to do a single sync. Rsync is not multi-threaded.
Surescripts presents each formulary and benefit list as a separate physical file, enabling the
Formulary Retriever to download lists individually. Formulary Retrievers distinguish each formulary
and benefit list by its unique list identifier and by the file’s header and trailer information, which is
wrapped around each individual list.
Sender ID ID as assigned by AN M The sender represents the entity that is providing the data
Surescripts 3/30 and creating the file.
identifying the
sending customer
(Formulary
Publisher)
Sender Password for this AN M Only populated when publisher is sending file to
Participant customer as 10/10 Surescripts.
Password assigned by
Surescripts
Transmission Action for the entire AN M For formulary publishers this action tells Surescripts if this
Action message. 1/1 file replaces all previously loaded lists from this Source
(F = Full Replace), or if it is an update file,
(U = Update) - contains updated lists only.
An “F” (Full Replace) action indicates to the receiver to
remove ALL previously loaded lists from this source from
the database. The new file is then loaded in their place. A
“U” (Update) contains lists that need to be deleted and/or
added on an individual basis to the formulary database.
Total Total records N M Do not include the Formulary And Benefit File Header and Trailer in this
Records processed 1/10 count. Include any subordinate header, detail, and trailer records in this
total. Total records in file minus 2.
Relative Number of N M Note, if relative value is not used in the detail, this value is 0
Cost Limit levels used 1/2 (zero).
within the
Relative value
indicator.
List Action Tells the AN M F = Full List Replacement (If exists, replace, if not, add)
receiver that this 1/1 U = UPDATE LIST
is a Full list
replacement (Or D = Delete List
Add) or a delete Note: The detail records list the drugs within the formulary. Detail
list. records may not exist if the non-listed formulary statuses from the
header record are used exclusively to convey the drugs’ formulary
statuses. If the list action in the formulary status header is a “D”
(Delete), the detail records should be ignored (if present) by the
retriever.
Variance from Formulary and Benefit 3.0: The update option is
not currently supported.
Relative Cost The relative value of this N C Represents the cost of the drug to the health plan. If
drug within its 1/2 used, the relative value limit in the header must be
classification. greater than 0 and this value must be less than or
equal to the header value.
Total Total Records sent for this N M Do not include the Header and Trailer records in this
Records formulary ID. 1/10 count. Total of Detail records.
Alternative The identification number for AN M The ID for the alternative list that may have been
ID this alternative list. 1/10 returned in the Eligibility 271 message (located in
loop 2110C1, REF segment, qualifier = ‘ALS’).
Must be unique across all lists of this type.
Valid characters are (A-Z, a-z, Numeral 0-9, period “.”,
and a dash “-“)
Drug Identifier for the drug from proprietary code AN C Qualified by Drug Reference
Reference sources. 1/35 Qualifier
Number - Used if Product/Service ID or
Source RxNorm Code is not specified.
If either Drug Reference
Number or Drug Reference
Qualifier is sent, then both are
required.
Drug Code value that identifies the source and type AN C See Formulary Status Detail
Reference for the Drug Reference Number. 1/3 on page 226 for values.
Qualifier - If either Drug Reference
Source Number or Drug Reference
Qualifier is sent, then both are
required.
Drug Code value that identifies the source and type AN C See Formulary Status Detail
Reference for the Drug Reference Number. 1/3 on page 226 for values
Qualifier - If either Drug Reference
Alternative Number or Drug Reference
Qualifier is sent, then both are
required.
Preference If there are multiple alternatives for a given N M 1-99 Higher = more preferred
Level Source NDC, this is the payer’s order of 1/2
preference (a higher number equals greater
preference).
Total Total Records Processed for N1/10 M Do not include Header and Trailer records in this
Records this alternative list count. Total of Detail records.
Coverage ID for the list AN M Must be unique across all lists of this type.
List ID 1/10 Valid characters are (A-Z, a-z, Numeral 0-9, period
“.”, and a dash “-“)
Coverage Code identifying the type of AN M Each Coverage List ID will have only one List
List Type coverage factor being conveyed 1/2 Type - Coverage associated within it.
AL = Age Limits
DE = Product Coverage Exclusion
GL = Gender Limits
MN = Medical Necessity
PA = Prior Authorization
QL = Quantity Limits
RD = Resource Link – Drug-Specific Level
RS = Resource Link – Summary Level
SM = Step Medication
ST = Step Therapy
TM = Coverage Text Message
List Tells the receiver that this is a Full AN M F = Full list replacement (If list with this List Type /
Action list replacement (Or Add) or a 1/1 List ID exists, replace; if not, add)
delete list. U = Update File
D = Delete List
Note: If the Header Transaction Action is a Delete,
the detail records should be ignored (if present) by
the Retriever.
Variance from Formulary and Benefit 3.0: The
update option is not currently supported.
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 Used if Product/Service ID or RxNorm Code is not
Number specified.
If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are required.
Drug Code value that identifies AN C See Formulary Status Detail on page 226 for
Reference the source and type for the 1/3 values
Qualifier Drug Reference Number. If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are required.
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 If either Drug Reference Number or Drug
Number Reference Qualifier is sent, then both are
required.
Drug Code value that identifies the AN C See Formulary Status Detail on page 226 for
Reference source and type for the Drug 1/3 values.
Qualifier Reference Number. If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 Used if Product/Service ID or RxNorm
Number -– Code is not specified.
Source
If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Code value that identifies the AN C See Formulary Status Detail on page 226
Reference source and type for the Drug 1/3 for values
Qualifier - Reference Number. If either Drug Reference Number or Drug
Source Reference Qualifier is sent, then both are
required.
Drug Code value that identifies the AN C See Formulary Status Detail on page 226
Reference source and type for the Drug 1/3 for values
Qualifier – Step Reference Number. If either Drug Reference Number or Drug
Drug Reference Qualifier is sent, then both are
required.
Drug Qualifier - Indicates whether the AN C This would only be used when a
Step Drug Product/Service ID represents a 2/2 Product/Service ID - Step Drug is
specific medication versus a specified.
pharmacological class Values:
SM = Specific Medication
PC = Pharmacological Class no longer
relevant because Class ID and Subclass
ID are no longer used
Class ID - Step ID for the proprietary designated N C Not used because classification list has
drug class that the product falls within ID 1/5 been removed from the standard.
for the proprietary
Subclass ID - ID for the designated sub-class that N C Not used because classification list has
Step Drug the product falls within 1/5 been removed from the standard.
Number of The number of drugs to try. N C Note: This field may only be present if
Drugs to Try 1/2 Drug Qualifier – Step Drug is “SM".
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 Used if Product/Service ID or RxNorm
Number Code is not specified.
If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Code value that identifies AN C See Formulary Status Detail on page 226
Reference the source and type for the 1/3 for values.
Qualifier Drug Reference Number. If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Minimum Age Minimum age at which the N C, if If minimum does not apply, leave blank
drug is covered (inclusive) 1/3 Minimum
Age
Qualifier is
populated
Maximum Age Maximum age at which N C, if If maximum does not apply, leave blank
the drug is covered 1/3 Maximum
(inclusive) Age
Qualifier is
populated
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 Used if Product/Service ID or RxNorm Code is
Number not specified.
If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Code value that identifies the AN C See Formulary Status Detail on page 226 for
Reference source and type for the Drug 1/3 values.
Qualifier Reference Number. If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Identifier for the drug from AN C Qualified by Drug Reference Qualifier
Reference proprietary code sources. 1/35 Used if Product/Service ID or RxNorm Code is
Number not specified.
If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
Drug Code value that identifies the AN C See Formulary Status Detail on page 226 for
Reference source and type for the Drug 1/3 values.
Qualifier Reference Number. If either Drug Reference Number or Drug
Reference Qualifier is sent, then both are
required.
URL The web page address. AN M Only one URL may be associated with each
1/255 coverage id / resource type combination.
Record Total Records N M Do not include the Coverage Information Header and Trailer records
Count included in this 1/10 in this count. Total of Coverage Information Detail records.
list
Copay ID for the list. AN M Must be unique across all lists of this type. Provides
List ID 1/10 the linkage for managing the processing of detail
data over time.
Valid characters are (A-Z, a-z, Numeral 0-9, period
“.”, and a dash “-“)
List Tells the receiver that this is a Full AN M F = Full list replacement (If list with this List Type /
Action list replacement (Or Add) or a 1/1 List ID exists, replace; if not, add)
delete list. U = Update File
D = Delete List
The update option is not currently Note: If the Header Transaction Action is a Delete,
supported. the detail records should be ignored (if present) by
the Retriever.
Flat Fixed Copay amount R C at least one of the No dollar sign. Decimal
Copay 1/10 following fields must be required if value includes
Amount populated: Flat Copay cents.
Amount, Percent Copay The length includes the
Rate, or Copay Tier decimal point.
Currency: USD
First First Copay term (flat Copay amount AN C – This is required if F = Flat Copay
Copay or percent Copay) to be considered 1/1 both Flat Copay and P = Percent Copay
Term Percent Copay are
populated.
Minimum Minimum total Copay to be paid by R C – This can only be No dollar sign. Decimal
Copay the patient 1/10 sent if Percent Copay required if value includes
Rate is populated. cents. Currency: USD
Do not use if Percent The length includes the
Copay Rate is not decimal point.
populated. Min/Max: Should only be
sent if Percent Copay is
populated.
Maximum Maximum total Copay to be paid by R C -This can only be sent No dollar sign. Decimal
Copay the patient 1/10 if Percent Copay Rate is required if value includes
populated. cents. Currency: USD
Do not use if Percent The length includes the
Copay Rate is not decimal point.
populated. Min/Max: Should only be
sent if Percent Copay is
populated.
Copay This medication’s Tier; an indication N C - at least one of the The Copay Tier value may
Tier of the cost to the patient. Lower 1/2 following fields must be not be greater than the
values represent lower cost to the populated: Flat Copay Maximum Copay Tier value
patient (e.g., Tier 1 is less costly to Amount, Percent Copay
the patient than Tier 2) Rate, or Copay Tier
Percent Copay Percentage Copay rate R C - At least one of the Percentage expressed as
Rate 1/10 following fields must a decimal (e.g., 0.0
be populated: Flat through 1.0 represents
Copay Amount, 0% through 100%)
Percent Copay Rate, The length includes the
or Copay Tier decimal point.
First Copay First Copay term (flat Copay AN C – This is required if F = Flat Copay
Term amount or percent Copay) to be 1/1 both Flat Copay and P = Percent Copay
considered Percent Copay are
populated
Minimum Minimum total Copay to be paid R C – Can only be sent if No dollar sign. Decimal
Copay by the patient 1/10 Percent Copay Rate is required if value includes
populated. cents. Currency: USD
Do not use if Percent The length includes the
Copay Rate is not decimal point.
populated. If there is no
minimum/maximum
copay, do not send this
field.
Maximum Maximum total Copay to be paid R C -Can only be sent if No dollar sign. Decimal
Copay by the patient 1/10 Percent Copay Rate is required if value includes
populated. cents. Currency: USD
Do not use if Percent The length includes the
Copay Rate is not decimal point.
populated. If there is no
minimum/maximum
copay, do not send this
field.
Copay Tier This medication’s Tier; an N C - at least one of the The Copay Tier value
indication of the cost to the 1/2 following fields must may not be greater than
patient. Lower values represent be populated: Flat the Maximum Copay Tier
lower cost to the patient (e.g., Tier Copay Amount, value
1 is less costly to the patient than Percent Copay Rate,
Tier 2) or Copay Tier
Record Total Records Processed N M Do not include the Copay Header and Trailer records in this
Count for this Copay List 1/10 count. Total of Copay Information Detail records.
Upon failure of the validations performed in steps 1-5, Surescripts submits a Response File to the
Formulary Publisher with the appropriate error code. Processing stops when a header level error is
encountered.
For more detailed information on the error codes sent within the Response File, refer to the Reject
Code Summary on page 258.
Transaction File Identifier telling receiver the AN M FRE – Formulary Transaction Response
Type type of file. 1/3
Detail Info
Absolute The absolute row or line N M If the row number is 1 then the error is for the file
Row number in the file that 1/10 header.
Number contains the error.
Section Column number that contains N 1/2 M Column number of error in row. The first field -
Column in the error Record Type is considered column 0, the next field
Error is considered column 1.
Reject Code Describes error for this AN M See Reject Code Summary below
column 4/4
Note: If an error occurred, the
entire list that the error was in
did not load.
Data in Error Copy of the bad data AN C If the data in error is longer than 100 characters it
1/100 will be truncated. If a pipe character is in the data it
will be represented as [PIPE]
Trailer Info
Note: The process that Surescripts is using to process the formulary files is an enhancement to
what is in the standard. This enhanced process is needed to provide clearer error details and
less rejections of the entire file.
Unexpected segment - list header type does not match list trailer type
Field [field name 1] is greater than [field name 2] and should be <= [value of field name 2]
Field [field name] must be empty when [field name] = [specific value]
Field [field name] is required when [field name 2] is populated, or [field name 3] is empty
Invalid Receiver Id
Step
Medication
Sub Class ID
Product Type Product 7 - Multi Source Map to 0 = Not Receivers of 1.0 will not receive
Brand Not in Specified product type code 7-Multi-Source
standard Brand due to translation to 1.0.
1.0 Field 3.0 Field Gap 1.0 to 3.0 3.0 to 1.0 Translation
Translation
Multiple Lists Multiple Lists New Value of N/A Product/Service ID Qualifier of “36”
Product/ Product/Service “36” is allowed in will be changed to “03”
Service ID ID Qualifier v3.0 and not in
Qualifier v1.0.
This will affect
the following
lists and sub-
types:
*Formulary
Status Detail
*Copay - Drug
Specific
*Coverage
Benefit
Coverage
Benefit Type:
Text
Message
Prior
Authorization
Step
Therapy
Step
Medication
Quantity
Limits
Resource
Link - Drug
Specific
Age Limits
Gender
Limits
1.0 Field 3.0 Field Gap 1.0 to 3.0 3.0 to 1.0 Translation
Translation
RxNorm and Fields in v3.0 Not sent so not Not supported in v1.0.
RxNorm supported with a mapped.
Qualifier limited number of
values.
Added fields and
qualifiers to v3.0 In v1.0 these
from v1.0 fields were not
used.
This will affect
the following
lists and sub-
types:
*Formulary
Status Detail
*Copay - Drug
Specific
*Coverage
Benefit
Coverage
Benefit Type:
Text
Message
Product
Coverage
Exclusion (Drug
Exclusion)
Prior
Authorization
Step Therapy
Step
Medication
Quantity
Limits
Resource
Link - Drug
Specific
Age Limits
Gender
Limits
1.0 Field 3.0 Field Gap 1.0 to 3.0 3.0 to 1.0 Translation
Translation
Copay List Copay List This is a If the v1.0 field is N/A
Type of Type of Mandatory field empty, Surescripts
Pharmacy Pharmacy in v3.0; in v1.0 it will translate the
is Conditional data to v3.0 by
adding “A” (all) in
the Pharmacy
Type field
Coverage Coverage List v1.0 allows use List Type Codes of N/A
List List Type Field of codes MN and MN and RS codes
List Type RS for the List will be dropped.
Field Type field.
v3.0 will NOT
accept codes MN
and RS for the
List Type field.
N/A Coverage List- Mandatory V3.0 Surescripts will eliminate the Message Type code
Text message: Text Message systematically data that was included in Text
Message Type Type; does not populate a Message
Field exist in v1.0 Message Type
field with a value of
"GI" (General
Information).
1.0 Field 3.0 Field Gap 1.0 to 3.0 3.0 to 1.0 Translation
Translation
Coverage Coverage List- v1.0 contains If data is contained If sent will drop and not translate to
List-Step Step fields for data in the inbound v1.0 v1.0
Medications Medications relative to the list, it will be
Use of Classification ID dropped
Classification and the Sub-
and Sub- Classification ID;
Classification they will not be
IDs is used in v3.0
eliminated.
Alternative Alternative Drug TWO N/A Translations from v3.0 to v1.0 will
Drug Detail Detail List OCCURRENCES Fields are not used drop this data and will not be
List RxNorm and of RxNorm Code in v1.0 available in the translation v1.0
& the Qualifier
RxNorm are in this list,
Qualifier
one associated
with Product ID-
SOURCE and
one with the
Product ID-
ALTERNATIVE
External Code List values were removed from the data elements with a note to see the NCPDP
External Code List. Values remained where the field was constrained in the implementation guide.
To provide a dependable base of information for Formulary and Benefit transmissions, the
Formulary Status List is now required (section “Formulary Data Overview”). Additionally, the
Formulary Status List Header provides fields that allow the sender to specify a default formulary
status for non-listed drugs. In some cases, this is all the information that is necessary to describe
the formulary. Verbiage was added to allow omission of Formulary Status Detail records when the
non-listed formulary policies are used exclusively to convey the drugs’ formulary statuses in section
“General Structural Overview” and “Formulary Status List”. Minor clarifications were made in
sections “High-Level Processing Examples” and “File Processing Options”.
The Classification List and references to it (such as Drug Classification Information) has been
removed due to lack of use. The Classification ID has been removed from the Cross Reference
Detail.
Coverage Information Detail – Medical Necessity (MN) was also removed. Coverage Information
Detail – Resource Link – Summary Level (RS) has been removed.
Formulary Status value 2 was clarified to On Formulary/Non-Preferred. Value 3-99 was clarified to
On Formulary/Preferred. The statement “If 2 or less is sent – the provider vendor will need to check
therapeutic alternatives (whether from the alternatives file or created on the fly)” was added.
Section “Coverage Information” added Text message support. The following has been clarified
from “The file load also enables payers to specify a single coverage-related text message for each
drug” to “A payer may send multiple quantity limits, step medications, text messages and resource
links for the same drug.”
Section “Copay Information” added a bullet about Copay specific text message.
RxNorm Code and Qualifier are no longer designated for future use.
Text Message – Short field is mandatory for the PBM/payer in the Surescripts implementation.
Formulary Header Information: Receiver ID was RXHUB in Formulary 1.0 and S00000000000001
in Formulary 3.0.
Note: The payer in this example does not employ the Product Coverage Exclusion list. See a later example for an illustration of its use.
Retrieving the formulary status is a straightforward lookup process, using the patient’s Formulary ID and a drug ID.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010) and Formulary ID (100) from the Eligibility 271 message.
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Record Formulary Formulary Non-Listed Non-Listed Non- Non-Listed Generic Non- Relative File List
Type ID Name Prescription Prescription Listed Over The Counter Listed Cost Action Effective
Brand Generic Brand Formulary Status Supplies Limit Date
Formulary Formulary Over The Formulary
Status Status Counter Status
Formulary
Status
FHD 100 HealthOne U U U U U 0 F 20150101
National
Formulary
Record Change Product / Product / Service Drug Drug Reference RxNorm RxNorm Formulary Relative
Type Identifier Service ID ID Qualifier Reference Qualifier Code Qualifier Status Cost
Number
…
FDT A 00029320613 36 2
Raw Data:
FHD|100|HealthOne National Formulary|U|U|U|U|U|0|F|20150101
FDT….
FDT|A|0029320613|36|||||2
FDT….
FTR|3
Note: The payer in this example does not employ the Product Coverage Exclusion list. See a later example for an illustration of its use.
The process has simple formulary status lookup as in the previous example. However, when the Formulary Status List search fails, an
additional step is taken to reference the Non-Listed Prescription Brand Formulary Status value in the Formulary Status List Header.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), and Formulary ID (100) from the Eligibility 271 message.
Step two: Search Formulary Status List 100 for the medication, looking for the product’s NDC in the Product/Service ID field. The
medication’s NDC cannot be found.
Step three: Refer to the Non-Listed Prescription Brand Formulary Status field in the Formulary Status List Header record. That value
applies to this medication: 2 – On Formulary.
Record Formulary Formulary Non-Listed Non-Listed Non- Non-Listed Generic Non- Relative File List
Type ID Name Prescription Prescription Listed Over The Counter Listed Cost Action Effective
Brand Generic Brand Formulary Status Supplies Limit Date
Formulary Formulary Over The Formulary
Status Status Counter Status
Formulary
Status
Record Change Product / Product / Service Drug Drug Reference RxNorm RxNorm Formulary Relative
Type Identifier Service ID ID Qualifier Reference Qualifier Code Qualifier Status Cost
Number
FDT …
Raw Data:
FHD|100| HealthOne National Formulary|2|3|1|2|0|0|F|20150101
FDT….
FDT…
FTR|..
In this scenario, the payer administering the patient’s pharmacy benefit uses the Product Coverage Exclusion list to communicate specific
medications that are not covered by certain membership groups.
When a payer utilizes the Product Coverage Exclusion list, an additional pre-step is added to the formulary lookup process. Before
consulting the Formulary Status List, the user searches the Product Coverage Exclusion list for the patient’s Coverage ID and the
medication being considered.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100), and Coverage ID (2222) from the Eligibility
271 message.
Step two: Confirm there’s no product coverage exclusion for medication being considered, by searching the Product Coverage Exclusion
list for the Coverage ID 2222 and the medication’s ID.
If the Coverage ID/Drug ID combination is present, the process stops. The patient’s membership group does not cover the medication,
and the Formulary Status is equal to 0 – Not Reimbursable.
Coverage Information Header – Product Coverage Exclusion (Received from Payer P00010)
Record Type Coverage List ID Coverage List Type File Action List Effective Date
GHD HEALTHONE DE F 20150101
Record Change Coverage Product / Service Product / Service ID Drug Reference Drug Reference
Type Identifier ID ID Qualifier Number Qualifier
…
Raw Data:
GHD|HEALTHONE|DE|F|20150101
GDT|A|2222|000293320613|36
GTR|…..
In the example below, the payer has included just one NDC11 to represent Zyprexa 10 mg Tablet, though there are multiple package
variations for the medication (a 60 count bottle, a 1,000 count bottle, and a unit dose pack, along with other variations offered by
repackagers). Following the guidelines set out elsewhere in this guide, the payer included an NDC which is (a) not repackaged, (b) not
obsolete, and (c) not a unit dose pack.
Note: The payer in this example does not employ the Product Coverage Exclusion list. See a separate example in this section for an
illustration of its use.
Below is a conceptual process for locating a medication within a Formulary Status List containing representative NDCs. Note that
different system implementations of this “logical” process are possible.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), and Formulary ID (100) from the Eligibility 271 message.
Step two: Reference a third-party or proprietary drug database to gather all NDCs associated with the prescription-level medication
being considered:
l 00002-4117-04 (1,000 count bottle)
l 00002-4117-33 (100 count blister pack)
l 00002-4117-60 (60 count bottle)
Step three: Search Formulary Status List 100 for each NDC gathered in the preceding step. Once a match is made, note the Formulary
Status.
In this example, the third NDC was listed by the payer: 00002-4117-60, with a Formulary Status value of 2.
Therefore, the formulary status for the label name drug, Zyprexa 10 mg Tablet, is 2 – On-Formulary.
Record Formulary Formulary Non-Listed Non-Listed Non- Non-Listed Generic Non- Relative File List
Type ID Name Prescription Prescription Listed Over The Counter Listed Cost Action Effective
Brand Generic Brand Formulary Status Supplies Limit Date
Formulary Formulary Over The Formulary
Status Status Counter Status
Formulary
Status
Record Change Product / Product / Service Drug Drug RxNorm RxNorm Formulary Relative
Type Identifier Service ID ID Qualifier Reference Reference Code Qualifier Status Cost
Number Qualifier
FDT A 00002411760 36 2
FTR …
Raw Data:
FHD|100|HealthOne National Formulary|U|U|U|U|U|0|F|20150101
FDT….
FDT|A|00002411760|36|||||2
FDT…
FTR|..
Step two: Retrieve the patient’s PBM/payer’s Participant ID (P00010), and Alternatives ID (100) from the Eligibility 271 message.
Step three: Search the corresponding Formulary Alternatives List’s NDCs of the off-formulary medication’s drug ID.
Note: This search may yield multiple record matches, indicating there are multiple preferred alternatives for the off-formulary drug.
Step four: Present the matched alternative medications' NDC field, in the order indicated by the Preference Level field (higher-numbered
medications are “more preferred”)
l 00093-0822-01 Nifedipine ER
l 00069-1520-68 Norvasc
Alternative Detail
Record Type Change Identifier Source NDC … Alternative NDC … Preference Level
…
Raw Data:
AHD|100|F|20150506
ADT|….
ADT|A|00004018091|00093082201|4
ADT|A|00004018091|00069152068|3
ADT|….
ATR|4
The drug in this illustration is covered for women only (a female hormone replacement therapy), within a stated quantity limit.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100) and Coverage ID (2222) from the Eligibility
271 message.
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Step three: Search the various Coverage Lists for the Coverage ID 2222 and the medication’s ID.
Record Type Coverage List ID Coverage List Type File Action List Effective Date
GHD HEALTHONE GL F 20150101
Record Change Coverage Product / Product / Service ID Drug Reference Drug Reference Gender
Type Identifier ID Service ID Qualifier Number Qualifier Code
…
Raw Data:
GHD|HEALTHONE|GL|F|20150101
GDT…
GDT|A|2222|54868467900|36|||2
GDT…
GTR|…
Record Type Coverage List ID Coverage List Type File Action List Effective Date
GHD HEALTHONE QL F 20150101
Record Change Coverage Product / Product / Drug Drug Maximum Maximum Maximum …
Type Identifier ID Service ID Service ID Reference Reference Amount Amount Amount Time
Qualifier Number Qualifier Qualifier Period
…
Raw Data:
GHD|HEALTHONE|QL|F|20150101
GDT…
GDT|A|2222|54868467900|36|||30|DS
GDT…
GTR|…
The payer also utilizes the Copay Information Detail - Drug-Specific list to communicate exceptions to those general copay rules. For
instance, a patient may ordinarily have a copay of $20 for single-source branded medications, but for certain branded drugs the copay is
lower.
The scenario below illustrates such a case. The general copay for single-source branded prescription drugs is $20, but for the specific
drug, Risperdal, for which there is no generic alternative, the copay is $10.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100) and Copay List ID (COP300) from the
Eligibility 271 message.
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Step three: Search the Copay Information Detail – Drug-Specific list to determine whether a drug-specific copay was provided by the
payer. Use the following search criteria:
l Copay ID = COP300
l NDC# = 50458-0320-06 (Risperdal 2 mg Tablet)
l One match is made, specifying the copay that applies when dispensed at any type of pharmacy.
l For illustration, the example content below also contains the summary-level copay that represented the general rule (which was
overridden in this scenario):
l Copay List ID = COP300
l Formulary Status = A (Any)
l Product Type = 1 (Single Source Brand)
l Pharmacy Type = A (Any)
l Flat Copay Amount = 20 ($20)
Record Type Copay List ID Copay List Type File Action List Effective Date
Record Change Copay Source Product / Service Product / Service ID … Pharmacy Flat Copay …
Type Identifier ID ID Qualifier Type Amount
Copay Trailer
CTR …
Raw Data:
CHD|HEALTHONE|DS|F|20150101
CRT…
CRT|A|COP300|50458032006|36||A|10
CRT..
CTR|…
Record Type Copay List ID Copay List Type File Action List Effective Date
Record Type Change Identifier Copay ID Formulary Status Product Type Pharmacy Type Flat Copay Amount …
…
CDT A COP300 A 1 A 20
Copay Trailer
Raw Data:
CHD|HEALTHONE|SL|F|20150101
CDT…
CDT|A|COP300|A|1|A|20
CDT..
CTR|…
The illustration below shows a general copay rule for single-source branded medications where the member pays the first $10 of the
drug’s cost, plus 15% of the remaining cost, not to exceed $30.
The steps below locate the copay information. The example assumes the user is considering a single-source branded prescription
medication.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100) and Copay List ID (COP300).
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Step three: Search the Copay Information Detail – Drug-Specific list to determine whether a drug-specific copay was provided by the
payer. In this example, no drug-specific rule was supplied.
Step four: Search the Copay Information Detail – Summary Level list to find the general rule for branded medications.
In the matching entry in the Copay Information Detail – Summary Level list, the rule described above is represented as
l Product Type = 1 (Single source brand)
l Pharmacy Type = A (Any)
l Flat Copay Amount = 10 ($10)
l Percent Copay Rate = 0.15 (15%)
l First Copay Term = F (Flat copay is applied first)
l Minimum Copay Amount = 10 ($10)
l Maximum Copay Amount = 30 ($30)
Record Type Copay List ID Copay List Type File Action List Effective Date
CHD HEALTHONE SL F 20150101
Record Change Copay Formulary Product Pharmacy … Flat Copay Percent First Minimum Maximum …
Type Identifier ID Status Type Type Amount Copay Rate Copay Copay Copay
Term
…
Copay Trailer
Raw Data:
CHD|HEALTHONE|SL|F|20150101
CDT…
CDT|A|COP300|A|1|A| … |10|0.15|F|10|30
CDT..
CTR|…
The illustration below presents a copay plan with different patient copays for the three conditions below:
l If the patient has contributed less than $100 to-date, their copay is $30
l If the patient’s out-of-pocket balance is between $100 and $1,000, their copay is $20
l Lastly, if the patient’s out-of-pocket balance is greater than $1,000, their copay is $10
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100) and Copay List ID (COP300) from the
Eligibility 271 message.
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Step three: Search the Copay Information Detail - Drug-Specific list to determine whether a drug-specific copay was provided by the
payer. In this example, no drug-specific rule was supplied.
Step four: Search the Copay Information Detail - Summary Level list to find the general rule.
The three matching entries in the Copay Information Detail - Summary Level list codify the rule described above...
First record
l Product Type = A (Any)
l Pharmacy Type = A (Any)
l Out-of-pocket Range Start = 0
l Out-of-pocket Range End = 100
l (Patient out-of-pocket balance is between zero and $100)
l Flat Copay Amount = 30 ($30)
Second record
l Product Type = A (Any)
l Pharmacy Type = A (Any)
l Out-of-pocket Range Start = 100.01
l Out-of-pocket Range End = 1000
l (Patient out-of-pocket balance is between $100.01 and $1,000)
l Flat Copay Amount = 20 ($20)
Third record
l Product Type = A (Any)
l Pharmacy Type = A (Any)
l Out-of-pocket Range Start = 1,000.01
l Out-of-pocket Range End = not populated
l (Patient out-of-pocket balance is more than $1,000.01)
l Flat Copay Amount = 10 ($10)
Record Type Copay List ID Copay List Type File Action List Effective Date
CHD HEALTHONE SL F 20150101
Record Change Copay Formulary Product Pharmacy Out-of-pocket Range Out-of-pocket Flat Copay …
Type Identifier ID Status Type Type Start Range End Amount
…
Copay Trailer
Raw Data:
CHD|HEALTHONE|SL|F|20150101
CDT…
CDT|A|COP300|A|A|A|0|100|30
CDT|A|COP300|A|A|A|100.01|1000|20
CDT|A|COP300|A|A|A|1000.01||10
CDT..
CTR|…
The figure below illustrates how a patient’s out-of-pocket balance accumulates according to drug purchases:
The steps below locate those copay rules. Note: In this example, HealthOne MN is administering the patient’s Medicare benefit.
Step one: Retrieve the patient’s PBM/payer’s Participant ID (P00010), Formulary ID (100) and Copay List ID (COP300) from the
Eligibility 271 message.
Step two: Locate the medication in the Formulary Status List 100, and note the Formulary Status (2 = On-Formulary).
Step three: Search the Copay Information Detail - Drug-Specific list to determine whether a drug-specific copay was provided by the
payer. In this example, no drug-specific rule was supplied
Step four: Search the Copay Information Detail - Summary Level list to find the general rule.
The four matching entries in the Copay Information Detail - Summary Level list codify the rule described above.
First record
Second record
l Out-of-pocket Range Start = 250.01
l Out-of-pocket Range End = 750
l (Patient out-of-pocket balance is between $250.01 and $750)
l Percent Copay Rate = 0.25 (25%)
Third record
l Out-of-pocket Range Start = 750.01
l Out-of-pocket Range End = 3600
l (Patient out-of-pocket balance is between $750 and $3,600)
l Percent Copay Rate = 1.0 (100%)
Fourth record
l Out-of-pocket Range Start = 3,600.01
l Out-of-pocket Range End = not populated
l (Patient out-of-pocket balance is more than $3,600)
l Percent Copay Rate = 0.05 (5%)
Record Type Copay List ID Copay List Type File Action List Effective Date
CHD HEALTHONE SL F 20150101
Record Change Copay Formulary Product Pharmacy Out-of-pocket Out-of-pocket Percent Copay …
Type Identifier ID Status Type Type Range Start Range End Rate
…
Copay Trailer
Raw Data:
CHD|HEALTHONE|SL|F|20150101
CDT…
CDT|A|COP300|A|A|A|0|250|1.0
CDT|A|COP300|A|A|A|250.01|750|0.25
CDT|A|COP300|A|A|A|750.01|3600|1.0
CDT|A|COP300|A|A|A|3600.01||0. 05
CDT..
CTR|…
Reco Versio Send Sender Receiv Receive Sourc Transmiss Transmiss Transmiss Transmiss Transmiss Extract File
rd n er ID Particip er ID r e ion ion Date ion Time ion File ion Action Date Ty
Type /Relea ant Particip Name Control Type pe
se Passwo ant Number
Numb rd Passwo
er rd
HDR 30 ABC PASS XYZ PASS Publis 30011 20150101 12053001 FRM F 201501 T
her 01
Record Formulary Formulary Non-Listed Non-Listed Non-Listed Non-Listed Non- Relative File List
Type ID Name Prescription Brand Prescription Brand Over Generic Listed Cost Action Effective
Formulary Status Generic The Over The Supplies Limit Date
Formulary Counter Counter Formulary
Status Formulary Formulary Status
Status Status
FHD 100 HealthOne U U U U U 0 X 20150101
National
Formulary
Record Change Product / Product / Service Drug Drug Reference RxNorm RxNorm Formulary Relative
Type Identifier Service ID ID Qualifier Reference Qualifier Code Qualifier Status Cost
Number
…
FDT A 54868467900 03 2
Raw Data:
HDR|30|ABC|PASS|XYZ|PASS|Publisher|30011|20150101|12053001|FRM|F|20150101|T
FHD|100|HealthOne National Formulary|||||| 0|X|20150101
FDT….
FDT|A|54868467900|03|||||2
FDT….
FTR|3
TRL|…
Reco Versio Send Receiv Receiver Transmissi Transmissi Transmissi Transmissi Transmissi Transmissi Transmissi File Load
rd n er ID er ID Particip on Control on Date on Time on File on Number on Date - on Time - Typ Stat
Type /Relea ant Number Type - Originating Originating e us
se Passwor Originating
Numb d
er
SHD 30 XYZ ABC PASS 445534 20150101 15053001 FRE 30011 20150101 12053001 T 03
Record Type Absolute Row Number Section Column In Error Reject Code Additional Message Information Data In Error
Raw Data:
SHD|30|XYZ|ABC|PASS|445534|20150101|15053001|FRE|30011|20150101|15053001|T|03
SDT|2|10|1008|Field value not found in validation table |X
STR|1|1
Reco Versio Send Sender Receiv Receive Sourc Transmiss Transmiss Transmiss Transmiss Transmiss Extract File
rd n er ID Particip er ID r e ion ion Date ion Time ion File ion Action Date Ty
Type /Relea ant Particip Name Control Type pe
se Passwo ant Number
Numb rd Passwo
er rd
HDR 30 ABC PASS XYZ PASS Publis 30012 20150101 12053001 FRM F 201501 T
her 01
Record Type Coverage List ID Coverage List Type File Action List Effective Date
GHD HEALTHONE AL F 20150101
Record Change Coverage Product / Product / Service ID … Minimum Minimum Age Maximum Maximum Age
Type Identifier ID Service ID Qualifier Age Qualifier Age Qualifier
…
Raw Data:
HDR|30|ABC|PASS|XYZ|PASS|Publisher|30012|20150101|12053001|FRM|F|20150101|T
GHD|HEALTHONE|AL|F|20150101
GDA…
GDA|A|2222|54868467900|36||||18
GDA…
GTR|…
TRL|…
Reco Versi Send Recei Receive Transmis Transmis Transmis Transmis Transmis Transmis Transmis Fil Loa
rd on er ID ver ID r sion sion Date sion Time sion File sion sion Date sion Time e d
Type /Relea Particip Control Type Number - - - Ty Stat
se ant Number Originatin Originatin Originatin pe us
Numb Passwo g g g
er rd
SHD 30 XYZ ABC PASS 445535 20150101 15053001 FRE 30012 20150101 12053001 T 03
Record Type Absolute Row Number Section Column In Error Reject Code Additional Message Information Data In Error
SDT 4 13 1006 Required Field Missing
Raw Data:
SHD|30|XYZ|ABC|PASS|445535|20150101|15053001|FRE|30012|20150101|15053001|T|03
SDT|4|13|1006|Required Field Missing
STR|1|1
Reco Versio Send Sender Receiv Receive Sourc Transmiss Transmiss Transmiss Transmiss Transmiss Extract File
rd n er ID Particip er ID r e ion ion Date ion Time ion File ion Action Date Ty
Type /Relea ant Particip Name Control Type pe
se Passwo ant Number
Numb rd Passwo
er rd
HDR 30 ABC PASS XYZ PASS Publis 30013 20150101 12053001 FRM F 201501 T
her 01
Record Change Coverage Product / Product / Service ID … Minimum Minimum Age Maximum Maximum Age
Type Identifier ID Service ID Qualifier Age Qualifier Age Qualifier
…
Raw Data:
HDR|30|ABC|PASS|XYZ|PASS|Publisher|30013|20150101|12053001|FRM|F|20150101|T
(MISSING)
GDA…
GDA|A|2222|54868467900|36||||18
GDA…
GTR|…
TRL|…
Reco Versio Send Receiv Receiver Transmissi Transmissi Transmissi Transmissi Transmissi Transmissi Transmissi File Load
n er ID er ID on Time - Typ Stat
rd Participa on Control on Date on Time on File on - on Date -
/Relea Number Type Number Originating Originating e us
Type nt
se Originating
Passwor
Numb
er d
SHD 30 XYZ ABC PASS 445536 20150101 15053001 FRE 30013 20150101 12053001 T 03
Record Type Absolute Row Number Section Column In Error Reject Code Additional Message Information Data In Error
SDT 2 1 1004 Unexpected Segment
Raw Data:
SHD|30|XYZ|ABC|PASS|445536|20150101|15053001|FRE|30013|20150101|15053001|T|03
SDT|2|1|1004|Unexpected Segment
STR|1|1
List Action Tells the receiver that this is a The update Senders have only implemented full file
Full list replacement (Or Add) option is not replacement.
or a delete list. currently
supported
Change Change Only the Add Senders have only implemented add
Identifier option is option.
accepted.
Message Short Text message presented to Mandatory for this Standard is in error indicating this is
prescriber. implementation. optional. If sending a text message
record you need the message.
Product/Service Drug ID qualifier. Required. Since no class ID this is the only way to
ID Qualifier – identify the product.
Step Drug
Drug Code value that identifies the Only support a Surescripts will not be supporting other
Reference source and type for the Drug limited set of code drug databases.
Qualifier Reference Number. values.
Note: Compression should be used when possible while sending files to Surescripts. The
preferred file type is .gzip, but other supported file types are .zip and .bzip.
Secure FTP
The Surescripts Response File naming convention will closely match the file name as transfer to
Surescripts, with the addition of a timestamp value appended. Response files can be pulled by the
customer using client software that is compatible with the Surescripts Secure FTP Server. If the
customer has a compatible Secure FTP server, Surescripts can optionally push Response files to
the customer's Secure FTP Server. Contact your Integration Project Manager for more information
on the Secure FTP process.
! 33 0041 0x21
% 37 0045 0x25
( 40 0050 0x28
) 41 0051 0x29
* 42 0052 0x2a
+ 43 0053 0x2b
, 44 0054 0x2c
- 45 0055 0x2d
. 46 0056 0x2e
: 58 0072 0x3a
= 61 0075 0x3d
? 63 0077 0x3f
@ 64 0100 0x40
[ 91 0133 0x5b
\ 92 0134 0x5c
] 93 0135 0x5d
^ 94 0136 0x5e
_ 95 0137 0x5f
` 96 0140 0x60