Mantys Eligibility API

Common search scenarios

Combinations that return 200 and still need care: search-all, member IDs, the maternity extra, and Daman.

Three fields decide what a check actually does: who you ask (tpa_name), how you name the patient (id_type), and what the payer needs on top (extra_args). They interact, and almost none of it is validated.

Every case on this page returns 200

create-task checks the Emirates ID prefix and nothing else. A combination that cannot work is still accepted, still queued, and still run: what tells the cases apart is the answer, and sometimes it is a confidently wrong one. That is why they are worth reading before you meet one in production.

Each card below loads into the Try it simulator from the same object it prints, so you can send the request in your browser and read the response it produces without touching the API.

The worked cases

Named payer, Emirates ID

Send this

The baseline every other example is a delta from. The 784 prefix is checked before the task is created, so a mistyped ID costs you nothing.

Request body
{
  "tpa_name": "TPA004",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "OUTPATIENT"
}

Search-all, Emirates ID

Send this

When you do not know the payer. The create response carries is_search_all and search_all_status, and the result carries aggregated_results instead of eligibility_result. Daman is never in the fan-out.

Request body
{
  "tpa_name": "BOTH",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "OUTPATIENT"
}

Named payer, member ID or card number

Send this

The retry when the Emirates ID is not linked at the payer yet, which is common for a newly issued card or a dependant added mid-policy. Only the payers whose scraper reads id_type can do this; the TPA matrix lists them.

Request body
{
  "tpa_name": "TPA004",
  "id_type": "CARDNUMBER",
  "id_value": "MBR-0000000",
  "visit_type": "OUTPATIENT"
}

Search-all, member ID or card number

Worth knowing

Accepted, and the sweep runs. Reach for it when you do not know the payer and the patient has their card but not their Emirates ID. Send the Emirates ID instead when you have one: it is the only identifier every payer accepts, so a sweep has the most to match on. Daman is never included in a search-all whichever identifier you send.

Request body
{
  "tpa_name": "BOTH",
  "id_type": "CARDNUMBER",
  "id_value": "MBR-0000000",
  "visit_type": "OUTPATIENT"
}

Daman, where visit_type is not inpatient or outpatient

Needs a payer-specific value

Every other payer takes some variation of OUTPATIENT and INPATIENT. Daman takes a service taxonomy instead: consultation reasons, ultrasound trimesters, dental fee models, and two flows that are not visits at all (VALIDITY_CHECK and BABY_FLOW). Nothing is validated at create time, so OUTPATIENT is accepted here and then fails at the portal. Pick the value from the Daman row of the TPA matrix.

Request body
{
  "tpa_name": "TPA023",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "CONSULTATION_ELECTIVE"
}

Dental where the payer lists it

Send this

Six payers take DENTAL as an ordinary visit_type, as do all three search-all sentinels. Everywhere else it is not on the list and a dental encounter goes in as OUTPATIENT, which costs you nothing: visit_type decides which benefit the payer prices and which portal flow runs, not what comes back, and the response carries the whole benefit schedule either way. Select the dental benefit from it yourself. AXA (INS010) is the exception in both directions: it lists DENTAL and ignores it, and its dental flow is reached through extra_args instead.

Request body
{
  "tpa_name": "TPA002",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "DENTAL"
}

Dental at Daman, where DENTAL is not a value

Needs a payer-specific value

Daman calls it DENTAL_SERVICES, and Daman Thiqa splits that again into a capitation programme and two fee-for-service tiers, so the value decides which dental scheme the portal is asked about. MedNet is the other payer that splits it, there by setting: DENTAL is the outpatient one and INPATIENT_DENTAL the inpatient. Read the value off the payer matrix rather than mapping your own "dental" to one value everywhere.

Request body
{
  "tpa_name": "TPA023",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "DENTAL_SERVICES_ROUTINE_FFS"
}

Maternity at NAS or Neuron

Needs a payer-specific value

Both payers ask whether the maternity treatment is inpatient, and nothing makes you answer. Omitting maternity_treatment is not an error: the portal answers as though you had said no, and you get outpatient maternity cover back without being told.

Request body
{
  "tpa_name": "TPA004",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "MATERNITY",
  "extra_args": {
    "maternity_treatment": true,
    "is_member_present_at_the_facility": true
  }
}

Dental at AXA, where visit_type is not read at all

Needs a payer-specific value

AXA is the payer that makes the general rule about visit_type false. Its scraper never reads the field: the dental flow is switched on by extra_args.use_dental, compared against the literal string "YES", and it needs a card or DHA member ID because the dental search is not on the Emirates ID form. visit_type is left as DENTAL here because it costs nothing and keeps your own records honest.

Request body
{
  "tpa_name": "INS010",
  "id_type": "CARDNUMBER",
  "id_value": "MBR-0000000",
  "visit_type": "DENTAL",
  "extra_args": {
    "use_dental": "YES"
  }
}

NAS or Neuron with a real referral

Worth knowing

The default at both JET payers is to tick the portal’s exception checkbox and submit with no referral, which is what you get by sending nothing. This is the other path: exception_case: false makes the scraper search the portal’s referral list, referral_document_url uploads the letter you already hold, and referring_physician names the clinician who wrote it.

Request body
{
  "tpa_name": "TPA004",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "OUTPATIENT",
  "extra_args": {
    "exception_case": false,
    "referral_document_url": "https://files.example.com/referral.pdf",
    "referring_physician": "DHA-P-0000000"
  }
}

A Daman referral consultation

Needs a payer-specific value

CONSULTATION_REFERRAL is the one Daman visit type that carries a referring clinician, and referring_physician is where the licence goes: it becomes referralClinicianLicense on the eligibility payload. On any other Daman visit type the key is read and dropped, so pairing the two is the whole rule.

Request body
{
  "tpa_name": "INS026",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "CONSULTATION_REFERRAL",
  "extra_args": {
    "referring_physician": "DHA-P-0000000"
  }
}

Maternity at Daman, where there is no MATERNITY

Needs a payer-specific value

Daman has no MATERNITY value. An antenatal scan goes in as the trimester it falls in, which your system knows from the gestational age and the appointment type does not; a delivery goes in as INPATIENT; a newborn not yet on the policy goes through BABY_FLOW. MATERNITY here is accepted at create time and fails at the portal, and maternity_treatment is a NAS and Neuron question that Daman never reads.

Request body
{
  "tpa_name": "INS026",
  "id_type": "EMIRATESID",
  "id_value": "784-0000-0000000-0",
  "visit_type": "ULTRASOUND_SECOND_TRIMESTER"
}

extra_args, by payer

The payers below ask for something beyond the three fields. Everyone else reads no extras at all, and sending them anyway is harmless: an extra a payer does not read is dropped, never rejected.

PayerAsks forWhenIf you leave it out
TPA001
Neuron LLC
maternity_treatment
Is inpatient treatment?
visit_type is MATERNITYthe portal answers as though you had said no
is_member_present_at_the_facility
Member present at the facility?
Every checkthe portal is told the member is present
exception_case
Bypass the referral requirement?
Every checkthe portal’s bypass checkbox is ticked and no referral is resolved
referral_document_url
Referral document URL
Every checkno referral document is uploaded
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
TPA002
Nextcare (Arab Gulf Health Services)
referring_department
Referring department
Every checka gatekeeper plan completes with a warning and no referral selected
TPA004
NAS Administration Services
maternity_treatment
Is inpatient treatment?
visit_type is MATERNITYthe portal answers as though you had said no
is_member_present_at_the_facility
Member present at the facility?
Every checkthe portal is told the member is present
exception_case
Bypass the referral requirement?
Every checkthe portal’s bypass checkbox is ticked and no referral is resolved
referral_document_url
Referral document URL
Every checkno referral document is uploaded
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
TPA023
Daman Thiqa
is_pod
Point of dispense (POD)?
Every checkisPOD is left off the payload entirely, which is not the same as false
pod_id
POD ID
Every checkpodId is left off the payload
is_maternity
Maternity encounter?
Every checkisMaternity is left off the payload
free_followup_or_extended_followup
Answer a follow-up rule as a follow-up visit
Every checka business-rule violation ends the check instead of being answered
not_related_to_chief_complaint
Answer a follow-up rule as a different complaint
Every checka business-rule violation ends the check instead of being answered
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
TPA026
Aafiya Medical Billing Services
referral_code
Referral code
Every checkthe portal’s referral code field is left blank
TPA029
eCare International Medical Billing Services
service_type
Service type
Every checkthe claim form is filled with Consultation GP
TPA036
MedNet UAE
is_emergency
Register as an emergency?
Every checkthe encounter is registered as an ordinary visit
use_metlife
Look up in MetLife?
Every checkthe member is looked up in MedNet’s own book
use_dubaicare
Look up in DubaiCare?
Every checkthe member is looked up in MedNet’s own book
TPA037
Lifeline TPA
service_type
Service type
Every checkthe claim form is filled with Consultation GP
INS010
AXA Insurance - Gulf (shown as GIG for some tenants)
use_dental
Dental check?
Every checkthe ordinary non-dental flow runs, whatever visit_type says
INS017
ADNIC (Abu Dhabi National Insurance Company)
visit_category
Visit category
Every checkthe consultation request is submitted as FIRST_VISIT
INS026
Daman (National Health Insurance Company)
is_pod
Point of dispense (POD)?
Every checkisPOD is left off the payload entirely, which is not the same as false
pod_id
POD ID
Every checkpodId is left off the payload
is_maternity
Maternity encounter?
Every checkisMaternity is left off the payload
free_followup_or_extended_followup
Answer a follow-up rule as a follow-up visit
Every checka business-rule violation ends the check instead of being answered
not_related_to_chief_complaint
Answer a follow-up rule as a different complaint
Every checka business-rule violation ends the check instead of being answered
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
INS078
Daman MSC
is_pod
Point of dispense (POD)?
Every checkisPOD is left off the payload entirely, which is not the same as false
pod_id
POD ID
Every checkpodId is left off the payload
is_maternity
Maternity encounter?
Every checkisMaternity is left off the payload
free_followup_or_extended_followup
Answer a follow-up rule as a follow-up visit
Every checka business-rule violation ends the check instead of being answered
not_related_to_chief_complaint
Answer a follow-up rule as a different complaint
Every checka business-rule violation ends the check instead of being answered
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
D002
Daman ABM
is_pod
Point of dispense (POD)?
Every checkisPOD is left off the payload entirely, which is not the same as false
pod_id
POD ID
Every checkpodId is left off the payload
is_maternity
Maternity encounter?
Every checkisMaternity is left off the payload
free_followup_or_extended_followup
Answer a follow-up rule as a follow-up visit
Every checka business-rule violation ends the check instead of being answered
not_related_to_chief_complaint
Answer a follow-up rule as a different complaint
Every checka business-rule violation ends the check instead of being answered
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check
D004
Daman Basic
is_pod
Point of dispense (POD)?
Every checkisPOD is left off the payload entirely, which is not the same as false
pod_id
POD ID
Every checkpodId is left off the payload
is_maternity
Maternity encounter?
Every checkisMaternity is left off the payload
free_followup_or_extended_followup
Answer a follow-up rule as a follow-up visit
Every checka business-rule violation ends the check instead of being answered
not_related_to_chief_complaint
Answer a follow-up rule as a different complaint
Every checka business-rule violation ends the check instead of being answered
referring_physician
Referring clinician
Every checkno referring clinician is recorded on the check

Those 18 keys are the whole list: every payer not named above reads no extras at all, and sending one anyway is ignored rather than rejected. Two rows carry a condition this table cannot show, because it is a property of the payer and not of the key: referring_physician only reaches Daman on a CONSULTATION_REFERRAL, and use_dental only reaches AXA’s dental flow on a card or DHA member ID. The shape of each is on the create-task page, and getting a shape wrong fails silently: use_dental and the two MedNet switches are compared against a literal string, so a JSON true reads as no.

Leaving the answer out is not an error

No extra is required and none is validated, so a maternity check with no maternity_treatment is accepted and runs. The payer's "Is IP Maternity" question is then answered No, and you get outpatient maternity cover with no error and no warning for a request that asked about inpatient. Send the key whenever visit_type is MATERNITY. The older title / value pair is still accepted; see extra_args. Every row in the table above behaves the same way: the "if you leave it out" column is the answer you get by default, not a warning you will see.

Daman's visit types

Daman is the exception twice over. It is never part of a search-all, so it has to be asked for by code. And its visit_type is a service taxonomy rather than the usual inpatient and outpatient split, so the value every other payer takes is not one Daman accepts.

Nothing rejects a wrong value at create time. The task is created, the check runs, and the failure comes back from the payer minutes later.

INS026Daman (National Health Insurance Company)22 accepted values
  • CONSULTATION_ELECTIVE Consultation - Elective
  • CONSULTATION_EMERGENCY Consultation - Emergency
  • CONSULTATION_ONCOLOGY Consultation - Oncology
  • CONSULTATION_REFERRAL Consultation - Referral
  • CONSULTATION_SCREENING Consultation - Screening
  • CONSULTATION_VACCINATION Consultation - Vaccination
  • INPATIENT In Patient
  • TELEHEALTH Tele-Consultation / Telemedicine
  • FREE_FOLLOWUP Free Follow-up (not reimbursable)
  • DIAGNOSTIC Diagnostic Testing
  • PHYSIOTHERAPY Physiotherapy
  • DENTAL_SERVICES Dental Services
  • PHARMACY Pharmacy
  • HOMECARE Homecare
  • REHABILITATION Rehabilitation
  • DAYCARE Daycare
  • ULTRASOUND_FIRST_TRIMESTER Ultrasound - First Trimester
  • ULTRASOUND_SECOND_TRIMESTER Ultrasound - Second Trimester
  • ULTRASOUND_THIRD_TRIMESTER Ultrasound - Third Trimester
  • OTHER_OP Other OP Services
  • VALIDITY_CHECK Validity Check
  • BABY_FLOW Baby Flow
TPA023Daman Thiqa25 accepted values
  • CONSULTATION_ELECTIVE Consultation - Elective
  • CONSULTATION_EMERGENCY Consultation - Emergency
  • CONSULTATION_ONCOLOGY Consultation - Oncology
  • CONSULTATION_REFERRAL Consultation - Referral
  • CONSULTATION_SCREENING Consultation - Screening
  • CONSULTATION_VACCINATION Consultation - Vaccination
  • INPATIENT In Patient
  • TELEHEALTH Tele-Consultation / Telemedicine
  • FREE_FOLLOWUP Free Follow-up (not reimbursable)
  • DIAGNOSTIC Diagnostic Testing
  • PHYSIOTHERAPY Physiotherapy
  • DENTAL_SERVICES Dental Services
  • PHARMACY Pharmacy
  • HOMECARE Homecare
  • REHABILITATION Rehabilitation
  • DAYCARE Daycare
  • ULTRASOUND_FIRST_TRIMESTER Ultrasound - First Trimester
  • ULTRASOUND_SECOND_TRIMESTER Ultrasound - Second Trimester
  • ULTRASOUND_THIRD_TRIMESTER Ultrasound - Third Trimester
  • OTHER_OP Other OP Services
  • DENTAL_SERVICES_CAPITATION_PROGRAM Dental Services - Capitation Program
  • DENTAL_SERVICES_ROUTINE_FFS Dental Services - Routine FFS
  • DENTAL_SERVICES_ADVANCED_FFS Dental Services - Advanced FFS
  • VALIDITY_CHECK Validity Check
  • BABY_FLOW Baby Flow
INS078Daman MSC20 accepted values
  • CONSULTATION_ELECTIVE Consultation - Elective
  • CONSULTATION_EMERGENCY Consultation - Emergency
  • CONSULTATION_ONCOLOGY Consultation - Oncology
  • CONSULTATION_REFERRAL Consultation - Referral
  • CONSULTATION_SCREENING Consultation - Screening
  • CONSULTATION_VACCINATION Consultation - Vaccination
  • INPATIENT In Patient
  • TELEHEALTH Tele-Consultation / Telemedicine
  • FREE_FOLLOWUP Free Follow-up (not reimbursable)
  • DIAGNOSTIC Diagnostic Testing
  • PHYSIOTHERAPY Physiotherapy
  • DENTAL_SERVICES Dental Services
  • PHARMACY Pharmacy
  • HOMECARE Homecare
  • REHABILITATION Rehabilitation
  • DAYCARE Daycare
  • ULTRASOUND_FIRST_TRIMESTER Ultrasound - First Trimester
  • ULTRASOUND_SECOND_TRIMESTER Ultrasound - Second Trimester
  • ULTRASOUND_THIRD_TRIMESTER Ultrasound - Third Trimester
  • OTHER_OP Other OP Services
D004Daman Basic22 accepted values
  • CONSULTATION_ELECTIVE Consultation - Elective
  • CONSULTATION_EMERGENCY Consultation - Emergency
  • CONSULTATION_ONCOLOGY Consultation - Oncology
  • CONSULTATION_REFERRAL Consultation - Referral
  • CONSULTATION_SCREENING Consultation - Screening
  • CONSULTATION_VACCINATION Consultation - Vaccination
  • INPATIENT In Patient
  • TELEHEALTH Tele-Consultation / Telemedicine
  • FREE_FOLLOWUP Free Follow-up (not reimbursable)
  • DIAGNOSTIC Diagnostic Testing
  • PHYSIOTHERAPY Physiotherapy
  • DENTAL_SERVICES Dental Services
  • PHARMACY Pharmacy
  • HOMECARE Homecare
  • REHABILITATION Rehabilitation
  • DAYCARE Daycare
  • ULTRASOUND_FIRST_TRIMESTER Ultrasound - First Trimester
  • ULTRASOUND_SECOND_TRIMESTER Ultrasound - Second Trimester
  • ULTRASOUND_THIRD_TRIMESTER Ultrasound - Third Trimester
  • OTHER_OP Other OP Services
  • VALIDITY_CHECK Validity Check
  • BABY_FLOW Baby Flow
D002Daman ABMnot enumerated

VALIDITY_CHECK and BABY_FLOW are not visits at all. They are separate portal flows reached through the same field: a validity check confirms the card is live without pricing an encounter, and the baby flow covers a newborn not yet on the policy in their own right.

What is not a special case

Four things look like special handling and are not:

  • A member_not_found result. Not an error and not a dead end on its own. It usually means the Emirates ID is not linked at the payer yet, which the member ID case above is the retry for.
  • A member ID in a search-all. Accepted, and the sweep runs. Send the Emirates ID when you have one, but a card number is not a dead end.
  • Sending doctorId everywhere. Only payers that generate a claim form read it, FMC (TPA010) above all. The rest ignore it.
  • name, dob and phone. Optional on every payer. A few portals search better with them, none require them.

Where to go next

On this page