Bank Account Verification

Gather endpoints that provide functionalities for verifying bank account data. These functionalities include confirming the reliability of given bank account data by CDL Trust Scores provided by other companies for the given bank account, curating the given bank account, and uploading bank accounts for batch confirmation.

Confirm Bank AccountDeprecated

-> Confirm reliability of given bank account data by CDL Trust Scores provided by other companies for the given bank account.

SecurityapiKey
Request
query Parameters
bankCountryCode
string (CountryShortName)

To confirm national bank account information, you have to provide a country code to uniquely identify the bank account on a global scale. If you use this parameter to confirm a given bank account without an IBAN or BIC, you have to provide in addition a national bank identifier and a national bank account identifier.

Example: bankCountryCode=CH
internationalBankAccountIdentifier
string (InternationalBankAccountIdentifier)

Uniquely identifies a bank account on a global scale, without any additional information such as bank identifier or country code. Best known system is the International Bank Account Identifier (IBAN) specified by ISO 13616:2007 and managed by SWIFT. If you use this parameter to confirm a given bank account, you do not need any additional parameter.

Example: internationalBankAccountIdentifier=CH8800781619278412000
internationalBankIdentifier
string (InternationalBankIdentifier)

Uniquely identifies a bank on global scale, without any additional information such as country code. Best known system is the International Bank Identifier (BIC, or SWIFT code) specified by ISO 9362 and managed by SWIFT. If you use this parameter to confirm a given bank account without an IBAN, you have to provide in addition bank account information, i.e. country code and national bank account identifier.

Example: internationalBankIdentifier=KBSGCH22XXX
nationalBankAccountIdentifier
string (NationalBankAccountIdentifier)

Uniquely identifies a bank account at a specific bank in a country, together with a country code parameter and a national bank identifier on a global scale. If you use this parameter to confirm a given bank account without an IBAN or BIC, you have to provide in addition a country code and a national bank identifier.

Example: nationalBankAccountIdentifier=619278412000
nationalBankIdentifier
string (NationalBankIdentifier)

Uniquely identifies a bank in a country, together with a country code parameter on a global scale. If you use this parameter to confirm a given bank account without an IBAN or BIC, you have to provide in addition a country code and a national bank account identifier.

Example: nationalBankIdentifier=00781
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

406

Unsupported Media Type

503

Service Unavailable

get/bankaccounts/confirm
Request samples
Response samples
{
  • "bankAccountRequest": {
    },
  • "bankAccountConfirmed": {
    },
  • "scoreSum": "100",
  • "maxScores": [
    ],
  • "associatedFraudCases": [
    ]
}

Confirm ReliabilityWSDL

Confirm the reliability of the given bank account against the CDQ Whitelist (trust score based on transactions) and the Blacklist (fraud cases).

The BankAccount that is sent in the request needs to uniquely identify a bank account. Minimal sets of attributes that are considered valid to identify a bank account are:

  1. Only the IBAN (= internationalBankAccountIdentifier):
    {
      "bankAccount": {
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      }
    }
    
  2. The bank account number (= nationalBankAccountIdentifier) and the BIC (= internationalBankIdentifier):
    {
      "bankAccount": {
        "nationalBankAccountIdentifier": "619278412000",
        "internationalBankIdentifier": "KBSGCH22XXX"
      }
    }
    
  3. The bank account number (= nationalBankAccountIdentifier), bank code/number (= nationalBankIdentifier) and bank country code (= bankCountryCode):
    {
      "bankAccount": {
        "bankCountryCode": "CH",
        "nationalBankIdentifier": "00781",
        "nationalBankAccountIdentifier": "619278412000"
      }
    }
    

If attributes are missing to uniquely identify a bank account an ApiError will be returned.

The response will always contain the BankAccount provided in the request and depending on the result found in the Whitelist or the Blacklist or neither, the following:

  1. A whitelist entry and no fraud case was found:
    {
      "bankAccountRequest": {
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      },
      "bankAccountConfirmed": {
        "bankCountryCode": "CH",
        "nationalBankIdentifier": "00781",
        "nationalBankAccountIdentifier": "619278412000",
        "internationalBankIdentifier": "KBSGCH22XXX",
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      }
      "numberOfCompanies": "5",
      "numberOfPayments": "42",
      "lastPaymentAt": "2019-01-24",
      "trustScore": "7"
    }
    
  2. A fraud case entry was found:
    {
      "bankAccountRequest": {
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      },
      "associatedFraudCases": [
        {
          "cdlId": "123456",
          ...
        }
      ]
    }
    
  3. The bank account is unknown (no trust score and no fraud case exists):
    {
      "bankAccountRequest": {
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      }
    }
    
SecurityapiKey
Request
Request Body schema: application/json
required
required
object (BankAccount)

A bank account record holds information that universally describes a registered bank account.

Responses
200

OK

400

Bad Request

401

Unauthorized

post/v2/bankaccounts/confirm
Request samples
application/json
{
  • "bankAccount": {
    }
}
Response samples
application/json
{
  • "bankAccountRequest": {
    },
  • "bankAccountConfirmed": {
    },
  • "numberOfCompanies": "5",
  • "numberOfPayments": "42",
  • "lastPaymentAt": "2024-12-21T01:35:17Z",
  • "trustScore": "7",
  • "bankAccountOwners": [
    ],
  • "associatedFraudCases": [
    ]
}

Curate Bank Account

Curates the given bank account.

The BankAccount that is sent in the request has to be uniquely identifiable. Minimal sets of attributes that identify a BankAccount are:

  1. Only the IBAN (= internationalBankAccountIdentifier):
    {
      "bankAccount": {
        "internationalBankAccountIdentifier": "CH8800781619278412000"
      }
    }
    
  2. The bank account number (= nationalBankAccountIdentifier), bank code/number (= bank.nationalBankIdentifier) and bank country code (= bank.address.country.shortName):
    {
      "bankAccount": {
        "nationalBankAccountIdentifier": "619278412000",
        "bank" : {
          "nationalBankIdentifier": "00781",
          "address": {
            "country": {
              "shortName": "CH"
            }
          }
        }
      }
    }
    
  3. The bank account number (= nationalBankAccountIdentifier), bank code/number (= bank.nationalBankIdentifier) and the BIC (= internationalBankIdentifier):
    {
      "bankAccount": {
        "nationalBankAccountIdentifier": "619278412000",
        "bank" : {
          "nationalBankIdentifier": "00781",
          "internationalBankIdentifier": "KBSGCH22XXX"
        }
      }
    }
    

If IBAN is not present in the request it will be generated only if there is sufficient data:

  • countryCode
  • internationalBankIdentifier
  • nationalBankAccountIdentifier

Or

  • internationalBankIdentifier
  • nationalBankIdentifier
  • nationalBankAccountIdentifier

For the following countries the generation of the internationalBankAccountIdentifier (IBAN) is NOT supported in the current version:

AL, BA, BE, BG, BI, BR, DJ, EE, EG, ES, FI, FO, FR, HU, IS, IT, LY, MC, ME, MK, MR, NO, PL, PT, RS, SC, SD, SI, SM, TL, TR

The response will always contain the original BankAccount provided in the request and a curated version of it. For example: { "originalBankAccount": { "internationalBankAccountIdentifier": "CH8800781619278412000" }, "curatedBankAccount": { "internationalBankAccountIdentifier": "CH8800781619278412000" "nationalBankAccountIdentifier": "619278412000", "bank" : { "nationalBankIdentifier": "00781", "address": { "country": { "shortName": "CH" } } } } }

If the given request does not provide one of the combinations of attributes described above, an ApiError will be returned: { "timestamp": "...", "message": "...", "error": "Bad Request", "path": "...", "status": 400 } Message contains concatenated descriptions of all errors that occurred in the request.

SecurityapiKey
Request
Request Body schema: application/json
required
required
object (BankAccountCuration)

A request to curate a BankAccount.

featuresOff
Array of strings (BankAccountCurationFeatureParam)

Feature(s) to be used during curation:

  • REMOVE_INVALID_VALUES - Removes all invalid values (e.g. internationalBankIdentifier) during curation. By default, activated.
Items Value: Description
REMOVE_INVALID_VALUES

Removes all invalid values (e.g. internationalBankIdentifier) during curation.

Example: ["REMOVE_INVALID_VALUES"]
featuresOn
Array of strings (BankAccountCurationFeatureParam)

Feature(s) to be used during curation:

  • REMOVE_INVALID_VALUES - Removes all invalid values (e.g. internationalBankIdentifier) during curation. By default, activated.
Items Value: Description
REMOVE_INVALID_VALUES

Removes all invalid values (e.g. internationalBankIdentifier) during curation.

Example: ["REMOVE_INVALID_VALUES"]
Responses
200

OK

400

Bad Request

401

Unauthorized

post/bankaccounts/curate
Request samples
application/json
{
  • "bankAccount": {
    },
  • "featuresOn": [
    ],
  • "featuresOff": [
    ]
}
Response samples
application/json
{
  • "originalBankAccount": {
    },
  • "curatedBankAccount": {
    }
}

List Bank Account Statistics

-> Calculates statistics from a bank account database and provides information about whitelist records, whitelist bank accounts, country distribution, etc.

SecurityapiKey
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

406

Unsupported Media Type

503

Service Unavailable

get/bankaccounts/statistics
Request samples
Response samples
{
  • "timeStampCreated": "20240302",
  • "whitelistBankAccountCount": "10",
  • "whitelistTrustScoreCount": "10",
  • "whitelistCountryBankAccountCounts": [
    ],
  • "whitelistCountryTrustScoreCounts": [
    ],
  • "whitelistTrustScoreMean": "0.5",
  • "whitelistTrustScore1Count": "10",
  • "whitelistTrustScore2Count": "10",
  • "whitelistTrustScore3Count": "10",
  • "whitelistTrustScore4Count": "10",
  • "whitelistBankAccountWith1TrustScoreCount": "10",
  • "whitelistBankAccountWith2TrustScoresCount": "10",
  • "whitelistBankAccountWith3TrustScoresCount": "10",
  • "whitelistBankAccountWith4TrustScoresCount": "10",
  • "whitelistBankAccountWith5TrustScoresCount": "10",
  • "whitelistBankAccountWithMoreThan5TrustScoresCount": "10"
}

Poll Batch Confirmation Status

Get the status (including progress, if running) of a given job.

SecurityapiKey
Request
query Parameters
jobId
string (JobId)

The ID of the bank account data job to get the status for.

Example: jobId=35f23c03-1c22-45fe-9484-3ffe769325de
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

406

Unsupported Media Type

503

Service Unavailable

get/bankaccounts/jobs
Request samples
Response samples
{
  • "id": "35f23c03-1c22-45fe-9484-3ffe769325de",
  • "createdAt": "2024-12-21T01:35:17Z",
  • "user": "742429-234242-4343-232323",
  • "progress": "77",
  • "status": "RUNNING"
}

Start Batch Confirmation

-> Start a job to confirm all bank accounts provided by a previously uploaded CSV file, identified by the storage ID in the request object or from bank accounts of business partners in given business partner storage.

SecurityapiKey
Request
Request Body schema:
required

Identifies a previously uploaded CSV file with bank account data or business partner storage with bank accounts to confirm.

contentOrganization
string

PLACEHOLDER

Example: "cdq"
featuresOn
Array of strings (BankAccountDataConfirmationJobFeatureParam)

Feature(s) to be used during the confirmation job:

  • CONFIRM_BA_IN_BP_STORAGE - Confirm bank accounts of business partners stored in business partner storage.
Items Value: Description
CONFIRM_BA_IN_BP_STORAGE

Confirm bank accounts of business partners stored in business partner storage.

Example: ["CONFIRM_BA_IN_BP_STORAGE"]
storageId
string (BusinessPartnerStorageId)

Unique identifier of the Storage.

Example: "72d6900fce6b326088f5d9d91049e3e6"
Responses
201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

406

Unsupported Media Type

503

Service Unavailable

post/bankaccounts/jobs/confirmation
Request samples
{
  • "storageId": "72d6900fce6b326088f5d9d91049e3e6",
  • "contentOrganization": "cdq",
  • "featuresOn": [
    ]
}
Response samples
{
  • "id": "35f23c03-1c22-45fe-9484-3ffe769325de",
  • "createdAt": "2024-12-21T01:35:17Z",
  • "user": "742429-234242-4343-232323",
  • "progress": "77",
  • "status": "RUNNING"
}

Upload Bank Accounts

Upload a CSV file with bank account data to be analyzed by several jobs.

SecurityapiKey
Request
Request Body schema: multipart/form-data
required
file
string <binary>

CSV file with the following headers in the first line, order does not matter, International Account ID, International Bank ID, Country Code, National Bank ID, National Account ID.

Example: "file_name.csv"
Responses
200

ID of the created bank account storage.

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

406

Unsupported Media Type

503

Service Unavailable

post/bankaccounts
Request samples
Response samples
"72d6900fce6b326088f5d9d91049e3e6"