Attestwire status

Live availability of everything we run, checked every 5 minutes with real requests to the same URLs you use.

Last checked .

attestwire.com

Marketing site and rule reference
Operational 100%24h 100%7d
  • HomepageGET / Operational 53 ms 100%
  • Rule page BR-02GET /rules/BR-02 Operational 54 ms 100%

check.attestwire.com

French e-invoicing readiness checker
Operational 100%24h 100%7d
  • HomepageGET / Operational 54 ms 100%
  • Health endpointGET /api/health Operational 83 ms 100%
  • Signup endpoint (liveness)POST /api/subscribe Operational 12 ms 100%

api.attestwire.com

Hosted EN 16931 validation API
Operational 100%24h 100%7d
  • API documentationGET /docs Operational 17 ms 100%
  • Health endpointGET /v1/health Operational 9 ms 100%
  • Authenticated validationPOST /v1/validate Operational 1.1 s 100%

vies.attestwire.com

VIES availability monitor
Operational 100%24h 99.35%7d
  • Status boardGET / Operational 23 ms 100%
  • Data freshnessGET /api/status.json Operational 19 ms 100%
  • Alert signup (liveness)POST /api/alerts Operational 7 ms 100%

www.attestwire.com

Apex redirect (separate Worker)
Operational 100%24h 100%7d
  • Redirect to apexGET /rules/BR-02 Operational 19 ms 100%

attestwire-pulse

Internal alerting (not part of the overall verdict)
Operational 100%24h 100%7d
  • Cron lanes completingGET /health Operational 43 ms 100%

Uptime comes from our own checks: monitoring began 2026-08-09, and we do not backfill history we did not measure.

Incident history

Every status change we have recorded, newest first. Nothing here is edited or removed after the fact.

What each check does

ServiceCheckPass condition
attestwire.comHomepageGET / — must return 200 and render the site.
attestwire.comRule page BR-02GET /rules/BR-02 — one real rule page, so a broken build is visible.
check.attestwire.comHomepageGET / — must return 200 and serve the checker page.
check.attestwire.comHealth endpointGET /api/health — must return ok:true with data.source kv and a checked_at under 48 h old, proving the platform-list refresh cron is alive.
check.attestwire.comSignup endpoint (liveness)POST /api/subscribe with an empty payload — must reject with a 4xx JSON error, proving the capture path is alive without creating a subscriber.
api.attestwire.comAPI documentationGET /docs — the most-linked page we publish; must return 200 and render.
api.attestwire.comHealth endpointGET /v1/health — must return ok:true with billing_configured true.
api.attestwire.comAuthenticated validationPOST /v1/validate with a real key and a known-good invoice — must return valid:true.
vies.attestwire.comStatus boardGET / — must return 200 and render the board.
vies.attestwire.comData freshnessGET /api/status.json — generatedAt must be less than 15 minutes old.
vies.attestwire.comAlert signup (liveness)POST /api/alerts with an empty payload — must reject with a 4xx JSON error, proving the capture path is alive without creating a subscriber.
www.attestwire.comRedirect to apexGET /rules/BR-02 — must return 301 to https://attestwire.com/rules/BR-02, path preserved.
attestwire-pulseCron lanes completingGET /health — the NOW lane must have written its hourly heartbeat within 75 min and the DAILY lane must have completed within 26 h. Internal; excluded from the overall verdict.

JSON API

Current status, latency and uptime for every service and check. CORS-open, cached 60 seconds, no key and no signup.

curl https://status.attestwire.com/api/uptime.json

Served at /api/uptime.json rather than /api/status.json: this host used to serve the VIES monitor, and /api/status.json here still permanently redirects to vies.attestwire.com/api/status.json so third-party dashboards that were polling it keep getting the VIES data they asked for.

How this is measured

A Cloudflare Worker runs every 5 minutes and makes real requests to the surfaces listed above — the same URLs a customer uses, not internal health pings. Each check states its own pass condition: a 200 is not enough if the body is wrong. The rule page check fails if the page stops containing its own rule ID; the VIES check fails if the monitor's JSON is more than 15 minutes stale, even though the endpoint is answering; the API check posts a known-good invoice and fails if the verdict comes back anything other than valid: true; the www check follows nothing and fails if the 301 drops the path it was given.

Two checks post to signup endpoints — the checker's and the VIES monitor's. They send a deliberately empty payload and pass only if it is rejected with a 4xx JSON error, so they prove the capture path is alive without ever creating a subscriber. They assert the status class rather than an exact code, because the code those handlers reject with is theirs to change and any 4xx proves the same thing.

Operational means the check passed inside its latency threshold. Degraded means it passed but was slow, or we were rate limited. Down means it failed: a timeout, a 5xx, an unexpected status, or a response that did not contain what the check requires.

Uptime is (operational + degraded) ÷ (operational + degraded + down). Checks we could not run — a missing probe credential, a throttled check that was not due — are excluded from the denominator rather than counted as either success or failure. We have been collecting since 2026-08-09; we do not backfill, so windows longer than that read “–” instead of showing a number we did not measure.

The authenticated API check runs every 480 minutes rather than every cycle, because each run consumes one document from a free-tier key we minted for this purpose (status-probe@attestwire.com, 100 documents a month). If that key runs out, the check reports QUOTA_EXCEEDED as degraded, not down — it is our measurement budget expiring, not the API failing.

What this page cannot tell you

Every measurement is taken from Cloudflare's network. That is the same network that serves these services, so this page is blind to the class of problem where our origin is fine and the route from your network is not. It is also a sample every 5 minutes: an outage shorter than that can pass unrecorded. And a page that says everything is operational is a claim about 13 specific checks, listed above with their URLs — not a promise about every code path we ship.

Monitoring someone else

We also run vies.attestwire.com, a live monitor of VIES — the European Commission's VAT number validation service — across all 27 member states. Same measurement discipline, applied to a service we do not control. It used to live on this hostname; every one of its old URLs still redirects there.

Building EU invoicing?

Attestwire is an EN 16931 validation API — post an invoice as JSON, get back the rule it breaks and the fix. Free tier, 100 documents a month, no card.

api.attestwire.com/docs  ·  Rule reference  ·  About Attestwire