Mantys Eligibility API

Enums

Every status and identifier value, and which endpoint emits it.

Task status

eligibility-result, the endpoint these docs poll, reports these verbatim. task-status collapses the in-flight ones and renames the terminal one.

ValueOn eligibility-resultOn task-statusMeaning
IN_QUEUEyesas PROCESSINGAccepted, not yet started.
NAVIGATING_WEBSITEyesas PROCESSINGThe whole exchange with the payer. Most of the wait is spent here.
EXTRACTING_DATAyesas PROCESSINGParsing the payer's response. Also used when the task finished before its result row existed.
PROCESS_COMPLETEyesas COMPLETEFinished.
CANCELLEDyesyesStopped before finishing.
FAILEDyesyesThe task failed.

The three terminal values are the ones to branch on. The set of in-flight statuses can grow, so test for membership of {PROCESS_COMPLETE, CANCELLED, FAILED} rather than against the others: a status you have never seen should make your client wait, not make it read a result that is not there.

CHECKING_ELIGIBILITY is in the enum but never emitted

It exists in the status enum and appears in older integration notes, but the only two places that would set it are commented out, so no task ever reaches it. Treat it as dead: do not branch on it, and do not wait for it. Listed here only because you will meet the name in the codebase.

The finished state has two names

eligibility-result says PROCESS_COMPLETE; task-status says COMPLETE. They are the same state. Do not mix the two endpoints in one client. See why not task-status.

Search-all status

Reported in search_all_status, alongside status, not instead of it.

ValueMeaning
SEARCH_ALL_PROCESSINGPayers are still reporting in.
SEARCH_ALL_COMPLETEEnough payers have answered; see how completion is decided.
NOT_SEARCH_ALLInternal only. Single-payer tasks return null here, not this value.

On a search-all the top-level status is mapped into the same vocabulary, so it too can read SEARCH_ALL_PROCESSING or SEARCH_ALL_COMPLETE. Poll search_all_status; it is derived from the payers that have answered rather than from the parent task.

Result status

The per-payer outcome, on eligibility_result.status and on each aggregated_results entry. This is the field to branch on.

ValueMeaningis_eligible
foundMember found. Read is_eligible for the answer.true or false
member_foundOlder synonym of found; still counted as a hit in search-all tallies.true or false
member_not_foundNo member matches that identifier at this payer.false
invalid_credentialsThe clinic's portal login was rejected.absent
tpa_not_configuredNo credentials on file for this payer.false, see below
backoffToo many recent credential failures; not attempted.absent
failedRan and did not complete.absent
errorAn unexpected error while running the check.absent
delegated_to_search_all_poolSearch-all routing bookkeeping, not a payer result.absent

Do not read is_eligible on a non-answer

tpa_not_configured means the portal was never queried, so no determination was made. The field does not reliably say so: inside aggregated_results these entries carry data.is_eligible: false, which is indistinguishable from a real negative. Branch on status, not on is_eligible. See search-all.

delegated_to_search_all_pool appears on every search-all

It reports how a search-all was routed rather than what a payer said, and it is not something to branch on. Listed here because a client that switches exhaustively on status and throws on the default will hit it constantly. Ignore statuses you do not recognise.

Identifier types

Sent as id_type on create-task. Per-payer support is in the TPA matrix.

Valueid_value is
EMIRATESIDEmirates ID, 784-YYYY-XXXXXXX-D. The default, and the only one every payer accepts.
CARDNUMBERMember id or card number as printed on the insurance card.
DHAMEMBERIDRegulator-issued DHA member id.
POLICYNUMBERPolicy number. Nextcare and Lifeline only.

Visit types

There is no global visit-type enum: each payer accepts its own list, and MedNet and Daman use the field for more than the inpatient / outpatient split. Every accepted value per payer is on the TPA matrix.

The values common to most payers:

OUTPATIENT, INPATIENT, DAYCASE, MATERNITY, DENTAL, OPTICAL, PSYCHIATRY, WELLNESS, EMERGENCY.

error_type

Failure payloads carry an error_type, a stable identifier for the failure, for example MemberNotFoundError or TPAInvalidCredentialsError. Quote it when you contact support about a specific task.

It is not a public enum. New classes appear and existing ones get renamed without notice. Branch on status; log error_type.

On this page