TPAs and insurers
Which payers are reachable, what identifiers and visit types each accepts, and which are in search-all.
Send the code in the left column as tpa_name. The table separates three
things that do not always agree: which codes create-task accepts, which
payers a check can actually run against, and which payers appear in the Mantys
staff picker.
| tpa_name | Payer | Accepted id_type | visit_type | Search-all |
|---|---|---|---|---|
BOTH | Unsure of insurance: DHPO and Riyati Sentinel, not a payer. Fans the check out across both aggregators and then the TPA pool. Daman is never included. Sets `is_search_all: true` on the create response. | EMIRATESID | 12 values
| ask by code |
DHPO | Unsure of insurance: DHPO (eClaim) only Sentinel that also has a scraper of its own (eClaim). Excluded from the fan-out pool because it *is* the aggregator. | EMIRATESID inferred: only exercised with an Emirates ID | 12 values
| ask by code |
RIYATI | Unsure of insurance: Riyati only Sentinel with its own scraper. `riayati` (lower case, note the spelling) is also accepted and routes to the same scraper. | EMIRATESID inferred: only exercised with an Emirates ID | 12 values
| ask by code |
TPA001 | Neuron LLC reads extra_args: maternity_treatment, is_member_present_at_the_facility | EMIRATESID, CARDNUMBER, DHAMEMBERID | 8 values
| included |
TPA002 | Nextcare (Arab Gulf Health Services) Runs on one of two provider portals, chosen per tenant/practice by the backend. The portal choice is invisible on the wire. | EMIRATESID, CARDNUMBER, DHAMEMBERID, POLICYNUMBER | 9 values
| included |
TPA003 | Al Madallah Healthcare Management The scraper sniffs the shape of `id_value` and can override the `id_type` you sent. | EMIRATESID, CARDNUMBER, DHAMEMBERID | 6 values
| included |
TPA004 | NAS Administration Services reads extra_args: maternity_treatment, is_member_present_at_the_facility | EMIRATESID, CARDNUMBER, DHAMEMBERID | 8 values
| included |
TPA008 | Inayah | EMIRATESID | OUTPATIENT, INPATIENT | included |
TPA010 | FMC Network UAE Generates a claim form on the FMC portal for outpatient checks. If consultation history already exists no claim form is generated and a `warning_messages` entry says so. | EMIRATESID | OUTPATIENT, INPATIENT | included |
TPA011 | Globemed Async-only: registered in the async scraper factory, not the sync one. Always attempted in search-all when the practice has credentials. | EMIRATESID inferred: only exercised with an Emirates ID | OUTPATIENT, EMERGENCY | included |
TPA016 | MSH Two portals, chosen per tenant. Tenants still on the legacy reCAPTCHA portal are excluded from search-all; everyone else is included. | EMIRATESID, CARDNUMBER | OUTPATIENT | included |
TPA023 | Daman Thiqa Daman is never part of search-all; ask for it by code. Thiqa additionally exposes the PCSP screening packages; see the Daman visit-type list on the TPA page. | EMIRATESID, CARDNUMBER inferred: only exercised with an Emirates ID | 25 values
| ask by code |
TPA026 | Aafiya Medical Billing Services Legacy provider portal (tpa.aafiya.ae). For the newer portal send `TPA026__SALAMA`. | EMIRATESID | OUTPATIENT, INPATIENT | included |
TPA026__SALAMA | Aafiya - Salama Care (new provider portal) Same TPA, different portal and credentials. Results are parsed as `TPA026`, so the result body reports `tpa_name: "TPA026"`. Not in the search-all pool (the pool carries the base code). | EMIRATESID | OUTPATIENT, INPATIENT | ask by code |
TPA029 | eCare International Medical Billing Services | EMIRATESID, CARDNUMBER | OUTPATIENT, INPATIENT | included |
TPA032 | Whealth International | EMIRATESID, CARDNUMBER | not enumerated, send OUTPATIENT | included |
TPA036 | MedNet UAE `visit_type` carries both the consultation type and the benefit. A bare benefit token (`DENTAL`) means outpatient + that benefit; prefix with `INPATIENT_` for the inpatient variant. | EMIRATESID, CARDNUMBER, DHAMEMBERID | 16 values
| included |
TPA037 | Lifeline TPA | EMIRATESID, DHAMEMBERID, POLICYNUMBER | not enumerated, send OUTPATIENT | included |
INS010 | AXA Insurance - Gulf (shown as GIG for some tenants) Dental is only reachable with `CARDNUMBER` or `DHAMEMBERID`. A `CARDNUMBER` lookup expects the full 7-segment card number. | EMIRATESID, CARDNUMBER, DHAMEMBERID | OUTPATIENT, DENTAL | included |
INS012 | Oman / Sukoon Insurance API-backed rather than screen-scraped, so usually the fastest payer to return. The scraper sniffs `id_value`: a value shaped like a DHA member id is looked up as one whatever `id_type` says. | EMIRATESID | 5 values
| included |
INS015 | Saico | EMIRATESID inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | included |
INS017 | ADNIC (Abu Dhabi National Insurance Company) | EMIRATESID | not enumerated, send OUTPATIENT | included |
INS020 | Al Buhaira National Insurance Company | EMIRATESID | not enumerated, send OUTPATIENT | included |
INS026 | Daman (National Health Insurance Company) Never included in search-all. Can return several cards for one member; see the multi-card section on the results page. | EMIRATESID, CARDNUMBER inferred: only exercised with an Emirates ID | 22 values
| ask by code |
INS038 | Healthnet / National General Insurance (NGI) | EMIRATESID, CARDNUMBER, DHAMEMBERID | OUTPATIENT, INPATIENT, DAYCASE | included |
INS078 | Daman MSC Enabled per organisation. Never included in search-all. | EMIRATESID, CARDNUMBER inferred: only exercised with an Emirates ID | 20 values
| ask by code |
INS115 | MetLife Explicitly excluded from the search-all pool. | EMIRATESID inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | ask by code |
D002 | Daman ABM Disagreement: accepted and runnable via the API, but not offered in the extension picker. Confirm it is meant to be customer-facing. | EMIRATESID, CARDNUMBER inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | ask by code |
D004 | Daman Basic | EMIRATESID, CARDNUMBER inferred: only exercised with an Emirates ID | 22 values
| ask by code |
1 | DHPO / eClaim (raw code) Internal alias for the eClaim scraper. Send `DHPO` instead; this code is kept only for backwards compatibility. | EMIRATESID inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | ask by code |
riayati | Riyati (lower-case alias) Alias of `RIYATI`, kept for backwards compatibility. Prefer `RIYATI`. | EMIRATESID inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | ask by code |
SEARCH_ALL | SEARCH_ALL (validated but inert) Disagreement: passes input validation but is NOT one of the search-all sentinels the create endpoint recognises, so a task created with it runs as a single-TPA task with no scraper. Do not use. Flagged for the API owner. | EMIRATESID inferred: only exercised with an Emirates ID | not enumerated, send OUTPATIENT | ask by code |
Search-all membership
A search-all task asks the aggregators and then fans out across the payers marked included above. Two groups are never in that fan-out:
- The aggregators themselves:
DHPO,RIYATI,BOTHand their aliases. - Every Daman entity:
INS026,TPA023,D004,D002,INS078, plusINS115(MetLife). If a patient might be on one of these, ask for it by code.
MSH (TPA016) is included for most organisations but excluded for those still
on the payer's legacy reCAPTCHA portal. You cannot tell from the API which
group you are in; ask us if it matters.
Completion does not mean every payer answered
Search-all is reported complete once 17 payers have answered. That number is hard-coded and is
smaller than the fan-out for most organisations, so a "complete" search-all has not necessarily
heard from every payer. Read aggregated_results for the payers that actually reported, and treat
a member_not_found sweep as "nothing found among the payers we reached".
Where the sources disagree
These rows are not consistent across the three files above. They are listed so that nobody has to rediscover them, and so the API owner can resolve them.
| tpa_name | Can run a check | Passes validation | In extension picker |
|---|---|---|---|
BOTH | no | yes | yes |
D002 | yes | yes | no |
1 | yes | yes | no |
riayati | yes | yes | no |
SEARCH_ALL | no | yes | no |
Reading the table:
- Validated but not runnable: the code passes input validation and creates
a task, which then fails because no check can run against it.
SEARCH_ALLis the sharp case: it validates, but is not one of the sentinels the create handler recognises, so it runs as a single-payer task with no payer. Do not send it. - Validated and runnable, but not in the extension: reachable via the API
only.
D002is the example. Whether that is intentional is an open question. - Aliases:
1andriayatiare legacy spellings kept working for old callers. PreferDHPOandRIYATI.
Codes the extension shows but the API rejects
Staff using the Mozart extension see a longer payer list than this API accepts.
The extra entries are handled inside the product as self-pay, as a
"through MedNet" routing, or by falling through to the DHPO aggregator. Sending
one of these as tpa_name will create a task that cannot run.
| Code shown in the UI | Payer |
|---|---|
INS005 | Dubaicare (Dubai Insurance Company) |
INS005_TPA036 | Dubaicare through MedNet |
INS013 | American Life Insurance Co |
INS028 | Interglobal Health Care |
INS029 | Al Dhafra Insurance Company |
INS041 | Fidelity United |
INS044 | National Life and General Insurance Company |
INS053 | AOIC (Allianz Worldwide Care Products) |
INS115_TPA036 | MetLife through MedNet |
SELFPAY | Corporate (self-pay) |
SELFPAY_2 | Healthhub Qusais (self-pay) |
SP0059 | Dry Docks World - Dubai |
SP0066 | PCFC |
TPA013 | Penta Care Medical Services |
TPA021 | Vidal Health |
TPA025 | Fortune Net Sehteq Medical Network |
TPA027 | Starwell Sehteq Network |
TPA030 | Iris Healthcare Services Dubai |
TPA038_1 | ENET Sehteq Network |
TPA038_2 | ENET TPA |
TPACOVID19 | Dubai Health Authority |
UNKNOWN | Test-2535 (test entry) |
Identifier support
EMIRATESID works everywhere. The other three are per-payer. Where a row above
is marked inferred, that payer has only ever been exercised with an Emirates
ID, so treat it as Emirates-ID-only until we confirm otherwise.
Visit types
Payers whose visit types are listed as not enumerated have no per-payer list
in the extension, and the product falls back to outpatient and inpatient. Send
OUTPATIENT unless you have been told otherwise for that payer.