> 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 — General

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

**How do I lodge an in-patient Agreement claim for general services?**

Use this endpoint when the provider has an agreement with the patient's health fund, for services that need no referral or request.

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.

## General services

Send services that need no referral or request, with `serviceTypeCode` set to `O`. Leave `referral`, `referralOverrideCode` and `selfDeemedCode` out of every medical event, or Medicare rejects the claim with `2030`.

Send each item to the endpoint for its specialty. Send specialist and diagnostic imaging services to [In-Patient Agreement — Specialist](/api-reference/medicare-claiming/in-patient-claims/in-patient-agreement-specialist), 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 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-general

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

- `claim` (ImcAgGeneralRequestClaim, 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`. When the `400` comes from Medicare, the body is one of 2 JSON envelopes, and both carry `correlationId`: - **`serviceMessage`.** The claim broke one or more of Medicare's field or business rules. Each failed check has its own entry, and its `reason` names the field, the medical event and the service where they apply. - **Gateway (`DHSEIN`).** The request failed Medicare's schema check before its rules ran, such as a request with no `claim`. | Code | Cause | What to do | |---|---|---| | `9202` | A value has the wrong format, length or range. | Correct the named field. | | `2030` | A value breaks a rule that involves another field, the claim type or the endpoint. | Read the `reason`, which states the rule. | | `2025` | The claim has more than 16 medical events. | Split the claim. | | `2032` | A medical event has more than 14 services. | Split the medical event. | | `9777` | Medicare has already received a claim with this `correlationId`. | If you resent a claim that got no response, Medicare received the first attempt. [Follow the claim to its outcome](/in-patient-claiming#follow-the-claim-to-its-outcome) with its original transaction ID. Otherwise, send the claim with a new `correlationId`. | | `3004` | Medicare had a system error. | Send the claim again with a new `correlationId`. If the error persists, call the Medicare eBusiness Service Centre on 1800 700 199. | Show each `reason` to your user exactly as Medicare returns it. Look up any other code in the [Services Australia return-code lookup](https://www.servicesaustralia.gov.au/look-up-medicare-online-and-eclipse-return-codes). When RebateRight rejects the request before it reaches Medicare, the body is plain text with no `correlationId`, such as `Request body is empty.` Check the content type before you parse the body.

- `PostMedicareInpatientmedicalclaimAgGeneralV2RequestBadRequestError`

## Types

### ImcAgGeneralRequestClaim

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` (ImcAgGeneralRequestClaimPatient, required) — The patient who received the services.
- `principalProvider` (ImcAgGeneralRequestClaimPrincipalProvider, 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` (ImcAgGeneralRequestClaimAccident, required) — Accident details for the claim.
- `serviceTypeCode` (enum, required) — Must be `O`, for general services. A value that does not match the endpoint is rejected with `2030`.
  - Allowed values: `O`
- `medicalEvent` (list of ImcAgGeneralMedicalEvent, 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` (ImcAgGeneralRequestClaimSenderContact, optional) — Optional. The person at your practice to contact about this claim.
- `billingAgent` (ImcAgGeneralRequestClaimBillingAgent, 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.

### ImcAgGeneralRequestClaimPatient

The patient who received the services.

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

### ImcAgGeneralRequestClaimPrincipalProvider

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.

### ImcAgGeneralRequestClaimAccident

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`

### ImcAgGeneralMedicalEvent

- `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` (ImcAgGeneralMedicalEventServiceProvider, required) — The practitioner who rendered the services in this medical event.
- `service` (list of ImcAgGeneralService, 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`

### ImcAgGeneralRequestClaimSenderContact

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.

### ImcAgGeneralRequestClaimBillingAgent

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.

### ImcAgGeneralRequestClaimPatientIdentity

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.

### ImcAgGeneralRequestClaimPatientMedicare

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.

### ImcAgGeneralRequestClaimPatientHealthFund

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.

### ImcAgGeneralRequestClaimPatientAlsoKnownAs

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

### ImcAgGeneralMedicalEventServiceProvider

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.

### ImcAgGeneralService

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. Send a multiple-attendance item through this general endpoint with this field set.

## Examples

**Request**

```json
{
  "claim": {
    "accountPaidInd": "N",
    "accountReferenceId": "AGGEN01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": {
      "identity": {
        "dateOfBirth": "1960-02-08",
        "familyName": "ALDRIDGE",
        "givenName": "Eli",
        "sex": "1"
      },
      "medicare": {
        "memberNumber": "4951648811",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447781L"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "O",
    "medicalEvent": [
      {
        "id": "01",
        "ifcIssueCode": "W",
        "serviceProvider": {
          "providerNumber": "2447781L"
        },
        "service": [
          {
            "id": "0001",
            "chargeAmount": "12000",
            "dateOfService": "2026-10-20",
            "itemNumber": "30026"
          }
        ],
        "admissionDate": "2026-10-19"
      }
    ]
  },
  "correlationId": "urn:uuid:MDE00000IMCW20261021AGO1"
}
```

**Response**

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

**SDK Code**

```python Wound Repair
import requests

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

payload = {
    "claim": {
        "accountPaidInd": "N",
        "accountReferenceId": "AGGEN01",
        "benefitAssignmentAuthorisedInd": "I",
        "claimTypeCode": "AG",
        "facilityId": "9988770W",
        "patient": {
            "identity": {
                "dateOfBirth": "1960-02-08",
                "familyName": "ALDRIDGE",
                "givenName": "Eli",
                "sex": "1"
            },
            "medicare": {
                "memberNumber": "4951648811",
                "memberRefNumber": "1"
            },
            "healthFund": {
                "memberNumber": "1234567",
                "organisation": "TST",
                "memberRefNumber": "1"
            }
        },
        "principalProvider": { "providerNumber": "2447781L" },
        "accident": { "accidentInd": "N" },
        "serviceTypeCode": "O",
        "medicalEvent": [
            {
                "id": "01",
                "ifcIssueCode": "W",
                "serviceProvider": { "providerNumber": "2447781L" },
                "service": [
                    {
                        "id": "0001",
                        "chargeAmount": "12000",
                        "dateOfService": "2026-10-20",
                        "itemNumber": "30026"
                    }
                ],
                "admissionDate": "2026-10-19"
            }
        ]
    },
    "correlationId": "urn:uuid:MDE00000IMCW20261021AGO1"
}
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 Wound Repair
const url = 'https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/ag/general/v2';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"claim":{"accountPaidInd":"N","accountReferenceId":"AGGEN01","benefitAssignmentAuthorisedInd":"I","claimTypeCode":"AG","facilityId":"9988770W","patient":{"identity":{"dateOfBirth":"1960-02-08","familyName":"ALDRIDGE","givenName":"Eli","sex":"1"},"medicare":{"memberNumber":"4951648811","memberRefNumber":"1"},"healthFund":{"memberNumber":"1234567","organisation":"TST","memberRefNumber":"1"}},"principalProvider":{"providerNumber":"2447781L"},"accident":{"accidentInd":"N"},"serviceTypeCode":"O","medicalEvent":[{"id":"01","ifcIssueCode":"W","serviceProvider":{"providerNumber":"2447781L"},"service":[{"id":"0001","chargeAmount":"12000","dateOfService":"2026-10-20","itemNumber":"30026"}],"admissionDate":"2026-10-19"}]},"correlationId":"urn:uuid:MDE00000IMCW20261021AGO1"}'
};

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

```go Wound Repair
package main

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

func main() {

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

	payload := strings.NewReader("{\n  \"claim\": {\n    \"accountPaidInd\": \"N\",\n    \"accountReferenceId\": \"AGGEN01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1960-02-08\",\n        \"familyName\": \"ALDRIDGE\",\n        \"givenName\": \"Eli\",\n        \"sex\": \"1\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"4951648811\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447781L\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"O\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"ifcIssueCode\": \"W\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447781L\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"12000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"30026\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\"\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021AGO1\"\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 Wound Repair
require 'uri'
require 'net/http'

url = URI("https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/ag/general/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\": \"AGGEN01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1960-02-08\",\n        \"familyName\": \"ALDRIDGE\",\n        \"givenName\": \"Eli\",\n        \"sex\": \"1\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"4951648811\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447781L\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"O\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"ifcIssueCode\": \"W\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447781L\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"12000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"30026\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\"\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021AGO1\"\n}"

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

```java Wound Repair
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/general/v2")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"claim\": {\n    \"accountPaidInd\": \"N\",\n    \"accountReferenceId\": \"AGGEN01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1960-02-08\",\n        \"familyName\": \"ALDRIDGE\",\n        \"givenName\": \"Eli\",\n        \"sex\": \"1\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"4951648811\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447781L\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"O\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"ifcIssueCode\": \"W\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447781L\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"12000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"30026\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\"\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021AGO1\"\n}")
  .asString();
```

```php Wound Repair
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/ag/general/v2', [
  'body' => '{
  "claim": {
    "accountPaidInd": "N",
    "accountReferenceId": "AGGEN01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": {
      "identity": {
        "dateOfBirth": "1960-02-08",
        "familyName": "ALDRIDGE",
        "givenName": "Eli",
        "sex": "1"
      },
      "medicare": {
        "memberNumber": "4951648811",
        "memberRefNumber": "1"
      },
      "healthFund": {
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      }
    },
    "principalProvider": {
      "providerNumber": "2447781L"
    },
    "accident": {
      "accidentInd": "N"
    },
    "serviceTypeCode": "O",
    "medicalEvent": [
      {
        "id": "01",
        "ifcIssueCode": "W",
        "serviceProvider": {
          "providerNumber": "2447781L"
        },
        "service": [
          {
            "id": "0001",
            "chargeAmount": "12000",
            "dateOfService": "2026-10-20",
            "itemNumber": "30026"
          }
        ],
        "admissionDate": "2026-10-19"
      }
    ]
  },
  "correlationId": "urn:uuid:MDE00000IMCW20261021AGO1"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '<minorId>',
  ],
]);

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

```csharp Wound Repair
using RestSharp;

var client = new RestClient("https://test-api.rebateright.com.au/Medicare/inpatientmedicalclaim/ag/general/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\": \"AGGEN01\",\n    \"benefitAssignmentAuthorisedInd\": \"I\",\n    \"claimTypeCode\": \"AG\",\n    \"facilityId\": \"9988770W\",\n    \"patient\": {\n      \"identity\": {\n        \"dateOfBirth\": \"1960-02-08\",\n        \"familyName\": \"ALDRIDGE\",\n        \"givenName\": \"Eli\",\n        \"sex\": \"1\"\n      },\n      \"medicare\": {\n        \"memberNumber\": \"4951648811\",\n        \"memberRefNumber\": \"1\"\n      },\n      \"healthFund\": {\n        \"memberNumber\": \"1234567\",\n        \"organisation\": \"TST\",\n        \"memberRefNumber\": \"1\"\n      }\n    },\n    \"principalProvider\": {\n      \"providerNumber\": \"2447781L\"\n    },\n    \"accident\": {\n      \"accidentInd\": \"N\"\n    },\n    \"serviceTypeCode\": \"O\",\n    \"medicalEvent\": [\n      {\n        \"id\": \"01\",\n        \"ifcIssueCode\": \"W\",\n        \"serviceProvider\": {\n          \"providerNumber\": \"2447781L\"\n        },\n        \"service\": [\n          {\n            \"id\": \"0001\",\n            \"chargeAmount\": \"12000\",\n            \"dateOfService\": \"2026-10-20\",\n            \"itemNumber\": \"30026\"\n          }\n        ],\n        \"admissionDate\": \"2026-10-19\"\n      }\n    ]\n  },\n  \"correlationId\": \"urn:uuid:MDE00000IMCW20261021AGO1\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Wound Repair
import Foundation

let headers = [
  "x-minor-id": "<minorId>",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "claim": [
    "accountPaidInd": "N",
    "accountReferenceId": "AGGEN01",
    "benefitAssignmentAuthorisedInd": "I",
    "claimTypeCode": "AG",
    "facilityId": "9988770W",
    "patient": [
      "identity": [
        "dateOfBirth": "1960-02-08",
        "familyName": "ALDRIDGE",
        "givenName": "Eli",
        "sex": "1"
      ],
      "medicare": [
        "memberNumber": "4951648811",
        "memberRefNumber": "1"
      ],
      "healthFund": [
        "memberNumber": "1234567",
        "organisation": "TST",
        "memberRefNumber": "1"
      ]
    ],
    "principalProvider": ["providerNumber": "2447781L"],
    "accident": ["accidentInd": "N"],
    "serviceTypeCode": "O",
    "medicalEvent": [
      [
        "id": "01",
        "ifcIssueCode": "W",
        "serviceProvider": ["providerNumber": "2447781L"],
        "service": [
          [
            "id": "0001",
            "chargeAmount": "12000",
            "dateOfService": "2026-10-20",
            "itemNumber": "30026"
          ]
        ],
        "admissionDate": "2026-10-19"
      ]
    ]
  ],
  "correlationId": "urn:uuid:MDE00000IMCW20261021AGO1"
] 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/general/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()
```