User-friendly API docs with request/response samples for your sandbox integration.
Base URL: http://localhost:8899/PHIC/Claims3.0
Docs URL: http://localhost:8899/docs
npm install npm run dev
Then call GET /getToken first, and pass the returned token in header token.
Use these values para ma-access mo agad ang mock APIs.
accreditationNo: 300806 softwareCertificateId: SW-CERT-0001
CIPHER_KEY=sample-philhealth-cipher-key
If binago mo ito sa .env, kailangan mo i-regenerate encrypted payloads.
http://localhost:8899/PHIC/Claims3.0
lastname: ALOXXX firstname: BERNAXXX birthdate: 04-18-2006 expected pin: 192003610605
lastname: TEST2 firstname: TEST2 birthdate: 01-01-1990 expected pan: 1234-1527066-1
voucherNo: 201-062001-06I03 serieslhionos: 120723190000119 hospitalCode: 300832
GET /getToken using headers above.token.POST /getMemberPIN with encrypted body.{
"docMimeType": "text/xml",
"hash": "2896cafd69a34b6b673f9249fd4a033112ac3b06eb5d66634ec070007b07d117",
"key1": "",
"key2": "",
"iv": "MTIzNDU2Nzg5MGFiY2RlZg==",
"doc": "3Lf6CoTW6PCJrWe03YGGM64huuc6OjzuqNJZPdibxp5niMGMirrA42WBz33/mdvrDDjln2b4aiZN0D83Xxmua5M2KagTWM97QUjq/GqudMQ="
}
{
"success": true,
"message": "",
"result": {}
}
{
"success": false,
"message": "Invalid or expired token",
"result": null
}
Most endpoints use encrypted request and encrypted result.
{
"docMimeType": "text/xml",
"hash": "sha256-hex",
"key1": "",
"key2": "",
"iv": "base64-iv",
"doc": "base64-encrypted-data"
}
Paste plaintext JSON/XML, click Encrypt, then copy output to Postman body.
{
"docMimeType": "text/xml",
"hash": "",
"key1": "",
"key2": "",
"iv": "",
"doc": ""
}
/* decrypted text will appear here */
| # | Method | Path | Auth | Encrypted |
|---|---|---|---|---|
| 1 | GET | /getToken | No | No |
| 2 | POST | /getMemberPIN | Yes | Req + Res |
| 3 | POST | /getDoctorPAN | Yes | Req + Res |
| 4 | POST | /isDoctorAccredited | Yes | Req + Res |
| 5 | POST | /searchEmployer | Yes | Req + Res |
| 6 | POST | /isClaimEligible | Yes | Req + Res |
| 7 | POST | /generatePBEFPDF | Yes | Req + Res |
| 8 | POST | /searchCaseRates | Yes | Req + Res |
| 9 | POST | /validateCF4 | Yes | Req + Res |
| 10 | POST | /validateeSOA | Yes | Req + Res |
| 11 | POST | /validateCF5 | Yes | Special Req + Res |
| 12 | POST | /eClaimsFileCheck | Yes | Req + Res |
| 13 | POST | /uploadeClaims | Yes | Req + Res |
| 14 | GET | /getUploadedClaimsMap | Yes | Res |
| 15 | GET | /getClaimStatus | Yes | Res |
| 16 | POST | /addRequiredDocument | Yes | pXML encrypted |
| 17 | GET | /getVoucherDetails | Yes | Res |
| 18 | GET | /getDBServerDateTime | Yes | No |
| 19 | GET | /getServerDateTime | Yes | No |
| 20 | GET | /getServerVersion | Yes | No |
Tip: for encrypted endpoints, plaintext samples below are what you encrypt before sending.
Encrypted payload template (for request/result){
"docMimeType": "text/xml",
"hash": "sha256-hex",
"key1": "",
"key2": "",
"iv": "base64-iv",
"doc": "base64-encrypted-data"
}
accreditationNo: 300806 softwareCertificateId: SW-CERT-0001Response sample
{
"success": true,
"message": "Token is valid for 1800 seconds",
"result": "Q0dMZ2NwNTY3..."
}
token: <token from /getToken>Payload sample (decrypted JSON)
{
"lastname": "ALOXXX",
"firstname": "BERNAXXX",
"birthdate": "04-18-2006"
}
Response sample (decrypted result)
{ "pin": "192003610605" }
{
"lastname": "TEST2",
"firstname": "TEST2",
"birthdate": "01-01-1990"
}
Response sample (decrypted result)
{ "pan": "1234-1527066-1" }
{
"accrecode": "1234-1527066-1",
"admissiondate": "01-01-2024",
"dischargedate": "01-02-2024"
}
Response sample (decrypted result)
{
"isaccredited": "YES",
"accrecode": "1234-1527066-1",
"admissiondate": "01-01-2024",
"dischargedate": "01-02-2024",
"accreditationstart": "01-01-2020",
"accreditationend": "12-31-2099"
}
{ "PEN": "123456789012" }
Response sample (decrypted result)
{
"eEMPLOYERS": {
"employer": [
{
"pPEN": "123456789012",
"pEmployerName": "EMP1",
"pEmployerAddress": "EMP1"
}
],
"ASOF": "01-01-2024"
}
}
{
"hospitalCode": "300832",
"isForOPDHemodialysisClaim": "N",
"memberPIN": "192003610605",
"patientIs": "M",
"admissionDate": "01-01-2024",
"isFinal": "1"
}
Response sample (decrypted result)
{
"isok": "YES",
"referenceno": "REF-1730000000000",
"trackingno": "TRK-1730000000000",
"asof": "10/27/2025"
}
{ "accreno": "300832", "referenceno": "REF-1730000000000" }
Response sample (decrypted result)
"JVBERi0xLjQKJcfsj6IKMSAwIG9iago8PC9UeXBlIC9QYWdlL1BhcmVudCAyIDAgUi9NZWRpYUJveFswIDAgNTk1IDg0Ml0+PgplbmRvYmoK"
{ "description": "DIALYSIS" }
Response sample (decrypted result)
{
"eCASERATES": {
"CASERATES": [
{
"pCaseRateCode": "CR0389",
"pCaseRateDescription": "DIALYSIS PROCEDURE OTHER THAN HEMODIALYSIS (E.G. PERITONEAL, HEMOFILTRATION)",
"pItemCode": "90945",
"pItemDescription": "DIALYSIS PROCEDURE OTHER THAN HEMODIALYSIS (E.G. PERITONEAL, HEMOFILTRATION)",
"pEffectivityDate": "02-14-2024",
"pEffectivityEndDate": "12-31-9999",
"amount": {
"pPrimaryProfFee": "500.0",
"pPrimaryHCIFee": "3500.0",
"pPrimaryCaseRate": "4000.0"
}
}
]
}
}
<CF4></CF4>Response sample (decrypted result)
{ "errors": [] }
<eSOA></eSOA>Response sample (decrypted result)
{ "errors": [] }
{
"cf5": { "docMimeType": "...", "hash": "...", "key1": "", "key2": "", "iv": "...", "doc": "..." },
"eclaims": { "docMimeType": "...", "hash": "...", "key1": "", "key2": "", "iv": "...", "doc": "..." }
}
Plaintext inside each encrypted payload
cf5 => <CF5></CF5> eclaims => <eCLAIMS></eCLAIMS>Response sample (decrypted result)
{ "errors": [] }
<eCLAIMS></eCLAIMS>Response sample (decrypted result)
{
"validation": "PASSED",
"errors": []
}
<eCLAIMS></eCLAIMS>Response sample (decrypted result)
{
"eCONFIRMATION": {
"pReceiptTicketNumber": "2517372840000",
"pHospitalCode": "300832",
"pHospitalTransmittalNo": "3008321107000008",
"pTotalClaims": "1",
"pReceivedDate": "10/27/2025"
}
}
receiptTicketNumber=2517372840000Response sample (decrypted result)
{
"eCONFIRMATION": {
"MAPPING": [
{
"pClaiminNumber": "202517372840000",
"pPatientLastName": "LASTNAME",
"pPatientFirstName": "FIRSTNAME",
"pPatientMiddleName": "",
"pPatientSuffix": "",
"pAdmissionDate": "01-01-2024",
"pDischargeDate": "01-02-2024",
"pClaimSeriesLhio": "202517372840000"
}
],
"pReceiptTicketNumber": "2517372840000",
"pHospitalCode": "300832",
"pHospitalTransmittalNo": "3008321107000008",
"pTotalClaims": "1",
"pReceivedDate": "10/27/2025, 12:00:00 PM"
}
}
serieslhionos=120723190000119 // multiple: serieslhionos=120723190000119,060516030019903Response sample (decrypted result)
{
"STATUS": {
"pAsOf": "10/27/2025",
"pAsOfTime": "12:00:00 PM",
"CLAIM": [
{
"pClaimSeriesLhio": "120723190000119",
"pPin": "190892937994",
"pPatientLastName": "ALARCON",
"pPatientFirstName": "MAMERTO",
"pPatientMiddleName": "TRIA",
"pPatientSuffix": "",
"pAdmissionDate": "05-02-2012",
"pDischargeDate": "05-06-2012",
"pStatus": "IN PROCESS"
}
]
}
}
{
"pSeriesLhioNo": "120723190000119",
"pXML": { "docMimeType": "...", "hash": "...", "key1": "", "key2": "", "iv": "...", "doc": "..." }
}
Plaintext XML inside pXML.doc
<DOCUMENTS> <DOCUMENT pDocumentType="OPR" pDocumentURL="http://sample/file/opr.pdf" /> </DOCUMENTS>Response sample
{
"success": true,
"message": "",
"result": "Required documents added"
}
voucherno=201-062001-06I03Response sample (decrypted result)
{
"VOUCHER": {
"pVoucherNo": "201-062001-06I03",
"pVoucherDate": "06-14-2006",
"pTotalAmount": "19608.65",
"pNumberOfClaims": "1",
"claims": []
}
}
{
"success": true,
"message": "",
"result": [
{ "server": "DB Server 1", "datetime": "10/27/2025, 12:00:00 PM", "remarks": "" },
{ "server": "DB Server 2", "datetime": "10/27/2025, 12:00:00 PM", "remarks": "" }
]
}
{
"success": true,
"message": "",
"result": { "server": "DB Server 1", "datetime": "10/27/2025, 12:00:00 PM", "remarks": "" }
}
{
"success": true,
"message": "",
"result": "PECWS 3.0"
}
lastname: ALOXXX
firstname: BERNAXXX
birthdate: 04-18-2006
lastname: TEST2
firstname: TEST2
birthdate: 01-01-1990
voucherno: 201-062001-06I03
/getToken again.More detailed docs are also available in DOCUMENTATION.md.