BIC Lookup
Look up detailed institution information by BIC/SWIFT code. The database contains 121k+ BIC entries from public sources (GLEIF, SWIFT directory, Bundesbank, SIX BankMaster, NBP, EBA Step2 SCT), with LEI enrichment for ~38K rows sourced from GLEIF.
Endpoint
GET https://api.ibanforge.com/v1/bic/:code
Cost: $0.003 USDC per request
Parameters
| Parameter | Location | Type | Description |
|---|---|---|---|
code | URL path | string | BIC/SWIFT code — 8 or 11 characters. Case-insensitive. |
A BIC code follows the ISO 9362 format:
AAAA BB CC DDD
│ │ │ └── Branch code (optional, 3 chars — XXX = head office)
│ │ └──── Location code (2 chars)
│ └─────── Country code (ISO 3166-1 alpha-2)
└──────────── Institution code (4 chars)
Response
Success (200)
{
"bic": "UBSWCHZH80A",
"institution": "UBS SWITZERLAND AG",
"country": "Switzerland",
"countryCode": "CH",
"city": "ZURICH",
"branch": "WEALTH MANAGEMENT",
"lei": "BFM8T61CT2L1QCEMIK50"
}Response fields
| Field | Type | Description |
|---|---|---|
bic | string | Normalized BIC code (uppercase, 8 or 11 chars) |
institution | string | Official institution name |
country | string | Full country name |
countryCode | string | ISO 3166-1 alpha-2 country code |
city | string | City where the branch is located |
branch | string | null | Branch name, if applicable |
lei | string | null | Legal Entity Identifier (20 chars), if available in GLEIF data |
Not Found (404)
{
"error": {
"code": "bic_not_found",
"message": "No institution found for BIC code XXXXCHZZXXX"
}
}Errors
| Status | Code | Description |
|---|---|---|
| 400 | invalid_bic_format | BIC code is not 8 or 11 characters, or contains invalid characters |
| 404 | bic_not_found | No matching institution in the database |
Code examples
cURL
curl https://api.ibanforge.com/v1/bic/UBSWCHZH80A8-character BIC (head office)
curl https://api.ibanforge.com/v1/bic/COBADEFFWhen you pass an 8-character BIC, the API looks up the head office entry (equivalent to appending XXX).
Python
import requests
response = requests.get(
"https://api.ibanforge.com/v1/bic/UBSWCHZH80A"
)
data = response.json()
print(f"Institution: {data['institution']}")
print(f"Location: {data['city']}, {data['country']}")
if data.get("lei"):
print(f"LEI: {data['lei']}")TypeScript
const code = "UBSWCHZH80A";
const response = await fetch(
`https://api.ibanforge.com/v1/bic/${code}`
);
if (!response.ok) {
const error = await response.json();
console.error(error.error.message);
} else {
const data = await response.json();
console.log(`Institution: ${data.institution}`);
console.log(`Location: ${data.city}, ${data.country}`);
}Put these checks to work
Choose a first step for your software or your supplier file.
Integrate IBAN checks into your software
Try a validation, inspect the response, then connect your application through the API or an existing integration.
Explore the API workflowCheck a supplier file
Upload a CSV or Excel file and preview the findings for free. Purchase the annotated workbook if you need the full report. No account or subscription required.
Explore the file auditAvailable bank information varies by country and source. These checks do not confirm the account holder or guarantee that a payment will succeed.