Skip to content
Mehedi Hasan Sarkar
All case studies

AVETMISS reporting for Australian training providers

Training providers · AustraliaIndependent Contractor, 2026 to present

Problem

Australian training providers report their activity in the AVETMISS format. This format uses fixed-width NAT files, where each field has an exact position and length. Some rules apply across several files. A mistake in one file can break a relationship in another file. Checking this by hand is slow and unreliable.

Students are identified through the Unique Student Identifier (USI) system. It uses a SOAP integration, an older XML-based web service standard, with its own tokens and identifiers.

Certificates are the most important thing a provider issues. They need controlled templates. Third parties also need a way to verify them.

Solution

I built AVETMISS ZIP generation and import, with report metadata, file hashes and Nil Return support. I also built a validator that works from a rulebook. It parses (reads) the NAT files. It checks format rules, duplicates, relationships between files, code lists and addresses.

Some rules depend on live government data. The validator marks those rules as not checked, instead of pretending they passed. So it works as an honest check before submission.

I kept the USI protocol out of the main application. A separate service handles the SOAP communication, relationship tokens and identifier generation. The main API handles the product workflow.

Certificates are filled from DOCX templates and converted to PDF. They are stored in Cloudflare R2 and verified through a QR code.

The trade-offs. A separate USI service is one more thing to deploy and keep running. In return, the SOAP protocol and its tokens stay out of the product code. Later, the service was rewritten on a different stack, and the product did not need any change. The validator also does not pretend to cover every official rule. Rules that need live government data are shown as not checked. Rules that are not built yet are also shown as not checked. Each case has its own label. Before submission, an honest gap is more useful than a false pass.

Impact

  • Files are checked before they go to the official validation system.
  • Rules that need live government data are shown as not checked. So the tool never claims a pass it cannot prove.
  • USI protocol code stays out of the product code.
  • Anyone holding a certificate can have it verified with a QR code.

Related case studies

Have a similar problem?

Tell me what is breaking or what you need built. I will reply with how I would approach it.

Let's talk