Skip to content

NPHIES Integration (تكامل نفيس)

Saudi National Platform for Health Electronic Exchange Services integration module. Supports FHIR R4 messaging for eligibility checks, prior authorizations, and claim submissions.

Overview

FeatureStatus
Module Setup & ConfigDone
FHIR Client (mTLS, Bundle builder)Done
Transaction LoggingDone
Eligibility CheckDone
Prior AuthorizationDone
Claim SubmissionDone
Polling & CancelDone

Configuration

Endpoints

MethodEndpointDescription
GET/api/nphies/configGet NPHIES configuration
PUT/api/nphies/configUpdate configuration
POST/api/nphies/test-connectionTest NPHIES connectivity
POST/api/nphies/upload-certificateUpload mTLS certificate + key

Configuration Fields

FieldTypeDescription
provider_licensestringNPHIES provider license number
facility_nphies_idstringFacility ID registered with NPHIES
sandbox_modebooleanUse sandbox endpoint (default: true)
is_activebooleanEnable NPHIES integration
sender_idstringProvider organization identifier
receiver_idstringPayer/NPHIES organization identifier

Certificate Upload

mTLS authentication is required for NPHIES. Upload certificate and private key files:

POST /api/nphies/upload-certificate
Content-Type: multipart/form-data

certificate: [.pem file]
private_key: [.pem file]

Transaction Log

MethodEndpointDescription
GET/api/nphies/transactionsList transactions
GET/api/nphies/transactions/{id}Get transaction detail

Query Parameters

ParamTypeDescription
typestringeligibility, preauth, claim, cancel, poll
statusstringpending, queued, success, error, timeout
patient_idintegerFilter by patient
date_fromdateFrom date
date_todateTo date

Permissions

PermissionDescription
nphies.config.viewView NPHIES configuration
nphies.config.manageManage config, test connection, upload certs
nphies.transactions.viewView transaction logs
nphies.eligibility.checkRun eligibility checks
nphies.preauth.submitSubmit prior authorizations
nphies.claim.submitSubmit claims
nphies.cancelCancel transactions
nphies.pollPoll for pending responses

Eligibility Check

Endpoint

MethodEndpointDescription
POST/api/nphies/eligibilityCheck patient insurance eligibility

Request Body

FieldTypeRequiredDescription
patient_idintegerYesPatient ID (must have national_id)
insurer_codestringYesInsurance company NPHIES code
service_datedateNoService date (defaults to today)

Response

json
{
  "data": {
    "eligible": true,
    "disposition": "Patient is eligible",
    "benefits": [...],
    "transaction_id": 1,
    "error": null
  }
}

Prior Authorization

Endpoints

MethodEndpointDescription
POST/api/nphies/preauthSubmit prior authorization
GET/api/nphies/preauthsList preauthorizations
GET/api/nphies/preauths/{id}Get preauth detail

Request Body (POST)

FieldTypeRequiredDescription
patient_idintegerYesPatient ID
lab_request_idintegerYesLab request ID
insurer_codestringYesInsurance company code
diagnosis_codestringYesICD-10-AM diagnosis code
investigation_idsarrayYesInvestigation IDs to authorize

Response

json
{
  "data": {
    "approved": true,
    "preauth_ref": "PA-12345",
    "valid_from": "2026-04-03",
    "valid_to": "2026-05-03",
    "items": [{"sequence": 1, "approved_amount": 50}],
    "total_approved": 50.000,
    "transaction_id": 2,
    "preauth_id": 1,
    "error": null
  }
}

Architecture

Moon ERP API Documentation