🏦

Bank-kun

Japanese financial institution code lookup API. Search bank and branch codes for free with no usage limits. Regularly updated with National Tax Agency data.

Running since 2015 Developer API bank.teraren.com

Service Overview

Bank-kun is a free API for looking up Japanese financial institution codes (bank codes and branch codes). Since its launch in 2015, it has been used in a wide range of business systems, including accounting systems, payroll systems, and financial apps.

Financial institution codes are essential for bank transfers, direct debits, and other financial transactions in Japan. But they are easy to get wrong when typed by hand, and a single mistake can cause failed transfers and business delays. With Bank-kun, you can instantly retrieve the correct code from a bank or branch name and eliminate input errors.

It covers about 1,400 financial institutions and about 13,000 branches nationwide, including banks, shinkin banks, credit cooperatives, and agricultural cooperatives. It is also linked with the National Tax Agency’s corporate number data to provide highly reliable information.

Why Is It Free?

Looking up financial institution codes is a basic function that many business systems need. Yet paid APIs come with high monthly fees, making them a significant hurdle for small businesses and independent developers.

Guided by our mission to “make people’s experiences simpler and more comfortable through technology,” Teraren believes this kind of basic infrastructure should be free. Bank-kun is completely free so that developers can focus on creating real value.

Main Use Cases

1. Accounting and Bookkeeping Systems

When registering transfer details for business partners, just enter the bank and branch names to automatically retrieve the correct financial institution codes. It lightens the load on accounting staff and prevents transfer mistakes.

2. Payroll Systems

When registering employees’ account information, the accuracy of bank and branch codes is checked automatically. Failed salary transfers are prevented before they happen, helping you keep your employees’ trust.

3. Financial Apps and Fintech Services

When users register a bank account, they only need to type part of the bank name to see a narrowed-down list of candidates. An intuitive UI improves the user experience.

4. Account Registration on E-commerce Sites

Makes it easy for sellers and suppliers to choose their bank and branch when registering payout accounts, saving them from searching through a huge list of financial institutions.

How to Use It

Search by Bank Name

// JavaScript (Fetch API)
const bankName = 'みずほ';

fetch(`https://bank.teraren.com/banks.json?name=${encodeURIComponent(bankName)}`)
  .then(response => response.json())
  .then(data => {
    console.log(data);
    // [
    //   {
    //     "code": "0001",
    //     "name": "みずほ銀行",
    //     "kana": "ミズホ"
    //   }
    // ]
  });

Search Branches by Bank Code

const bankCode = '0001';

fetch(`https://bank.teraren.com/banks/${bankCode}/branches.json`)
  .then(response => response.json())
  .then(data => {
    console.log(data);
    // [
    //   {
    //     "code": "001",
    //     "name": "東京営業部",
    //     "kana": "トウキヨウ",
    //     "address": "東京都千代田区..."
    //   },
    //   ...
    // ]
  });

Fuzzy Search by Branch Name

const bankCode = '0001';
const branchName = '渋谷';

fetch(`https://bank.teraren.com/banks/${bankCode}/branches.json?name=${encodeURIComponent(branchName)}`)
  .then(response => response.json())
  .then(data => {
    console.log(data);
    // [
    //   {
    //     "code": "650",
    //     "name": "渋谷支店",
    //     "kana": "シブヤ",
    //     "address": "東京都渋谷区..."
    //   },
    //   {
    //     "code": "651",
    //     "name": "渋谷中央支店",
    //     "kana": "シブヤチユウオウ",
    //     "address": "東京都渋谷区..."
    //   }
    // ]
  });

React Example

import { useState, useEffect } from 'react';

function BankSelector() {
  const [banks, setBanks] = useState([]);
  const [branches, setBranches] = useState([]);
  const [selectedBank, setSelectedBank] = useState('');
  const [searchQuery, setSearchQuery] = useState('');

  // Fetch bank name suggestions
  useEffect(() => {
    if (searchQuery.length < 2) return;

    const fetchBanks = async () => {
      const response = await fetch(
        `https://bank.teraren.com/banks.json?name=${encodeURIComponent(searchQuery)}`
      );
      const data = await response.json();
      setBanks(data);
    };

    const timer = setTimeout(fetchBanks, 300);
    return () => clearTimeout(timer);
  }, [searchQuery]);

  // Fetch the branch list for the selected bank
  useEffect(() => {
    if (!selectedBank) return;

    const fetchBranches = async () => {
      const response = await fetch(
        `https://bank.teraren.com/banks/${selectedBank}/branches.json`
      );
      const data = await response.json();
      setBranches(data);
    };

    fetchBranches();
  }, [selectedBank]);

  return (
    <div>
      <input
        type="text"
        value={searchQuery}
        onChange={(e) => setSearchQuery(e.target.value)}
        placeholder="Enter a bank name"
      />

      <select onChange={(e) => setSelectedBank(e.target.value)}>
        <option value="">Select a bank</option>
        {banks.map(bank => (
          <option key={bank.code} value={bank.code}>
            {bank.name} ({bank.code})
          </option>
        ))}
      </select>

      {branches.length > 0 && (
        <select>
          <option value="">Select a branch</option>
          {branches.map(branch => (
            <option key={branch.code} value={branch.code}>
              {branch.name} ({branch.code})
            </option>
          ))}
        </select>
      )}
    </div>
  );
}

Response Format

Successful Bank Search (200 OK)

[
  {
    "code": "0001",
    "name": "みずほ銀行",
    "kana": "ミズホ",
    "type": "銀行"
  }
]

Successful Branch Search (200 OK)

[
  {
    "code": "001",
    "name": "東京営業部",
    "kana": "トウキヨウ",
    "address": "東京都千代田区大手町1-5-5",
    "postal_code": "1000004",
    "phone": "03-1234-5678"
  }
]

Data Reliability

Bank-kun uses the following public data sources:

  • Japanese Bankers Association: List of financial institution codes
  • National Tax Agency Corporate Number Publication Site: Up-to-date information on financial institutions
  • Official websites of each financial institution: Branch addresses and phone numbers

When financial institutions merge or branches are consolidated or closed, we usually update the data within two to four weeks. We strive to handle important changes even sooner.

Performance and Infrastructure

  • Cloudflare Workers: Fast responses through edge computing
  • Fuzzy search engine: Supports partial matches and kana searches
  • Cache optimization: Frequently searched banks are returned extremely fast

A custom index structure enables fast searches across data for about 13,000 branches.

Troubleshooting

My search returns no results

  • Search using the bank’s official name (e.g., 三菱UFJ銀行 / MUFG Bank)
  • Former names may not be searchable
  • For financial institutions that have merged, search using the new name

Old branch codes are returned

  • It may take some time for branch consolidation information to be reflected
  • If you need the very latest information, please contact us

Fuzzy search isn’t working

  • Enter at least two characters
  • Katakana, hiragana, and kanji are all supported

Comparison with Competing Services

ItemBank-kunAPI Service AAPI Service B
PriceCompletely freeFrom ¥10,000/monthFree tier (5,000 requests/month)
Financial institutionsAbout 1,400About 1,200About 1,500
BranchesAbout 13,000About 12,000About 14,000
Fuzzy search○○×
AuthenticationNot requiredAPI key requiredOAuth required
Update frequencyMonthlyQuarterlyMonthly

Roadmap

  • Notifications about closures and mergers of financial institutions
  • Historical bank code data
  • SWIFT code support
  • Business hours of financial institutions

We will keep expanding the service so it can be of use to your business. If you have any requests, please feel free to contact us.

Key Features

  • Completely free with unlimited access
  • Covers all financial institutions (about 1,400)
  • Bank and branch code search
  • National Tax Agency data integration
  • JSON responses
  • Fuzzy search support

Technical Details

API endpoint
https://bank.teraren.com/banks.json
Tech stack
Cloudflare WorkersCloudflare KVTypeScriptNational Tax Agency API
Data source

Japanese Bankers Association data and the National Tax Agency Corporate Number Publication Site

Use Cases

💡

Bank code entry assistance in accounting systems

Look up the matching code from a bank or branch name and fill it in automatically. Prevents data-entry mistakes by accounting staff and dramatically improves efficiency.

🚀

Account validation in payroll transfer systems

Instantly verify that the bank and branch codes entered by employees are correct. Prevents transfer errors before they happen and avoids delayed salary payments.

🎯

Bank search in financial apps

Narrow down candidates in real time as users select their bank. An easy-to-use UI that raises customer satisfaction.

Frequently Asked Questions

Which types of financial institutions are supported?

Nearly every financial institution in Japan (about 1,400), including banks, shinkin banks, credit cooperatives, agricultural cooperatives (JA), and Japan Post Bank.

Is fuzzy search available?

Yes. Just enter part of a bank or branch name to narrow down and display candidates.

How often is the data updated?

When financial institutions merge or branches change, we usually update the data within two to four weeks.

Do I need an API key?

No, no API key is required. You can start using it right away.

What is the difference between a bank code and a branch code?

The bank code (4 digits) identifies the financial institution, and the branch code (3 digits) identifies each branch. Together, the 7 digits uniquely identify a branch.

Try Bank-kun Today

Free and unlimited to use. Give it a try.