File your first BAS¶
The Business Activity Statement is the quarterly (or monthly) GST and PAYG return Australian businesses lodge with the ATO. SAE Books prepares the BAS labels from your posted activity; this guide takes you from "the quarter just ended" to "the BAS is filed".
Prerequisites¶
- Transactions for the period are posted and tagged with tax codes
(
GST,FRE,INP, etc.) - The trial balance reconciles
- Bank reconciliation is complete (no
UNMATCHEDlines for the period)
If those aren't true, fix them first — the BAS is downstream of a clean ledger.
1. Prepare the BAS¶
The BAS summary endpoint takes explicit date ranges, not a quarter shorthand. For the January–March 2026 quarter:
curl "$SAEBOOKS_API_BASE/reports/bas_summary?from_date=2026-01-01&to_date=2026-03-31" \
-H "Authorization: Bearer $JWT"
Response:
{
"from_date": "2026-01-01",
"to_date": "2026-03-31",
"g1_total_sales": "...",
"g2_export_sales": "...",
"g3_other_gst_free_sales": "...",
"g10_capital_acquisitions": "...",
"g11_other_acquisitions": "...",
"label_1a_gst_on_sales": "...",
"label_1b_gst_on_purchases": "...",
"net_gst": "...",
"remit_or_refund": "REMIT"
}
The web UI at /reports/bas?from=2026-01-01&to=2026-03-31 shows
the same figures in tabular form alongside a "Create settlement
entry" action.
2. Review¶
The BAS calculation is incremental — every posted transaction tagged with a GST tax code has already contributed. Common checks:
- Cash vs. accruals. If your company is in cashbook mode, the BAS reads from payments, not invoices. Mismatched mode settings here are the most common cause of a "wrong" BAS.
- Outliers. Compare against last quarter's labels. A 10× swing on a single label is almost always a tagging error, not a real trading swing.
- Tax-code coverage. Query
GET /api/v1/accountswithinclude_balance=trueand cross-reference which accounts havetax_code_defaultset. Look for income accounts with no tax code — those lines contribute nothing to G1.
3. Lodgement — community / offline / business tiers¶
There is no CSV export endpoint. The web UI at /reports/bas is the
primary review and settlement surface. Once you're satisfied with the
figures:
- Click Create settlement entry in the "Lodge BAS" panel — this
POSTs to
/reports/bas/settleand creates a draft journal that zeroes GST Collected and GST Paid, with the net going to a GST Clearing account. - Review and post the draft journal at
/journal/<entry-id>. - Record the ATO payment from your bank account via the standard payments flow.
To transcribe labels manually:
- Via your tax agent — read the
label_1a_gst_on_salesandlabel_1b_gst_on_purchasesvalues from the API response and hand them to your agent for lodgement through their software. - Via the ATO Business Portal — log in at https://www.ato.gov.au/ and transcribe the labels onto the Business Portal BAS form.
3'. Lodgement — pro / enterprise tiers¶
Pro and enterprise installs can lodge directly via SBR (Standard Business Reporting). Set up an ATO keystore credential first:
# Upload your ATO keystore (PFX or ATO XML file; password required)
curl -X POST "$SAEBOOKS_API_BASE/ato_sbr/keystore" \
-H "Authorization: Bearer $JWT" \
-F "[email protected]" \
-F "password=<keystore-password>" \
-F "label=RAM credential 2026"
# Create a tax return record for the period, then lodge it
curl -X POST "$SAEBOOKS_API_BASE/tax_returns" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{
"jurisdiction": "AU",
"period_id": "<uuid-of-tax-period>",
"return_type": "BAS",
"figures": {"G1": "..."}
}'
curl -X POST "$SAEBOOKS_API_BASE/tax_returns/<return-id>/lodge" \
-H "Authorization: Bearer $JWT"
You will need a Machine Credential issued via the ATO RAM — same mechanism Xero / MYOB use, running on hardware you control. See the operator guide for credential setup.
4. Audit trail¶
Every settlement entry and every SBR lodgement (pro / enterprise) is
recorded with the actor, the period, and the resulting label values.
The settlement journal entry itself carries full provenance in the
journal change_log. If the ATO ever asks "where did this number
come from?", the trail goes from BAS label → contributing journals →
contributing source documents.
Next¶
- GST & BAS module — tax codes in detail, WET/LCT, cash vs accruals switching
- Self-host in production — the SBR Machine Credential setup is the load-bearing piece for pro / enterprise