> 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 full documentation content, see https://docs.rebateright.com.au/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rebateright.com.au/_mcp/server.

# Planned Catch-up Date

POST https://api.rebateright.com.au/AIR/v1.1/schedule/catchup
Content-Type: application/json

Record a planned catch-up date for an individual under 20 who is on a vaccination catch-up schedule. AIR sets the date as **today + 6 months** or the individual's **20th birthday**, whichever is earlier, and returns it in `catchupDate`.

For shared response patterns and the full status-code list, see [AIR Integration](/air).

#### When to use this

Recording a planned catch-up gives the individual an *up-to-date* immunisation status **for family assistance payments only**, for the duration of the catch-up period. It does **not** mark the individual up-to-date for clinical purposes — their AIR immunisation status stays *not up to date* until every scheduled catch-up vaccination is recorded.

Only one catch-up can ever be recorded per individual. Resubmitting returns `AIR-W-1010` with the existing date.

#### Not for general catch-up tracking

This is **not** the right endpoint to mark that an individual is on a vaccination catch-up schedule. For that, use the *Additional Vaccines Required* indicator (a special-risk-group flag, separate endpoint).

#### Acknowledgement text

Services Australia (NOI) requires the provider to read and agree to a fixed acknowledgement before submitting. Display this text in your interface verbatim:

> Select this if you would like to commence a planned catch up for the individual as you:
>
> - were unable to administer all overdue vaccines today; or
> - are waiting on results to support testing of natural immunity; or
> - need to order in additional required vaccines.
>
> Please note an individual can only ever have one catch up schedule recorded on the AIR.
>
> You should not select this if:
>
> - you have vaccinated the individual and they are no longer overdue for any vaccines, or
> - you feel the parent/guardian does not intend to vaccinate the individual.

#### Date format

Date fields use **DDMMYYYY** with no separators (e.g. `24022011`).

#### Status Codes

Top-level outcomes for this endpoint:

| Code | Meaning |
|---|---|
| `AIR-I-1009` | Catch-up date successfully recorded. `catchupDate` returned. |
| `AIR-W-1010` | Catch-up already exists for the individual. The existing `catchupDate` is returned. |
| `AIR-W-1011` | A catch-up exists but has expired. The expired `catchupDate` is returned. |
| `AIR-E-1005` | Validation errors. See `errors[]`. Common case: individual is over 20 (`AIR-E-1047`). |
| `AIR-E-1006` | Unexpected error. Retry shortly. |


Reference: https://docs.rebateright.com.au/api-reference/air/planned-catch-up/planned-catch-up-date

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: collection
  version: 1.0.0
paths:
  /AIR/v1.1/schedule/catchup:
    post:
      operationId: planned-catch-up-date
      summary: Planned Catch-up Date
      description: >
        Record a planned catch-up date for an individual under 20 who is on a
        vaccination catch-up schedule. AIR sets the date as **today + 6 months**
        or the individual's **20th birthday**, whichever is earlier, and returns
        it in `catchupDate`.


        For shared response patterns and the full status-code list, see [AIR
        Integration](/air).


        #### When to use this


        Recording a planned catch-up gives the individual an *up-to-date*
        immunisation status **for family assistance payments only**, for the
        duration of the catch-up period. It does **not** mark the individual
        up-to-date for clinical purposes — their AIR immunisation status stays
        *not up to date* until every scheduled catch-up vaccination is recorded.


        Only one catch-up can ever be recorded per individual. Resubmitting
        returns `AIR-W-1010` with the existing date.


        #### Not for general catch-up tracking


        This is **not** the right endpoint to mark that an individual is on a
        vaccination catch-up schedule. For that, use the *Additional Vaccines
        Required* indicator (a special-risk-group flag, separate endpoint).


        #### Acknowledgement text


        Services Australia (NOI) requires the provider to read and agree to a
        fixed acknowledgement before submitting. Display this text in your
        interface verbatim:


        > Select this if you would like to commence a planned catch up for the
        individual as you:

        >

        > - were unable to administer all overdue vaccines today; or

        > - are waiting on results to support testing of natural immunity; or

        > - need to order in additional required vaccines.

        >

        > Please note an individual can only ever have one catch up schedule
        recorded on the AIR.

        >

        > You should not select this if:

        >

        > - you have vaccinated the individual and they are no longer overdue
        for any vaccines, or

        > - you feel the parent/guardian does not intend to vaccinate the
        individual.


        #### Date format


        Date fields use **DDMMYYYY** with no separators (e.g. `24022011`).


        #### Status Codes


        Top-level outcomes for this endpoint:


        | Code | Meaning |

        |---|---|

        | `AIR-I-1009` | Catch-up date successfully recorded. `catchupDate`
        returned. |

        | `AIR-W-1010` | Catch-up already exists for the individual. The
        existing `catchupDate` is returned. |

        | `AIR-W-1011` | A catch-up exists but has expired. The expired
        `catchupDate` is returned. |

        | `AIR-E-1005` | Validation errors. See `errors[]`. Common case:
        individual is over 20 (`AIR-E-1047`). |

        | `AIR-E-1006` | Unexpected error. Retry shortly. |
      tags:
        - subpackage_air.subpackage_air/plannedCatchUp
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/AIR_Planned Catch-up_Planned Catch-up
                  Date_Response_200
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                individual:
                  $ref: >-
                    #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividual
                  description: >-
                    The patient the catch-up is being recorded for. Must be
                    under 20 — over-20s return `AIR-E-1047`.
                informationProvider:
                  $ref: >-
                    #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaInformationProvider
              required:
                - individual
                - informationProvider
servers:
  - url: https://api.rebateright.com.au
  - url: https://test-api.rebateright.com.au
components:
  schemas:
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetailsGender:
      type: string
      enum:
        - F
        - M
        - X
      description: |
        Individual's gender.

        | Code | Meaning |
        |---|---|
        | `F` | Female |
        | `M` | Male |
        | `X` | Non-binary |
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetailsGender
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetails:
      type: object
      properties:
        dateOfBirth:
          type: string
          description: >-
            DDMMYYYY format. Cannot be in the future or more than 130 years in
            the past.
        firstName:
          type: string
          description: 1–40 alphanumeric characters.
        lastName:
          type: string
          description: 1–40 alphanumeric characters.
        gender:
          $ref: >-
            #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetailsGender
          description: |
            Individual's gender.

            | Code | Meaning |
            |---|---|
            | `F` | Female |
            | `M` | Male |
            | `X` | Non-binary |
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetails
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualMedicareCard:
      type: object
      properties:
        medicareCardNumber:
          type: string
          description: 10-digit Medicare card number.
        medicareIRN:
          type: string
          description: Single-digit Individual Reference Number from the Medicare card.
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualMedicareCard
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualAddress:
      type: object
      properties:
        addressLineOne:
          type: string
        addressLineTwo:
          type: string
          description: Only set when `addressLineOne` is provided.
        locality:
          type: string
          description: Suburb or town.
        postCode:
          type: string
          description: 4-digit Australian postcode.
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualAddress
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividual:
      type: object
      properties:
        personalDetails:
          $ref: >-
            #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualPersonalDetails
        medicareCard:
          $ref: >-
            #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualMedicareCard
        address:
          $ref: >-
            #/components/schemas/AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividualAddress
        ihiNumber:
          type: string
          description: 16-digit Individual Healthcare Identifier (IHI).
      description: >-
        The patient the catch-up is being recorded for. Must be under 20 —
        over-20s return `AIR-E-1047`.
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaIndividual
    AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaInformationProvider:
      type: object
      properties:
        providerNumber:
          type: string
          description: >-
            Medicare provider number or AIR provider number of the entity
            sending the data. Must be current at the submission date.
        hpioNumber:
          type: string
          description: >-
            Optional. Healthcare Provider Identifier — Organisation (HPI-O). 16
            digits.
        hpiiNumber:
          type: string
          description: >-
            Optional. Healthcare Provider Identifier — Individual (HPI-I). 16
            digits.
      required:
        - providerNumber
      title: >-
        AirV11ScheduleCatchupPostRequestBodyContentApplicationJsonSchemaInformationProvider
    AirV11ScheduleCatchupPostResponsesContentApplicationJsonSchemaErrorsItems:
      type: object
      properties:
        code:
          type: string
          description: >-
            AIR validation code (e.g. `AIR-E-1047` for over-20, `AIR-E-1026` for
            insufficient identification).
        field:
          type: string
          description: Human-readable name of the field that failed validation.
        message:
          type: string
          description: Plain-language description of the validation problem.
      title: >-
        AirV11ScheduleCatchupPostResponsesContentApplicationJsonSchemaErrorsItems
    AIR_Planned Catch-up_Planned Catch-up Date_Response_200:
      type: object
      properties:
        statusCode:
          type: string
          description: AIR status code. See [Status codes](/air#status-codes).
        codeType:
          type: string
          description: >-
            Code-type category. `AIRIBU` on success; `AIRWBU` on warnings
            (already exists, expired); `AIREBU` on validation errors.
        message:
          type: string
          description: Status message from AIR.
        catchupDate:
          type:
            - string
            - 'null'
          description: >-
            DDMMYYYY format. Present on success (`AIR-I-1009`) and on the
            *already exists* / *expired* warnings (`AIR-W-1010`, `AIR-W-1011`).
            `null` on validation errors.
        errors:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/AirV11ScheduleCatchupPostResponsesContentApplicationJsonSchemaErrorsItems
          description: >-
            Field-level validation problems. Present when `statusCode` is
            `AIR-E-1005`. See [Validation codes](/air#validation-codes).
        correlationId:
          type: string
          description: >-
            Unique request identifier. Include in support tickets so we can
            trace the request.
      title: AIR_Planned Catch-up_Planned Catch-up Date_Response_200
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    minorId:
      type: apiKey
      in: header
      name: x-minor-id

```

## SDK Code Examples

```python Success
import requests

url = "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

payload = {
    "individual": {
        "personalDetails": {
            "dateOfBirth": "24022011",
            "firstName": "Bertram",
            "lastName": "HARDIE"
        },
        "medicareCard": {
            "medicareCardNumber": "4951633381",
            "medicareIRN": "5"
        },
        "ihiNumber": "8003608166978031"
    },
    "informationProvider": { "providerNumber": "T39126X" }
}
headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Success
const url = 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup';
const options = {
  method: 'POST',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"individual":{"personalDetails":{"dateOfBirth":"24022011","firstName":"Bertram","lastName":"HARDIE"},"medicareCard":{"medicareCardNumber":"4951633381","medicareIRN":"5"},"ihiNumber":"8003608166978031"},"informationProvider":{"providerNumber":"T39126X"}}'
};

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

```go Success
package main

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

func main() {

	url := "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

	payload := strings.NewReader("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")

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

	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 Success
require 'uri'
require 'net/http'

url = URI("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")

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

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}"

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

```java Success
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup', [
  'body' => '{
  "individual": {
    "personalDetails": {
      "dateOfBirth": "24022011",
      "firstName": "Bertram",
      "lastName": "HARDIE"
    },
    "medicareCard": {
      "medicareCardNumber": "4951633381",
      "medicareIRN": "5"
    },
    "ihiNumber": "8003608166978031"
  },
  "informationProvider": {
    "providerNumber": "T39126X"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

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

```csharp Success
using RestSharp;

var client = new RestClient("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup");
var request = new RestRequest(Method.POST);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Success
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "individual": [
    "personalDetails": [
      "dateOfBirth": "24022011",
      "firstName": "Bertram",
      "lastName": "HARDIE"
    ],
    "medicareCard": [
      "medicareCardNumber": "4951633381",
      "medicareIRN": "5"
    ],
    "ihiNumber": "8003608166978031"
  ],
  "informationProvider": ["providerNumber": "T39126X"]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")! 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()
```

```python Already Exists
import requests

url = "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

payload = {
    "individual": {
        "personalDetails": {
            "dateOfBirth": "24022011",
            "firstName": "Bertram",
            "lastName": "HARDIE"
        },
        "medicareCard": {
            "medicareCardNumber": "4951633381",
            "medicareIRN": "5"
        },
        "address": {
            "locality": "Susan River",
            "postCode": "4655"
        },
        "ihiNumber": "8003608166978031"
    },
    "informationProvider": { "providerNumber": "T39126X" }
}
headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Already Exists
const url = 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup';
const options = {
  method: 'POST',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"individual":{"personalDetails":{"dateOfBirth":"24022011","firstName":"Bertram","lastName":"HARDIE"},"medicareCard":{"medicareCardNumber":"4951633381","medicareIRN":"5"},"address":{"locality":"Susan River","postCode":"4655"},"ihiNumber":"8003608166978031"},"informationProvider":{"providerNumber":"T39126X"}}'
};

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

```go Already Exists
package main

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

func main() {

	url := "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

	payload := strings.NewReader("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"address\": {\n      \"locality\": \"Susan River\",\n      \"postCode\": \"4655\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")

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

	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 Already Exists
require 'uri'
require 'net/http'

url = URI("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")

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

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"address\": {\n      \"locality\": \"Susan River\",\n      \"postCode\": \"4655\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}"

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

```java Already Exists
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"address\": {\n      \"locality\": \"Susan River\",\n      \"postCode\": \"4655\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")
  .asString();
```

```php Already Exists
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup', [
  'body' => '{
  "individual": {
    "personalDetails": {
      "dateOfBirth": "24022011",
      "firstName": "Bertram",
      "lastName": "HARDIE"
    },
    "medicareCard": {
      "medicareCardNumber": "4951633381",
      "medicareIRN": "5"
    },
    "address": {
      "locality": "Susan River",
      "postCode": "4655"
    },
    "ihiNumber": "8003608166978031"
  },
  "informationProvider": {
    "providerNumber": "T39126X"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

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

```csharp Already Exists
using RestSharp;

var client = new RestClient("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup");
var request = new RestRequest(Method.POST);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24022011\",\n      \"firstName\": \"Bertram\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"5\"\n    },\n    \"address\": {\n      \"locality\": \"Susan River\",\n      \"postCode\": \"4655\"\n    },\n    \"ihiNumber\": \"8003608166978031\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Already Exists
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "individual": [
    "personalDetails": [
      "dateOfBirth": "24022011",
      "firstName": "Bertram",
      "lastName": "HARDIE"
    ],
    "medicareCard": [
      "medicareCardNumber": "4951633381",
      "medicareIRN": "5"
    ],
    "address": [
      "locality": "Susan River",
      "postCode": "4655"
    ],
    "ihiNumber": "8003608166978031"
  ],
  "informationProvider": ["providerNumber": "T39126X"]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")! 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()
```

```python Expired
import requests

url = "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

payload = {
    "individual": {
        "personalDetails": {
            "dateOfBirth": "24112010",
            "firstName": "Vicki",
            "lastName": "HARDIE"
        },
        "medicareCard": {
            "medicareCardNumber": "4951633381",
            "medicareIRN": "4"
        },
        "ihiNumber": "8003608500312426"
    },
    "informationProvider": { "providerNumber": "T39126X" }
}
headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Expired
const url = 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup';
const options = {
  method: 'POST',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"individual":{"personalDetails":{"dateOfBirth":"24112010","firstName":"Vicki","lastName":"HARDIE"},"medicareCard":{"medicareCardNumber":"4951633381","medicareIRN":"4"},"ihiNumber":"8003608500312426"},"informationProvider":{"providerNumber":"T39126X"}}'
};

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

```go Expired
package main

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

func main() {

	url := "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

	payload := strings.NewReader("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24112010\",\n      \"firstName\": \"Vicki\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"4\"\n    },\n    \"ihiNumber\": \"8003608500312426\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")

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

	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 Expired
require 'uri'
require 'net/http'

url = URI("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")

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

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24112010\",\n      \"firstName\": \"Vicki\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"4\"\n    },\n    \"ihiNumber\": \"8003608500312426\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}"

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

```java Expired
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24112010\",\n      \"firstName\": \"Vicki\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"4\"\n    },\n    \"ihiNumber\": \"8003608500312426\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup', [
  'body' => '{
  "individual": {
    "personalDetails": {
      "dateOfBirth": "24112010",
      "firstName": "Vicki",
      "lastName": "HARDIE"
    },
    "medicareCard": {
      "medicareCardNumber": "4951633381",
      "medicareIRN": "4"
    },
    "ihiNumber": "8003608500312426"
  },
  "informationProvider": {
    "providerNumber": "T39126X"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

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

```csharp Expired
using RestSharp;

var client = new RestClient("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup");
var request = new RestRequest(Method.POST);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"24112010\",\n      \"firstName\": \"Vicki\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"4\"\n    },\n    \"ihiNumber\": \"8003608500312426\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Expired
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "individual": [
    "personalDetails": [
      "dateOfBirth": "24112010",
      "firstName": "Vicki",
      "lastName": "HARDIE"
    ],
    "medicareCard": [
      "medicareCardNumber": "4951633381",
      "medicareIRN": "4"
    ],
    "ihiNumber": "8003608500312426"
  ],
  "informationProvider": ["providerNumber": "T39126X"]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")! 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()
```

```python Over 20
import requests

url = "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

payload = {
    "individual": {
        "personalDetails": {
            "dateOfBirth": "19081959",
            "firstName": "Melody",
            "lastName": "HARDIE"
        },
        "medicareCard": {
            "medicareCardNumber": "4951633381",
            "medicareIRN": "1"
        },
        "ihiNumber": "8003608500312418"
    },
    "informationProvider": { "providerNumber": "T39126X" }
}
headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Over 20
const url = 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup';
const options = {
  method: 'POST',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"individual":{"personalDetails":{"dateOfBirth":"19081959","firstName":"Melody","lastName":"HARDIE"},"medicareCard":{"medicareCardNumber":"4951633381","medicareIRN":"1"},"ihiNumber":"8003608500312418"},"informationProvider":{"providerNumber":"T39126X"}}'
};

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

```go Over 20
package main

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

func main() {

	url := "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup"

	payload := strings.NewReader("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"19081959\",\n      \"firstName\": \"Melody\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"1\"\n    },\n    \"ihiNumber\": \"8003608500312418\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")

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

	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 Over 20
require 'uri'
require 'net/http'

url = URI("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")

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

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"19081959\",\n      \"firstName\": \"Melody\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"1\"\n    },\n    \"ihiNumber\": \"8003608500312418\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}"

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

```java Over 20
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"19081959\",\n      \"firstName\": \"Melody\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"1\"\n    },\n    \"ihiNumber\": \"8003608500312418\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}")
  .asString();
```

```php Over 20
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.rebateright.com.au/AIR/v1.1/schedule/catchup', [
  'body' => '{
  "individual": {
    "personalDetails": {
      "dateOfBirth": "19081959",
      "firstName": "Melody",
      "lastName": "HARDIE"
    },
    "medicareCard": {
      "medicareCardNumber": "4951633381",
      "medicareIRN": "1"
    },
    "ihiNumber": "8003608500312418"
  },
  "informationProvider": {
    "providerNumber": "T39126X"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

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

```csharp Over 20
using RestSharp;

var client = new RestClient("https://api.rebateright.com.au/AIR/v1.1/schedule/catchup");
var request = new RestRequest(Method.POST);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"individual\": {\n    \"personalDetails\": {\n      \"dateOfBirth\": \"19081959\",\n      \"firstName\": \"Melody\",\n      \"lastName\": \"HARDIE\"\n    },\n    \"medicareCard\": {\n      \"medicareCardNumber\": \"4951633381\",\n      \"medicareIRN\": \"1\"\n    },\n    \"ihiNumber\": \"8003608500312418\"\n  },\n  \"informationProvider\": {\n    \"providerNumber\": \"T39126X\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Over 20
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "individual": [
    "personalDetails": [
      "dateOfBirth": "19081959",
      "firstName": "Melody",
      "lastName": "HARDIE"
    ],
    "medicareCard": [
      "medicareCardNumber": "4951633381",
      "medicareIRN": "1"
    ],
    "ihiNumber": "8003608500312418"
  ],
  "informationProvider": ["providerNumber": "T39126X"]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.rebateright.com.au/AIR/v1.1/schedule/catchup")! 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()
```