AIR Integration
Australian Immunisation Register — shared response patterns and message codes
Australian Immunisation Register — shared response patterns and message codes
The Australian Immunisation Register (AIR) is a national register that records all vaccinations given to individuals of all ages living in Australia. This includes people who are non-eligible for Medicare — such as newborns, newly arrived immigrants, and student visa holders.
RebateRight integrates with the AIR to support secure, compliant, and streamlined healthcare transactions.
If you use AIR through RebateRight, you will need to notify Services Australia of your assigned Minor ID. See the Minor ID page for setup steps.
Every AIR endpoint returns the same JSON envelope, with endpoint-specific data alongside:
When the request body is malformed at the structural level — a required top-level field missing, the wrong type for a field, invalid JSON — the response uses a different envelope from the standard AIR shape. There’s no statusCode, no errors[]; the failure is signalled by codeType: DHSEIN:
Common messages:
Pre-flight errors come from RebateRight’s request validation before the call reaches AIR. AIR’s own validation errors return the standard envelope with statusCode: AIR-E-1005 instead.
AIR uses a three-tier prefix:
Codes appear in two places:
statusCode — top-level outcome for the request.errors[].code — field-level validation problems, only when statusCode is AIR-E-1005.Validation errors return HTTP 200 with statusCode: AIR-E-*, not HTTP 4xx. Read statusCode, not the HTTP status, to detect failures.
Display message and errors[].message verbatim — Services Australia requires unchanged wording.
statusCode valuesReturned at the top of every AIR response, signalling the overall outcome.
Returned in errors[] when statusCode is AIR-E-1005. Each entry has code, field, and message. The message field carries Services Australia’s full text — display it verbatim. The table below summarises the meaning of each code so you can match it during integration.
Record Encounter and related endpoints return additional codes in claimDetails.encounters[].information.code (encounter outcome) and in episode-level information.code (assessment reasons). These are documented on the relevant endpoint pages.