Plug it in once. We keep watch.

Your software sends the ABNs. We send back the facts, and keep watching.

For plan management, invoice and accounting software, and the teams who run it. The same checks as TrueBlue Scout’s website, as data: each provider against the official records on each service date, with the source and date of every fact.

Make an API keyTeam and Enterprise plans

No AI scores. Just the facts. You decide.

What it does

Check before you pay

Send the rows of a payment run: ABN, service date, name on the invoice, GST, invoice number. Each row comes back as matches, take a look, or not enough to compare, with the reasons.

Keep the list in step

Send your supplier list when it changes. New providers are added with your supplier ID and contact; replace mode removes the ones you no longer use.

Alerts carry on

Everything on the list is checked every day. The same-day alert and the Monday email go to the space owner, as they do for a list added by hand.

Start in three steps

  1. Make a key. The owner of a Team or Enterprise space opens My providers, API keys. Name it after the software it’s for. It’s shown once: keep it in your software’s settings.
  2. Send it with every call as Authorization: Bearer tbs_… (or X-API-Key).
  3. Call POST /api/v1/check before each payment run, and PUT /api/v1/list when your supplier list changes.

POST /api/v1/check

Send rows (up to 2,000) or just abns. Every field but abn is optional. Dates can be 2026-10-01 or 1/10/2026; gst is true, false, or a code such as P1 or P2 from the NDIA bulk payment request.

curl https://truebluescout.com.au/api/v1/check \
  -H "Authorization: Bearer $TRUEBLUE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "rows": [
      { "abn": "51 824 753 556", "service_date": "2026-10-01",
        "name": "Example Care Pty Ltd", "invoice": "INV-1001", "gst": false, "amount": 193.99 }
    ]
  }'
{
  "api_version": "2026-10-26",
  "checked_on": "2026-10-26",
  "data_as_of": { "compliance_actions": "26 Oct 2026", "provider_register": "25 Oct 2026", ... },
  "summary": { "matches": 0, "look": 1, "incomplete": 0 },
  "results": [{
    "row": 1, "abn": "51824753556", "invoice": "INV-1001", "service_date": "2026-10-01",
    "result": "look", "result_label": "Doesn’t match a record: take a look",
    "findings": [
      { "kind": "matches", "topic": "abn", "text": "ABN active since ...", "source": "Australian Business Register (ABN Lookup)" },
      { "kind": "differs", "topic": "name", "text": "“Example Care Pty Ltd” isn’t a name on record for this ABN. ...", "source": "..." }
    ]
  }],
  "providers": [ { "abn": "51824753556", "abr": { ... }, "registration": null, "actions": [] } ],
  "note": "Facts from official records, with their dates. ..."
}

result is matches, look or incomplete: the same Result code as the website’s results CSV. Each finding has a kind (matches, differs or note), a topic (abn, name, gst, registration, actions, duplicate, row), plain words and a source.

GET and PUT /api/v1/list

GET returns every provider on your watched list with your team’s details. PUT adds providers ("mode": "add", the default) or makes the list match yours exactly ("replace"). A detail you leave out keeps its saved value. Fields: abn, name, your_ref, services,contact_email, contact_phone, notes.

curl -X PUT https://truebluescout.com.au/api/v1/list \
  -H "Authorization: Bearer $TRUEBLUE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "add",
        "providers": [ { "abn": "51824753556", "name": "Example Care", "your_ref": "SUP-0042",
                         "contact_email": "accounts@example.com.au" } ] }'

# { "mode": "add", "added": 1, "updated": 0, "removed": 0, "total": 214, "limit": 3000 }

Allowance and errors

  • Included with Team (20,000 providers checked a day per key) and Enterprise (200,000). Up to 3,000 providers per call and 5 keys per space. Each response has X-RateLimit-Remaining.
  • Errors are JSON: { "error": { "code": "...", "message": "..." } }. 401 no or wrong key, 400 something in the request, 413 too big, 422 over your plan’s list size, 429 today’s allowance used (resets at midnight, Melbourne time), 503 try again shortly.
  • Responses aren’t cached. ABN details are refreshed about every 10 days, compliance actions every day, the provider register every 10 days; data_as_of says which data each answer used.

Privacy and wording

  • Never send anything about a participant: no NDIS numbers, names or dates of birth. The API doesn’t need them and ignores fields it doesn’t know.
  • Rows sent to /check aren’t stored. We count how many providers each key checked each day, for the allowance.
  • Keys are stored only as a one-way fingerprint. Revoke a key in My providers at any time; it stops working at once.
  • Show results as facts with their dates. A row that doesn’t match is a reason to ask the provider, not proof of anything. There are no scores.

Building plan management software and want to talk? Tell us what you need. Prefer files? Connect with files works with any plan.