For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
    • Home
  • API Reference
  • Guides
    • Minor ID Setup
    • Architecture
    • Security & Governance
    • PRODA
    • DVA Integration
    • AIR Integration
    • Integration test data
    • Troubleshooting
LogoLogo
On this page
  • What is the AIR?
  • RebateRight & AIR
  • Response envelope
  • Pre-flight errors
  • Status codes
  • Top-level statusCode values
  • Validation codes
  • Encounter-specific codes
Guides

AIR Integration

Australian Immunisation Register — shared response patterns and message codes

||View as Markdown|
Was this page helpful?
Previous

DVA Integration

Next

Integration test data

Built with

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 who are non-eligible for Medicare — such as newborns, newly arrived immigrants, and student visa holders.

RebateRight & AIR

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.

Response envelope

Every AIR endpoint returns the same JSON envelope, with endpoint-specific data alongside:

FieldDescription
statusCodeAIR message code for the overall outcome. See Status codes.
codeTypeCode-type category. AIRIBU on success; AIREBU on validation errors.
messageStatus message from AIR.
errorsField-level validation problems. Present only when statusCode is AIR-E-1005. See Validation codes.
correlationIdUnique request identifier in the format urn:uuid:{MinorId}{16 hex chars}. Include in support tickets so we can trace the request.

Pre-flight errors

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:

FieldDescription
codeNumeric pre-flight error code (e.g. 5).
codeTypeAlways DHSEIN for pre-flight errors.
messagePlain-language description of what’s wrong with the request.
correlationIdUnique request identifier in the same format as the AIR envelope.

Common messages:

MessageCause
Invalid object: the property '<field>' is missing.A top-level required field is absent.
Invalid value type '<type>'.A field was sent with the wrong JSON type.
Invalid null syntaxThe request body was not valid JSON.

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.

Status codes

AIR uses a three-tier prefix:

PrefixMeaning
AIR-I-*Informational — request succeeded
AIR-W-*Warning — request succeeded with caveats
AIR-E-*Error — request failed validation or processing

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.

Top-level statusCode values

Returned at the top of every AIR response, signalling the overall outcome.

CodeMeaning
AIR-I-1007All encounter(s) were successfully recorded.
AIR-I-1009Catch-up date was successfully recorded.
AIR-I-1100Request was successfully processed.
AIR-W-0033Vaccine and/or dose number administered not supplied.
AIR-W-0044Vaccine not valid for encounter date.
AIR-W-1004Individual was not found. Correct the details or confirm and accept them as-is.
AIR-W-1008Some encounter(s) were not successfully recorded. Correct the details or submit confirmation accepting episode status.
AIR-W-1059Immunisation details cannot be viewed at this time. Recording new encounters is still allowed.
AIR-W-1062Some fields in this record may not be available for updating. Recording new encounters is still allowed.
AIR-E-1005Request contained validation errors. See errors[].
AIR-E-1006Unexpected error. Retry shortly; persistent failures should be reported to support.
AIR-E-1046Some encounter(s) were not recorded. Correct the details and resubmit, or remove the invalid encounters.
AIR-E-1058Individual’s record cannot be viewed or updated at this time.
AIR-E-1078Immunisation history statement cannot be generated or viewed at this time.

Validation codes

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.

CodeMeaning
AIR-E-1013Maximum number of encounters exceeded.
AIR-E-1014Episode sequencing error. Sequence numbers must begin with 1 and increment by one.
AIR-E-1015Date of Service must be after the individual’s Date of Birth.
AIR-E-1016Invalid format for the supplied field value.
AIR-E-1017Invalid value — doesn’t match permitted values, or failed a check-digit check.
AIR-E-1018Date field is in the future.
AIR-E-1019Date field is more than 130 years in the past.
AIR-E-1020Medicare card number must be supplied when IRN is set.
AIR-E-1021Immunising Provider Number must be supplied.
AIR-E-1022Date of Service is invalid.
AIR-E-1023Vaccine code is invalid.
AIR-E-1024Vaccine dose is invalid.
AIR-E-1025Encounter has more than one episode with an equivalent vaccine.
AIR-E-1026Individual information provided is insufficient.
AIR-E-1027School ID is invalid.
AIR-E-1028Immunisation Provider number must exist on AIR and be current at submission.
AIR-E-1029Information Provider number must exist on AIR and be current at submission.
AIR-E-1030Confirmation flag is set but the individual has already been matched.
AIR-E-1031Confirmation flag is set but Medicare Card or IHI details have been provided.
AIR-E-1033Claim ID must be set on confirmation requests.
AIR-E-1034Claim sequence must be set when Claim ID is set.
AIR-E-1035Individual not found.
AIR-E-1036Postcode and Locality combination must be valid.
AIR-E-1037Address line two can only be set when address line one is provided.
AIR-E-1038Customer ID must be a valid format.
AIR-E-1039Minor ID is not authorised to perform this action for the supplied Information Provider.
AIR-E-1040Claim ID must not be set unless this is a confirmation request.
AIR-E-1041Encounter sequencing error. Sequence numbers must begin with 1 and increment by one.
AIR-E-1042New-individual confirmation requires first name (or onlyNameIndicator), last name, date of birth, gender, address line one, locality, and postcode.
AIR-E-1043Postcode is not valid.
AIR-E-1044Individual’s AIR registration is not current at the date of service, or cannot be viewed or updated.
AIR-E-1047Catch-up date cannot be generated for individuals over 20 years.
AIR-E-1048Medical contraindication reason is invalid for this vaccine.
AIR-E-1049A natural immunity for this disease has been previously recorded.
AIR-E-1050End date is before start date.
AIR-E-1051End date is required for temporary type, or is earlier than the start date.
AIR-E-1052Encounter cannot be found.
AIR-E-1055Submission date is invalid.
AIR-E-1056Date of Service is greater than the receipt date.
AIR-E-1061Individual Identifier is invalid or has expired.
AIR-E-1063Information provider is not authorised to use this service.
AIR-E-1064Details are invalid, or not authorised to update this encounter.
AIR-E-1065Acknowledgement field must be selected to change the Additional Vaccines Required indicator.
AIR-E-1066Supplied field value is in the past or incorrect.
AIR-E-1067Action cannot be performed against the individual’s record.
AIR-E-1068Antigen code is invalid.
AIR-E-1069One of two required fields must be supplied.
AIR-E-1070Immunisation provider details should not be supplied for encounters administered overseas.
AIR-E-1079Country/Region code is required when administeredOverseas is true.
AIR-E-1080Country/Region code should not be supplied unless administered overseas.
AIR-E-1081Batch number is mandatory for the supplied vaccine.
AIR-E-1082Field should not be supplied when the conflicting field is true.
AIR-E-1083A medical contraindication for this disease has been previously recorded.
AIR-E-1084Invalid code for Vaccine Type.
AIR-E-1085Invalid code for Route of Administration.
AIR-E-1086Vaccine Funding Type and Vaccine Code are not compatible.
AIR-E-1087Route of Administration and Vaccine Code are not compatible.
AIR-E-1088Field is mandatory for the supplied vaccine.
AIR-E-1089Antenatal indicator is mandatory for this encounter.
AIR-E-1090Vaccine brand is required if you performed this immunisation encounter.
AIR-E-1091This generic vaccine is only accepted when the encounter was performed overseas.
AIR-W-1010Catch-up date already exists for the individual.
AIR-W-1011Catch-up date period has expired.
AIR-W-1012An error occurred during assessment of the individual.
AIR-I-1009Catch-up date was successfully recorded.

Encounter-specific codes

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.