> 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.

# In-Patient Patient Claim — Specialist

POST https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2
Content-Type: application/json

**How do I lodge an in-patient Patient Claim for specialist or diagnostic imaging services?**

Use this endpoint when the patient keeps their right to the Medicare and health fund benefits, for specialist and diagnostic imaging services.

Test environment only. Services Australia is certifying this service, and it reaches production once certified.

| You send                                                                                 | You get                                                                                    | Then                                                                                                                                                                                                                                            |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A Patient Claim (`PC`) for the medical services an admitted patient received in hospital | An acknowledgement: `status` `SUCCESS` and the claim's `correlationId`, with no assessment | [Status Report](/api-reference/medicare-claiming/in-patient-claims/status-report) says when the claim's report is ready, and [In-Patient Claim Report](/api-reference/medicare-claiming/in-patient-claims/in-patient-claim-report) retrieves it |

[Which claim type do I send?](/in-patient-claiming#which-claim-type-do-i-send) defines each claim type and who it pays. [In-patient claims (ECLIPSE)](/in-patient-claiming) sets out the rules the claim types share. A Patient Claim has its own rules for the patient's consent and the claim's report, set out in [Patient Claims](/in-patient-claiming#patient-claims).

## Referral requirement

Send specialist and diagnostic imaging services with `serviceTypeCode` set to `S`. Every medical event needs one of the following, or Medicare rejects the claim with `2030`:

| Option                       | How to send it                                           |
| ---------------------------- | -------------------------------------------------------- |
| A specialist referral        | `referral` with `typeCode` `S` and a `periodCode`        |
| A diagnostic imaging request | `referral` with `typeCode` `D`                           |
| No referral document         | `referralOverrideCode` of `E`, `H`, `L` or `N`           |
| A self-deemed service        | `selfDeemedCode` of `SD` or `SS` on at least one service |

Send `referralOverrideCode` on its own. With `referral` or a `selfDeemedCode`, it is rejected with `2030`.

Send each item to the endpoint for its specialty. Send general services to [In-Patient Patient Claim — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-patient-claim-general), and pathology services to [In-Patient Patient Claim — Pathology](/api-reference/medicare-claiming/in-patient-claims/in-patient-patient-claim-pathology).

**Claim limits.** [Validations](/in-patient-claiming#validations) gives the limits for each claim type.

## Responses

| Response | Meaning                                                                                                                                                                                                                                              |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200`    | Medicare has received the claim for processing, and `status` is `SUCCESS`.                                                                                                                                                                           |
| `400`    | Medicare or RebateRight rejected the request, and nothing is lodged. The `400` response of [In-Patient Patient Claim — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-patient-claim-general) lists the codes and what to do. |
| `503`    | RebateRight got no response from Medicare, so Medicare may or may not hold the claim. Follow [When a claim gets no response](/claiming#when-a-claim-gets-no-response).                                                                               |

Reference: https://docs.rebateright.com.au/api-reference/medicare-claiming/in-patient-claims/in-patient-patient-claim-specialist

## Authentication

- `x-api-key` header (required) — API Key authentication via header
- `x-minor-id` header (required) — Your Minor ID is 3 uppercase letters followed by 5 digits, such as `MDE00000`. Send the Minor ID exactly as issued. A malformed value returns `400` with the text `The Minor ID is not valid.` on every endpoint.

## Servers

- `https://test-api.rebateright.com.au` (Test, default)
- `https://api.rebateright.com.au` (Production)

## Request

### Headers

- `x-minor-id` (string, required) — The Minor ID of the clinic you act for. See [Keys, Minor ID and environments](/keys-and-environments).

### Body (application/json)

This endpoint expects an ImcPcSpecialistRequest.

- `claim` (ImcPcSpecialistRequestClaim, required) — The in-patient claim. One claim covers one patient.
- `correlationId` (string, optional) — Your identifier for this claim, 33 characters: `urn:uuid:`, then the Minor ID you send in `x-minor-id`, then 16 letters or digits, as in `urn:uuid:MDE00000a1b2c3d4e5f6a7b8`. Send your own on every claim, and store it before you send. You request the claim's status and report by its transaction ID, which is this value without `urn:uuid:`. If you omit it, RebateRight generates one and returns it on the response. When to use a new value and when to reuse one is set out in [Correlation ID](/claiming#correlation-id).

## Response

### 200

Medicare has received the claim for processing.

- `status` (string, required) — `SUCCESS` means Medicare has received the claim for processing. It is not an assessment, and its report can still show the claim as rejected.
- `correlationId` (string, required) — The `correlationId` you sent, or the one RebateRight generated. Store it with the claim, because you request the claim's status and report by it.

## Errors

### 400 Bad Request Error

Medicare or RebateRight rejected the request. Nothing is lodged, so correct the claim and send it with a new `correlationId`. The envelopes and codes are those of [In-Patient Patient Claim — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-patient-claim-general), whose `400` lists them.

- `PostMedicareInpatientmedicalclaimPcSpecialistV2RequestBadRequestError`

## Types

### ImcPcSpecialistRequestClaim

The in-patient claim. One claim covers one patient.

- `accountPaidInd` (enum, required) — Whether the account is paid in full. [Which claim type do I send?](/in-patient-claiming#which-claim-type-do-i-send) says how Medicare and the health fund pay in each case. | Code | Meaning | |---|---| | `Y` | Paid in full | | `N` | Not paid in full |
  - Allowed values: `Y`, `N`
- `accountReferenceId` (string, required) — Your reference for the patient's account, 1 to 9 letters or digits. Medicare includes it in every report for the claim.
- `claimTypeCode` (enum, required) — Must be `PC`. A value that does not match the endpoint is rejected with `2030`.
  - Allowed values: `PC`
- `facilityId` (string, required) — The 8-character provider number of the hospital facility where the patient was admitted: a 6-digit stem, a location digit, then a check character. [Integration test data](/test-data#hospital-fund-and-billing-ids) lists the IDs to use in the test environment.
- `submissionAuthorityInd` (enum, required) — Must be `Y`: the claimant has authorised the practice to submit this claim.
  - Allowed values: `Y`
- `patient` (ImcPcSpecialistRequestClaimPatient, required) — The patient who received the services.
- `claimant` (ImcPcSpecialistRequestClaimClaimant, required) — The person who claims the benefit: the patient, or another person who claims for them, such as a parent. When the patient is the claimant, send the patient's details here as well.
- `principalProvider` (ImcPcSpecialistRequestClaimPrincipalProvider, required) — The provider the Medicare benefit is claimed for. This can be a different provider from the one who rendered the services, who goes in each medical event's `serviceProvider`.
- `accident` (ImcPcSpecialistRequestClaimAccident, required) — Accident details for the claim.
- `serviceTypeCode` (enum, required) — Must be `S`, for specialist and diagnostic imaging services. A value that does not match the endpoint is rejected with `2030`.
  - Allowed values: `S`
- `medicalEvent` (list of ImcPcSpecialistMedicalEvent, required) — The medical events in this claim, up to 16. Each holds the services one servicing provider rendered, up to 14. A Patient Claim holds up to 16 services in total.
- `compensationClaimInd` (enum, optional) — Optional. Whether the services may be part of a compensation claim. | Code | Meaning | |---|---| | `Y` | May be part of a compensation claim | | `N` | Not part of a compensation claim |
  - Allowed values: `Y`, `N`
- `senderContact` (ImcPcSpecialistRequestClaimSenderContact, optional) — Optional. The person at your practice to contact about this claim.

### ImcPcServiceMessageError

Medicare's `serviceMessage` envelope, returned when the claim breaks one or more of Medicare's field or business rules.

- `highestSeverity` (string, required) — The highest severity across the messages, such as `Error`.
- `serviceMessage` (list of ImcPcServiceMessageErrorServiceMessageItems, required) — One entry for each failed check.
- `correlationId` (string, required) — Echo of the request's `correlationId`.

### ImcPcGatewayError

Medicare's gateway (`DHSEIN`) envelope, returned when the request fails Medicare's schema check before its rules run, such as a request with no `claim`.

- `code` (integer, required) — Numeric gateway error code.
- `codeType` (string, required) — Gateway error category, such as `DHSEIN`.
- `message` (string, required) — What failed the schema check.
- `correlationId` (string, required) — Echo of the request's `correlationId`, or the one RebateRight generated.

### ImcPcSpecialistRequestClaimPatient

The patient who received the services.

- `identity` (ImcPcSpecialistRequestClaimPatientIdentity, required) — The patient's name, date of birth and sex.
- `medicare` (ImcPcSpecialistRequestClaimPatientMedicare, required) — The patient's Medicare card.
- `healthFund` (ImcPcSpecialistRequestClaimPatientHealthFund, required) — The patient's health fund membership.
- `alsoKnownAs` (ImcPcSpecialistRequestClaimPatientAlsoKnownAs, optional) — Optional. The patient's name as the health fund holds it, when it differs from the name Medicare holds.

### ImcPcSpecialistRequestClaimClaimant

The person who claims the benefit: the patient, or another person who claims for them, such as a parent. When the patient is the claimant, send the patient's details here as well.

- `identity` (ImcPcSpecialistRequestClaimClaimantIdentity, required) — The claimant's name, date of birth and sex.
- `medicare` (ImcPcSpecialistRequestClaimClaimantMedicare, required) — The claimant's Medicare card.
- `eftDetails` (ImcPcSpecialistRequestClaimClaimantEftDetails, optional) — Optional. A bank account for this claim only, in place of the account the claimant registered with Medicare. Send it only when `accountPaidInd` is `Y`, with all 3 fields. Medicare declines temporary bank details for some claimants, with `9202` and a reason that starts "Temporary bank details cannot be used". Remove `eftDetails` and send the claim with a new `correlationId`.
- `residentialAddress` (ImcPcSpecialistRequestClaimClaimantResidentialAddress, optional) — Optional. The claimant's residential address. When you send it, `addressLineOne`, `locality` and `postcode` are required.
- `contactDetails` (ImcPcSpecialistRequestClaimClaimantContactDetails, optional) — Optional. The claimant's phone number.

### ImcPcSpecialistRequestClaimPrincipalProvider

The provider the Medicare benefit is claimed for. This can be a different provider from the one who rendered the services, who goes in each medical event's `serviceProvider`.

- `providerNumber` (string, required) — Medicare-issued 8-character provider number: a 6-digit stem, a practice location character, then a check character.

### ImcPcSpecialistRequestClaimAccident

Accident details for the claim.

- `accidentInd` (enum, required) — Whether the services resulted from an accident. | Code | Meaning | |---|---| | `Y` | The services resulted from an accident | | `N` | They did not, or it is not known |
  - Allowed values: `Y`, `N`

### ImcPcSpecialistMedicalEvent

- `id` (string, required) — The medical event's number, 2 digits. The first is `01`, and each next one adds one, up to `16`.
- `serviceProvider` (ImcPcSpecialistMedicalEventServiceProvider, required) — The practitioner who rendered the services in this medical event. It must be the same in every medical event of a Patient Claim.
- `service` (list of ImcPcSpecialistService, required) — The services in this medical event, up to 14.
- `admissionDate` (date, optional) — Date the patient was admitted (`YYYY-MM-DD`). Must not be in the future or before the patient's date of birth. Required when you send `dischargeDate`.
- `dischargeDate` (date, optional) — Optional. Date the patient was discharged (`YYYY-MM-DD`). Must not be in the future or before `admissionDate`.
- `financialInterestDisclosureInd` (enum, optional) — Optional. Set to `Y` when the practitioner has disclosed any financial interest they hold in the products or services they recommended. | Code | Meaning | |---|---| | `Y` | Disclosed |
  - Allowed values: `Y`
- `ifcIssueCode` (enum, optional) — Optional. Informed financial consent: whether and how the patient was told the expected costs before the episode of care. | Code | Meaning | |---|---| | `V` | Given verbally | | `W` | Given in writing | | `N` | Not issued | | `X` | Not obtained |
  - Allowed values: `V`, `W`, `N`, `X`
- `referral` (ImcPcSpecialistMedicalEventReferral, optional) — The specialist referral or diagnostic imaging request. Send it, a `referralOverrideCode` or a `selfDeemedCode` on a service, as the referral requirement above sets out.
- `referralOverrideCode` (enum, optional) — Why a service that needs a referral has none. Send it on its own, without `referral` or a `selfDeemedCode`. | Code | Meaning | |---|---| | `E` | Emergency | | `H` | Hospital | | `L` | Lost referral | | `N` | Not required |
  - Allowed values: `E`, `H`, `L`, `N`

### ImcPcSpecialistRequestClaimSenderContact

Optional. The person at your practice to contact about this claim.

- `name` (string, optional) — The contact's name, 1 to 40 characters, with the same rules as the patient's `familyName`.
- `emailAddress` (string, optional) — Email address, 5 to 128 characters, with an `@` and no spaces.
- `phoneNumber` (string, optional) — Phone number, 8 to 19 characters. Digits, spaces and `( ) - +` are allowed, with no space at the start or end.

### ImcPcServiceMessageErrorServiceMessageItems

- `code` (string, required) — Medicare's 4-digit return code. The `400` description lists the common ones.
- `severity` (string, required) — Severity of this message, such as `Error`.
- `reason` (string, required) — What failed, with the value sent and, where they apply, the medical event and service. Show it to your user exactly as Medicare returns it.

### ImcPcSpecialistRequestClaimPatientIdentity

The patient's name, date of birth and sex.

- `dateOfBirth` (date, required) — Date of birth (`YYYY-MM-DD`). Must not be in the future or more than 130 years ago.
- `familyName` (string, required) — Family name as Medicare holds it, 1 to 40 characters. Letters, digits, spaces, apostrophes and hyphens are allowed, with no space at the start or end, no double space and no space beside an apostrophe or hyphen. For a person with only one name, send it here.
- `givenName` (string, required) — Given name, with the same rules as `familyName`. For a person with only one name, send `Onlyname`.
- `sex` (enum, required) — Sex, as Services Australia codes it. | Code | Meaning | |---|---| | `1` | Male | | `2` | Female | | `3` | Another term | | `9` | Not stated |
  - Allowed values: `1`, `2`, `3`, `9`
- `secondInitial` (string, optional) — Optional. The initial of the second given name, one letter.

### ImcPcSpecialistRequestClaimPatientMedicare

The patient's Medicare card.

- `memberNumber` (string, required) — The patient's 10-digit Medicare card number. The first 9 digits must pass the Medicare check-digit routine, and the 10th digit, the issue number, cannot be zero.
- `memberRefNumber` (string, required) — The patient's Individual Reference Number (IRN), the digit from 1 to 9 beside their name on the card.

### ImcPcSpecialistRequestClaimPatientHealthFund

The patient's health fund membership.

- `memberNumber` (string, required) — The patient's health fund membership number, 1 to 19 letters or digits.
- `organisation` (string, required) — The patient's fund code, 3 capital letters. [Fund codes](/health-fund-checks#fund-codes) says where the codes come from.
- `memberRefNumber` (string, optional) — Optional. The patient's Universal Patient Identifier (UPI) on the health fund membership, 1 or 2 digits from `0` to `99`. Leading zeros are allowed.

### ImcPcSpecialistRequestClaimPatientAlsoKnownAs

Optional. The patient's name as the health fund holds it, when it differs from the name Medicare holds.

- `familyName` (string, optional) — Family name, with the same rules as `identity.familyName`.
- `givenName` (string, optional) — Given name, with the same rules as `identity.givenName`.

### ImcPcSpecialistRequestClaimClaimantIdentity

The claimant's name, date of birth and sex.

- `dateOfBirth` (date, required) — Date of birth (`YYYY-MM-DD`). Must not be in the future or more than 130 years ago. The claimant must be at least 14 years old.
- `familyName` (string, required) — Family name as Medicare holds it, 1 to 40 characters. Letters, digits, spaces, apostrophes and hyphens are allowed, with no space at the start or end, no double space and no space beside an apostrophe or hyphen. For a person with only one name, send it here.
- `givenName` (string, required) — Given name, with the same rules as `familyName`. For a person with only one name, send `Onlyname`.
- `secondInitial` (string, optional) — Optional. The initial of the second given name, one letter.
- `sex` (enum, optional) — Optional. Sex, as Services Australia codes it. | Code | Meaning | |---|---| | `1` | Male | | `2` | Female | | `3` | Another term | | `9` | Not stated |
  - Allowed values: `1`, `2`, `3`, `9`

### ImcPcSpecialistRequestClaimClaimantMedicare

The claimant's Medicare card.

- `memberNumber` (string, required) — The claimant's 10-digit Medicare card number. The first 9 digits must pass the Medicare check-digit routine, and the 10th digit, the issue number, cannot be zero.
- `memberRefNumber` (string, required) — The claimant's Individual Reference Number (IRN), the digit from 1 to 9 beside their name on the card.

### ImcPcSpecialistRequestClaimClaimantEftDetails

Optional. A bank account for this claim only, in place of the account the claimant registered with Medicare. Send it only when `accountPaidInd` is `Y`, with all 3 fields. Medicare declines temporary bank details for some claimants, with `9202` and a reason that starts "Temporary bank details cannot be used". Remove `eftDetails` and send the claim with a new `correlationId`.

- `accountName` (string, required) — Account name, 1 to 30 characters. Letters, digits, spaces and `' - & . , /` are allowed, with no space at the start or end.
- `accountNumber` (string, required) — Account number, 1 to 9 digits or capital letters.
- `bsbCode` (string, required) — The 6-digit BSB, with no hyphen. Medicare rejects a BSB it cannot pay into.

### ImcPcSpecialistRequestClaimClaimantResidentialAddress

Optional. The claimant's residential address. When you send it, `addressLineOne`, `locality` and `postcode` are required.

- `addressLineOne` (string, required) — First address line, 1 to 40 characters. Letters, digits, spaces and `' - / , . : ;` are allowed, with no space at the start or end and no double space. A PO box is rejected.
- `locality` (string, required) — Suburb or town, 1 to 40 characters, with the same rules. Leave the state out: `WANGARATTA` is accepted and `Perth WA` is rejected.
- `postcode` (string, required) — The 4-digit postcode. `0000` is rejected.
- `addressLineTwo` (string, optional) — Optional. Second address line, with the same rules. Requires `addressLineOne`.

### ImcPcSpecialistRequestClaimClaimantContactDetails

Optional. The claimant's phone number.

- `phoneNumber` (string, optional) — Phone number, 8 to 19 characters. Digits, spaces and `( ) - +` are allowed, with no space at the start or end.

### ImcPcSpecialistMedicalEventServiceProvider

The practitioner who rendered the services in this medical event. It must be the same in every medical event of a Patient Claim.

- `providerNumber` (string, required) — Medicare-issued 8-character provider number: a 6-digit stem, a practice location character, then a check character.

### ImcPcSpecialistService

Override and timing fields for general and specialist services.

- `id` (string, required) — The service's number, exactly 4 digits, such as `0001`. It must be unique across the claim, not only within the medical event.
- `chargeAmount` (string, required) — The fee charged for the service, in cents, as a string: `12000` is $120.00. The minimum is `100` ($1.00), and Services Australia currently accepts up to `999999` ($9,999.99).
- `dateOfService` (date, required) — Date the service was rendered (`YYYY-MM-DD`). Must not be in the future, and must be less than 2 years before Medicare receives the claim. It must also fall on or after `admissionDate` and the patient's date of birth, and on or before `dischargeDate`.
- `itemNumber` (string, required) — The MBS item number, from 1 to 99999. Leading zeros are accepted, spaces are not.
- `timeOfService` (string, optional) — Optional. Time the service was rendered, with seconds and an Australian UTC offset (`HH:mm:ss±HH:mm`), such as `14:30:00+11:00`. With `dateOfService`, it must not be in the future.
- `text` (string, optional) — Optional. Supporting information for the service, 1 to 50 characters. Letters, digits, spaces and `@ # $ % + = : ; , . -` are allowed, with no space at the start or end and no double space.
- `aftercareOverrideInd` (enum, optional) — Optional. Set to `Y` when the service is not part of normal aftercare.
  - Allowed values: `Y`
- `duplicateServiceOverrideInd` (enum, optional) — Optional. Set to `Y` when the service is not a duplicate, such as a repeat of the same item on the same day. Requires `timeOfService` or `text` on this service.
  - Allowed values: `Y`
- `multipleProcedureOverrideInd` (enum, optional) — Optional. Set to `Y` when Medicare's multiple procedure rule does not apply to the service. Requires `text` giving the reason, and cannot be sent with `numberOfPatientsSeen`.
  - Allowed values: `Y`
- `timeDuration` (string, optional) — Optional. Duration of the service in minutes, 3 digits from `001` to `999`, such as `045`. Used by the hyperbaric oxygen therapy items 13025 and 13030, and for more than one consultation on the same day. Cannot be sent with `numberOfPatientsSeen`.
- `restrictiveOverrideCode` (enum, optional) — Optional. Why a service that Medicare would treat as restricted by another service is claimed. | Code | Meaning | |---|---| | `SP` | Separate sites | | `NR` | Not related to the consultation | | `NC` | Not for comparison (bilateral) |
  - Allowed values: `SP`, `NR`, `NC`
- `numberOfPatientsSeen` (string, optional) — Optional. The number of patients seen, from 1 to 99, for a group attendance or a home, hospital or institution visit. Cannot be sent with a referral, or with a `referralOverrideCode` of `H`, `L` or `E`.
- `fieldQuantity` (string, optional) — Optional. The number of fields irradiated, or of 15-minute blocks for a derived-fee intrathecal or epidural infusion item such as 18219 or 18227, from 1 to 5. Cannot be sent with `numberOfPatientsSeen` or `timeDuration`.
- `lspNumber` (string, optional) — Optional. The Location Specific Practice Number (LSPN), from 1 to 999999, for a diagnostic imaging item or a Group T2 radiation oncology item. A medical event holds services at one LSPN, so a service at another LSPN needs its own medical event. Required when the service sets `fieldQuantity` and the referral's `typeCode` is `D`. Cannot be sent with `numberOfPatientsSeen` or `timeDuration`.
- `selfDeemedCode` (enum, optional) — Optional. Set when the provider deems the service themselves, in place of a referral. Cannot be sent with `referralOverrideCode`. | Code | Meaning | |---|---| | `SD` | Self-deemed | | `SS` | Substituted service |
  - Allowed values: `SD`, `SS`

### ImcPcSpecialistMedicalEventReferral

The specialist referral or diagnostic imaging request. Send it, a `referralOverrideCode` or a `selfDeemedCode` on a service, as the referral requirement above sets out.

- `issueDate` (date, required) — Date the referral or request was issued (`YYYY-MM-DD`). Must not be in the future or before the patient's date of birth. Every `dateOfService` in the medical event must be on or after it.
- `typeCode` (enum, required) — The kind of referral. | Code | Meaning | Period fields | |---|---|---| | `S` | Specialist referral | `periodCode` required | | `D` | Diagnostic imaging request | `periodCode` and `period` omitted |
  - Allowed values: `S`, `D`
- `provider` (ImcPcSpecialistMedicalEventReferralProvider, required) — The referring practitioner. The 6-digit stem of their provider number must differ from both the principal provider's and the servicing provider's.
- `periodCode` (enum, optional) — How long the referral runs. Required when `typeCode` is `S`, and omitted when it is `D`. | Code | Meaning | |---|---| | `S` | Standard: 12 months from a general practitioner, 3 months from a specialist | | `N` | Non-standard: send the length in `period` | | `I` | Indefinite |
  - Allowed values: `S`, `N`, `I`
- `period` (string, optional) — Length of a non-standard referral in months, from 1 to 98. Send it only when `periodCode` is `N`.

### ImcPcSpecialistMedicalEventReferralProvider

The referring practitioner. The 6-digit stem of their provider number must differ from both the principal provider's and the servicing provider's.

- `providerNumber` (string, required) — Medicare-issued 8-character provider number: a 6-digit stem, a practice location character, then a check character.

## Examples

**Request**

```json
{
  "claim": {
    "accountPaidInd": "Y",
    "accountReferenceId": "PCSPEC01",
    "claimTypeCode": "PC",
    "facilityId": "9988770W",
    "submissionAuthorityInd": "Y",
    "patient": {
      "identity": {
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "claimant": {
      "identity": {
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447791K"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "S",
    "medicalEvent": [
      {
        "id": "01",
        "serviceProvider": {
          "providerNumber": "2447791K"
        },
        "service": [
          {
            "id": "0001",
            "chargeAmount": "20000",
            "dateOfService": "2026-10-20",
            "itemNumber": "104"
          }
        ],
        "admissionDate": "2026-10-19",
        "referral": {
          "issueDate": "2026-10-01",
          "typeCode": "S",
          "provider": {
            "providerNumber": "2054781W"
          },
          "periodCode": "S"
        }
      }
    ]
  },
  "correlationId": "urn:uuid:MDE00000IMCW20261021PCS1"
}
```

**Response**

```json
{
  "status": "SUCCESS",
  "correlationId": "urn:uuid:MDE00000IMCW20261021PCS1"
}
```

**SDK Code**

```python Specialist Attendance
import requests

url = "https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2"

payload = {
    "claim": {
        "accountPaidInd": "Y",
        "accountReferenceId": "PCSPEC01",
        "claimTypeCode": "PC",
        "facilityId": "9988770W",
        "submissionAuthorityInd": "Y",
        "patient": {
            "identity": {
                "dateOfBirth": "1989-12-28",
                "familyName": "MURPHY",
                "givenName": "Denise",
                "sex": "2"
            },
            "medicare": {
                "memberNumber": "2954536601",
                "memberRefNumber": "1"
            },
            "healthFund": {
                "memberNumber": "1234567",
                "organisation": "TST",
                "memberRefNumber": "1"
            }
        },
        "claimant": {
            "identity": {
                "dateOfBirth": "1989-12-28",
                "familyName": "MURPHY",
                "givenName": "Denise",
                "sex": "2"
            },
            "medicare": {
                "memberNumber": "2954536601",
                "memberRefNumber": "1"
            }
        },
        "principalProvider": { "providerNumber": "2447791K" },
        "accident": { "accidentInd": "N" },
        "serviceTypeCode": "S",
        "medicalEvent": [
            {
                "id": "01",
                "serviceProvider": { "providerNumber": "2447791K" },
                "service": [
                    {
                        "id": "0001",
                        "chargeAmount": "20000",
                        "dateOfService": "2026-10-20",
                        "itemNumber": "104"
                    }
                ],
                "admissionDate": "2026-10-19",
                "referral": {
                    "issueDate": "2026-10-01",
                    "typeCode": "S",
                    "provider": { "providerNumber": "2054781W" },
                    "periodCode": "S"
                }
            }
        ]
    },
    "correlationId": "urn:uuid:MDE00000IMCW20261021PCS1"
}
headers = {
    "x-minor-id": "<minorId>",
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Specialist Attendance
const url = 'https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"claim":{"accountPaidInd":"Y","accountReferenceId":"PCSPEC01","claimTypeCode":"PC","facilityId":"9988770W","submissionAuthorityInd":"Y","patient":{"identity":{"dateOfBirth":"1989-12-28","familyName":"MURPHY","givenName":"Denise","sex":"2"},"medicare":{"memberNumber":"2954536601","memberRefNumber":"1"},"healthFund":{"memberNumber":"1234567","organisation":"TST","memberRefNumber":"1"}},"claimant":{"identity":{"dateOfBirth":"1989-12-28","familyName":"MURPHY","givenName":"Denise","sex":"2"},"medicare":{"memberNumber":"2954536601","memberRefNumber":"1"}},"principalProvider":{"providerNumber":"2447791K"},"accident":{"accidentInd":"N"},"serviceTypeCode":"S","medicalEvent":[{"id":"01","serviceProvider":{"providerNumber":"2447791K"},"service":[{"id":"0001","chargeAmount":"20000","dateOfService":"2026-10-20","itemNumber":"104"}],"admissionDate":"2026-10-19","referral":{"issueDate":"2026-10-01","typeCode":"S","provider":{"providerNumber":"2054781W"},"periodCode":"S"}}]},"correlationId":"urn:uuid:MDE00000IMCW20261021PCS1"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Specialist Attendance
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2"

	payload := strings.NewReader("{\n  \"claim\": {\n    \"accountPaidInd\": \"Y\",\n    \"accountReferenceId\": \"PCSPEC01\",\n    \"claimTypeCode\": \"PC\",\n    \"facilityId\": \"9988770W\",\n    \"submissionAuthorityInd\": \"Y\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"claimant\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447791K\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"S\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447791K\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"20000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"104\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\",\n        \"referral\": {\n          \"issueDate\": \"2026-10-01\",\n          \"typeCode\": \"S\",\n          \"provider\": {\n            \"providerNumber\": \"2054781W\"\n          },\n          \"periodCode\": \"S\"\n        }\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021PCS1\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-minor-id", "<minorId>")
	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Specialist Attendance
require 'uri'
require 'net/http'

url = URI("https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-minor-id"] = '<minorId>'
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"claim\": {\n    \"accountPaidInd\": \"Y\",\n    \"accountReferenceId\": \"PCSPEC01\",\n    \"claimTypeCode\": \"PC\",\n    \"facilityId\": \"9988770W\",\n    \"submissionAuthorityInd\": \"Y\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"claimant\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447791K\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"S\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447791K\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"20000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"104\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\",\n        \"referral\": {\n          \"issueDate\": \"2026-10-01\",\n          \"typeCode\": \"S\",\n          \"provider\": {\n            \"providerNumber\": \"2054781W\"\n          },\n          \"periodCode\": \"S\"\n        }\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021PCS1\"\n}"

response = http.request(request)
puts response.read_body
```

```java Specialist Attendance
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"claim\": {\n    \"accountPaidInd\": \"Y\",\n    \"accountReferenceId\": \"PCSPEC01\",\n    \"claimTypeCode\": \"PC\",\n    \"facilityId\": \"9988770W\",\n    \"submissionAuthorityInd\": \"Y\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"claimant\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447791K\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"S\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447791K\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"20000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"104\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\",\n        \"referral\": {\n          \"issueDate\": \"2026-10-01\",\n          \"typeCode\": \"S\",\n          \"provider\": {\n            \"providerNumber\": \"2054781W\"\n          },\n          \"periodCode\": \"S\"\n        }\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021PCS1\"\n}")
  .asString();
```

```php Specialist Attendance
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2', [
  'body' => '{
  "claim": {
    "accountPaidInd": "Y",
    "accountReferenceId": "PCSPEC01",
    "claimTypeCode": "PC",
    "facilityId": "9988770W",
    "submissionAuthorityInd": "Y",
    "patient": {
      "identity": {
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "claimant": {
      "identity": {
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447791K"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "S",
    "medicalEvent": [
      {
        "id": "01",
        "serviceProvider": {
          "providerNumber": "2447791K"
        },
        "service": [
          {
            "id": "0001",
            "chargeAmount": "20000",
            "dateOfService": "2026-10-20",
            "itemNumber": "104"
          }
        ],
        "admissionDate": "2026-10-19",
        "referral": {
          "issueDate": "2026-10-01",
          "typeCode": "S",
          "provider": {
            "providerNumber": "2054781W"
          },
          "periodCode": "S"
        }
      }
    ]
  },
  "correlationId": "urn:uuid:MDE00000IMCW20261021PCS1"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '<minorId>',
  ],
]);

echo $response->getBody();
```

```csharp Specialist Attendance
using RestSharp;

var client = new RestClient("https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2");
var request = new RestRequest(Method.POST);
request.AddHeader("x-minor-id", "<minorId>");
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"claim\": {\n    \"accountPaidInd\": \"Y\",\n    \"accountReferenceId\": \"PCSPEC01\",\n    \"claimTypeCode\": \"PC\",\n    \"facilityId\": \"9988770W\",\n    \"submissionAuthorityInd\": \"Y\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"claimant\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1989-12-28\",\n        \"familyName\": \"MURPHY\",\n        \"givenName\": \"Denise\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536601\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447791K\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"S\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447791K\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"20000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"104\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\",\n        \"referral\": {\n          \"issueDate\": \"2026-10-01\",\n          \"typeCode\": \"S\",\n          \"provider\": {\n            \"providerNumber\": \"2054781W\"\n          },\n          \"periodCode\": \"S\"\n        }\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021PCS1\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Specialist Attendance
import Foundation

let headers = [
  "x-minor-id": "<minorId>",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "claim": [
    "accountPaidInd": "Y",
    "accountReferenceId": "PCSPEC01",
    "claimTypeCode": "PC",
    "facilityId": "9988770W",
    "submissionAuthorityInd": "Y",
    "patient": [
      "identity": [
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      ],
      "medicare": [
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      ],
      "healthFund": [
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      ]
    ],
    "claimant": [
      "identity": [
        "dateOfBirth": "1989-12-28",
        "familyName": "MURPHY",
        "givenName": "Denise",
        "sex": "2"
      ],
      "medicare": [
        "memberNumber": "2954536601",
        "memberRefNumber": "1"
      ]
    ],
    "principalProvider": ["providerNumber": "2447791K"],
    "accident": ["accidentInd": "N"],
    "serviceTypeCode": "S",
    "medicalEvent": [
      [
        "id": "01",
        "serviceProvider": ["providerNumber": "2447791K"],
        "service": [
          [
            "id": "0001",
            "chargeAmount": "20000",
            "dateOfService": "2026-10-20",
            "itemNumber": "104"
          ]
        ],
        "admissionDate": "2026-10-19",
        "referral": [
          "issueDate": "2026-10-01",
          "typeCode": "S",
          "provider": ["providerNumber": "2054781W"],
          "periodCode": "S"
        ]
      ]
    ]
  ],
  "correlationId": "urn:uuid:MDE00000IMCW20261021PCS1"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/pc/specialist/v2")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```