Regions & Validation API

The Regions API exposes country-level metadata used for validating addresses and phone numbers.
It powers strict checks in onboarding and beneficiary creation flows.

Use these endpoints to validate address and phone data before calling onboarding or beneficiary creation, so only region-valid data is sent to the API.

Authentication

This endpoint requires HMAC authentication (Business API Key). Include your API key and signature in the request headers:

http
x-api-key: <your-api-key>x-timestamp: <RFC3339-timestamp>x-signature: <HMAC-signature>

Note: For HMAC authentication details, see the Authentication guide.

Endpoints

Get subdivisions for a country

GET /api/v1/client/regions/{country_code}/subdivisions

Returns:

  • country_code, country_name
  • subdivisions (list of {code, name})

Example:

http
GET /api/v1/client/regions/US/subdivisions HTTP/1.1Host: api.sznd.appx-api-key: <your-api-key>x-timestamp: 2025-01-15T10:30:00Zx-signature: <hmac-hex>

Get subdivisions with code formats

GET /api/v1/client/regions/{country_code}/subdivisions-with-code-formats

Returns:

  • country_code, country_name
  • phone_code, phone_format, phone_length_after_code
  • phone_length_after_code_min, phone_length_after_code_max (range after the country calling code; both equal phone_length_after_code for fixed-length countries)
  • postal_code_format
  • subdivisions (list of {code, name})

Get postal code format

GET /api/v1/client/regions/{country_code}/postal-code-format

Returns:

json
{  "country_code": "US",  "postal_code_format": "^([0-9]{5})(?:[ \\-]([0-9]{4}))?$"}

Validation helpers

Validate address and phone data before calling onboarding or beneficiary APIs.

Validate postal code

POST /api/v1/client/regions/validate/postal-code

Request:

json
{  "country_code": "US",  "postal_code": "10001"}

Response:

json
{  "country_code": "US",  "postal_code": "10001",  "valid": true}

Validate region/state code or name

POST /api/v1/client/regions/validate/region

Accepts subdivision code (e.g. CA, NY) or name (e.g. California, New York). Matching is case-insensitive.

  • Onboarding (register, full customer registration): code or name is accepted; code is advised.
  • Beneficiary creation: only subdivision code is accepted by the API—names are rejected. Use this endpoint with the code (e.g. LA) when building beneficiary address payloads.

Request:

json
{  "country_code": "US",  "region_code": "CA"}

Or with subdivision name: "region_code": "New York".

Response:

json
{  "country_code": "US",  "region_code": "CA",  "valid": true}

Validate phone number

POST /api/v1/client/regions/validate/phone

Uses the country’s phone metadata (phone_code, phone_length_after_code_min, phone_length_after_code_max) to validate E.164-style numbers. Length after the country code must fall in that range (exact when min equals max).

Request:

json
{  "country_code": "US",  "phone_number": "+14165550123"}

Response:

json
{  "country_code": "US",  "phone_number": "+14165550123",  "valid": true,  "error": null}

Supported subdivisions: United Kingdom (GB)

The UK's state/region field accepts either the subdivision code or name (case-insensitive) for onboarding, and code only for beneficiary creation — same rules as any other country (see Validate region/state code or name above).

This list includes standard unitary authorities, London boroughs, and Scottish/Welsh/Northern Irish council areas, as well as the six historic metropolitan counties (West Midlands, Greater Manchester, Merseyside, South Yorkshire, Tyne and Wear, West Yorkshire) that are still commonly used in real-world UK addresses even though each is also broken down into individual boroughs (e.g. "West Midlands" and "Birmingham" are both valid, independent values — pick whichever matches your customer's address).

CodeName
ABCArmagh City, Banbridge and Craigavon
ABDAberdeenshire
ABEAberdeen City
AGBArgyll and Bute
AGYIsle of Anglesey [Sir Ynys Mon GB-YNM]
ANDArds and North Down
ANNAntrim and Newtownabbey
ANSAngus
BASBath and North East Somerset
BBDBlackburn with Darwen
BCPBournemouth, Christchurch and Poole
BDFBedfordshire
BDGBarking and Dagenham
BENBrent
BEXBexley
BFSBelfast
BGEBridgend [Pen-y-bont ar Ogwr GB-POG]
BGWBlaenau Gwent
BIRBirmingham
BKMBuckinghamshire
BNEBarnet
BNHBrighton and Hove
BNSBarnsley
BOLBolton
BPLBlackpool
BRCBracknell Forest
BRDBradford
BRYBromley
BSTBristol, City of
BURBury
CAMCambridgeshire
CAYCaerphilly [Caerffili GB-CAF]
CBFCentral Bedfordshire
CCGCauseway Coast and Glens
CGNCeredigion [Sir Ceredigion]
CHECheshire East
CHWCheshire West and Chester
CLDCalderdale
CLKClackmannanshire
CMACumbria
CMDCamden
CMNCarmarthenshire [Sir Gaerfyrddin GB-GFY]
CONCornwall
COVCoventry
CRFCardiff [Caerdydd GB-CRD]
CRYCroydon
CWYConwy
DALDarlington
DBYDerbyshire
DENDenbighshire [Sir Ddinbych GB-DDB]
DERDerby
DEVDevon
DGYDumfries and Galloway
DNCDoncaster
DNDDundee City
DORDorset
DRSDerry and Strabane
DUDDudley
DURDurham
EALEaling
EAYEast Ayrshire
EDHEdinburgh, City of
EDUEast Dunbartonshire
ELNEast Lothian
ELSEilean Siar
ENFEnfield
ENGEngland
ERWEast Renfrewshire
ERYEast Riding of Yorkshire
ESSEssex
ESXEast Sussex
FALFalkirk
FIFFife
FLNFlintshire [Sir y Fflint GB-FFL]
FMOFermanagh and Omagh
GATGateshead
GLGGlasgow City
GLSGloucestershire
GREGreenwich
GTMGreater Manchester
GWNGwynedd
HALHalton
HAMHampshire
HAVHavering
HCKHackney
HEFHerefordshire, County of
HILHillingdon
HLDHighland
HMFHammersmith and Fulham
HNSHounslow
HPLHartlepool
HRTHertfordshire
HRWHarrow
HRYHaringey
IOSIsles of Scilly
IOWIsle of Wight
ISLIslington
IVCInverclyde
KECKensington and Chelsea
KENKent
KHLKingston upon Hull, City of
KIRKirklees
KTTKingston upon Thames
KWLKnowsley
LANLancashire
LBCLisburn and Castlereagh
LBHLambeth
LCELeicester
LDSLeeds
LECLeicestershire
LEWLewisham
LINLincolnshire
LIVLiverpool
LNDLondon, City of
LUTLuton
MANManchester
MDBMiddlesbrough
MDWMedway
MEAMid and East Antrim
MIKMilton Keynes
MLNMidlothian
MONMonmouthshire [Sir Fynwy GB-FYN]
MRTMerton
MRYMoray
MSYMerseyside
MTYMerthyr Tydfil [Merthyr Tudful GB-MTU]
MULMid Ulster
NAYNorth Ayrshire
NBLNorthumberland
NELNorth East Lincolnshire
NETNewcastle upon Tyne
NFKNorfolk
NGMNottingham
NIRNorthern Ireland
NLKNorth Lanarkshire
NLNNorth Lincolnshire
NMDNewry, Mourne and Down
NSMNorth Somerset
NTHNorthamptonshire
NTLNeath Port Talbot [Castell-nedd Port Talbot GB-CTL]
NTTNottinghamshire
NTYNorth Tyneside
NWMNewham
NWPNewport [Casnewydd GB-CNW]
NYKNorth Yorkshire
OLDOldham
ORKOrkney Islands
OXFOxfordshire
PEMPembrokeshire [Sir Benfro GB-BNF]
PKNPerth and Kinross
PLYPlymouth
PORPortsmouth
POWPowys
PTEPeterborough
RCCRedcar and Cleveland
RCHRochdale
RCTRhondda, Cynon, Taff [Rhondda, Cynon,Taf]
RDBRedbridge
RDGReading
RFWRenfrewshire
RICRichmond upon Thames
ROTRotherham
RUTRutland
SAWSandwell
SAYSouth Ayrshire
SCBScottish Borders, The
SCTScotland
SFKSuffolk
SFTSefton
SGCSouth Gloucestershire
SHFSheffield
SHNSt. Helens
SHRShropshire
SKPStockport
SLFSalford
SLGSlough
SLKSouth Lanarkshire
SNDSunderland
SOLSolihull
SOMSomerset
SOSSouthend-on-Sea
SRYSurrey
STEStoke-on-Trent
STGStirling
STHSouthampton
STNSutton
STSStaffordshire
STTStockton-on-Tees
STYSouth Tyneside
SWASwansea [Abertawe GB-ATA]
SWDSwindon
SWKSouthwark
SYKSouth Yorkshire
TAMTameside
TFWTelford and Wrekin
THRThurrock
TOBTorbay
TOFTorfaen [Tor-faen]
TRFTrafford
TWHTower Hamlets
TWRTyne and Wear
VGLVale of Glamorgan, The [Bro Morgannwg GB-BMG]
WARWarwickshire
WBKWest Berkshire
WDUWest Dunbartonshire
WFTWaltham Forest
WGNWigan
WILWiltshire
WKFWakefield
WLLWalsall
WLNWest Lothian
WLSWales
WLVWolverhampton
WMDWest Midlands
WNDWandsworth
WNMWindsor and Maidenhead
WOKWokingham
WORWorcestershire
WRLWirral
WRTWarrington
WRXWrexham [Wrecsam GB-WRC]
WSMWestminster
WSXWest Sussex
WYKWest Yorkshire
YORYork
ZETShetland Islands

This table is generated from the live GET /api/v1/client/regions/GB/subdivisions-with-code-formats data (see Get subdivisions with code formats above). If you're building an integration, prefer calling that endpoint directly rather than hardcoding this list, so you always get the current supported set.

Usage in client flows

  • Customer full registration:
    Validate address and phone before calling
    POST /api/v1/client/customers/full
    so address (street_1, city, state, postal_code, country_code) and phone_number match region rules.

  • Beneficiary creation:
    Validate address (and optionally phone) before
    POST /api/v1/client/beneficiaries
    when address is required or provided. State must be a subdivision code only (e.g. NY, LA), not the full name.

This keeps client-side errors tight and ensures only region-valid data reaches onboarding and payout rails.