VerifyIBANWithSwift
GET
https://test.api.neotek.sa/iban/v1/verify-with-swiftSandbox URL · in Production call https://api.neotek.sa
The same synchronous check as VerifyIBAN, with the account's bank identified as well — name in both languages, plus its SWIFT code.
Query parameters — all three are required:
| Parameter | Required | Description |
|---|---|---|
POIType | Required | the proof-of-identity type: NAT for a national ID, IQA for an iqama |
POINum | Required | the ID number itself, exactly 10 characters |
IBAN | Required | the IBAN being checked against that ID, exactly 24 characters |
Headers:
| Parameter | Required | Description |
|---|---|---|
authorization | Required | Bearer <ACCESS_TOKEN>, with scope iban_verification |
x-request-id | Optional | an RFC 4122 UUID you generate; quote it when raising a support ticket |
accept-language | Optional | en or ar, exactly two characters, defaulting to en |
sub-client | Optional | identifies the downstream consumer when one client fronts several |
cURL
curl -G 'https://test.api.neotek.sa/iban/v1/verify-with-swift' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -d 'POIType=NAT' \ -d 'POINum=1523698745' \ -d 'IBAN=SA1080000012345678901002'Sandbox: the values above resolve in the test environment — POIType=NAT, POINum=1523698745 and IBAN=SA1080000012345678901002.
Response (schema — RequestStatus is Valid, Not Valid or Failed, and a failure also carries FailureCode)
JSON
{ "Data": { "RequestId": "string", "RequestStatus": "Valid", "FailureCode": "string", "AccountStatus": "Blocked", "Name": "string", "IBAN": "string", "POIType": "NAT", "POINumber": "string", "BankNameEn": "AlRajhi Bank", "BankNameAr": "string", "SwiftCode": "SARJHI" }}Errors
| Code | Status | Cause and Action |
|---|---|---|
400 | Bad Request | Missing required field, or a value that fails validation — check Code and Path in the body |
401 | Unauthorized | Token missing, expired, or invalid |
403 | Forbidden | Token doesn't carry the iban_verification scope |
404 | Not Found | No resource matches the identifier provided |
405 | Method Not Allowed | HTTP verb not supported on that path |
406 | Not Acceptable | Accept header doesn't match a supported representation — use application/json |
415 | Unsupported Media Type | Content-Type missing or wrong — use application/json |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Server error — retry with backoff, quote your x-request-id |