AIR integration
What is the AIR?
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 with no Medicare card number, such as newborns, newly arrived immigrants and student visa holders.
RebateRight and AIR
RebateRight is certified by Services Australia and sends your AIR requests for you.
Before your first AIR request
Setting up for the AIR sets out what each vaccination location needs before its first AIR request.
AIR checks the Minor ID in x-minor-id against the information provider number on every request.
Response envelope
When AIR answers, its JSON response carries these fields beside the endpoint’s own data:
Pre-flight errors
When the request body has a structural fault, such as invalid JSON, a missing top-level required field or a field of the wrong type, the response uses a separate envelope. It carries codeType: DHSEIN in place of statusCode and errors[]:
Common messages:
Pre-flight errors come from Services Australia’s gateway, which checks the request’s structure before AIR applies its business rules. AIR’s own validation errors use the standard envelope with statusCode: AIR-E-1005 instead.
Responses from RebateRight
RebateRight answers some requests itself, in plain text:
Errors and retries gives the cause and the fix for each.
When Services Australia returns a body that is not JSON, such as a 404 for an unknown path, RebateRight keeps Services Australia’s HTTP status and returns a JSON body. That body sets invalidResponseFromServicesAustralia to true, holds the raw text in body and carries the correlationId.
Status codes
AIR uses a three-tier prefix:
The response envelope carries codes in 2 places:
statusCode. The top-level outcome for the request.errors[].code. Field-level validation problems, present only whenstatusCodeisAIR-E-1005.
AIR returns its outcomes, including validation errors, as HTTP 200 with a statusCode. Gateway errors and RebateRight’s own responses carry no statusCode. Read the HTTP status first, then read statusCode on an HTTP 200 response.
Top-level statusCode values
AIR returns one of these codes in statusCode for the overall outcome of each request.
Validation codes
AIR returns these codes in errors[] when statusCode is AIR-E-1005. Each entry has code, field and message, and message carries Services Australia’s full text. The table below summarises each code so you can match it during integration.
Encounter, episode and assessment codes
Record Encounter returns an encounter’s outcome in claimDetails.encounters[].information.code and each episode’s outcome in claimDetails.encounters[].episodes[].information.code. Update Encounter and Immunisation History Details return episode codes in the same information object.
AIR also checks each episode against the individual’s existing history. When the check finds an issue, the episode’s information.code carries one of these assessment reason codes:
Reference data
The Reference Data endpoints return the vaccines, antigens and codes the other AIR endpoints accept.
- Codes. Take vaccine and antigen codes, and their descriptions, from these endpoints rather than hard-coding them.
- Caching. AIR caches each response for one hour, so a change takes up to an hour to appear.
- Storage. Store the reference data in your software, refresh it daily or weekly, and keep a way to force a refresh.
Display requirements
Services Australia sets what software using AIR shows its users, including each AIR message exactly as AIR returns it (Messages). AIR display requirements gives the rules for each endpoint.