New France e-invoicing mandate goes live September 2026 — our implementation is ready. See all mandates →
Compliance Radar

Compliance Radar

Compliance Radar tracks your registration-threshold exposure across 40+ jurisdictions and flags a country before you're required to register there. It always runs — the same tax-calculation and invoice data you send through E-Invoicing and Tax Calculations feeds it automatically, with no separate data upload. The always-free tier covers every country you sell into.

ℹ
Compliance Radar has no dedicated endpoint of its own — its data is exposed through GET /v1/tax/registrations, the same endpoint you already use to manage tax registrations. Every registration row carries its own obligation status and threshold exposure.
Compliance Radar

List registrations & status

Every registration — active, monitoring, or not yet registered — comes back from one call. Filter or scan the response for obligationStatus to find what needs attention.

On an Enterprise account the administrator chooses whether Compliance Radar is on. When it is off, the list carries monitoring: {"{ enabled: false, message }"}, every row has obligationStatus, threshold and currentPeriodAmount null with obligationStatusLabel "Not monitored", rows Radar created for monitoring are left out, and GET /v1/tax/obligations answers 403 solution_not_enabled with solution: "compliance_radar". Never read a not-monitored row as compliant.

cURL
curl https://api.clearvo.io/v1/tax/registrations \
  -H "x-api-key: csk_live_••••••••••••"
JSON Response
{
  "ok": true,
  "registrations": [
    {
      "country": "DE",
      "registrationStatus": "MONITORING",
      "obligationStatus": "APPROACHING",
      "obligationStatusLabel": "Approaching threshold",
      "threshold": { "amount": 100000, "currency": "EUR" },
      "currentPeriodAmount": 84200,
      "estimatedExposure": 15800
    },
    {
      "country": "IE",
      "registrationStatus": "REGISTERED",
      "obligationStatus": "COMPLIANT",
      "obligationStatusLabel": "Compliant",
      "threshold": null
    }
  ]
}

currentPeriodAmount is your running total against the threshold; estimatedExposure is how far over you'd already be if the period closed today. Both update automatically as new tax calculations and invoices are recorded.

Response fields

FieldTypeDescription
countrystringISO 3166-1 alpha-2.
registrationStatusstringREGISTERED | PENDING | MONITORING | NOT_REGISTERED | DEREGISTERED (collection has ended for this registration — see collectUntilDate; the row is kept for history rather than deleted).
obligationStatusstring, nullableCOMPLIANT | APPROACHING | BREACH | MONITORING. Null when the country has no threshold-based obligation to track.
obligationStatusLabelstring, nullableReady-to-render display label for obligationStatus — null exactly when it is, except "Not monitored" when Compliance Radar is switched off for the account.
threshold.amount / threshold.currencyobject, nullableThe registration threshold this country applies, in its own currency. Null once registrationStatus is REGISTERED — a threshold no longer applies.
currentPeriodAmountnumber, nullableRunning total against the threshold for the current period.
estimatedExposurenumber, nullableHow far over the threshold you'd already be if the period closed today.
Compliance Radar

Auto-discovery & monitoring

You don't need to tell Clearvo which countries to watch. The first time a transaction touches a new jurisdiction, Compliance Radar creates a registrationStatus: "MONITORING" row automatically and starts tracking it against that jurisdiction's registration threshold — before you owe anything there. obligationStatus moves through four stages as exposure grows:

StatusMeaning
MONITORINGTracked, well under threshold. No action needed.
APPROACHINGWithin the platform's early-warning band (typically 80% of threshold) — time to plan registration.
BREACHThreshold exceeded. Register now — see Registering a jurisdiction.
COMPLIANTAn active REGISTERED registration exists for this jurisdiction — no threshold exposure to track.
✓
Subscribe to threshold-status changes instead of polling — Compliance Radar events are covered by the same webhooks system as every other product.
Compliance Radar

Registering a jurisdiction

Once a jurisdiction reaches BREACH (or you simply want to register ahead of it), turn the monitoring row into a real registration with the same endpoint:

cURL
curl https://api.clearvo.io/v1/tax/registrations \
  -X POST \
  -H "x-api-key: csk_live_••••••••••••" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "DE",
    "scheme": "STANDARD",
    "taxNumber": "DE123456789",
    "collectFromDate": null
  }'

Set collectFromDate to start Tax Calculations collecting for this jurisdiction in the same call, or omit it and configure collection later. Once a registration reaches registrationStatus: "REGISTERED", it's no longer part of Compliance Radar's threshold tracking — see Registrations in the Tax Calculations reference for the full field list.