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 thisThe 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.
{
"tpa_name": "TPA004",
"id_type": "EMIRATESID",
"id_value": "784-0000-0000000-0",
"visit_type": "OUTPATIENT"
}Search-all, Emirates ID
Send thisWhen 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.
{
"tpa_name": "BOTH",
"id_type": "EMIRATESID",
"id_value": "784-0000-0000000-0",
"visit_type": "OUTPATIENT"
}Named payer, member ID or card number
Send thisThe 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.
{
"tpa_name": "TPA004",
"id_type": "CARDNUMBER",
"id_value": "MBR-0000000",
"visit_type": "OUTPATIENT"
}Search-all, member ID or card number
Worth knowingAccepted, 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.
{
"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 valueEvery 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.
{
"tpa_name": "TPA023",
"id_type": "EMIRATESID",
"id_value": "784-0000-0000000-0",
"visit_type": "CONSULTATION_ELECTIVE"
}Dental where the payer lists it
Send thisSix 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.
{
"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 valueDaman 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.
{
"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 valueBoth 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.
{
"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 valueAXA 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.
{
"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 knowingThe 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.
{
"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 valueCONSULTATION_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.
{
"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 valueDaman 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.
{
"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.
| Payer | Asks for | When | If you leave it out |
|---|---|---|---|
TPA001Neuron LLC | maternity_treatmentIs inpatient treatment? | visit_type is MATERNITY | the portal answers as though you had said no |
is_member_present_at_the_facilityMember present at the facility? | Every check | the portal is told the member is present | |
exception_caseBypass the referral requirement? | Every check | the portal’s bypass checkbox is ticked and no referral is resolved | |
referral_document_urlReferral document URL | Every check | no referral document is uploaded | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
TPA002Nextcare (Arab Gulf Health Services) | referring_departmentReferring department | Every check | a gatekeeper plan completes with a warning and no referral selected |
TPA004NAS Administration Services | maternity_treatmentIs inpatient treatment? | visit_type is MATERNITY | the portal answers as though you had said no |
is_member_present_at_the_facilityMember present at the facility? | Every check | the portal is told the member is present | |
exception_caseBypass the referral requirement? | Every check | the portal’s bypass checkbox is ticked and no referral is resolved | |
referral_document_urlReferral document URL | Every check | no referral document is uploaded | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
TPA023Daman Thiqa | is_podPoint of dispense (POD)? | Every check | isPOD is left off the payload entirely, which is not the same as false |
pod_idPOD ID | Every check | podId is left off the payload | |
is_maternityMaternity encounter? | Every check | isMaternity is left off the payload | |
free_followup_or_extended_followupAnswer a follow-up rule as a follow-up visit | Every check | a business-rule violation ends the check instead of being answered | |
not_related_to_chief_complaintAnswer a follow-up rule as a different complaint | Every check | a business-rule violation ends the check instead of being answered | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
TPA026Aafiya Medical Billing Services | referral_codeReferral code | Every check | the portal’s referral code field is left blank |
TPA029eCare International Medical Billing Services | service_typeService type | Every check | the claim form is filled with Consultation GP |
TPA036MedNet UAE | is_emergencyRegister as an emergency? | Every check | the encounter is registered as an ordinary visit |
use_metlifeLook up in MetLife? | Every check | the member is looked up in MedNet’s own book | |
use_dubaicareLook up in DubaiCare? | Every check | the member is looked up in MedNet’s own book | |
TPA037Lifeline TPA | service_typeService type | Every check | the claim form is filled with Consultation GP |
INS010AXA Insurance - Gulf (shown as GIG for some tenants) | use_dentalDental check? | Every check | the ordinary non-dental flow runs, whatever visit_type says |
INS017ADNIC (Abu Dhabi National Insurance Company) | visit_categoryVisit category | Every check | the consultation request is submitted as FIRST_VISIT |
INS026Daman (National Health Insurance Company) | is_podPoint of dispense (POD)? | Every check | isPOD is left off the payload entirely, which is not the same as false |
pod_idPOD ID | Every check | podId is left off the payload | |
is_maternityMaternity encounter? | Every check | isMaternity is left off the payload | |
free_followup_or_extended_followupAnswer a follow-up rule as a follow-up visit | Every check | a business-rule violation ends the check instead of being answered | |
not_related_to_chief_complaintAnswer a follow-up rule as a different complaint | Every check | a business-rule violation ends the check instead of being answered | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
INS078Daman MSC | is_podPoint of dispense (POD)? | Every check | isPOD is left off the payload entirely, which is not the same as false |
pod_idPOD ID | Every check | podId is left off the payload | |
is_maternityMaternity encounter? | Every check | isMaternity is left off the payload | |
free_followup_or_extended_followupAnswer a follow-up rule as a follow-up visit | Every check | a business-rule violation ends the check instead of being answered | |
not_related_to_chief_complaintAnswer a follow-up rule as a different complaint | Every check | a business-rule violation ends the check instead of being answered | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
D002Daman ABM | is_podPoint of dispense (POD)? | Every check | isPOD is left off the payload entirely, which is not the same as false |
pod_idPOD ID | Every check | podId is left off the payload | |
is_maternityMaternity encounter? | Every check | isMaternity is left off the payload | |
free_followup_or_extended_followupAnswer a follow-up rule as a follow-up visit | Every check | a business-rule violation ends the check instead of being answered | |
not_related_to_chief_complaintAnswer a follow-up rule as a different complaint | Every check | a business-rule violation ends the check instead of being answered | |
referring_physicianReferring clinician | Every check | no referring clinician is recorded on the check | |
D004Daman Basic | is_podPoint of dispense (POD)? | Every check | isPOD is left off the payload entirely, which is not the same as false |
pod_idPOD ID | Every check | podId is left off the payload | |
is_maternityMaternity encounter? | Every check | isMaternity is left off the payload | |
free_followup_or_extended_followupAnswer a follow-up rule as a follow-up visit | Every check | a business-rule violation ends the check instead of being answered | |
not_related_to_chief_complaintAnswer a follow-up rule as a different complaint | Every check | a business-rule violation ends the check instead of being answered | |
referring_physicianReferring clinician | Every check | no 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 valuesCONSULTATION_ELECTIVEConsultation - ElectiveCONSULTATION_EMERGENCYConsultation - EmergencyCONSULTATION_ONCOLOGYConsultation - OncologyCONSULTATION_REFERRALConsultation - ReferralCONSULTATION_SCREENINGConsultation - ScreeningCONSULTATION_VACCINATIONConsultation - VaccinationINPATIENTIn PatientTELEHEALTHTele-Consultation / TelemedicineFREE_FOLLOWUPFree Follow-up (not reimbursable)DIAGNOSTICDiagnostic TestingPHYSIOTHERAPYPhysiotherapyDENTAL_SERVICESDental ServicesPHARMACYPharmacyHOMECAREHomecareREHABILITATIONRehabilitationDAYCAREDaycareULTRASOUND_FIRST_TRIMESTERUltrasound - First TrimesterULTRASOUND_SECOND_TRIMESTERUltrasound - Second TrimesterULTRASOUND_THIRD_TRIMESTERUltrasound - Third TrimesterOTHER_OPOther OP ServicesVALIDITY_CHECKValidity CheckBABY_FLOWBaby Flow
TPA023Daman Thiqa25 accepted valuesCONSULTATION_ELECTIVEConsultation - ElectiveCONSULTATION_EMERGENCYConsultation - EmergencyCONSULTATION_ONCOLOGYConsultation - OncologyCONSULTATION_REFERRALConsultation - ReferralCONSULTATION_SCREENINGConsultation - ScreeningCONSULTATION_VACCINATIONConsultation - VaccinationINPATIENTIn PatientTELEHEALTHTele-Consultation / TelemedicineFREE_FOLLOWUPFree Follow-up (not reimbursable)DIAGNOSTICDiagnostic TestingPHYSIOTHERAPYPhysiotherapyDENTAL_SERVICESDental ServicesPHARMACYPharmacyHOMECAREHomecareREHABILITATIONRehabilitationDAYCAREDaycareULTRASOUND_FIRST_TRIMESTERUltrasound - First TrimesterULTRASOUND_SECOND_TRIMESTERUltrasound - Second TrimesterULTRASOUND_THIRD_TRIMESTERUltrasound - Third TrimesterOTHER_OPOther OP ServicesDENTAL_SERVICES_CAPITATION_PROGRAMDental Services - Capitation ProgramDENTAL_SERVICES_ROUTINE_FFSDental Services - Routine FFSDENTAL_SERVICES_ADVANCED_FFSDental Services - Advanced FFSVALIDITY_CHECKValidity CheckBABY_FLOWBaby Flow
INS078Daman MSC20 accepted valuesCONSULTATION_ELECTIVEConsultation - ElectiveCONSULTATION_EMERGENCYConsultation - EmergencyCONSULTATION_ONCOLOGYConsultation - OncologyCONSULTATION_REFERRALConsultation - ReferralCONSULTATION_SCREENINGConsultation - ScreeningCONSULTATION_VACCINATIONConsultation - VaccinationINPATIENTIn PatientTELEHEALTHTele-Consultation / TelemedicineFREE_FOLLOWUPFree Follow-up (not reimbursable)DIAGNOSTICDiagnostic TestingPHYSIOTHERAPYPhysiotherapyDENTAL_SERVICESDental ServicesPHARMACYPharmacyHOMECAREHomecareREHABILITATIONRehabilitationDAYCAREDaycareULTRASOUND_FIRST_TRIMESTERUltrasound - First TrimesterULTRASOUND_SECOND_TRIMESTERUltrasound - Second TrimesterULTRASOUND_THIRD_TRIMESTERUltrasound - Third TrimesterOTHER_OPOther OP Services
D004Daman Basic22 accepted valuesCONSULTATION_ELECTIVEConsultation - ElectiveCONSULTATION_EMERGENCYConsultation - EmergencyCONSULTATION_ONCOLOGYConsultation - OncologyCONSULTATION_REFERRALConsultation - ReferralCONSULTATION_SCREENINGConsultation - ScreeningCONSULTATION_VACCINATIONConsultation - VaccinationINPATIENTIn PatientTELEHEALTHTele-Consultation / TelemedicineFREE_FOLLOWUPFree Follow-up (not reimbursable)DIAGNOSTICDiagnostic TestingPHYSIOTHERAPYPhysiotherapyDENTAL_SERVICESDental ServicesPHARMACYPharmacyHOMECAREHomecareREHABILITATIONRehabilitationDAYCAREDaycareULTRASOUND_FIRST_TRIMESTERUltrasound - First TrimesterULTRASOUND_SECOND_TRIMESTERUltrasound - Second TrimesterULTRASOUND_THIRD_TRIMESTERUltrasound - Third TrimesterOTHER_OPOther OP ServicesVALIDITY_CHECKValidity CheckBABY_FLOWBaby Flow
D002Daman ABMnot enumeratedVALIDITY_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_foundresult. 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
doctorIdeverywhere. Only payers that generate a claim form read it, FMC (TPA010) above all. The rest ignore it. name,dobandphone. Optional on every payer. A few portals search better with them, none require them.
Where to go next
Try it
Build any of these requests in the browser and step through the responses.
Create a task
Every request field, the two server-side defaults, and the reference note behind each case.
Payer matrix
Which identifiers and visit types each payer accepts, and which are in search-all.
Outcomes
What each of these requests can come back as, and how to tell them apart.