Patient Verification

View as Markdown
Checks the patient details you hold (name, date of birth, sex, Medicare card number and IRN) against Medicare's records. Field formats are validated first, then the details go to Medicare's **Patient Verification Check** service. ## Reading the result | `Verified` | Result | Meaning | |---|---|---| | `true` | **`patient verified`** | Patient details verified with Medicare. Proceed. | | `false` | **`details don't match`** | The details you hold don't match Medicare's current record. Correct the patient's record before claiming. | | `null` | **`cannot determine`** | The details couldn't be checked against Medicare's record. `Reason` says what stopped it. | `Reason` carries the detail in every case. **`patient verified`** covers the fields Medicare checks, not every field you sent. It does not check family name or sex, so those can still differ; the corrections table below says which fields it checks. **`cannot determine`** names its cause in `Reason`: | Cause | What to do | |---|---| | The request failed our format checks, so it never reached Medicare | Fix the field named in `Reason` and check again. | | Medicare returned no assessment — a reciprocal card or a deceased patient, for example | `Reason` carries Medicare's own sentence. | | Medicare answered with a status RebateRight doesn't recognise | `Reason` carries what Medicare said. | | The call to Medicare didn't complete — an outage, a timeout, or a connection problem on our side | `Reason` says what failed. Check again; if it persists, it isn't your request. | It is never a quiet `false`: a Medicare error reads `null`, and only `false` says the details don't match. An eligibility result uses **`cannot determine`** the same way — the item couldn't be checked, and we never guess — though its causes are its own. See [coverage](/eligibility-coverage). Branch on `Verified`, and never match on `Reason` text. ## Corrections Medicare sends back Where Medicare holds a different value and is willing to share it, that value arrives in the matching `Correct…` field. Every other `Correct…` field stays `null`. | What differs from Medicare's records | `Verified` | Correction returned | |---|---|---| | Family name, or sex | `true` | Medicare doesn't check these | | Given name, first five characters still match | `true` | — | | Given name, differs within the first five | `false` | `CorrectGivenName` | | IRN | `false` | `CorrectMedicareReferenceNumber` | | Date of birth | `false` | — | | Medicare card number | `false` | — | | The card has been reissued | `false` | `CorrectMedicareNumber`, `CorrectMedicareReferenceNumber`, `CorrectGivenName` | When two or more checked fields are wrong at once, Medicare returns no corrections at all, so fix what you can and check again. ## Patients with a single name For single-name patients, submit the single name as **`PatientFamilyName`** and set **`PatientGivenName`** to the literal string **`ONLYNAME`**. <Warning icon='gavel'> **Display `Reason` exactly as supplied.** It is a requirement by Services Australia that its messages are displayed to the end user exactly as supplied in the response, not truncated, transformed, or changed in any way. The wording may be updated at any time, so never parse `Reason` for logic. </Warning>

Authentication

x-api-keystring
API Key authentication via header
x-minor-idstring
API Key authentication via header

Request

This endpoint expects an object.
PatientDateOfBirthdateRequired

Patient date of birth (YYYY-MM-DD). Cannot be a future date or more than 130 years in the past.

PatientFamilyNamestringRequired

Patient family name as it appears on the Medicare card. For single-name patients, put the single name here.

PatientGivenNamestringRequired

Patient first given name as it appears on the Medicare card. Medicare matches on the first 5 characters, so ELIZA is accepted against a record of ELIZABETH. For single-name patients, set this to the literal string ONLYNAME.

PatientSexenumRequired
Patient sex (Services Australia coding). Medicare does not fail verification on a sex mismatch alone and does not report a correction for this field. | Code | Meaning | |---|---| | `1` | Male | | `2` | Female | | `3` | Other | | `9` | Not stated / inadequately described |
Allowed values:
PatientMedicareNumberstringRequired

Patient’s 10-digit Medicare card number. Must pass the Medicare card check-digit routine, which is validated before the check runs.

PatientMedicareRefNumberstringRequired

Individual Reference Number (IRN) from the patient’s Medicare card — a single digit identifying the family member.

Response

OK
Verifiedboolean or null

Tri-state outcome: true (patient verified) if the patient’s details are verified with Medicare, false (details don't match) if the details you hold don’t match Medicare’s current record, null (cannot determine) if the details couldn’t be checked against Medicare’s record. Reason explains which, and Reading the result above covers what to do with each.

Reasonstring

Human-readable explanation of the outcome, partly passthrough from Medicare; display it exactly as returned.

ReasonCodestring

Machine-readable label for this outcome. Always present.

Use it for analytics and grouping, not for branching. The codes are refined over time as RebateRight’s coverage grows, so treat them as an open set and handle unfamiliar values gracefully. Branch on Verified, which is stable.

CorrectSexstring or nullOptional

Always null — Medicare does not report corrections to sex.

CorrectGivenNamestring or nullOptional

Corrected given name when Medicare’s records differ and the given name is the only field wrong; null otherwise.

CorrectFamilyNamestring or nullOptional

Always null — Medicare does not report corrections to family name.

CorrectDateOfBirthstring or nullOptional

Always null — Medicare signals a DOB mismatch in Reason but does not return the correct value.

CorrectMedicareNumberstring or nullOptional

Corrected 10-digit Medicare card number when Medicare has re-issued the card; null otherwise.

CorrectMedicareReferenceNumberstring or nullOptional

Corrected IRN when the IRN was the only field wrong, or when a new Medicare card has been issued; null otherwise.