Real-Time Eligibility Check SOAP
Submit real-time eligibility checks over SOAP using the CAQH CORE vC2.2.0 XML Schema
/2025-06-01/protocols/caqh-core
Real-time eligibility checks are ideal for in-person patient visits, telehealth appointments, and other scenarios where you need immediate information about a patient’s coverage. This endpoint is ideal when you must meet CAQH Core Connectivity Safe Harbor requirements or integrate with systems requiring CAQH CORE-compliant SOAP connectivity.
- Call this endpoint with a request in XML format. The XML must conform to the CAQH CORE vC2.2.0 XML Schema. The
Payload
element must contain a valid eligibility check in 270 X12 EDI format. We recommend reviewing the requirements for a basic eligibility request. - Stedi validates your eligibility check and sends it to the payer.
- The endpoint returns a synchronous SOAP response in XML format. It contains the full 271 X12 EDI response from the payer containing the patient's eligibility and benefits information.
Visit Real-time eligibility checks for a full how-to guide and Troubleshooting for SOAP-specific errors and resolutions.
Request
The request payload must be XML that conforms to the CAQH CORE vC2.2.0 XML Schema. It consists of three main parts: the envelope, the header, and the body.
<soapenv:Envelope>
<soapenv:Header>
...
</soapenv:Header>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>
Envelope
The SOAP Envelope
element wraps both the header and body. It defines the message structure according to the SOAP specification.
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
Envelope
must declare the following namespaces:
Namespace declaration | Required | Description |
---|---|---|
xmlns:soapenv | Yes | Declares the XML namespace for the SOAP envelope. Must be set to http://www.w3.org/2003/05/soap-envelope . |
xmlns:cor | Yes | Declares the XML namespace for CAQH CORE rules. Must be set to http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd . |
Header
The Header
element specifies the WS-Security namespace (wsse
) and contains the required credentials for authentication.
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
Header
must include the following elements:
Element | Required | Description |
---|---|---|
wsse:Security | Yes | The parent container for the security token. It includes:
|
wsse:Username | Yes | Set this to your Stedi Account ID. You can find your account ID at the end of any Stedi portal URL. For example, in https://portal.stedi.com/app/healthcare/eligibility?account=1111-33333-55555 , the account ID is 1111-33333-55555 . |
wsse:Password | Yes | Set this to your API Key. You can create and manage API keys from the API Keys page in the Stedi portal. |
Body
The Body
element contains the request details, and it must conform to the CAQH CORE XML Schema vC2.2.0.
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2007-08-30T10:20:34.000Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
Body
must include the following elements:
Element | Required | Description |
---|---|---|
PayloadType | Yes | The type of transaction you're sending. Must be set to X12_270_Request_005010X279A1 . |
ProcessingMode | Yes | Must be set to RealTime . |
PayloadID | Yes | A unique identifier for the request. Per the CORE specifications, this value should conform to ISO UUID standards with hexadecimal notation, generated using a combination of local timestamp (in milliseconds) as well as the hardware (MAC) address to ensure uniqueness. Stedi checks to ensure this is a valid UUID when you submit the request. |
TimeStamp | Yes | UTC time in ISO 8601 format, such as 2024-07-28T12:00:00Z . |
SenderID | Yes | An identifier for the transaction sender. This can be up to 50 characters. We recommend using an Object Identifier (OID). You can obtain an OID from the HL7 OLID Registry or another trusted source. You could also submit a D-U-N-S Number if desired. |
ReceiverID | Yes | An identifier for the transaction receiver. This can be up to 50 characters. We recommend using an Object Identifier (OID). You can obtain an OID from the HL7 OLID Registry or another trusted source. You could also submit a D-U-N-S Number if desired. |
CORERuleVersion | Yes | The CAQH CORE rule version. Must be 2.2.0 . |
Payload | Yes | The X12 EDI 270 eligibility check wrapped in <![CDATA[ ... ]]> . This data must conform to 270 X12 EDI format. We recommend reviewing the requirements for a basic eligibility request. |
Response
The response is a SOAP message in XML format. The response structure is similar to the request, with the Payload
containing the payer's X12 EDI 271 response.
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header/>
<soapenv:Body>
<cor:COREEnvelopeRealTimeResponse>
<PayloadType>X12_271_Response_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>f81d4fae-7dec-11d0-a765-00a0c91e6b12</PayloadID>
<TimeStamp>2024-07-28T12:01:22.000Z</TimeStamp>
<SenderID>RECEIVER_ID</SenderID>
<ReceiverID>STEDI</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*STEDI *01*117151744 *111111*1234*^*00501*123456782*0*P*>~GS*HB*STEDI*117151744*20240326*111000*1*X*005010X279A1~ST*271*1001*005010X279A1~BHT*0022*11*01J2VZA127GH93JT74HJU*20240326*1514~HL*1**20*1~NM1*PR*2*ABCDE*****FI*111000123~PER*IC**TE*123456789*UR*website.company.com~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****XX*1999999984~HL*3*2*22*0~NM1*IL*1*DOE*JANE*A***MI*123456789~REF*6P*123456789*ABCDE~REF*Q4*123456789~N3*1234 FIRST ST~N4*NEW YORK*WV*123451111~DMG*D8*19000101*F~INS*Y*18*001*25~DTP*356*D8*20220102~DTP*346*D8*20240101~DTP*347*D8*20241231~EB*1**30**Open Access Plus~MSG*Complete Care Management~EB*G*FAM*30***23*6000.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*FAM*30***23*500.00*****Y~MSG*Includes services provided by Client Specific Network~EB*G*IND*30***23*3000.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***23*250.00*****Y~MSG*Includes services provided by Client Specific Network~EB*C*FAM*30***23*15000.00*****N~EB*G*FAM*30***23*30000.00*****N~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*A*IND*30*****.10****Y~EB*C*IND*30***23*7500.00*****N~EB*G*IND*30***23*15000.00*****N~MSG*Deductible does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~EB*A*IND*30*****.50****N~EB*1**A7^BC^A8^A4^A5^A6^7^4^BB^22*********W~EB*C*IND*BC^A4^A6^4^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*22~EB*C*IND*A8****0.00****N*Y~MSG*Includes services provided by Client Specific Network~EB*C*IND*A4^A6^4^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*11~EB*C*IND*A4^A6^22****0.00****N*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*02~EB*B*IND*A4^A6^22***27*20.00****N*Y~III*ZZ*11~EB*A*IND*A4^A6^4^22*****.00***N*Y~III*ZZ*11~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Included For Specific Services~III*ZZ*02~EB*A*IND*A4^A6^22*****.00***N*Y~MSG*Included For Specific Services~III*ZZ*02~EB*A*IND*A4^A6^22*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*02~EB*A*IND*A4^A6^4^22*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*02~EB*B*IND*A4^A6^22***27*20.00****N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*A*IND*7*****.00***Y*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*11~EB*CB**7^BB********Y*Y~EB*C*IND*7****0.00****Y*Y~MSG*Includes services provided by Client Specific Network~III*ZZ*11~EB*A*IND*7*****.00***Y*Y~III*ZZ*11~EB*A*IND*4*****.00***N*Y~III*ZZ*22~EB*A*IND*4*****.00***N*Y~MSG*Services rendered thru Client Specific Network~III*ZZ*22~EB*C*IND*BB****0.00****Y*Y~MSG*Includes services provided by Client Specific Network~EB*1**MH~MSG* Provider is out of network based on NPI ID provided in request.~EB*G*FAM*30***29*5760.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*FAM*30***29*500.00*****Y~MSG*Includes services provided by Client Specific Network~EB*G*IND*30***29*2760.00*****Y~MSG*Includes services provided by Client Specific Network~MSG*Copay does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***29*250.00*****Y~MSG*Includes services provided by Client Specific Network~EB*C*FAM*30***29*15000.00*****N~EB*G*FAM*30***29*30000.00*****N~MSG*Coinsurance does apply to member's out-of-pocket maximum~MSG*Deductible does apply to member's out-of-pocket maximum~EB*C*IND*30***29*7500.00*****N~EB*G*IND*30***29*15000.00*****N~MSG*Deductible does apply to member's out-of-pocket maximum~MSG*Coinsurance does apply to member's out-of-pocket maximum~SE*119*1001~GE*1*1~IEA*1*123456782~]]></Payload>
<ErrorCode>Success</ErrorCode>
<ErrorMessage></ErrorMessage>
</cor:COREEnvelopeRealTimeResponse>
</soapenv:Body>
</soapenv:Envelope>
The response body includes the following elements:
Element | Description |
---|---|
PayloadType | The type of the payload returned in the response. This is always X12_271_Response_005010X279A1 . |
ProcessingMode | The processing mode used for the request. This is always RealTime . |
PayloadID | A unique identifier Stedi generated for the transaction. This won't be the same value you submitted as the PayloadID in the request. |
TimeStamp | The timestamp when the response was generated in ISO 8601 format. |
SenderID | The ID of the sender of the response. This is always the same as the ReceiverID in the request. |
ReceiverID | The ID of the receiver of the response. This is always the same as the SenderID in the request. |
CORERuleVersion | The CAQH CORE rule version. This is always 2.2.0 . |
Payload | This is the full X12 EDI 271 response. It contains the patient's benefits information. |
ErrorCode | The error code, if any, associated with the response. These errors typically indicate issues with the request body, such as missing or invalid elements. They can also indicate authentication issues and other processing errors. Learn more. |
ErrorMessage | A description of the error, if any. |
Fault | Only included in the response when there is a SOAP fault. The Fault element includes a Code and Reason element that describe the error. Learn more. |
HTTP status codes
Status Code | Description |
---|---|
200 OK | Indicates a successful request. Note that Stedi returns a 200 even when the payer returns AAA errors in the 271 response. |
400 Bad Request | Indicates a SOAP fault, an error with the SOAP request body, or an X12 EDI validation error |
401 Unauthorized | Indicates issues with the API key you provided |
404 Not Found | Indicates an error with the endpoint URL you provided |
curl --request POST \
--url "https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core" \
--header "Content-Type: application/soap+xml" \
--data '<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2024-07-29T12:00:00Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
</soapenv:Envelope>'
import urllib.request
url = 'https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core'
headers = {
'Content-Type': 'application/soap+xml'
}
data = '''<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2024-07-29T12:00:00Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
</soapenv:Envelope>'''.encode('utf-8')
req = urllib.request.Request(url, data=data, headers=headers, method='POST')
with urllib.request.urlopen(req) as response:
print(response.read().decode('utf-8'))
const https = require('https');
const xml = `<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2024-07-29T12:00:00Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
</soapenv:Envelope>`;
const options = {
hostname: 'healthcare.us.stedi.com',
port: 443,
path: '/2025-06-01/protocols/caqh-core',
method: 'POST',
headers: {
'Content-Type': 'application/soap+xml',
'Content-Length': Buffer.byteLength(xml)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => { console.log(data); });
});
req.on('error', (error) => {
console.error(error);
});
req.write(xml);
req.end();
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class SoapClient {
public static void main(String[] args) throws Exception {
String xml = """
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2024-07-29T12:00:00Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
</soapenv:Envelope>
""";
URL url = new URL("https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/soap+xml");
conn.setDoOutput(true);
try (OutputStream os = conn.getOutputStream()) {
byte[] input = xml.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
try (var reader = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}
}
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
xml := `<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:cor="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>STEDI-ACCOUNT-ID</wsse:Username>
<wsse:Password>STEDI-API-KEY</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<cor:COREEnvelopeRealTimeRequest>
<PayloadType>X12_270_Request_005010X279A1</PayloadType>
<ProcessingMode>RealTime</ProcessingMode>
<PayloadID>YOUR-PAYLOAD-ID</PayloadID>
<TimeStamp>2024-07-29T12:00:00Z</TimeStamp>
<SenderID>SENDER-ID</SenderID>
<ReceiverID>RECEIVER-ID</ReceiverID>
<CORERuleVersion>2.2.0</CORERuleVersion>
<Payload><![CDATA[ISA*00* *00* *ZZ*SENDER *ZZ*RECEIVER *231106*1406*^*00501*000000001*0*T*>~GS*HS*SENDERGS*RECEIVERGS*20231106*140631*000000001*X*005010X279A1~ST*270*1234*005010X279A1~BHT*0022*13*10001234*20240321*1319~HL*1**20*1~NM1*PR*2*ABCDE*****PI*11122~HL*2*1*21*1~NM1*1P*2*ACME HEALTH SERVICES*****SV*1999999984~HL*3*2*22*0~TRN*1*11122-12345*1234567890~NM1*IL*1*JANE*DOE****MI*123456789~DMG*D8*19000101~DTP*291*D8*20240108~EQ*MH~SE*13*1234~GE*1*000000001~IEA*1*000000001~]]></Payload>
</cor:COREEnvelopeRealTimeRequest>
</soapenv:Body>
</soapenv:Envelope>`
req, err := http.NewRequest("POST", "https://healthcare.us.stedi.com/2025-06-01/protocols/caqh-core", bytes.NewBufferString(xml))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/soap+xml")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
{
"message": "string",
"code": "string"
}
{
"message": "string",
"code": "string"
}
{
"message": "string",
"code": "string"
}