curl --request GET \
--url https://api.eka.care/abdm/nhcx/v1/claims/{claimId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.eka.care/abdm/nhcx/v1/claims/{claimId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eka.care/abdm/nhcx/v1/claims/{claimId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/abdm/nhcx/v1/claims/{claimId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"admission_date": "2023-11-07T05:31:56Z",
"admission_type": "<string>",
"archived_at": "2023-11-07T05:31:56Z",
"case_number": "<string>",
"catalog_md5": "<string>",
"claim_id": 1,
"claim_ref": "<string>",
"copay_amount": 123,
"copay_required": true,
"created_at": "2023-11-07T05:31:56Z",
"deduction_pct": 123,
"discharge_date": "2023-11-07T05:31:56Z",
"discharge_type": "<string>",
"drafts": [
"<string>"
],
"max_queries_reached": true,
"payer_code": "<string>",
"policy_id": 1,
"preauth_case_no": "<string>",
"preauth_due_by": "2023-11-07T05:31:56Z",
"preauth_overdue": true,
"preauth_ref": "<string>",
"product_id": "<string>",
"provider_hfr": "<string>",
"query_count": 123,
"registration_details": "<unknown>",
"review_path": "<string>",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"issues": [
"<string>"
],
"updated_at": "<string>"
}{
"error": "<string>",
"issues": [
"<string>"
],
"updated_at": "<string>"
}Get Claim
Claim summary: status, payer references, turn-around deadlines, review path, co-payment and the stages with a saved draft.
curl --request GET \
--url https://api.eka.care/abdm/nhcx/v1/claims/{claimId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.eka.care/abdm/nhcx/v1/claims/{claimId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.eka.care/abdm/nhcx/v1/claims/{claimId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.eka.care/abdm/nhcx/v1/claims/{claimId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/abdm/nhcx/v1/claims/{claimId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"admission_date": "2023-11-07T05:31:56Z",
"admission_type": "<string>",
"archived_at": "2023-11-07T05:31:56Z",
"case_number": "<string>",
"catalog_md5": "<string>",
"claim_id": 1,
"claim_ref": "<string>",
"copay_amount": 123,
"copay_required": true,
"created_at": "2023-11-07T05:31:56Z",
"deduction_pct": 123,
"discharge_date": "2023-11-07T05:31:56Z",
"discharge_type": "<string>",
"drafts": [
"<string>"
],
"max_queries_reached": true,
"payer_code": "<string>",
"policy_id": 1,
"preauth_case_no": "<string>",
"preauth_due_by": "2023-11-07T05:31:56Z",
"preauth_overdue": true,
"preauth_ref": "<string>",
"product_id": "<string>",
"provider_hfr": "<string>",
"query_count": 123,
"registration_details": "<unknown>",
"review_path": "<string>",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"issues": [
"<string>"
],
"updated_at": "<string>"
}{
"error": "<string>",
"issues": [
"<string>"
],
"updated_at": "<string>"
}Authorizations
The API requires a Bearer token (JWT) for authentication.
Headers
Eka User ID (OID)
Partner User ID
Partner HIP ID
Path Parameters
claim_id returned by Create Claim
x >= 0Response
OK
Set when the provider archived (set aside) this claim; nil = active. Archived claims still appear in the list/detail APIs (for analytics) but are excluded from reuse.
x >= 0The payer-declared patient-liable amount (ClaimResponse.total[copayment]).
True when the payer has declared a patient-liable amount on this claim's latest adjudication — the signal to enable the co-payment collection flow (and its mandatory beneficiary consent form) in the UI. Derived from the payer's own response, NOT from a wallet-vs-claim comparison: the payer is authoritative on what the beneficiary owes, and its figure already accounts for scheme rules a naive balance subtraction would miss.
The payer's deduction on the final claim as a percentage of the submitted amount ((submitted − approved) / submitted × 100). Nil until an adjudicated final-claim request with both amounts exists.
Lists the stages that have a saved (unsubmitted) draft — "Preauth" and/or "Claim". Present so the resume path can go straight to GET .../requests/draft: instead of issuing speculative reads for ids that may not exist.
The policy this case was created against. Serialized so a client resuming the case can key the procedure catalogue (GET /policies/:policyId/...) off it directly, instead of re-deriving it from a redundant, failure-prone POST /policies/search on every resume.
x >= 0CreatedAt + 48h — the deadline to initiate a pre-auth after registration. Nil once a pre-auth has ever been submitted (the deadline no longer applies) or once the claim is archived.
True when PreAuthDueBy has passed and no pre-auth has been submitted — the claim is a candidate for the next ArchiveOverdueRegistrations sweep.
How many times the payer has queried this claim's pre-auth. MaxQueriesReached mirrors the UAT's stated cap of 2 — informational: NHCX controls when it stops querying, this is not a limit we enforce on submission.
The stored TC-04 registration enrichment (attendant, emergency and child document references) as captured at case creation — see models.StoredRegistration. Omitted when none was supplied. Document bytes are not inlined; the refs point to S3.
Tells the FE which post-adjudication action to offer: "crc" — rejected, or deduction strictly > 20%: the one-shot CRC appeal (POST /claims/:claimId/claim/reprocess). "cpd_review" — deduction ≤ 20% (including exactly 20%): "erroneous claim"; CPD review, NOT appealable — the reprocess endpoint will refuse it. "" — no adjudicated deduction/rejection to act on, or the one-shot appeal is already used (see the claim's reprocess request row / claim_reprocess_* status for its outcome).
Was this page helpful?

