Skip to content
Category

Validate Angolan banking identifiers and detect the issuing bank.

The validation family covers `/api/v1/validate/iban` and `/api/v1/validate/bank-account`. Both routes normalize input, detect the bank from the banking code, and return a generated bank badge image for UI use.

Routes

2 GET

Country scope

Angola

Visual output

Bank badge image

Routes in this family

RoutePurposeKey query
/api/v1/validate/ibanValidate AO-format IBANs with mod-97 checks and bank lookup.iban
/api/v1/validate/bank-accountValidate 21-digit local account structures and derive the matching IBAN.account

GET /api/v1/validate/iban

Use this route when you already have a full AO IBAN and need normalized parts, bank metadata, and validation flags.

  • Check `validation.mod97Valid` and `validation.bankCodeKnown` instead of relying on `isValid` alone when you need granular UI states.
  • Use `bank.image` directly in payment summaries or verification cards.
ParameterRequiredDescription
ibanYesAO-format IBAN. The handler trims separators and uppercases the value before checking it.
GNU BashcURL usage
curl -s "https://utils.api.orb3x.com/api/v1/validate/iban?iban=AO06004000010123456789012"
JSON200 response
{  "isValid": true,  "normalized": "AO06004000010123456789012",  "formatted": "AO06 0040 0001 0123 4567 8901 2",  "countryCode": "AO",  "checkDigits": "06",  "bank": {    "code": "BAI",    "ibanBankCode": "0040",    "name": "Banco Angolano de Investimentos",    "image": "data:image/svg+xml;base64,..."  },  "components": {    "bankCode": "0040",    "branchCode": "0001",    "accountNumber": "01234567890",    "controlDigits": "12"  },  "validation": {    "countrySupported": true,    "lengthValid": true,    "bankCodeKnown": true,    "mod97Valid": true  }}
JSONError response
{  "error": {    "code": "INVALID_IBAN",    "message": "Angolan IBANs must contain exactly 25 characters.",    "field": "iban",    "length": 18  }}

GET /api/v1/validate/bank-account

Use this route for local 21-digit account strings when you need structural validation and the matching derived IBAN.

  • This is structural validation, not confirmation that the account is active in the banking network.
  • Persist the normalized account or derived IBAN rather than the raw input string.
ParameterRequiredDescription
accountYesLocal Angolan account string with 21 digits. Non-digit separators are ignored.
GNU BashcURL usage
curl -s "https://utils.api.orb3x.com/api/v1/validate/bank-account?account=004000010123456789012"
JSON200 response
{  "isValid": true,  "normalized": "004000010123456789012",  "formatted": "0040 0001 0123 4567 8901 2",  "derivedIban": "AO06004000010123456789012",  "bankRecognized": true,  "bank": {    "code": "BAI",    "name": "Banco Angolano de Investimentos",    "image": "data:image/svg+xml;base64,..."  },  "components": {    "bankCode": "0040",    "branchCode": "0001",    "accountNumber": "01234567890",    "controlDigits": "12"  },  "validation": {    "formatValid": true,    "bankCodeKnown": true,    "controlDigitsPresent": true  }}
JSONError response
{  "error": {    "code": "INVALID_BANK_ACCOUNT",    "message": "Angolan local bank account numbers must contain exactly 21 digits.",    "field": "account",    "length": 9  }}