Bank Account Verification

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-06-20T07:02:21Z",
  • "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": {
    }
}

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-06-20T07:02:21Z",
  • "user": "742429-234242-4343-232323",
  • "progress": "77",
  • "status": "RUNNING"
}

Read bank account statistics

-> Calculates statistics from 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"
}

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-06-20T07:02:21Z",
  • "user": "742429-234242-4343-232323",
  • "progress": "77",
  • "status": "RUNNING"
}

Upload bank accounts for batch confirmation

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"