SYNTHETIC DATA ONLY — OpenTax-SA is not SARS and cannot file real returns. The credentials below are public demo values for a fake taxpayer. Do not enter real personal information anywhere on this page.

Guided demo · real services · synthetic tenant

Walk a complete tax submission — safely.

Every button below issues real HTTP calls to the live stack (api.opentax.co.za + auth.opentax.co.za) through the standard OAuth 2.1 authorization-code flow with PKCE. Raw status codes and tracking IDs appear in the transcript so you can trust what you are seeing.

demo username demo.taxpayer
demo password opentax-demo-2026
client otx_demo_spa (public · PKCE)
identity DEMO TAXPAYER — not a real person
Not signed in.
  1. 01

    Sign in with PKCE

    pending

    Generates a code verifier/challenge pair, exchanges the printed demo credentials for a one-time authorization code at /demo/login, then performs the standard token exchange at /oauth/token — no client secret, as befits a public client.

  2. 03

    Create and edit a draft IT12

    pending

    Creates a draft return for tax year 2026, then replaces its return_data with a PATCH. Drafts sit in status received until they are finalised.

  3. 04

    Submit a final — and fail validation

    pending

    Submits a final return that is deliberately missing the 10-digit tax reference. Validation gates it: the status walks to validation_failed with rule IT12-001 — a 200 response carrying a failed verdict, exactly as a real gate should behave.

  4. 05

    Fix, reopen, resubmit

    pending

    Calls POST …/reopen — the only legal exit from validation_failed — then adds the tax reference with a PATCH (edits are only allowed while the status is received) and submits again. This time the return walks the whole pipeline to accepted.

  5. 06

    Read the illustrative assessment

    pending

    Fetches GET …/response. The system issues an assessment number and a disclaimer — and refuses to invent a rand amount of tax payable. That refusal is the point.

  6. 07

    Upload a supporting document

    pending

    Attaches a small text note to the draft (documents attach while a submission is in received) and lists what the service now holds. If the deployment has no document storage configured, you will see a clear 503 instead of a silent pretend-success.

  7. 08

    Open a DSAR — and fail to self-close it

    pending

    Files a POPIA access request, moves it to in_progress (a subject may do that), then attempts the staff-only completion. The service refuses with 403: the person who filed a request can never close it.