IBAN format · BG
Bulgaria IBAN format: 22 characters.
Bulgaria IBANs have 22 characters: the country code BG, two check digits and an 18-character BBAN, the national account number, laid out as 4!a4!n2!n8!c.
Bulgaria IBAN structure
- Country code
- BG
- Check digits
- 80
- Bank code
- BNBG
- Branch code
- 9661
- Account
- 1020345678
| Positions | Part | In the example |
|---|---|---|
| 1–2 | Country code | BG |
| 3–4 | Check digits | 80 |
| 5–8 | Bank code | BNBG |
| 9–12 | Branch code | 9661 |
| 13–22 | Account | 1020345678 |
The BBAN, segment by segment
The registry writes the BBAN in SWIFT notation: n is a digit, a an upper-case letter, c a letter or digit, and the ! means a fixed length. 4!a4!n2!n8!c reads:
| Positions | Notation | Holds | Example |
|---|---|---|---|
| 5–8 | 4!a | 4 upper-case lettersBank code | BNBG |
| 9–12 | 4!n | 4 digitsBranch code | 9661 |
| 13–14 | 2!n | 2 digits | 10 |
| 15–22 | 8!c | 8 letters or digits | 20345678 |
Bulgaria IBAN example
BG80 BNBG 9661 1020 3456 78 is the sample the SWIFT IBAN Registry publishes for Bulgaria: a well-formed IBAN for showing the format, not a real account. Written electronically it has no spaces (BG80BNBG96611020345678); on paper it is printed in groups of four.
Its check digits, worked through with ISO 7064 mod 97-10:
Move the country code and check digits to the end
BNBG96611020345678BG80Replace each letter with two digits (A = 10 … Z = 35)
B = 11, N = 23, G = 16
1123111696611020345678111680Divide that number by 97 and keep the remainder
Remainder 1. A valid IBAN always leaves 1, so the check digits are right.
Where the check digits come from
Put 00 in their place (BG00…), repeat steps 1–3: remainder 18. The check digits are 98 − 18 = 80.
SEPA
Bulgaria is in the Single Euro Payments Area, so SEPA credit transfers and direct debits can reach BG IBANs; whether a given bank takes part is up to that bank.
What the format can and can’t tell you
- Valid means the structure and check digits are right — not that the account exists or can receive payments.
- National check digits inside the BBAN (e.g. the French RIB key, or the Spanish, Belgian and Italian CIN digits) are not verified.
- Bank and branch codes are read from their positions; they are not looked up in a bank directory.
Check BG IBANs from code or an AI agent
curl -s 'https://payopskit.com/api/v1/iban/BG80BNBG96611020345678'{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_iban",
"arguments": {
"iban": "BG80BNBG96611020345678"
}
}
}{
"input": "BG80BNBG96611020345678",
"iban": "BG80BNBG96611020345678",
"print": "BG80 BNBG 9661 1020 3456 78",
"valid": true,
"country": {
"code": "BG",
"name": "Bulgaria",
"sepa": true,
"sepaNote": null
},
"checkDigits": "80",
"expectedCheckDigits": "80",
"length": {
"actual": 22,
"expected": 22
},
"bban": "BNBG96611020345678",
"bbanFormat": "4!a4!n2!n8!c",
"bankCode": "BNBG",
"branchCode": "9661",
"parts": [
{
"label": "Country code",
"value": "BG",
"start": 0,
"end": 2,
"kind": "country"
},
{
"label": "Check digits",
"value": "80",
"start": 2,
"end": 4,
"kind": "check"
},
{
"label": "Bank code",
"value": "BNBG",
"start": 4,
"end": 8,
"kind": "bank"
},
{
"label": "Branch code",
"value": "9661",
"start": 8,
"end": 12,
"kind": "branch"
},
{
"label": "Account",
"value": "1020345678",
"start": 12,
"end": 22,
"kind": "account"
}
],
"checks": {
"characters": true,
"country": true,
"length": true,
"bbanFormat": true,
"checksum": true
},
"errors": [],
"notes": [
"Valid means the structure and check digits are right — not that the account exists or can receive payments.",
"National check digits inside the BBAN (e.g. the French RIB key, or the Spanish, Belgian and Italian CIN digits) are not verified."
]
}The MCP server is at /mcp (Streamable HTTP, no key); the API and MCP docs show how to connect Claude, Cursor or VS Code.
From a national account number: GET /api/v1/iban/check-digits?country=BG&bban=… or the MCP tool compute_iban_check_digits computes the check digits and the whole IBAN.
Other 22-character IBANs
- Bahrain4!a14!c
- Costa Rica4!n14!n
- Georgia2!a16!n
- Germany8!n10!nSEPA
- Ireland4!a6!n8!nSEPA
- Montenegro3!n13!n2!nSEPA
- Serbia3!n13!n2!nSEPA
- United Kingdom4!a6!n8!nSEPA
- Vatican City State3!n15!nSEPA
The same length doesn’t mean the same structure: compare the BBAN formats. All IBAN formats and lengths
Source: the SWIFT IBAN Registry (ISO 13616), transcribed and checked against each country’s registry example; the positions of bank and branch codes are given only where the registry’s are well established. The SWIFT IBAN Registry is the authority. Informational only.