Message Processing Summary
This section explains the message processing that takes place for messages exchanged between a message sender and a message receiver. These messages are initiated in the form of a request and an acknowledgement response message is returned. The sender stays connected until the receiver sends an acknowledgment response. Depending on connectivity, the actual message vehicle may vary.
The system (Surescripts) stores round-trip messages until the receiver acknowledges the message or until the specified time limit has elapsed. If the timeout elapses before the message is processed, Surescripts will return an error message to the sender as the reply (explained below).
Note: Errors are not necessarily processed in the order as shown below. The row number is there to help the reader indicate which error code they may be discussing.
Row | Event | Process | Type of SCRIPT message | SCRIPT Code | SCRIPT Description Code | Message Text |
|---|---|---|---|---|---|---|
1.0 | Surescripts receives a message. |
|
|
|
|
|
1.1 |
| Surescripts fails to recognize the sender OR the message is malformed. | NA (HTTP 400 Bad Request Error is returned rather than a SCRIPT message) | NA | NA | Bad request. |
1.2 |
| Sender security credentials are missing. | Error | 900 – Message rejected | Blank | Missing authentication info in header. [Additional message-specific error specifics] |
1.3 |
| Sender security credentials are invalid. | Error | 900 – Message rejected | Blank | Authentication failed. Invalid username/password. [Additional message-specific error specifics] |
1.4 |
| The incoming message exceeds Surescripts’ size limit of 20MB. | NA (HTTP 500 Internal Server Error is returned rather than a SCRIPT message) | NA | NA | Internal server error. |
1.5 |
| Any other system-related error which makes it impossible for Surescripts to accept the message. | NA (HTTP 500 Internal Server Error is returned rather than a SCRIPT message) | NA | NA | Internal server error. |
2.0 | Surescripts processes the message. | No acknowledgement is sent to the sender at this stage of processing. |
|
|
|
|
2.1 |
| Surescripts determines that the sending system is not certified to send this type of message. | Error | 700 – Configuration error | 4030 – Sender not allowed to send this message type. | Sender portal does not support this message type. |
2.2 |
| Surescripts determines that the receiving system is not certified to receive this type of message. | Error | 700 – Configuration error | 4040 – Receiver does not support receiving this message type. | Receiver portal does not support this message type. |
2.3 |
| Sender portal configuration error at Surescripts. | Error | 700 – Configuration error | 4020 – Intermediary system error. | Surescripts system error. Sender portal configuration error. |
2.4 |
| Receiver portal configuration error at Surescripts. | Error | 700 – Configuration error | 4020 – Intermediary system error. | Surescripts system error. Receiver portal configuration error. |
2.5 |
| Surescripts determines that the sender’s provider vendor SPI or PBM/payer Unique ID was not found in the Surescripts directory. | Error | 700 – Configuration error | 4030 – Sender not allowed to send this message type. | Sender ID not in directory. |
2.6 |
| Surescripts determines that the receiver’s SPI or PBM/payer Unique Identifier is not valid. | Error | 700 – Configuration error | 4040 – Receiver does not support receiving this message type. | Receiver ID not in directory. |
2.7 |
| Surescripts determines that the sending provider vendor SPI has not been authorized to send this type of message. (The sender’s SPI has not been assigned the ePA service level.) | Error | 700 – Configuration error | 4030 – Sender not allowed to send this message type. | Sender not allowed to send this type of message. |
2.8 |
| Surescripts determines that the receiving provider vendor SPI or PBM/payer unique identifier does not support this type of message. (The sender’s SPI or PBM/payer unique identifier has not been assigned the ePA service level.) | Error | 700 – Configuration error | 4040 – Receiver does not support receiving this message type. | Receiver does not support this message type. |
2.9 |
| Surescripts fails to recognize the type of message. | Error | 900 – Message rejected |
| Unable to recognize incoming data as a supported message type. |
2.10 |
| Based on the message type, Surescripts determines that a syntax error is present. | Error | 900 – Message rejected | 3000 – Does not follow NCPDP standard or implementation guide rules. | Invalid syntax. Message fails schema validation. [Additional message-specific error specifics] |
2.11 |
| Message fails Surescripts business rule validations. | Error | 900 – Message rejected | 3000 – Does not follow NCPDP standard or implementation guide rules. | Message fails Surescripts validations. The NDC must be a valid 11-digit code and should meet the qualifications for a Representative NDC. Namespace / version validation: · DatatypesVersion is invalid [field that is in error] doesn't match expected value 2023011 · ECLVersion is invalid [field that is in error] doesn't match expected value 2023011 · PA-StructuresVersion is invalid [field that is in error] doesn't match expected value 2023011 · StructuresVersion is invalid [field that is in error] doesn't match expected value 2023011 · TransactionVersion is invalid [field that is in error] doesn't match expected value 2023011 · TransportVersion is invalid [field that is in error] doesn't match expected value 2023011 · TransactionDomain is invalid [field that is in error] doesn't match expected value SCRIPT NPI LUHN check: · (Prescriber, Provider, Supervisor, Pharmacy, Facility) Identification/NPI is invalid. Fails LUHN check. PayerID in PAInitiationRequest: · PAInitiationRequests must include PayerID in BenefitsCoordination element PAInitiationRequests addressed to EPAINI: · All PAInitiationRequests must be addressed to EPAINI DaysSupply, PADaysSupply, or PADosesPerDay: · MedicationPrescribed/DaysSupply or PADaysSupply and PADosesPerDay must be a whole number Prescriber Fax: · Prescribers fax number is required PO Box in Address Line 1: · A PO Box must not be sent in Address Line 1 for the Pharmacy, Prescriber, Facility, Supervisor, or Provider elements Unsolicited PAInitiationResponse: · Unsolicted PAInitiationResponse must be addressed to EPAINI Renewals for expiring PA: · Renewals for expiring PA must include the expire PACaseID and ExpirationDate AuthorizationDetail or AuthorizationPeriod in Closed – CF PAInitiationResponse: · Closed Prior Authorization with a duplicate/approved Reason code require either an Authorization Detail or Authorization Period Unsolicited PARequest: · Unsolicited model is not supported. AuthorizationDetail or AuthorizationPeriod in Approved PAResponse: · Appoved PA responses require either an Authorization Detail or Period AuthorizationDetail and AuthorizationPeriod in PartiallyDenied PAResponse: · Partially denied PA response require both an Authorization Detail and Period AuthorizationDetail or AuthorizationPeriod in Closed – CF PAResponse: · Closed Prior Authorization with a duplicate/approved Reason code require either Authorization Detail or Authorization Period · The application shall make the AuthorizationDetail and AuthorizationPeriod available for display when receiving a PAResponse AuthorizationDetail or AuthorizationPeriod in PAAppealResponse: · Appoved PAAppeal responses require either an Authorization Detail or Period Improper use of QS quantity code: · script:MedicationPrescribed/structures: Quantity is invalid if Value is >0, Code List Qualifier must be 38 but was 'QS' or · script:MedicationPrescribed/structures: Quantity is invalid if Value is 0, Code List Qualifier must be QS but was '38' Invalid Days Supply value: · DaysSupply is invalid Value is [field that is in error], Days Supply must be an integer with 3 or fewer digits · Invalid DescriptionCode in Status message: · DescriptionCode: [field that is in error] is invalid for Status messages · NextQuestionID/Default NextQuestionID Validation: · QuestionSet/Question/DefaultNextQuestionID is invalid for QuestionID [Question #]. DefaultNextQuestionID must be a QuestionID or END · QuestionSet/Question/QuestionID: Q# is invalid. Question ID must be unique. |
2.12 |
| Surescripts experiences a system failure during processing. | Error | 900 – Message rejected |
| Surescripts system error. |
3.0 | Surescripts passes the message on to the recipient. |
|
|
|
|
|
3.1 |
| Surescripts is unable to deliver the message to the receiver (e.g. could not establish communication session). | Error (For Sender) | 600 – Communication problem – try again later | 4000 – Intermediary is unable to deliver message to the recipient. | Communication problem. Try again later. Unable to deliver message to receiver. |
3.2 |
| The message times out before a response is given. | Error (For Sender) | 600 – Communication problem – try again later | 008 – Request timed out before response could be received. | Connection with receiver timed out before response was returned. Status of message at receiver is unknown. |
3.3 |
| Recipient is unable to recognize the type of message or does not have enough info to create an NCPDP Error message. Recipient sends Surescripts HTTP 400 response and text message that indicates “Message cannot be identified nor processed”. | HTTP 400 (from receiver) Error (For Sender) | 602 – Receiver System Error | 007 – Internal processing Error has occurred | From receiver: “Message cannot be identified nor processed”. |
4.0 | Recipient responds to the message. |
|
|
|
|
|
4.1 |
| Surescripts is unable to process the response from the recipient. | Error (to the sender of the original message) | For Sender: 600 – Communication problem – try again later | For Sender – 4010 – Intermediary is unable to process response from recipient | Unable to process response from receiver. Message delivered but status of message at receiver is unknown. |
4.2 |
| The recipient returns an Error message. | Pass through Error to initiating party | Surescripts passes Error message through | [as populated by the recipient] | [as populated by the recipient] |
4.3 |
| The recipient returns a valid Status message. | Status (to initiating party) | 010 or 000 (As populated by the recipient) |
| Note: If the recipient is the end point and the return message is a Status, the Status code is 010. If the recipient is not an end point, the Status code is 000. |