§ THE COUNTERSURE API
Verify a supplier in one HTTP call.
REST. JSON. Stamped audit IDs. Designed for ERPs, KYB stacks, marketplaces, and bookkeeping engines.
§ AUTH
Authorization: Bearer cs_live_a1b2c3d4... Content-Type: application/json
Test keys (cs_test_*) hit a sandbox returning deterministic responses.
§ SINGLE CHECK
REQUEST
POST /v1/vat/check
{
"vat_number": "GB123456789",
"requester_vat": "GB987654321"
}RESPONSE
{
"verification_id": "CS-20260416-7K3M9X1Q",
"status": "verified",
"vat_number": "GB123456789",
"name": "Acme Trading Ltd",
"address": "1 High St, London",
"checked_at": "2026-04-16T14:21:09Z",
"source": "HMRC",
"pdf_url": "https://countersure.com/p/CS-..."
}§ BULK SUBMIT
POST /v1/vat/bulk
{ "vat_numbers": ["GB123456789", "GB987654321", ...] }
→ returns { "job_id": "...", "status_url": "..." }
poll until "complete", then download CSV + zip of PDFs§ WEBHOOKS
Subscribe to status drift on any verified VAT number. Countersure re-checks on a schedule and fires:
POST <your_endpoint>
{
"event": "vat.status_changed",
"vat_number": "GB123456789",
"previous_status": "verified",
"current_status": "deregistered",
"verification_id": "CS-20260420-A4K1MX9P",
"checked_at": "2026-04-20T03:00:00Z"
}§ RATE LIMITS & SLAs
- Pro1,000 checks / month · 5 req/sec · email support
- Team5,000 checks / month · 20 req/sec · Slack support
- API50,000 checks / month · 100 req/sec · 99.9% uptime SLA