> 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 Agreement — Specialist

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

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

Use this endpoint when the provider has an agreement with the patient's health fund, 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                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| An Agreement claim (`AG`) 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.

## 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 Agreement — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-agreement-general), and pathology services to [In-Patient Agreement — Pathology](/api-reference/medicare-claiming/in-patient-claims/in-patient-agreement-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 Agreement — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-agreement-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-agreement-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 ImcAgSpecialistRequest.

- `claim` (ImcAgSpecialistRequestClaim, 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 Agreement — General](/api-reference/medicare-claiming/in-patient-claims/in-patient-agreement-general), whose `400` lists them.

- `PostMedicareInpatientmedicalclaimAgSpecialistV2RequestBadRequestError`

## Types

### ImcAgSpecialistRequestClaim

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

- `accountPaidInd` (enum, required) — Whether the patient has paid the account in full. This claim type takes `N` only. | Code | Meaning | |---|---| | `N` | Not paid in full |
  - Allowed values: `N`
- `accountReferenceId` (string, required) — Your reference for the patient's account, 1 to 20 letters or digits. Medicare includes it in every report for the claim.
- `benefitAssignmentAuthorisedInd` (enum, required) — Declares that the provider has met the legal requirements for assigning the patient's Medicare benefit to the health fund, and names how it was assigned. | Code | Meaning | |---|---| | `I` | Implied assignment. An insurer arrangement, such as a gap cover agreement, covers the service. | | `R` | Requested assignment. No insurer arrangement covers the service, and the patient asked to assign their benefit. | For a service rendered before 1 July 2026, send `I`. [Assignment of benefit](/in-patient-claiming#assignment-of-benefit) sets out what each pathway requires of the provider.
  - Allowed values: `I`, `R`
- `claimTypeCode` (enum, required) — Must be `AG`. A value that does not match the endpoint is rejected with `2030`.
  - Allowed values: `AG`
- `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.
- `patient` (ImcAgSpecialistRequestClaimPatient, required) — The patient who received the services.
- `principalProvider` (ImcAgSpecialistRequestClaimPrincipalProvider, 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` (ImcAgSpecialistRequestClaimAccident, 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 ImcAgSpecialistMedicalEvent, required) — The medical events in this claim, up to 16. Each holds the services one servicing provider rendered, up to 14.
- `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`
- `fundPayeeId` (string, optional) — Optional. The identifier the health fund gave the practitioner under its agreement with them, 1 to 12 letters or digits.
- `senderContact` (ImcAgSpecialistRequestClaimSenderContact, optional) — Optional. The person at your practice to contact about this claim.
- `billingAgent` (ImcAgSpecialistRequestClaimBillingAgent, optional) — Optional. The billing agent that payment is directed to.

### ImcAgServiceMessageError

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 ImcAgServiceMessageErrorServiceMessageItems, required) — One entry for each failed check.
- `correlationId` (string, required) — Echo of the request's `correlationId`.

### ImcAgGatewayError

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.

### ImcAgSpecialistRequestClaimPatient

The patient who received the services.

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

### ImcAgSpecialistRequestClaimPrincipalProvider

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.

### ImcAgSpecialistRequestClaimAccident

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`

### ImcAgSpecialistMedicalEvent

- `id` (string, required) — The medical event's number, 2 digits. The first is `01`, and each next one adds one, up to `16`.
- `ifcIssueCode` (enum, required) — Informed financial consent: whether and how the patient was told the expected costs before the episode of care. This claim type takes `V`, `W` or `X`, and `N` is rejected with `2030`. | Code | Meaning | |---|---| | `V` | Given verbally | | `W` | Given in writing | | `X` | Not obtained |
  - Allowed values: `V`, `W`, `X`
- `serviceProvider` (ImcAgSpecialistMedicalEventServiceProvider, required) — The practitioner who rendered the services in this medical event.
- `service` (list of ImcAgSpecialistService, 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`
- `referral` (ImcAgSpecialistMedicalEventReferral, 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`

### ImcAgSpecialistRequestClaimSenderContact

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.

### ImcAgSpecialistRequestClaimBillingAgent

Optional. The billing agent that payment is directed to.

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

### ImcAgServiceMessageErrorServiceMessageItems

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

### ImcAgSpecialistRequestClaimPatientIdentity

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.

### ImcAgSpecialistRequestClaimPatientMedicare

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.

### ImcAgSpecialistRequestClaimPatientHealthFund

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.

### ImcAgSpecialistRequestClaimPatientAlsoKnownAs

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

### ImcAgSpecialistMedicalEventServiceProvider

The practitioner who rendered the services in this medical event.

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

### ImcAgSpecialistService

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`.
- `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`. A multiple-attendance item sent through this endpoint is assessed with no benefit and explanation code `402`, so send it through the general endpoint.
- `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`

### ImcAgSpecialistMedicalEventReferral

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` (ImcAgSpecialistMedicalEventReferralProvider, 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`.

### ImcAgSpecialistMedicalEventReferralProvider

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": "N",
    "accountReferenceId": "AGSPEC01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": {
      "identity": {
        "dateOfBirth": "1993-08-14",
        "familyName": "NASH",
        "givenName": "Hazel",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536421",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447791K"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "S",
    "medicalEvent": [
      {
        "id": "01",
        "ifcIssueCode": "W",
        "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:MDE00000IMCW20261021AGS1"
}
```

**Response**

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

**SDK Code**

```python Specialist Attendance
import requests

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

payload = {
    "claim": {
        "accountPaidInd": "N",
        "accountReferenceId": "AGSPEC01",
        "benefitAssignmentAuthorisedInd": "I",
        "claimTypeCode": "AG",
        "facilityId": "9988770W",
        "patient": {
            "identity": {
                "dateOfBirth": "1993-08-14",
                "familyName": "NASH",
                "givenName": "Hazel",
                "sex": "2"
            },
            "medicare": {
                "memberNumber": "2954536421",
                "memberRefNumber": "1"
            },
            "healthFund": {
                "memberNumber": "1234567",
                "organisation": "TST",
                "memberRefNumber": "1"
            }
        },
        "principalProvider": { "providerNumber": "2447791K" },
        "accident": { "accidentInd": "N" },
        "serviceTypeCode": "S",
        "medicalEvent": [
            {
                "id": "01",
                "ifcIssueCode": "W",
                "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:MDE00000IMCW20261021AGS1"
}
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/ag/specialist/v2';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"claim":{"accountPaidInd":"N","accountReferenceId":"AGSPEC01","benefitAssignmentAuthorisedInd":"I","claimTypeCode":"AG","facilityId":"9988770W","patient":{"identity":{"dateOfBirth":"1993-08-14","familyName":"NASH","givenName":"Hazel","sex":"2"},"medicare":{"memberNumber":"2954536421","memberRefNumber":"1"},"healthFund":{"memberNumber":"1234567","organisation":"TST","memberRefNumber":"1"}},"principalProvider":{"providerNumber":"2447791K"},"accident":{"accidentInd":"N"},"serviceTypeCode":"S","medicalEvent":[{"id":"01","ifcIssueCode":"W","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:MDE00000IMCW20261021AGS1"}'
};

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/ag/specialist/v2"

	payload := strings.NewReader("{\n  \"claim\": {\n    \"accountPaidInd\": \"N\",\n    \"accountReferenceId\": \"AGSPEC01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1993-08-14\",\n        \"familyName\": \"NASH\",\n        \"givenName\": \"Hazel\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536421\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\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        \"ifcIssueCode\": \"W\",\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:MDE00000IMCW20261021AGS1\"\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/ag/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\": \"N\",\n    \"accountReferenceId\": \"AGSPEC01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1993-08-14\",\n        \"familyName\": \"NASH\",\n        \"givenName\": \"Hazel\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536421\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\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        \"ifcIssueCode\": \"W\",\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:MDE00000IMCW20261021AGS1\"\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/ag/specialist/v2")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"claim\": {\n    \"accountPaidInd\": \"N\",\n    \"accountReferenceId\": \"AGSPEC01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1993-08-14\",\n        \"familyName\": \"NASH\",\n        \"givenName\": \"Hazel\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536421\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\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        \"ifcIssueCode\": \"W\",\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:MDE00000IMCW20261021AGS1\"\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/ag/specialist/v2', [
  'body' => '{
  "claim": {
    "accountPaidInd": "N",
    "accountReferenceId": "AGSPEC01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": {
      "identity": {
        "dateOfBirth": "1993-08-14",
        "familyName": "NASH",
        "givenName": "Hazel",
        "sex": "2"
      },
      "medicare": {
        "memberNumber": "2954536421",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447791K"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "S",
    "medicalEvent": [
      {
        "id": "01",
        "ifcIssueCode": "W",
        "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:MDE00000IMCW20261021AGS1"
}',
  '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/ag/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\": \"N\",\n    \"accountReferenceId\": \"AGSPEC01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1993-08-14\",\n        \"familyName\": \"NASH\",\n        \"givenName\": \"Hazel\",\n        \"sex\": \"2\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"2954536421\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\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        \"ifcIssueCode\": \"W\",\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:MDE00000IMCW20261021AGS1\"\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": "N",
    "accountReferenceId": "AGSPEC01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": [
      "identity": [
        "dateOfBirth": "1993-08-14",
        "familyName": "NASH",
        "givenName": "Hazel",
        "sex": "2"
      ],
      "medicare": [
        "memberNumber": "2954536421",
        "memberRefNumber": "1"
      ],
      "healthFund": [
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      ]
    ],
    "principalProvider": ["providerNumber": "2447791K"],
    "accident": ["accidentInd": "N"],
    "serviceTypeCode": "S",
    "medicalEvent": [
      [
        "id": "01",
        "ifcIssueCode": "W",
        "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:MDE00000IMCW20261021AGS1"
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/ag/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()
```