Validate bank details worldwide with one API

Validate IBANs, BIC/SWIFT codes and local bank routing codes worldwide with one reliable REST API. Identify banks and branches, catch invalid payment details before they cause failed transfers, verify SEPA payee names and screen names against sanctions lists when needed.

# Learn more: http://fincodesapi.test/bic-code-validation

$ curl 'https://api.fincodesapi.com/v2/bic/NATAAU33033' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "NATAAU33033",
        "address": "500 BOURKE STREET, FLOOR 24",
        "postcode": "3000",
        "branch_name": "(HEAD OFFICE)",
        "branch_code": "033",
        "country": {
            "id": "AU",
            "name": "Australia"
        },
        "city": {
            "id": "3d2859b1-aa63-46dd-90d2-9ded52bbce22",
            "country_id": "AU",
            "name": "Melbourne"
        },
        "bank": {
            "id": "d7744803-1288-4955-9f53-05eb26bbef8e",
            "country_id": "AU",
            "code": "NATA",
            "name": "NATIONAL AUSTRALIA BANK LIMITED"
        }
    }
}
# Learn more: http://fincodesapi.test/iban-number-validation

$ curl 'https://api.fincodesapi.com/v2/iban/FR7630006000011234567890189' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "FR7630006000011234567890189",
        "account_number": "1234567890189",
        "national_bank_code": "30006",
        "national_branch_code": "00001",
        "bic": {
            "id": "AGRIFRPP",
            "address": "12 PLACE DES ETATS-UNIS",
            "postcode": "92120",
            "branch_name": "(HEAD OFFICE)",
            "branch_code": "",
            "country": {
                "id": "FR",
                "name": "France"
            },
            "city": {
                "id": "a3e9cd32-d241-475a-89bb-41f9621be4e5",
                "country_id": "FR",
                "name": "Montrouge"
            },
            "bank": {
                "id": "fff72551-720a-4c37-b430-32d747634905",
                "country_id": "FR",
                "code": "AGRI",
                "name": "CREDIT AGRICOLE SA"
            }
        },
        "country": {
            "id": "FR",
            "name": "France"
        }
    }
}
# Learn more: http://fincodesapi.test/us-aba-rtn-number-validation

$ curl 'https://api.fincodesapi.com/v2/rtn/026003780' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "026003780",
        "ach": {
            "new_id": null,
            "servicing_frb_id": "021001208",
            "address": "60 WALL STREET",
            "postcode": "10005-0000",
            "phone": "201 593-7610",
            "record_type_code": 1,
            "is_main_office": true,
            "change_date": "2021-01-11",
            "bank": {
                "id": "b14a4d8e-9b7c-4f6a-8d2e-3c5f1a7e3d2f",
                "country_id": "US",
                "code": "0026",
                "name": "DEUTSCHE BANK TRUST CO"
            },
            "city": {
                "id": "c2a8b3d5-6e7f-4c5b-9a2d-1f3e8c7b6a5d",
                "country_id": "US",
                "name": "NEW YORK",
                "state": "NY"
            }
        },
        "wire": {
            "telegraphic_name": "DEUTSCHE BK NY",
            "is_funds_transfer_allowed": true,
            "is_settlement_only": false,
            "is_securities_transfer_allowed": true,
            "change_date": null,
            "bank": {
                "id": "b14a4d8e-9b7c-4f6a-8d2e-3c5f1a7e3d2f",
                "country_id": "US",
                "code": "0026",
                "name": "DEUTSCHE BANK TRUST CO"
            },
            "city": {
                "id": "c2a8b3d5-6e7f-4c5b-9a2d-1f3e8c7b6a5d",
                "country_id": "US",
                "name": "NEW YORK",
                "state": "NY"
            }
        }
    }
}
# Learn more: http://fincodesapi.test/canada-routing-number-validation

$ curl 'https://api.fincodesapi.com/v2/crn/24182-001' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "24182-001",
        "branch_name": "King & University",
        "address": "200 King St. W.",
        "city": "Toronto",
        "province": "ON",
        "postcode": "M5H 3T4",
        "institution_type": 1,
        "bank": {
            "id": "2a8e87fd-ba6f-443f-a437-c59081730566",
            "country_id": "CA",
            "code": "001",
            "name": "BANK OF MONTREAL"
        }
    }
}
# Learn more: http://fincodesapi.test/bsb-number-validation

$ curl 'https://api.fincodesapi.com/v2/bsb/082-024' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "082-024",
        "branch_name": "World Square",
        "address": "Shp 10-33 Upp Gnd Lvl 686 George St",
        "suburb": "Sydney",
        "state": "NSW",
        "postcode": 2000,
        "peh": "PEH",
        "bank": {
            "id": "6ab9a942-51ca-4e5f-ab17-32612d787ed4",
            "country_id": "AU",
            "code": "NAB",
            "name": "National Australia Bank"
        }
    }
}
# Learn more: http://fincodesapi.test/ncc-code-validation

$ curl 'https://api.fincodesapi.com/v2/ncc/010205' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "010205",
        "branch_name": "ANZ Retail",
        "address": "170 Featherston street",
        "city": "Wellington",
        "postcode": "6011",
        "phone": "0800 269 296",
        "fax": "",
        "pob_number": "PO Box 18",
        "pob_location": "Shortland Street, Auckland",
        "pob_postcode": "1140",
        "bank": {
            "id": "dae732d9-535d-4dcd-9719-a0957a4afedd",
            "country_id": "NZ",
            "code": "01",
            "name": "ANZ Bank New Zealand"
        }
    }
}
# Learn more: http://fincodesapi.test/ifsc-code-validation

$ curl 'https://api.fincodesapi.com/v2/ifsc/ABHY0065022' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "ABHY0065022",
        "branch_name": "CBD BELAPUR",
        "branch_code": "065022",
        "address": "SECTOR-3, CHANAKYA SHOPPING CENTRE, BELAPUR (CBD), NAVI MUMBAI-400614",
        "district": "GREATER MUMBAI",
        "city": "MUMBAI",
        "state": "MAHARASHTRA",
        "std": "22",
        "phone": "27572179",
        "bank": {
            "id": "1bc55546-de33-478a-a9d7-745d0b2567eb",
            "country_id": "IN",
            "code": "ABHY",
            "name": "ABHYUDAYA COOPERATIVE BANK LIMITED"
        }
    }
}
# Learn more: http://fincodesapi.test/clabe-number-validation

$ curl 'https://api.fincodesapi.com/v2/clabe/002010077777777771' \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json'

{
    "success": true,
    "data": {
        "id": "002010077777777771",
        "account_number": "07777777777",
        "bank": {
            "id": "60ad62b6-26cf-4686-960b-e06219e0e0b1",
            "country_id": "MX",
            "code": "002",
            "name": "Banco Nacional de M\u00e9xico"
        },
        "cities": [
            {
                "id": "80c7c515-a340-49ed-b3fe-4cef261451c4",
                "country_id": "MX",
                "name": "Aguascalientes"
            }
        ]
    }
}
# Learn more: http://fincodesapi.test/cbu-number-validation

$ curl 'https://api.fincodesapi.com/v2/cbu' \
>     --request POST \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json' \
>     --header 'Content-Type: application/json' \
>     --data '{"cbu":"2850590912345678901233"}'

{
    "success": true,
    "data": {
        "id": "2850590912345678901233",
        "account_number": "1234567890123",
        "branch_code": "0590",
        "bank": {
            "id": "f1f5b5a8-c83d-4d9b-8224-0a1a2f5c0d62",
            "country_id": "AR",
            "code": "285",
            "name": "Banco Macro"
        }
    }
}
# Learn more: http://fincodesapi.test/sanctions-screening-api

$ curl 'https://api.fincodesapi.com/v2/sanctions-screening' \
>     --request POST \
>     --header 'X-Api-Key: your-api-key-here' \
>     --header 'Accept: application/json' \
>     --header 'Content-Type: application/json' \
>     --data '{"name":"Sadam Husein","min_score":95}'

{
    "success": true,
    "data": {
        "name": "Sadam Husein",
        "matches": [
            {
                "id": "246b7989-10e1-4496-bb37-aafd2670ea2f",
                "source": "OFAC_SDN",
                "source_reference": "7843",
                "type": "INDIVIDUAL",
                "name": "Saddam Hussein AL-TIKRITI",
                "matched_name": "Saddam HUSSEIN",
                "score": 96,
                "programs": [
                    "IRAQ2"
                ],
                "birth_dates": [
                    "1937-04-28"
                ],
                "listed_on": "2003-09-03"
            }
        ]
    }
}

Validate payment details
before money moves

Incorrect or outdated bank details can result in rejected payments, manual investigation and unnecessary delays.
Fin Codes API lets you validate banking identifiers as soon as they enter your system - during customer onboarding, supplier setup, payout creation or payment processing.

01

Catch invalid payment details early

Validate the format and structure of banking identifiers before submitting a payment.

02

Identify the financial institution

Retrieve structured bank, branch and location details from each submitted identifier.

03

Use one integration for global coverage

Handle international and local bank codes through a single, consistent REST API.

Explore the Bank Account Validation API.

Check that the payee name matches the account

Compare the submitted payee name with the account-holder information for a SEPA IBAN before approving a payment.

  • Catch incorrect or outdated payee details
  • Add the check only where it is needed
  • Act on a clear verification result

Optional prepaid add-on. $0.20 per check

Explore Verification of Payee
IBAN
DE75 •••• •••• •••• 6199
Payee name
John Doe
Result
MATCH

The payee name matches the account-holder information.

Possible results:
MATCH CLOSE_MATCH NO_MATCH NOT_APPLICABLE

Screen names against global sanctions lists

Check customers, suppliers and payees against the EU, UK, UN, OFAC, Swiss, Australian and Canadian sanctions lists before you onboard them or send a payment.

  • Catch misspellings, transliterations and aliases
  • Screen against lists refreshed daily from official sources
  • Review scored matches with the details you need
Explore Sanctions Screening
Name
Sadam Husein
Best match
Saddam Hussein AL-TIKRITI OFAC SDN · 7843
Score
96

Potential matches found. Review them before you proceed.

Sanctions lists:
EU UK UN OFAC Switzerland Australia Canada

Production-ready, easy to get started

Create an account and start testing in minutes, backed by reliable infrastructure and banking datasets updated monthly.

Start testing in minutes

Create your account, get an API key and start testing immediately. No credit card or sales call required.

Start 14-Day Free Trial

Built for fintech, payments and financial software

Fin Codes API can be integrated wherever banking details enter your workflow, helping you validate them before they are stored or used.

Fintech & payment platforms

Validate beneficiary details and screen payees against sanctions lists before initiating payments.

Marketplaces & payout platforms

Check seller, contractor and partner banking information and screen them against sanctions lists during onboarding.

Accounting & ERP software

Check supplier banking information when creating or updating payment records.

Financial institutions

Enrich and validate banking identifiers through a simple API instead of maintaining multiple reference datasets.

Payroll systems

Validate employee bank details before payroll processing.

Global coverage. One integration.

99.95

%

Uptime

300

K+

Codes

52

K+

Banks

192

Countries

Simple, transparent pricing

Start with a 14-day free trial and move to the plan that matches your usage - no hidden fees, no surprises.

  • ✓ Free 14-day trial
  • ✓ No credit card required
Basic Plan

$39 USD / month

  • 1,000 unique requests
  • 1 user
  • Email support
Start a Free Trial
Most popular
Pro Plan

$99 USD / month

  • 10,000 unique requests
  • 5 users
  • Email support
Start a Free Trial
Enterprise Plan

$199 USD / month

  • 100,000 unique requests
  • Unlimited users
  • Priority support
Start a Free Trial
Verification of Payee (VoP)

Match payee names against SEPA IBAN account holders to prevent misdirected payments. Pre-paid add-on. Learn more

$0.20 per check

Start validating bank details today

Integrate IBAN, BIC/SWIFT and local bank-code validation with a single API.