Skip to main content

Verifying IBAN - API only (v1)

Stable / GA

This is the current stable version of this step type.

Headless bank document verification that extracts funding source data​

Verifies a bank document using static evidence collected by your own front end and submitted to IDnow via API, with results delivered as a FundingSource data block.

In Headless mode, your application is responsible for collecting and providing the document image. IDnow performs verification on this static input using automated analysis and data extraction modules. There is no user-facing capture step; all evidence is provided directly by your system.

Step compatibility

This step, Verifying proof of address - API only (v1), and Verifying ID document - API only (IDC) (v2) steps each require a different document type and cannot be combined in the same flow.


Key features​

  • Customer-managed evidence collection: The customer application captures and submits document images via API.
  • Funding source extraction: IBAN, BIC, bank code, branch code, bank name, address lines, account number, and account key are extracted from the document.
  • Optional identity cross-check: When compareIdentity is enabled, the document holder's name fields (given name and family name) from a prior BasicIdentity step are cross-checked against the IBAN document.
  • Unified Verification data block: A Verification result is produced on all output routes.
Supported countries

IBAN documents are supported for the following countries. Depending on the specific document model, analysis may be fully automated or involve a manual review step.

CountryISO code
AndorraAND
AustriaAUT
BelgiumBEL
BulgariaBGR
Central African RepublicCAF
SwitzerlandCHE
Republic of the CongoCOG
CyprusCYP
Czech RepublicCZE
GermanyDEU
DenmarkDNK
SpainESP
EstoniaEST
FinlandFIN
FranceFRA
United KingdomGBR
GibraltarGIB
GreeceGRC
CroatiaHRV
HungaryHUN
IrelandIRL
IcelandISL
ItalyITA
LiechtensteinLIE
LithuaniaLTU
LuxembourgLUX
LatviaLVA
MonacoMCO
MaltaMLT
NetherlandsNLD
NorwayNOR
PolandPOL
PortugalPRT
RomaniaROU
San MarinoSMR
SlovakiaSVK
SloveniaSVN
SwedenSWE
ChadTCD
Vatican CityVAT

For the full list of supported document models, contact your account manager.


Configuration​

OptionTypeRequiredDefaultDescription
configobjectYes—Environment-specific configuration.
config.live.realmstringYes—The IDCheck.io realm for the IBAN verification service in this environment. Provided by IDnow during onboarding. (live)
config.staging.realmstringYes—The IDCheck.io realm for the IBAN verification service in this environment. Provided by IDnow during onboarding. (staging)
compareIdentitybooleanNofalseWhen true, requires a prior BasicIdentity step for identity cross-check.

Example configuration​

{
"config": {
"live": { "realm": "your-live-realm" },
"staging": { "realm": "your-staging-realm" }
}
}

Input data blocks​

Data blockRequiredDescription
DocumentImagesYesBank document images submitted as binary files via multipart/form-data. Front side is required; back side is optional. Accepted formats: JPEG, PNG. The DocumentImages data block supplied to this step must not come from an identity document capture step.
BasicIdentityConditionalIdentity data used for cross-check against the document holder. Present only when compareIdentity is true.
File size limit

Each file referenced in DocumentImages is subject to a per-file size limit of 4 MB.


Routes​

RouteDescription
verifiedThe document was successfully processed and funding source data was extracted. When compareIdentity is enabled, identity data is also extracted for the cross-check.
not_verifiedThe document was rejected or analysis flagged the document as invalid.
fraud_detectedFraudulent identity suspicion detected. Takes precedence over other failure conditions.

Output data blocks​

RouteData blocks produced
verifiedFundingSource, Verification
conditionally:
BasicIdentity (only when compareIdentity is true)
not_verifiedVerification
fraud_detectedVerification

Example payloads​

FundingSource — verified
{
"iban": "FR7630006000011234567890189",
"bic": "BNPAFRPPXXX",
"ibanCountry": "FR",
"accountNumber": "12345678901",
"bankCode": "30006",
"branchCode": "00001",
"bankName": "BNP Paribas",
"bankAddressLines": [
"16 Boulevard des Italiens",
"75009 Paris",
"France"
],
"accountKey": "89"
}
BasicIdentity — verified (when compareIdentity: true)
{
"givenName": "Jean",
"familyName": "Dupont",
"name": "Jean Dupont",
"birthDate": null,
"birthPlace": null
}
Birth name not available

This step only produces a BasicIdentity data block — there is no ExtendedIdentity carrier, so familyNameBirth is not available, even when the document holder uses a usage name (e.g. a married surname). basicIdentity.familyName already reflects the usage name when one is present, so use it for identity comparison. Birth-name separation is only provided by identity document verification steps.

Verification — verified
{
"status": "verified",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [],
"evidence": []
}
],
"provider": "idnow",
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-02-10T14:00:01.000Z",
"verificationProcessId": "txn-iban-abc123"
}
Verification — fraud_detected
{
"status": "fraudDetected",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [
{
"technique": "documentValidity",
"sources": [],
"outcome": "failed",
"issues": [
{
"code": "BACKEND_ANALYSIS",
"severity": "error",
"message": "No document found"
}
],
"performedBy": null,
"performedAt": null
}
],
"evidence": [
{
"type": "analysisReport",
"ref": {
"$ref": "vault",
"$id": "6b514db8-55f0-4618-98b5-1e42845d053e"
}
}
]
}
],
"provider": "idnow",
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-02-10T14:00:01.000Z",
"verificationProcessId": "txn-iban-abc123"
}
Verification — not_verified (when compareIdentity: true)
{
"status": "rejected",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [
{
"technique": "documentValidity",
"sources": [],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "dataCrosscheck",
"sources": [
{
"type": "ocr",
"id": null
},
{
"type": "inputData",
"id": null
}
],
"outcome": "failed",
"issues": [
{
"code": "FIRSTNAME_LASTNAME_FOUND",
"severity": "error",
"message": "The holder's first and/or last names are not both present"
},
{
"code": "IBAN_FIRST_NAME_MATCH",
"severity": "error",
"message": "IBAN Firstnames do not match the identity"
}
],
"performedBy": null,
"performedAt": null
}
],
"evidence": [
{
"type": "analysisReport",
"ref": {
"$ref": "vault",
"$id": "175ec7bd-aa01-4259-96e0-71d28de0797f"
}
}
]
}
],
"provider": "idnow",
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-02-10T14:00:01.000Z",
"verificationProcessId": "txn-iban-abc123"
}