What it is

The Beeswax STP API is a REST JSON gateway for submitting Single Touch Payroll (STP Phase 2 / PAYEVNT.0004) pay events to the Australian Taxation Office. You can use it to embed STP lodgement in your own payroll software, fintech platform, HR product, or bespoke internal tooling without building a full ATO integration from scratch.

We handle the hard parts:

  • PAYEVNT.0004 XBRL generation
  • ebMS3/AS4 message signing via LS-ATO
  • ATO EVTE (sandbox) and production endpoints
  • YTD accumulation per employee per financial year
  • EOFY finalisation events
  • Audit logging and OSF compliance

You provide the pay data; we get it to the ATO.

OpenAPI spec

The full API is published as an OpenAPI 3.1 document at:

https://stp.beeswaxapp.com/openapi.yaml

Use it to generate a typed client, import into Postman/Insomnia/Bruno, or drive contract tests. The spec is the source of truth for request/response shapes — when it disagrees with the prose docs, the spec wins.

What it isn't

The API is deliberately narrow. It does not:

  • Calculate PAYG withholding, HECS/HELP, or super guarantee for you — you send us the amounts, we lodge them
  • Move money — we don't pay employees, the ATO, or super funds
  • Run payroll engines, award interpretation, or timesheet tracking
  • Handle non-payroll ATO obligations (BAS, IAS, TFN decs)

If you need the full payroll calculation stack, you'll pair Beeswax STP with your existing payroll engine (or build a lightweight one yourself).

Base URL

All API endpoints live under a single base URL:

https://stp.beeswaxapp.com/api/v1/

There is no separate sandbox URL. The environment (test vs live) is determined by the API token you use, not the URL — more on this in the Environments guide.

Authentication

API requests authenticate with a Bearer token passed in the Authorization header. Tokens are created from the web UI under Settings → API Tokens.

Full details in Authentication.

Rate limits

Live tokens are limited to 120 requests per minute. Test tokens get a more generous 600 requests per minute cap for development comfort. Exceeding the limit returns HTTP 429.

See Rate limits for headers and backoff guidance.

Pricing

The API is available on the API plan ($49/mo AUD ex-GST). There's no per-employee fee, no per-submission charge, and no annual contract. The plan includes:

  • Unlimited employers (ABNs)
  • Unlimited employees
  • Unlimited STP lodgements
  • Full production REST API
  • EVTE sandbox access
  • Webhooks for submission status callbacks
  • Priority support

See the pricing page for other plans.

Getting started

  1. Sign up for a free account — takes under a minute
  2. Upgrade to the API plan from Billing & Plan
  3. Create a test token under Settings → API Tokens
  4. Send your first request:
curl https://stp.beeswaxapp.com/api/v1/employers \
  -H "Authorization: Bearer stp_test_..."

Walk through the full flow in Getting started.

Reference

Stability and versioning

This is v1 of the API. Breaking changes will only ever ship in a v2 namespace; v1 remains supported with at least 12 months' notice before any planned deprecation. We announce changes in the changelog.

Support

Customers on the API or Practice plans get priority email support at support@beeswaxapp.com. Response times typically under 4 business hours during Australian business hours.