Indonesian Government Tax Invoicing

A monthly VAT invoicing and filing service for Indonesian businesses, built for the tax office through a third-party provider. I was principal designer from concept, and we built the design system in code alongside the product.

In their words

Indonesian Government Tax Invoicing

Principal product designer, Neo Innovation · Indonesian Government · 2015

The problem

Every VAT-registered business in Indonesia has to gather its sales and purchase invoices each month, work out the VAT it owes and file a report with the tax office. Getting it wrong or filing late means a fine, and in serious cases jail.

The tax office wanted one online service that businesses would be required to use for all of this. It was commissioned through a third-party provider, and Neo Innovation was brought in to design and build it with them.

The process it was replacing ran across two desktop tools. Invoices were made in one and the monthly report in the other, and the second could not read the QR code the first printed on every invoice. So input VAT was keyed in again by hand, and the finished report went to the tax office on paper, with a CSV file on a USB stick or CD.

Three constraints shaped everything else. It had to load fast and work on poor connections in regional Indonesia. It had to be fully accessible. And it had to work in Bahasa Indonesia.

A whiteboard system map linking the invoice, report and account screens to the tax office

What I did

I was principal designer and the main point of contact between the provider and the Neo team. That team was three engineers and me, working alongside the provider's own developers.

  • Ran problem interviews with tax practitioners, including the indirect tax team at a Big Four firm, to find where the current process broke: invoice numbers issued by the tax office running out, invoices that had to be backdated, and the double entry between the two tools.
  • Set out the research plan and the design principles we tested against: speed over interface detail, ask only for what is necessary, use confirmation and validation to build confidence, and show only what the task in hand needs.
  • Mapped the system and the journeys from first sign-in through to the monthly report, then story-mapped the build into waves.
  • Tested paper prototypes of the core screens before anything was built.
  • Set the team up on style-guide-driven development. The living design system was built in code alongside the product, so every screen was assembled from the same components.
  • Held the front end to progressive enhancement. Every page worked as plain, fast HTML first, with JavaScript added only where it helped. Even the month selector had a version that needed no JavaScript.
A flow on the whiteboard showing how a taxpayer signs in, creates an invoice and handles an error, with paper screens taped along it
A whiteboard flow tracing an invoice from the entry screens through validation to storage

What happened

The programme was stopped before it went further, as I understand it because the funding ended, and the code base was handed over to the provider.

What we handed over was the foundation: research that showed where the real friction was, a design system already running in code, and a front end built to work on a slow connection and in the local language. I don't know what the provider built on it after that, so I won't claim more.

The dashboard concept: a due-date banner for the monthly report, VAT totals for the month, and lists of draft, sales and purchase invoices
By request

Want the full case study?

There's a longer version of this one, with the research, the decisions and the screens behind it. I share it with people I'm actively talking to. Tell me a little about why you'd like to see it and I'll come back to you about access.

Request access →
Tell me what you’re building. I’ll tell you if I can help.
Email me →