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

# Remittance Advice

POST https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1
Content-Type: application/json

**Which in-patient claims does this payment cover?**

That is the question this endpoint answers, with the amount deposited, the reference on the bank
statement and the benefit for each claim.

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

A remittance advice records one payment for in-patient claims. Services Australia calls it the ECLIPSE
Remittance Advice.

These examples were captured before the test environment had generated any remittance advice, so none
shows a successful response. The
`report` fields come from Services Australia's specification, and are not yet confirmed against a
live response.

[Reconcile payments](/in-patient-claiming#reconcile-payments) gives the steps to find and retrieve one,
which claim types get one, and what Services Australia requires your software to store.

## When one is ready

In the test environment, a claim that completes Monday to Thursday gets its remittance advice the next
day. A claim that completes Friday to Sunday normally gets it the following Tuesday. For production,
Services Australia states only that a remittance advice follows the claim's completion. Check the status
once a day until it is `READY`.

## Retrieval status

Each ID gets its own entry in `content`, with one of these values in `status`:

| Value                  | Meaning                                                                                 |
| ---------------------- | --------------------------------------------------------------------------------------- |
| `SUCCESS`              | The remittance advice is in `report`.                                                   |
| `REPORT_NOT_READY`     | The remittance advice is still being prepared. Check its status again later.            |
| `REPORT_NOT_FOUND`     | Nothing from this Minor ID has this ID, or the claim was lodged more than 6 months ago. |
| `INVALID_CONTENT_TYPE` | The ID belongs to another kind of record, such as a claim's own transaction ID.         |

A malformed request, such as one with an ID that is not 24 characters, receives a **`400`**. See the
`400` response examples.

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

## 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. Send the Minor ID that lodged the claims. See [Keys, Minor ID and environments](/keys-and-environments).

### Body (application/json)

This endpoint expects an object.

- `transactionId` (list of string, required) — The remittance advice IDs to retrieve, up to 1,000, each sent once. Send an array, even for one ID. Take each ID from a `READY` or `REPORTED` row of a [Status Report](/api-reference/medicare-claiming/in-patient-claims/status-report) remittance advice lookup. It is 24 letters or digits, and need not start with your Minor ID.

## Response

### 200

OK

- `content` (list of MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItems, required) — One entry for each ID you sent, in the same order.
- `correlationId` (string, required) — The ID RebateRight generated for this request. Quote it in a support enquiry. It is not a remittance advice ID.

## Errors

### 400 Bad Request Error

The request failed a check (HTTP 400). The body is either Medicare's `serviceMessage` envelope or a gateway envelope (`code`, `codeType`, `message`). Both carry `correlationId`.

- `PostMedicareEclipseremittanceadviceRetrievereportV1RequestBadRequestError`

## Types

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItems

- `transactionId` (string, required) — The ID this entry answers.
- `status` (enum, required) — Whether the remittance advice came back. The table at the top of this page explains each value.
  - Allowed values: `SUCCESS`, `REPORT_NOT_READY`, `REPORT_NOT_FOUND`, `INVALID_CONTENT_TYPE`
- `report` (MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReport, optional) — Present when `status` is `SUCCESS`. The remittance advice. Medicare may include properties beyond those listed.

### PostMedicareEclipseremittanceadviceRetrievereportV1RequestBadRequestError0

- `highestSeverity` (string, required) — The highest severity across the messages, usually `Error`.
- `correlationId` (string, required) — The ID RebateRight generated for this request.
- `serviceMessage` (list of MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaOneOf0ServiceMessageItems, required) — One message for each check the request failed.

### PostMedicareEclipseremittanceadviceRetrievereportV1RequestBadRequestError1

- `code` (integer, required) — The gateway's error code.
- `codeType` (string, required) — The gateway's error category, such as `DHSEIN` for a body that does not match the schema.
- `message` (string, required) — What failed.
- `correlationId` (string, required) — The ID RebateRight generated for this request.

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReport

Present when `status` is `SUCCESS`. The remittance advice. Medicare may include properties beyond those listed.

- `partNumber` (integer, optional) — Which part of the remittance advice this is. A remittance advice holds up to 1,000 claims, and a larger one comes in parts.
- `partTotal` (integer, optional) — How many parts the remittance advice has.
- `payeeLocationId` (string, optional) — The payee's Location ID, 8 characters.
- `remittanceAdviceId` (string, optional) — The payer's identifier for this remittance advice, such as a run number.
- `paymentInfo` (MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentInfo, optional) — The payment.
- `paymentRun` (MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentRun, optional) — The payment run that made the payment.
- `claimSummary` (list of MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportClaimSummaryItems, optional) — One entry for each claim the payment covers.

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaOneOf0ServiceMessageItems

- `code` (string, required) — Medicare's error code, such as `2030` for a broken rule or `9202` for an invalid value.
- `severity` (string, required) — The severity of this message, such as `Error`.
- `reason` (string, required) — What failed. Show it to your user exactly as returned.

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentInfo

The payment.

- `depositAmount` (string, optional) — The amount deposited, in cents, as a string. It equals the total `benefit` of the claims in the remittance advice.
- `paymentReference` (string, optional) — The reference for this deposit on the payee's bank statement.
- `accountInfo` (MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentInfoAccountInfo, optional) — The bank account the payment went to.

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentRun

The payment run that made the payment.

- `payerName` (string, optional) — Who paid. `Services Australia` for a Medicare Only (`MO`) claim, and for the Medicare benefit of a Billing Agent (`MB`) claim. Otherwise, the health fund.
- `runDate` (date, optional) — The date Medicare asked the Reserve Bank of Australia to make the payment, or the date the health fund made it.

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportClaimSummaryItems

- `transactionId` (string, optional) — The claim's identifier. For a Medicare Only (`MO`) claim, and in the Medicare remittance advice of a Billing Agent (`MB`) claim, it is the claim's transaction ID.
- `accountReferenceId` (string, optional) — The `accountReferenceId` sent on the claim.
- `claimId` (string, optional) — Medicare's claim ID, for Agreement (`AG`), Scheme (`SC`) and Billing Agent (`MB`) claims.
- `lodgementDate` (date, optional) — The date the claim was lodged.
- `benefit` (string, optional) — The benefit paid on the claim, in cents, as a string. | Claim type | Benefit | |---|---| | `AG`, `SC` | The Medicare and health fund benefit together | | `MB` | The Medicare benefit in one remittance advice, and the health fund benefit in the other | | `MO` | The Medicare benefit |
- `channelCode` (enum, optional) — The claim's channel. A billing agent uses it to reconcile its claims. | Code | Meaning | |------|---------| | `SB3` | Billing agent | | `SB4` | Health fund |
  - Allowed values: `SB3`, `SB4`

### MedicareEclipseremittanceadviceRetrievereportV1PostResponsesContentApplicationJsonSchemaContentItemsReportPaymentInfoAccountInfo

The bank account the payment went to.

- `accountName` (string, optional) — The name of the bank account.
- `accountNumber` (string, optional) — The account number, masked. The first 5 characters are asterisks, and the last 4 are the end of the account number.
- `bsbCode` (string, optional) — The 6-digit BSB of the bank and branch.

## Examples

### Claim ID Sent

**Request**

```json
{
  "transactionId": [
    "MDE000005b864a2b5f7a4538"
  ]
}
```

**Response**

```json
{
  "content": [
    {
      "transactionId": "MDE000005b864a2b5f7a4538",
      "status": "INVALID_CONTENT_TYPE"
    }
  ],
  "correlationId": "urn:uuid:MDE00000440770a039d94f8a"
}
```

**SDK Code**

```python Claim ID Sent
import requests

url = "https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1"

payload = { "transactionId": ["MDE000005b864a2b5f7a4538"] }
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 Claim ID Sent
const url = 'https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"transactionId":["MDE000005b864a2b5f7a4538"]}'
};

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

```go Claim ID Sent
package main

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

func main() {

	url := "https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1"

	payload := strings.NewReader("{\n  \"transactionId\": [\n    \"MDE000005b864a2b5f7a4538\"\n  ]\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 Claim ID Sent
require 'uri'
require 'net/http'

url = URI("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1")

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  \"transactionId\": [\n    \"MDE000005b864a2b5f7a4538\"\n  ]\n}"

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

```java Claim ID Sent
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"transactionId\": [\n    \"MDE000005b864a2b5f7a4538\"\n  ]\n}")
  .asString();
```

```php Claim ID Sent
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1', [
  'body' => '{
  "transactionId": [
    "MDE000005b864a2b5f7a4538"
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '<minorId>',
  ],
]);

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

```csharp Claim ID Sent
using RestSharp;

var client = new RestClient("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1");
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  \"transactionId\": [\n    \"MDE000005b864a2b5f7a4538\"\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Claim ID Sent
import Foundation

let headers = [
  "x-minor-id": "<minorId>",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = ["transactionId": ["MDE000005b864a2b5f7a4538"]] as [String : Any]

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

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

### Report Not Found

**Request**

```json
{
  "transactionId": [
    "MDE00000d83d269f45104652"
  ]
}
```

**Response**

```json
{
  "content": [
    {
      "transactionId": "MDE00000d83d269f45104652",
      "status": "REPORT_NOT_FOUND"
    }
  ],
  "correlationId": "urn:uuid:MDE00000539d89976fe84793"
}
```

**SDK Code**

```python Report Not Found
import requests

url = "https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1"

payload = { "transactionId": ["MDE00000d83d269f45104652"] }
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 Report Not Found
const url = 'https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"transactionId":["MDE00000d83d269f45104652"]}'
};

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

```go Report Not Found
package main

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

func main() {

	url := "https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1"

	payload := strings.NewReader("{\n  \"transactionId\": [\n    \"MDE00000d83d269f45104652\"\n  ]\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 Report Not Found
require 'uri'
require 'net/http'

url = URI("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1")

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  \"transactionId\": [\n    \"MDE00000d83d269f45104652\"\n  ]\n}"

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

```java Report Not Found
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"transactionId\": [\n    \"MDE00000d83d269f45104652\"\n  ]\n}")
  .asString();
```

```php Report Not Found
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1', [
  'body' => '{
  "transactionId": [
    "MDE00000d83d269f45104652"
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '<minorId>',
  ],
]);

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

```csharp Report Not Found
using RestSharp;

var client = new RestClient("https://test-api.rebateright.com.au/Medicare/eclipseremittanceadvice/retrievereport/v1");
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  \"transactionId\": [\n    \"MDE00000d83d269f45104652\"\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Report Not Found
import Foundation

let headers = [
  "x-minor-id": "<minorId>",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = ["transactionId": ["MDE00000d83d269f45104652"]] as [String : Any]

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

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