Developers

Connect your HMIS to Ekline Claims.

Send discharge files straight from your hospital software, and read claims, approvals and payments back. HL7 FHIR R4 with a small JSON API, one key per hospital.

Quick start

  1. Get a key. A hospital admin signs in and opens Admin > API and integrations, then makes a key: read only, or read and write. It is shown once.
  2. Make your first call. List the claims that changed this month:
    curl -H "Authorization: Bearer $EKLINE_KEY" \
      "https://claims.eklinehealth.com/fhir/R4/Claim?_lastUpdated=ge2026-11-01"
  3. Send a discharge file with POST DocumentReference. It is audited exactly like an upload in the portal, and the result comes back on the Claim.

Keys and sign-in

Send the key on every call. A key only ever sees its own hospital's patients.

Authorization: Bearer ek_live_xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Read only keys can call every GET. Read and write keys can also send files and update stages and payments.
  • Keys are stored hashed. Revoke one any time in the same admin page; it stops at once.
  • HTTPS only on the live server. Keep keys on your server, never in a browser app or mobile app.

Sandbox and live calls

Every endpoint below has a Try it panel. With no key it answers from a sample patient, so you can see each response shape. Paste a key to call your hospital's real data; it stays in this browser tab only and is cleared when you close it.

Sandbox: sample data

Live calls count towards your hospital's monthly API calls.

How records map

One patient file in Ekline Claims is one hospital admission. Its Patient, Encounter, Coverage, Claim and ClaimResponse share the file's number as their id, so Claim/1042 and Patient/1042 are the same admission.

ResourceWhat it holdsSearch by
PatientName, UHID, gender, phone, ageidentifier name _lastUpdated
EncounterAdmission and discharge dates, IPD number, diagnosis, discharge modepatient identifier date
CoverageInsurer, TPA or scheme, and policy numberpatient
ClaimClaim and pre-auth numbers, bill total, tracker stage and audit verdictpatient identifier _lastUpdated
ClaimResponseApproved, settled and deducted amounts; payment date, amount and UTRrequest patient
DocumentReferenceEach scanned PDF. POST one to send a discharge filepatient
BinaryThe PDF itselfread by id

Searches return a searchset Bundle, newest first, 50 at a time (_count up to 200, _offset to page).

FHIR R4 endpoints

GET/fhir/R4/metadataNo key needed

CapabilityStatement (no key needed)

Example response
{
  "resourceType": "CapabilityStatement",
  "status": "active",
  "date": "2026-11-13",
  "kind": "instance",
  "fhirVersion": "4.0.1",
  "format": [
    "application/fhir+json",
    "json"
  ],
  "software": {
    "name": "Ekline Claims",
    "version": "1.0.0"
  },
  "implementation": {
    "description": "Ekline Claims FHIR R4 API",
    "url": "https://claims.eklinehealth.com/fhir/R4"
  },
  "rest": [
    {
      "mode": "server",
      "security": {
        "service": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/restful-security-service",
                "code": "OAuth"
              }
            ],
            "text": "Bearer API key per hospital"
          }
        ],
        "description": "Send Authorization: Bearer <hospital API key>. Keys are made in Admin > API and integrations."
      },
      "resource": [
        {
          "type": "Patient",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            }
          ],
          "searchParam": [
            {
              "name": "identifier",
              "type": "token"
            },
            {
              "name": "name",
              "type": "string"
            },
            {
              "name": "_lastUpdated",
              "type": "date"
            }
          ]
        },
        {
          "type": "Encounter",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            }
          ],
          "searchParam": [
            {
              "name": "patient",
              "type": "reference"
            },
            {
              "name": "identifier",
              "type": "token"
            },
            {
              "name": "date",
              "type": "date"
            }
          ]
        },
        {
          "type": "Coverage",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            }
          ],
          "searchParam": [
            {
              "name": "patient",
              "type": "reference"
            }
          ]
        },
        {
          "type": "Claim",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            }
          ],
          "searchParam": [
            {
              "name": "patient",
              "type": "reference"
            },
            {
              "name": "identifier",
              "type": "token"
            },
            {
              "name": "status",
              "type": "token"
            },
            {
              "name": "_lastUpdated",
              "type": "date"
            }
          ]
        },
        {
          "type": "ClaimResponse",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            }
          ],
          "searchParam": [
            {
              "name": "request",
              "type": "reference"
            },
            {
              "name": "patient",
              "type": "reference"
            }
          ]
        },
        {
          "type": "DocumentReference",
          "interaction": [
            {
              "code": "read"
            },
            {
              "code": "search-type"
            },
            {
              "code": "create"
            }
          ],
          "searchParam": [
            {
              "name": "patient",
              "type": "reference"
            }
          ]
        },
        {
          "type": "Binary",
          "interaction": [
            {
              "code": "read"
            }
          ]
        }
      ]
    }
  ]
}
Try it
GET/fhir/R4/Patient

Search Patient

Patients of this hospital (one per patient file).

FieldInAbout
identifierqueryUHID, IPD, claim or policy number
namequeryPart of the name
_countqueryPage size, 1 to 200 (default 50)
_offsetquerySkip this many results
_lastUpdatedquerye.g. ge2026-11-01
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/Patient"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/Patient/1042",
      "resource": {
        "resourceType": "Patient",
        "id": "1042",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Patient"
          ]
        },
        "identifier": [
          {
            "type": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
                  "code": "MR",
                  "display": "Medical record number"
                }
              ]
            },
            "system": "https://claims.eklinehealth.com/fhir/sid/uhid",
            "value": "JRH/24/0123"
          }
        ],
        "name": [
          {
            "text": "Ramesh Kumar Das"
          }
        ],
        "gender": "male",
        "extension": [
          {
            "url": "https://claims.eklinehealth.com/fhir/StructureDefinition/age-text",
            "valueString": "61"
          }
        ]
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
GET/fhir/R4/Patient/{id}

Read Patient

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "Patient",
  "id": "1042",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Patient"
    ]
  },
  "identifier": [
    {
      "type": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
            "code": "MR",
            "display": "Medical record number"
          }
        ]
      },
      "system": "https://claims.eklinehealth.com/fhir/sid/uhid",
      "value": "JRH/24/0123"
    }
  ],
  "name": [
    {
      "text": "Ramesh Kumar Das"
    }
  ],
  "gender": "male",
  "extension": [
    {
      "url": "https://claims.eklinehealth.com/fhir/StructureDefinition/age-text",
      "valueString": "61"
    }
  ]
}
Try it
GET/fhir/R4/Encounter

Search Encounter

Admissions: dates, diagnosis, discharge mode.

FieldInAbout
patientqueryPatient/{id}
identifierqueryIPD number
datequeryAdmission date, e.g. ge2026-11-01
_countqueryPage size, 1 to 200 (default 50)
_offsetquerySkip this many results
_lastUpdatedquerye.g. ge2026-11-01
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/Encounter"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/Encounter/1042",
      "resource": {
        "resourceType": "Encounter",
        "id": "1042",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Encounter"
          ]
        },
        "identifier": [
          {
            "system": "https://claims.eklinehealth.com/fhir/sid/ipd",
            "value": "IPD-5521"
          }
        ],
        "status": "finished",
        "class": {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "IMP",
          "display": "inpatient encounter"
        },
        "type": [
          {
            "text": "Surgical"
          }
        ],
        "subject": {
          "reference": "Patient/1042"
        },
        "period": {
          "start": "2026-11-03",
          "end": "2026-11-06"
        },
        "reasonCode": [
          {
            "text": "Cholelithiasis; laparoscopic cholecystectomy"
          }
        ],
        "hospitalization": {
          "dischargeDisposition": {
            "text": "Normal"
          }
        }
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
GET/fhir/R4/Encounter/{id}

Read Encounter

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "Encounter",
  "id": "1042",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Encounter"
    ]
  },
  "identifier": [
    {
      "system": "https://claims.eklinehealth.com/fhir/sid/ipd",
      "value": "IPD-5521"
    }
  ],
  "status": "finished",
  "class": {
    "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
    "code": "IMP",
    "display": "inpatient encounter"
  },
  "type": [
    {
      "text": "Surgical"
    }
  ],
  "subject": {
    "reference": "Patient/1042"
  },
  "period": {
    "start": "2026-11-03",
    "end": "2026-11-06"
  },
  "reasonCode": [
    {
      "text": "Cholelithiasis; laparoscopic cholecystectomy"
    }
  ],
  "hospitalization": {
    "dischargeDisposition": {
      "text": "Normal"
    }
  }
}
Try it
GET/fhir/R4/Coverage

Search Coverage

Insurer, TPA or scheme and policy number.

FieldInAbout
patientqueryPatient/{id}
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/Coverage"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/Coverage/1042",
      "resource": {
        "resourceType": "Coverage",
        "id": "1042",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Coverage"
          ]
        },
        "status": "active",
        "identifier": [
          {
            "system": "https://claims.eklinehealth.com/fhir/sid/policy",
            "value": "MA/2026/778812"
          }
        ],
        "subscriberId": "MA/2026/778812",
        "beneficiary": {
          "reference": "Patient/1042"
        },
        "payor": [
          {
            "display": "Medi Assist India TPA"
          }
        ],
        "type": {
          "text": "Insurer / TPA"
        }
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
GET/fhir/R4/Coverage/{id}

Read Coverage

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "Coverage",
  "id": "1042",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Coverage"
    ]
  },
  "status": "active",
  "identifier": [
    {
      "system": "https://claims.eklinehealth.com/fhir/sid/policy",
      "value": "MA/2026/778812"
    }
  ],
  "subscriberId": "MA/2026/778812",
  "beneficiary": {
    "reference": "Patient/1042"
  },
  "payor": [
    {
      "display": "Medi Assist India TPA"
    }
  ],
  "type": {
    "text": "Insurer / TPA"
  }
}
Try it
GET/fhir/R4/Claim

Search Claim

Claims with stage and audit verdict (extensions).

FieldInAbout
patientqueryPatient/{id}
identifierqueryClaim or pre-auth number
_countqueryPage size, 1 to 200 (default 50)
_offsetquerySkip this many results
_lastUpdatedquerye.g. ge2026-11-01
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/Claim"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/Claim/1042",
      "resource": {
        "resourceType": "Claim",
        "id": "1042",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Claim"
          ]
        },
        "identifier": [
          {
            "system": "https://claims.eklinehealth.com/fhir/sid/claim-id",
            "value": "CL-26-118842"
          },
          {
            "system": "https://claims.eklinehealth.com/fhir/sid/preauth-no",
            "value": "PA-26-55120"
          }
        ],
        "status": "active",
        "type": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/claim-type",
              "code": "institutional"
            }
          ]
        },
        "use": "claim",
        "patient": {
          "reference": "Patient/1042"
        },
        "created": "2026-11-03T09:12:44+00:00",
        "provider": {
          "display": "Hospital"
        },
        "priority": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/processpriority",
              "code": "normal"
            }
          ]
        },
        "insurance": [
          {
            "sequence": 1,
            "focal": true,
            "coverage": {
              "reference": "Coverage/1042"
            }
          }
        ],
        "item": [
          {
            "sequence": 1,
            "productOrService": {
              "text": "Inpatient hospitalisation"
            },
            "net": {
              "value": 84500,
              "currency": "INR"
            }
          }
        ],
        "total": {
          "value": 84500,
          "currency": "INR"
        },
        "extension": [
          {
            "url": "https://claims.eklinehealth.com/fhir/CodeSystem/claim-stage",
            "valueCoding": {
              "system": "https://claims.eklinehealth.com/fhir/CodeSystem/claim-stage",
              "code": "Submitted",
              "display": "Submitted"
            }
          },
          {
            "url": "https://claims.eklinehealth.com/fhir/StructureDefinition/audit-verdict",
            "valueString": "READY"
          }
        ]
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
GET/fhir/R4/Claim/{id}

Read Claim

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "Claim",
  "id": "1042",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/Claim"
    ]
  },
  "identifier": [
    {
      "system": "https://claims.eklinehealth.com/fhir/sid/claim-id",
      "value": "CL-26-118842"
    },
    {
      "system": "https://claims.eklinehealth.com/fhir/sid/preauth-no",
      "value": "PA-26-55120"
    }
  ],
  "status": "active",
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/claim-type",
        "code": "institutional"
      }
    ]
  },
  "use": "claim",
  "patient": {
    "reference": "Patient/1042"
  },
  "created": "2026-11-03T09:12:44+00:00",
  "provider": {
    "display": "Hospital"
  },
  "priority": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/processpriority",
        "code": "normal"
      }
    ]
  },
  "insurance": [
    {
      "sequence": 1,
      "focal": true,
      "coverage": {
        "reference": "Coverage/1042"
      }
    }
  ],
  "item": [
    {
      "sequence": 1,
      "productOrService": {
        "text": "Inpatient hospitalisation"
      },
      "net": {
        "value": 84500,
        "currency": "INR"
      }
    }
  ],
  "total": {
    "value": 84500,
    "currency": "INR"
  },
  "extension": [
    {
      "url": "https://claims.eklinehealth.com/fhir/CodeSystem/claim-stage",
      "valueCoding": {
        "system": "https://claims.eklinehealth.com/fhir/CodeSystem/claim-stage",
        "code": "Submitted",
        "display": "Submitted"
      }
    },
    {
      "url": "https://claims.eklinehealth.com/fhir/StructureDefinition/audit-verdict",
      "valueString": "READY"
    }
  ]
}
Try it
GET/fhir/R4/ClaimResponse

Search ClaimResponse

Approved, settled and paid amounts, once the payer has answered.

FieldInAbout
requestqueryClaim/{id}
patientqueryPatient/{id}
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/ClaimResponse"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/ClaimResponse/1042",
      "resource": {
        "resourceType": "ClaimResponse",
        "id": "1042",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/ClaimResponse"
          ]
        },
        "status": "active",
        "type": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/claim-type",
              "code": "institutional"
            }
          ]
        },
        "use": "claim",
        "patient": {
          "reference": "Patient/1042"
        },
        "created": "2026-11-20T11:05:19+00:00",
        "insurer": {
          "display": "Medi Assist India TPA"
        },
        "request": {
          "reference": "Claim/1042"
        },
        "outcome": "complete",
        "preAuthRef": "PA-26-55120",
        "total": [
          {
            "category": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/adjudication",
                  "code": "submitted"
                }
              ]
            },
            "amount": {
              "value": 84500,
              "currency": "INR"
            }
          },
          {
            "category": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/adjudication",
                  "code": "eligible"
                }
              ]
            },
            "amount": {
              "value": 79650,
              "currency": "INR"
            }
          },
          {
            "category": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/adjudication",
                  "code": "benefit"
                }
              ]
            },
            "amount": {
              "value": 79650,
              "currency": "INR"
            }
          },
          {
            "category": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/adjudication",
                  "code": "deductible"
                }
              ]
            },
            "amount": {
              "value": 4850,
              "currency": "INR"
            }
          }
        ],
        "payment": {
          "type": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/ex-paymenttype",
                "code": "complete"
              }
            ]
          },
          "date": "2026-11-20",
          "amount": {
            "value": 79650,
            "currency": "INR"
          },
          "identifier": {
            "value": "SBIN1234567890"
          }
        }
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
GET/fhir/R4/ClaimResponse/{id}

Read ClaimResponse

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "ClaimResponse",
  "id": "1042",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/ClaimResponse"
    ]
  },
  "status": "active",
  "type": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/claim-type",
        "code": "institutional"
      }
    ]
  },
  "use": "claim",
  "patient": {
    "reference": "Patient/1042"
  },
  "created": "2026-11-20T11:05:19+00:00",
  "insurer": {
    "display": "Medi Assist India TPA"
  },
  "request": {
    "reference": "Claim/1042"
  },
  "outcome": "complete",
  "preAuthRef": "PA-26-55120",
  "total": [
    {
      "category": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/adjudication",
            "code": "submitted"
          }
        ]
      },
      "amount": {
        "value": 84500,
        "currency": "INR"
      }
    },
    {
      "category": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/adjudication",
            "code": "eligible"
          }
        ]
      },
      "amount": {
        "value": 79650,
        "currency": "INR"
      }
    },
    {
      "category": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/adjudication",
            "code": "benefit"
          }
        ]
      },
      "amount": {
        "value": 79650,
        "currency": "INR"
      }
    },
    {
      "category": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/adjudication",
            "code": "deductible"
          }
        ]
      },
      "amount": {
        "value": 4850,
        "currency": "INR"
      }
    }
  ],
  "payment": {
    "type": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/ex-paymenttype",
          "code": "complete"
        }
      ]
    },
    "date": "2026-11-20",
    "amount": {
      "value": 79650,
      "currency": "INR"
    },
    "identifier": {
      "value": "SBIN1234567890"
    }
  }
}
Try it
GET/fhir/R4/DocumentReference

Search DocumentReference

Scanned PDFs of a patient file.

FieldInAbout
patientqueryPatient/{id}
Example response
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 1,
  "link": [
    {
      "relation": "self",
      "url": "/fhir/R4/DocumentReference"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://claims.eklinehealth.com/fhir/R4/DocumentReference/3311",
      "resource": {
        "resourceType": "DocumentReference",
        "id": "3311",
        "meta": {
          "profile": [
            "https://nrces.in/ndhm/fhir/r4/StructureDefinition/DocumentReference"
          ]
        },
        "status": "current",
        "type": {
          "text": "Patient file scan (PDF)"
        },
        "subject": {
          "reference": "Patient/1042"
        },
        "date": "2026-11-06T18:20:10+00:00",
        "context": {
          "encounter": [
            {
              "reference": "Encounter/1042"
            }
          ]
        },
        "content": [
          {
            "attachment": {
              "contentType": "application/pdf",
              "url": "Binary/3311",
              "title": "discharge-file.pdf",
              "size": 4813422,
              "hash": "sZRqySSS0jR8YjW00mERhA=="
            }
          }
        ]
      },
      "search": {
        "mode": "match"
      }
    }
  ]
}
Try it
POST/fhir/R4/DocumentReferenceRead and write key

Send a discharge file from the HMIS (needs a read and write key)

Creates a patient file and starts its audit, as an upload does. content[0].attachment: contentType application/pdf, data = base64 PDF, title = file name. Put a contained Patient with identifier (UHID) and name[0].text; context.related[0].identifier.value = IPD number; description = tracker stage (optional).

Example response
{
  "resourceType": "DocumentReference",
  "id": "3311",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/DocumentReference"
    ]
  },
  "status": "current",
  "type": {
    "text": "Patient file scan (PDF)"
  },
  "subject": {
    "reference": "Patient/1042"
  },
  "date": "2026-11-06T18:20:10+00:00",
  "context": {
    "encounter": [
      {
        "reference": "Encounter/1042"
      }
    ]
  },
  "content": [
    {
      "attachment": {
        "contentType": "application/pdf",
        "url": "Binary/3311",
        "title": "discharge-file.pdf",
        "size": 4813422,
        "hash": "sZRqySSS0jR8YjW00mERhA=="
      }
    }
  ]
}
Try it
GET/fhir/R4/DocumentReference/{id}

Read DocumentReference

FieldInAbout
id requiredpathRecord id
Example response
{
  "resourceType": "DocumentReference",
  "id": "3311",
  "meta": {
    "profile": [
      "https://nrces.in/ndhm/fhir/r4/StructureDefinition/DocumentReference"
    ]
  },
  "status": "current",
  "type": {
    "text": "Patient file scan (PDF)"
  },
  "subject": {
    "reference": "Patient/1042"
  },
  "date": "2026-11-06T18:20:10+00:00",
  "context": {
    "encounter": [
      {
        "reference": "Encounter/1042"
      }
    ]
  },
  "content": [
    {
      "attachment": {
        "contentType": "application/pdf",
        "url": "Binary/3311",
        "title": "discharge-file.pdf",
        "size": 4813422,
        "hash": "sZRqySSS0jR8YjW00mERhA=="
      }
    }
  ]
}
Try it
GET/fhir/R4/Binary/{id}

Download the PDF

FieldInAbout
id requiredpathRecord id
Example response
(the PDF file itself, Content-Type: application/pdf)
Try it

JSON API endpoints

GET/api/v1/cases

Patient files changed since a time

FieldInAbout
updated_sincequery2026-11-01 or 2026-11-01T10:00:00
limitquery
Example response
{
  "data": [
    {
      "id": 1042,
      "patient_name": "Ramesh Kumar Das",
      "uhid": "JRH/24/0123",
      "ipd_no": "IPD-5521",
      "payer_name": "Medi Assist India TPA",
      "payer_group": "Insurer / TPA",
      "policy_no": "MA/2026/778812",
      "claim_id": "CL-26-118842",
      "preauth_no": "PA-26-55120",
      "doa": "2026-11-03",
      "dod": "2026-11-06",
      "diagnosis": "Cholelithiasis; laparoscopic cholecystectomy",
      "stage": "Submitted",
      "audit_status": "done",
      "verdict": "READY",
      "initial_al": 45000,
      "final_al": 79650,
      "bill_amount": 84500,
      "settled_amount": null,
      "deductions": null,
      "tds": null,
      "payment_received": null,
      "payment_date": null,
      "utr": null,
      "submitted_on": "2026-11-08",
      "created_at": "2026-11-03 09:12:44",
      "updated_at": "2026-11-08 16:40:02"
    }
  ]
}
Try it
GET/api/v1/cases/{id}

One patient file with its latest audit findings

FieldInAbout
id requiredpathRecord id
Example response
{
  "data": {
    "id": 1042,
    "patient_name": "Ramesh Kumar Das",
    "uhid": "JRH/24/0123",
    "ipd_no": "IPD-5521",
    "payer_name": "Medi Assist India TPA",
    "payer_group": "Insurer / TPA",
    "policy_no": "MA/2026/778812",
    "claim_id": "CL-26-118842",
    "preauth_no": "PA-26-55120",
    "doa": "2026-11-03",
    "dod": "2026-11-06",
    "diagnosis": "Cholelithiasis; laparoscopic cholecystectomy",
    "stage": "Submitted",
    "audit_status": "done",
    "verdict": "READY",
    "initial_al": 45000,
    "final_al": 79650,
    "bill_amount": 84500,
    "settled_amount": null,
    "deductions": null,
    "tds": null,
    "payment_received": null,
    "payment_date": null,
    "utr": null,
    "submitted_on": "2026-11-08",
    "created_at": "2026-11-03 09:12:44",
    "updated_at": "2026-11-08 16:40:02",
    "latest_audit": {
      "number": 2,
      "status": "done",
      "verdict": "READY",
      "essential_missing": 0,
      "finished_at": "2026-11-06 18:24:51",
      "findings": [
        {
          "tier": "Non-essential",
          "desk": "Billing",
          "issue": "Pharmacy bill page 31 is not stamped.",
          "page": 31
        }
      ]
    }
  }
}
Try it
PATCH/api/v1/cases/{id}Read and write key

Update stage, claim and payment details (read and write key)

FieldInAbout
id requiredpathRecord id
Example response
{
  "data": {
    "id": 1042,
    "patient_name": "Ramesh Kumar Das",
    "uhid": "JRH/24/0123",
    "ipd_no": "IPD-5521",
    "payer_name": "Medi Assist India TPA",
    "payer_group": "Insurer / TPA",
    "policy_no": "MA/2026/778812",
    "claim_id": "CL-26-118842",
    "preauth_no": "PA-26-55120",
    "doa": "2026-11-03",
    "dod": "2026-11-06",
    "diagnosis": "Cholelithiasis; laparoscopic cholecystectomy",
    "stage": "Payment received",
    "audit_status": "done",
    "verdict": "READY",
    "initial_al": 45000,
    "final_al": 79650,
    "bill_amount": 84500,
    "settled_amount": 79650,
    "deductions": 4850,
    "tds": 0,
    "payment_received": 79650,
    "payment_date": "2026-11-20",
    "utr": "SBIN1234567890",
    "submitted_on": "2026-11-08",
    "created_at": "2026-11-03 09:12:44",
    "updated_at": "2026-11-20 11:05:19"
  }
}
Try it
GET/api/v1/usage

This month's calls and charges for this hospital

Example response
{
  "data": {
    "month": "2026-11",
    "calls": 6284,
    "billable_calls": 6270,
    "free_calls": 100,
    "charged_calls": 6170,
    "price_per_call_inr": 1,
    "amount_inr": 6170
  }
}
Try it

Errors and limits

StatusMeaning
400Something in the request is not valid. The answer says which field.
401No key, a wrong key, or a revoked key.
403The key is read only, or the hospital's plan does not include API access.
404No such record in this hospital.
429More than 300 calls a minute with one key. Wait for the time in Retry-After.

FHIR calls answer errors with an OperationOutcome; JSON calls with {"error": "..."}. Each answer carries X-RateLimit-Limit and X-RateLimit-Remaining.

Pricing

API access is an add-on. Each hospital gets 100 free calls a month; after that each call costs ₹1.00, billed on the hospital's Ekline invoice. Calls that fail on our side are never charged. See plans and add-ons.

Standards and security

  • FHIR R4 (4.0.1), JSON only (application/fhir+json). Profiles point to the NRCeS ABDM implementation guide, ready for NHCX claim exchange.
  • Encrypted in transit (TLS 1.2 or later) and at rest (AES-256). Every call is written to the hospital's audit log.
  • Personal data is processed under India's DPDP Act 2023. Hospitals stay responsible for patient consent; send only what the claim needs.