Skip to main content

Verify Policy (Sync)

POST /api/v1/verify

Validates a policy number against format patterns, the FCA register, and country-specific databases. Costs 1 credit on success.

Request body

ParameterTypeRequiredDescription
policy_numberstringThe policy number to verify
countrystringISO code: UK, DE, FR
insurance_typestringmotor, travel, or health
providerstringInsurer name — improves confidence

Response

FieldTypeDescription
statusstringverified, inconclusive, or unverified
confidence_scorenumber0.0–1.0. Above 0.7 is a strong match.
verification_sourcesarrayChecks that ran: format, fca_register, registry
insurerobjectMatched FCA-registered insurer. Null if not found.
flagsarrayWarning flags, e.g. expired, sanctioned
credits_chargedinteger1 on success, 0 on inconclusive/error
processed_in_msintegerServer-side processing time

Examples

curl -X POST https://policynumbers.com/api/v1/verify \
-H "Authorization: Bearer pk_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"policy_number":"AXK12345678","country":"UK","insurance_type":"motor","provider":"AXA"}'

200 OK

{
"status": "verified",
"confidence_score": 0.96,
"verification_sources": ["format", "fca_register", "registry"],
"insurer": { "name": "AXA Insurance UK plc", "reference": "202312", "regulated": "YES", "authorised": true },
"flags": [],
"credits_charged": 1,
"processed_in_ms": 312
}

400 Missing field

{ "error": "missing_required_fields", "detail": "Required fields missing: insurance_type" }

402 No credits

{ "error": "insufficient_credits", "detail": "Credit balance is 0." }