> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.rebateright.com.au/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rebateright.com.au/_mcp/server.

# Medicare codes on patient checks

> Medicare's 4-digit return codes for Medicare and DVA patient verification, concession checks and health fund checks, in plain words, with the next step for each.

Medicare returns a 4-digit code with each patient check: a Medicare or DVA patient verification, a concession check or a health fund check. Code `0` means a match. This page gives the meaning of the other common codes and what to do about each one. Each meaning is shortened from Services Australia's list of [Medicare Online and ECLIPSE return codes](https://www.servicesaustralia.gov.au/look-up-medicare-online-and-eclipse-return-codes). For a code missing from that list, the meaning comes from Medicare's own message.

**Catch these before you claim.** RebateRight's [Eligibility Check](/api-reference/medicare-eligibility/eligibility-check) flags the patient problems marked below, when you send the details you will claim with.

### Medicare patient details

| Code                               | Medicare's meaning                                                                                                 | What to do                                                                                                                                                                                                                                            |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `8003`                             | The patient is not eligible for Medicare at present. Medicare confirms this status for the day of the check only.  | Show Medicare's message to the user. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                                                                        |
| `8009`                             | The patient has one name, and the name sent differs from the one Medicare holds.                                   | Check the name and update your record. [Patient Verification](/api-reference/medicare-eligibility/patient-verification) explains how to send a single name. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check) |
| `8016`                             | Medicare accepted the check, but the Individual Reference Number (IRN) is not an exact match.                      | Update the IRN in your record to the value Medicare returns, before you claim. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                              |
| `8017`                             | Medicare accepted the check, but the given name is not an exact match.                                             | Check the given name before you claim. Where Medicare returns the correct given name, update your record to it. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                             |
| `8018`                             | Medicare accepted the check, but the date of birth is not an exact match.                                          | Check the date of birth with the patient before you claim. Medicare returns no correction for it. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                           |
| `8015` `8019` `8020` `8021` `8022` | Medicare accepted the check, but the details are not an exact match. Medicare's message names the detail to check. | Check the detail that Medicare's message names, and update your record before you claim. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                    |
| `9633`                             | Medicare has issued the patient a new card.                                                                        | Update your record with the new card details Medicare returns, and ask the patient to use the new card for future claims. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                   |
| `9650`                             | The card number or the patient's details did not match Medicare's.                                                 | Check the card number and the patient's details with the patient, then check again. When 2 or more fields are wrong, Medicare returns no corrections. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)       |
| `9675`                             | The patient's current Medicare card has expired, so claims with it may be rejected.                                | Ask the patient to contact Medicare. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                                                                        |
| `9626`                             | The patient is or was covered under a Reciprocal Health Care Agreement.                                            | Check the patient's cover, as [Reciprocal Medicare cardholders](/eligibility-coverage#reciprocal-medicare-cardholders) explains. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                            |
| `9649`                             | Medicare cannot determine the patient's eligibility.                                                               | Medicare gives no further step. Show its message to the user. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                                               |
| `9682`                             | A system limitation stops Medicare from assessing the check.                                                       | Call the Medicare eBusiness Service Centre on 1800 700 199. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                                                                 |
| `9683`                             | A system limitation stops Medicare from assessing the check.                                                       | Check the patient's details. If you need help, call the Medicare eBusiness Service Centre on 1800 700 199. [Flagged by the Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                                  |

### Concession

| Code   | Medicare's meaning                                                                 | What to do                                                                          |
| ------ | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `9685` | Medicare holds no concession entitlement for the patient.                          | Show Medicare's message to the user.                                                |
| `9781` | Medicare did not check the concession, because the patient did not match Medicare. | Read the code in `medicareStatus`, correct the patient's details, then check again. |

### DVA veterans

| Code   | Medicare's meaning                                                    | What to do                                                                                                                                                |
| ------ | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `8005` | DVA matched the veteran, but found differences in the details sent.   | Update your record with the names DVA returns in `currentMember`, and check the veteran file number before you claim.                                     |
| `9650` | The veteran file number or the patient's details did not match DVA's. | Check the file number and the patient's details, then check again. To find the file number, send a `PVP` check with the patient's personal details alone. |

### Health funds

| Code   | Medicare's meaning                                                                                                                                                                                                 | What to do                                                                                                                                                  |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `9674` | The fund did not check the membership, because the patient did not match Medicare. Any Medicare code other than `0` skips the fund check, including a partial match such as a corrected IRN.                       | Read the code in `medicareStatus`, correct the patient's Medicare details, then check again.                                                                |
| `8007` | The fund matched the membership, and asks the patient to contact it.                                                                                                                                               | Ask the patient to contact the fund.                                                                                                                        |
| `8008` | The fund matched the membership, and asks the provider to contact it.                                                                                                                                              | Contact the fund.                                                                                                                                           |
| `9662` | The provider must contact the fund.                                                                                                                                                                                | Contact the fund.                                                                                                                                           |
| `9663` | The fund asks you to check the fund and the membership card details.                                                                                                                                               | Check the fund code and the membership card details, then check again.                                                                                      |
| `9664` | The fund asks you to check the patient's details, then the fund and the membership card. If they are correct, the fund may hold a different name for the patient, or the patient's unique identifier was not sent. | Check the patient's details, then the fund and card details. If they are correct, send the name the fund holds in `alsoKnownAs`, or send `memberRefNumber`. |
| `9665` | The fund cannot identify one patient from the details sent.                                                                                                                                                        | Send more details, or confirm them with the patient.                                                                                                        |
| `9666` | The patient must contact the fund.                                                                                                                                                                                 | Ask the patient to contact the fund.                                                                                                                        |
| `9667` | The membership is suspended or cancelled.                                                                                                                                                                          | Medicare gives no further step. Show its message to the user.                                                                                               |
| `9668` | The membership does not cover medical claims.                                                                                                                                                                      | Ask the patient to contact the fund.                                                                                                                        |
| `9669` | The patient has ceased, or is about to cease, with the fund.                                                                                                                                                       | Medicare gives no further step. Show its message to the user.                                                                                               |
| `9671` | The fund does not accept this check through this channel at present.                                                                                                                                               | Show Medicare's message to the user. The fund list does not show which funds accept this check, as [Fund codes](/health-fund-checks#fund-codes) explains.   |
| `9672` | Your fund list is out of date: `organisation` is not in the current fund list.                                                                                                                                     | Send [Get Participants](/api-reference/health-funds/get-participants) again, then send the check again with a current fund code.                            |
| `9686` | The fund does not hold the baby on the membership.                                                                                                                                                                 | Medicare gives no further step. Show its message to the user.                                                                                               |
| `9687` | The fund holds no bank details for this provider or facility.                                                                                                                                                      | Contact the fund before you send claims.                                                                                                                    |
| `3040` | The fund's system is unavailable.                                                                                                                                                                                  | Check again later.                                                                                                                                          |

## Where the code appears

| Check                                                                                                      | Where to read it                                                                                                                                               |
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Patient Verification](/api-reference/medicare-eligibility/patient-verification)                           | `ReasonCode` names the outcome with Medicare's code, such as `CheckMemberReferenceNumber_8016`, and `Reason` carries Medicare's message. Branch on `Verified`. |
| [Eligibility Check](/api-reference/medicare-eligibility/eligibility-check)                                 | `PatientVerification.ReasonCode` and `PatientVerification.Reason`, in the same way. Branch on `PatientVerification.Verified`.                                  |
| [Concession Verification](/api-reference/concession/concession-verification)                               | `medicareStatus.status.code`, then `concessionStatus.status.code`                                                                                              |
| [Medicare and Health Fund Verification](/api-reference/health-funds/medicare-and-health-fund-verification) | `medicareStatus.status.code`, then `healthFundStatus.status.code`                                                                                              |
| [Health Fund Verification](/api-reference/health-funds/health-fund-verification)                           | `healthFundStatus.status.code`                                                                                                                                 |
| [Veteran Verification](/api-reference/dva/veteran-verification)                                            | `veteranStatus.status.code`                                                                                                                                    |

**Read the message first.** Each code comes with Medicare's `text`, which can be more specific than the meanings on this page. Services Australia requires you to show it to your user exactly as Medicare returns it. Branch on the code, never on the text, because the wording can change at any time.

A check that fails RebateRight's field checks returns `400` with `serviceMessage`, such as `9202` for a field that failed its checks. Each endpoint's page lists its `400` codes.

## Every other code

Services Australia publishes the full list of [Medicare Online and ECLIPSE return codes](https://www.servicesaustralia.gov.au/look-up-medicare-online-and-eclipse-return-codes), also as a [CSV file](https://www.servicesaustralia.gov.au/sites/default/files/2025-05/4-digit-reason-codes-010625.csv) to load into your software.

For the codes on a claim, see [Medicare codes on claims](/claim-return-codes).