ID Load and Response Files
Introduction
PBM/payers use the ID Load file 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. 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.
ID Load Process Flow
The following steps depict the flow of the ID load:
- The PBM/payer creates a directory of patients, assigning each occurrence a unique member ID.
Note: It is recommended to update the MPI daily.
- The PBM/payer submits the initial load to Surescripts.
- Surescripts populates the MPI internal directory with the initial file load.
- Surescripts creates a response file for the PBM/payer indicating the process success and failure details.
Note: All date/times within response files are in UTC.
- 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.
- Surescripts processes the updates.
- Surescripts sends a response to the PBM/payer indicating the process success and failure details.
Format to be Used
Surescripts has implemented a custom specification that contains demographic and PBM/payer specific information in a delimited field file format. Use the same character set as referenced in Character SetCharacter Set except for the “^” character – decimal 94 which cannot be used in the ID Load Process.
Notes:
- Delimited files designated in the header record as a Full file that contain more than 8M records must be scheduled with Surescripts Support, and will be manually processed.
- File name cannot contain a hyphen.
Member Processing Examples
Purpose | File Type | Method |
|---|---|---|
Terminate a member | Update | Send the cancellation or termination date (past/present/future) along with the 024 – Cancel code. |
Terminate a member | Full Refresh | Either send the cancellation/termination date (past/present/future) along with the 024 – Cancel code. Or Do not include the member in the full refresh file. |
Add new member | Full Refresh or Update | Send the new member data in the full refresh or update file along with the 021 – Addition code. |
Update member demographics | Full Refresh or Update | Send the updated member demographics along with the 001 – Change code. |
Reinstate a previously terminated member where the record has not been removed via the full refresh process | Update | Send either a future termination date or leave the termination field blank along with the 025 – Reinstatement code. |
Future Effective Date Examples
Purpose | Method |
|---|---|
Update future coverage for existing member | 1. Add expiration date for current coverage to the existing member. 2. Add new Demographic details of existing member to a new PBM Unique Member ID with future effective date. Note: The Master Patient Index will not accept multiple instances of a PBM Unique Member ID to reflect a future coverage change. The Master Patient Index accepts the latest record with a PBM Unique Member ID as an update, nullifying any previous record(s) with that ID. Future changes to a member utilizing the future effective date need to include a new PBM Unique Member ID. |
Update effective date for future member | Update the member’s future effective date along with the 001 - Change code. Note: The Master Patient Index uses the latest update as the member’s current demographics. |
Extend an existing member | Send new future effective date for member and use the same PBM Unique Member ID along with the 001 - Change code. Example: If original coverage is 1/1/2024 – 12/31/2024 and coverage remains the same through 2025 in the new record, keep the same effective date as 1/1/2024 and the new term date would be 12/31/2025. |
Add a future member | Send future effective date for new member and use a new PBM Unique Member ID along with the 021 – Addition code. Example: If the coverage begins 1/1/2025, send record with an effective date of 1/1/2025 and new PBM Unique Member ID. |
Error Scenarios
Note: Error scenarios do not vary based on file type (full refresh or update).
Code Sent in MPI Full Refresh or Update File | MPI Database Record Status | Response File Action | Error Code and Message |
|---|---|---|---|
Change (001) | Record does not exist | Add the MPI database record. | W04 - Change Record not found, record added. |
Addition (021) | Record already exists | Change the MPI database record. | W05 - Record to Add exists, record updated. |
Cancellation or Termination (024) | Record does not exist | Add the MPI database record with the termination date. The record must contain a termination date or it will be rejected. | W06 - Record to Term does not exist, record added. |
Reinstatement (025) | Record does not exist | Add the MPI database record. The record must contain a future termination date or no termination date. | W07 - Record to Reinstate not found, record added. |
Requirement Designation
Code | Description |
|---|---|
mandatory | The element must be used per the specification (e.g., XML schema validation). Note: The term mandatory applies to mandatory and required fields in the different standards. |
business rule | If sent, the element must be used per the Surescripts business rule. Note: Not all business rules reside in this table. |
conditional | The element is to be used per the conditions specified. Note: The term conditional applies to conditional and situational fields in the different standards. For example, X12 uses the term situational. |
recommended | Surescripts recommends sending the element as a best practice. |
optional | Some fields do not have specific conditions. Data should be sent if available. |
not used | Not used by Surescripts. |
Member Directory Maintenance Delimited File from PBM/Payer
Each field is delimited by the pipe character (|). Each line is separated by a new line (Hex 0A) character. The tilde character (~) is used as a repetition character – currently only supported in the postal code field.
Header Info
Field # | Field Name | Type | Required | Comments | Examples |
|---|---|---|---|---|---|
1 | Record Type | AN 3/5 | mandatory | Identifies record type Value: HDR | |
2 | Version/Release Number | AN 3/5 | mandatory | Version Number of this specification Value: 3.0 | |
3 | Sender ID | AN 3/30 | mandatory | ID as assigned by Surescripts identifying customer sending the file. | P11111111111111 |
4 | Sender Participant Password | AN 10/10 | mandatory | Password for this customer identified in field 3 (Sender ID). | ABCDE12345 |
5 | Receiver ID | AN 1/30 | mandatory | ID identifying the receiver of the file. Value: RXHUB | |
6 | Source Name | AN 1/35 | not used | Future use | |
7 | Transmission Control Number | AN 1/10 | mandatory | Unique identifier defined by the sender | 0000001000 |
8 | Transmission Date | DT 8/8 | mandatory | Date message was created ( CCYYMMDD) | 20170701 |
9 | Transmission Time | TM 8/8 | mandatory | Time message was created (HHMMSSDD) | 12200101 |
10 | Transmission File Type | AN 1/3 | mandatory | Identifier telling the type of message Value: MPI | |
11 | Transmission Action | AN 1/1 | optional | Values: U=Update F=Full file If blank, default to U=Update | U |
12 | Extract Date | DT 8/8 | mandatory | Date File was created (CCYYMMDD) | 20170630 |
13 | File Type | AN 1/1 | mandatory | Test or Production Values: T=Test P=Production | P |
Detail Info
Field # | Field Name | Type | Required | Comments | Examples |
|---|---|---|---|---|---|
1 | Record Type | AN 3/3 | mandatory | Identifies record type Value: MEM | |
2 | Record Sequence Number | AN 1/10 | mandatory | Number for this detail row in the message | |
3 | PBM Unique Member ID | AN 1/60 | mandatory | Unique ID as identified by the PBM/payer for the member | |
4 | PBM Unique ID for Subscriber | AN 1/60 | optional | Unique ID as identified by the PBM/payer for the subscriber of the member | |
5 | Health Plan Member Number | AN 1/30 | optional | Health Plan Unique Member identification number on the Health Plan card identifying the patient (Either a subscriber or a dependent) | |
6 | Health Plan Subscriber Number | AN 1/30 | optional | Health Plan Unique Subscriber identification number - Number on the Health Plan card identifying the subscriber | |
7 | Policy Number | AN 1/30 | optional | Health Plan policy or group number | |
8 | Member Expiration Date | DT 8/8 | optional | Date that the member is no longer eligible (CCYYMMDD) If multiple dates are available (i.e. Term Date, Expired Date, End Date), use the earliest date of the three. | |
9 | Last Name | AN 1/35 | mandatory | Last Name of the Member | |
10 | First Name | AN 1/25 | mandatory | First Name of the Member | |
11 | Middle Name | AN 1/25 | recommended | Middle Name of the Member Recommended to send to aid in patient matching. | |
12 | Prefix | AN 1/10 | optional | Member Prefix | |
13 | Suffix | AN 1/10 | recommended | Member Suffix Recommended to send to aid in patient matching. | |
14 | Social Security Number | N 9/9 | optional | Member SSN - No dashes | |
15 | Address Line 1 | AN 1/55 | recommended | First Line of the Address (No C/O type info) Recommended to send to aid in patient matching. | |
16 | Address Line 2 | AN 1/55 | recommended | Second Line of the Address (No C/O type info) Recommended to send to aid in patient matching. | |
17 | City Name | AN 2/30 | recommended | Member City Name Recommended to send to aid in patient matching. | |
18 | State or Province Code | AN 2/2 | recommended | Member State Code Recommended to send to aid in patient matching. | |
19 | Postal Code | AN 3/15 | recommended | Member zip code 5 or 9 numeric no punctuation. | 55123 |
20 | Country Code | AN 2/3 | optional | Member Country Code | |
21 | Comm Number 1 Type | AN 2/2 | recommended | 1st Comm. Number Type Values: EM = Email EX = Telephone Extension FX = Facsimile HP = Home Phone TE = Telephone WP = Work Phone Recommended to send to aid in patient matching. | |
22 | Communication Number 1 | AN 1/80 | recommended | 1st Communication Number Recommended to send to aid in patient matching. | |
23 | Communication Number 2 Type | AN 2/2 | recommended | 2nd Communication Number Type Values: EM = Email EX = Telephone Extension FX = Facsimile HP = Home Phone TE = Telephone WP = Work Phone Recommended to send to aid in patient matching. | |
24 | Communication Number 2 | AN 1/80 | recommended | 2nd Communication Number Recommended to send to aid in patient matching. | |
25 | Communication Number 3 Type | AN 2/2 | optional | 3rd Communication Number Type Values: EM = Email EX = Telephone Extension FX = Facsimile HP = Home Phone TE = Telephone WP = Work Phone | |
26 | Communication Number 3 | AN 1/80 | optional | 3rd Communication Number | |
27 | Date of Birth | DT 8/8 | recommended | Member DOB (CCYYMMDD) Recommended to send to aid in patient matching. | |
28 | Gender | AN 1/1 | recommended | Member Gender (M,F,U) Recommended to send to aid in patient matching. | |
29 | Employer Name | AN 1/35 | optional | Employer Name | |
30 | Transaction Type | AN 3/3 | mandatory | Type of Action needed Values: 001 – Change 021 – Addition 024 - Cancellation or Termination 025 – Reinstatement | |
31 | Member Active Date | DT 8/8 | recommended | Date member becomes active (CCYYMMDD) If field is left blank, member will be active on date of load. Recommended to send to aid in patient matching. | |
Trailer Info
Field # | Field Name | Type | Required | Comments | Examples |
|---|---|---|---|---|---|
1 | Record Type | AN 3/3 | mandatory | Identifies record type Value: TRL | |
2 | Total Records | N 1/10 | mandatory | Total Records Processed | |
Member Directory Response Delimited File to PBM/Payer
The file name reflects the file name from the PBM/payer with a .rsp file extension.
Example: NewPatient_TestingPBMC_MPI.1450188243095.rsp
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
Field | Description | Type | Required | Comments | Examples |
|---|---|---|---|---|---|
Record Type | Identifies record type | AN 3/3 | mandatory | Value: SHD |
|
Version/Release Number | Version Number of this specification | AN 1/2 | mandatory | Value: 3.0 |
|
Recipient ID | ID assigned by Surescripts for the recipient of the response file (original sender of the ID load file) | AN 3/30 | mandatory | If the inbound MPI file included an invalid Sender ID, Sender Participant Password, Transmission Date, or Transmission time, this field in the response file will be populated with: “INV_HEADER”. | P11111111111111 |
Sender ID | ID as assigned by Surescripts identifying Surescripts | AN 3/30 | mandatory | Value: RXHUB |
|
Recipient Participant Password | Password assigned by Surescripts for accessing the PBM/payer system. | AN 10/10 | mandatory | If the inbound MPI file included an invalid Sender ID, Sender Participant Password, Transmission Date, or Transmission time, this field in the response file will be populated with: “INV_HEADER”. |
|
Transaction Control Number | Unique identifier defined by the sender | AN 1/10 | mandatory | |
|
Transaction Date | Date message was created | DT 8/8 | mandatory | CCYYMMDD |
|
Transaction Time | Time message was created | TM 8/8 | mandatory | HHMMSSDD |
|
Transaction File Type | Identifier telling receiver the type of file. | AN 1/3 | mandatory | Value: MPR |
|
Transaction Number - Originating | Number of the original report message | AN 1/10 | mandatory | |
|
Transaction Date- Originating | Date Original Incoming File was created | DT 8/8 | mandatory | CCYYMMDD If the inbound MPI file included an invalid Sender ID, Sender Participant Password, Transmission Date, and/or Transmission time, this field in the response file will be populated with: “20000101”. |
|
Transaction Time- Originating | Time Original Incoming File was created | TM 8/8 | mandatory | HHMMSSDD If the inbound MPI file included an invalid Sender ID, Sender Participant Password, Transmission Date, and/or Transmission time, this field in the response file will be populated with: “00000000”. |
|
File Type | Test or Production (T/P) | AN 1/1 | mandatory | Values: T=Test P=Production |
|
Load Status | Code Explaining the status of the load. | AN 2/2 | mandatory | See Member Directory CodesMember Directory Codes |
|
Detail Info
Field | Description | Type | Required | Comments | Examples |
|---|---|---|---|---|---|
Record Type | Identifies record type | N 1/1 | mandatory | Value: SDT |
|
Record Sequence Number | Number that identified the row in the incoming message | AN 1/10 | mandatory | |
|
PBM Unique ID for the member | Unique ID as identified by the PBM/payer for the member | AN 1/60 | optional | |
|
Error Code | Describes error for this row W - Signifies a Warning E - Signifies a Error | AN 3/3 | mandatory | See Member Directory CodesMember Directory Codes |
|
Trailer Info
Field | Description | Type | Required | Notes | Examples |
|---|---|---|---|---|---|
Record Type | Identifies record type. | AN 3/3 | mandatory | Value: STR | |
Total Rows in Error | | N 1/10 | mandatory | | |
Member Directory Response Summary Delimited File to PBM/Payer
File Naming Convention:
- A human readable file (on Workbench) will have a .smt file extension. Example: erx_RXHUB_member_directory_02082015_201919.1423456259313.smt
- A pipe delimited file (on FTP) will have a .smd file extension.
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
Field # | Field | Description | Type | Comments | Example |
|---|---|---|---|---|---|
1 | File Load Date | Date the MPI file was processed by Surescripts. UTC Date in MM/DD/CCYY format. | DT 10/10 |
| 12/05/2014 |
2 | Transmission Control Number | Unique identifier defined by the sender from inbound MPI file. | AN 1/10 |
| 0000001000 |
3 | Participant ID | Surescripts ID assigned to the PBM/payer. | AN 3/30 |
| P111111111111111 |
4 | Sender ID | The Sender ID is Surescripts. | AN 3/30 | Value: Surescripts | |
5 | Incoming File Received | Date time that Surescripts received the inbound file. 24 hour time used - UTC Datetime in MM/DD/YYYY HH:MM:SS format. | AN 19/19 |
| 12/05/2014 04:34:02 |
6 | Total Number of Active Lives in MPI Before Processing | Number of active lives in the MPI before processing. This does not include future lives. If future lives were included in the file, they will be excluded from the active lives count. Note: Number of active lives reflects the 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. | N 1/12 |
| 10000 |
Incoming File Record Count | | | | | |
7 | Total Records in File | Number of patient records in the MPI file. | N 1/12 |
| 1000 |
8 | Number of Adds | Number of records in the inbound MPI file where Transaction Type == 021. | N 1/12 |
| 200 |
9 | Number of Terms | Number of records in the inbound MPI file where Transaction Type == 024. | N 1/12 |
| 300 |
10 | Number of Changes | Number of records in the inbound MPI file where Transaction Type == 001. | N 1/12 |
| 500 |
11 | Number of Reinstatements | Number of records in the inbound MPI file where Transaction Type == 025. | N 1/12 |
| 5 |
12 | Number of Records with a Member Active Date | Number of records in the inbound MPI file with a Member Active Date. | N 1/12 | | 500 |
13 | Number of Records with a Future Member Active Date | Number of records in the inbound MPI file with a future Member Active Date. | N 1/12 | | 500 |
Results of Processing the File | | | | | |
14 | Requested Number of Records Added | Number of records with Transaction Type == 021 that were added. | N 1/12 |
| 300 |
15 | Requested Number of Records Changed | Number of records with Transaction Type == 001 that were changed. | N 1/12 |
| 600 |
16 | Requested Number of Records Termed | Number of records with Transaction Type == 024 that were terminated. | N 1/12 |
| 50 |
17 | Requested Number of Reinstatements | Number of records with Transaction Type == 025 that were reinstated. | N 1/12 |
| 4 |
18 | Number of Errors | Number of errors generated. | N 1/12 |
| 50 |
19 | Number of Adds That Already Existed | Number of cases on update file loads where a record in the inbound file had Transaction Type == 021, but the patient already existed in the Surescripts system. | N 1/12 |
| 75 |
20 | Number of Changed that Did Not Exist | Number of cases on update file loads where a record in the inbound file had Transaction Type == 001, but the patient record did not exist in the Surescripts system. | N 1/12 |
| 100 |
21 | Number of Terms that Did Not Exist | Number of cases on update file loads where a record in the inbound file had Transaction Type == 024, but the patient record did not exist in the Surescripts system. | N 1/12 |
| 50 |
22 | Number of Reinstatements that Did Not Exist | Number of cases on update file loads where a record in the inbound file had Transaction Type == 025, but the patient record did not exist in the Surescripts system (patient was not found in either an active or inactive state). | N 1/12 |
| 1 |
23 | Total Number of Active Lives in MPI After Processing | Number of active lives in the MPI after processing. This does not include future lives. If future lives were included in the file, they will be excluded from the active lives count. After processing the new file, the number of records where the Member Expiration Date is >= to today's date in the Surescripts system. | N 1/12 |
| 10300 |
24 | Processing Start Time | Date time the new MPI file began processing in 24 hour clock - UTC Datetime in MM/DD/YYYY HH:MM:SS format | AN 19/19 |
| 12/05/2014 05:04:00 |
25 | Processing End Time | Date time the new MPI file began processing in 24 hour clock - UTC Datetime in MM/DD/YYYY HH:MM:SS format | AN 19/19 |
| 12/05/2014 07:16:02 |
26 | Processing Time for File | Time it took to process the file in HHH:MM:SS format. | DT 9/9 |
| 002🕛02 |
27 | Member Directory Response Summary Version ID | Version ID of the Member Directory Response Summary. | AN 3/3 |
| 3.0 |
Member Directory Codes
Header Response Codes
Code | Description |
|---|---|
01 | File loaded correctly. |
02 | File loaded with errors. |
03 | Invalid file format - File Not loaded. |
04 | System error - Please resend. |
05 | Invalid header section ID - File not loaded (Not Used). |
06 | Invalid header Participant ID or password - File not loaded. |
07 | Invalid header transaction number format - File not loaded. |
08 | Invalid header transaction datetime format - File not loaded. |
09 | Invalid header usage indicator - File not loaded. |
10 | Invalid header filler - File not loaded. |
11 | Invalid header new line character - File not loaded. |
12 | Invalid trailer section ID – Trailer not validated - File not loaded. |
13 | Invalid trailer filler - Trailer not validated. - File not loaded. |
14 | Invalid reported number of records - File not loaded. |
15 | Contract does not exist - File not loaded. |
17 | Invalid header version number - File not loaded (Not Used). |
18 | Invalid receiver ID – File not loaded. |
19 | Invalid Source Name – File not loaded. |
20 | Invalid File Type – If the file type is not MPI, ALT, or RLE. File not loaded. |
21 | Invalid Transmission Action – If the transmission action is not “U” or “F” – File not loaded. |
22 | Invalid Number of Fields – File not loaded. Note: Applies if the header does not have all of the fields. Only applies to versions 2.0 and 3.0. |
Detail Error/Warning Codes
Code | Description |
|---|---|
E01 | Missing PBM Unique Member ID, record not loaded. |
E02 | Missing required fields, record not loaded. |
E03 | Invalid characters in row, record not loaded. |
E04 | Invalid record length, record not loaded. |
E05 | Invalid record type, record not loaded. |
E07 | Invalid transaction type, record not loaded. |
E09 | Missing Term Date, record not loaded. |
E10 | Maximum repetitions exceeded. |
E13 | Term Date must be a future date or not populated when 25-Reinstatement Transaction Type is used. |
E14 | Invalid Member Active Date (wrong format or invalid date). |
E15 | Member Active Date is greater than Member Expiration Date. |
W04 | Change Record not found, record added. |
W05 | Record to Add exists, record updated. |
W06 | Record to Term does not exist, record added. |
W07 | Record to Reinstate not found, record added. |
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. |