Razorpay IFSC

App · Payments & Billing · 7 actions

Look up any Indian bank branch from its IFSC code, using Razorpay's free copy of the Reserve Bank's directory. Turn a code into the bank, branch, address, phone number, MICR and SWIFT codes, and which of NEFT, RTGS, IMPS and UPI the branch is enabled for, so a workflow can show somebody where a payment is going or check that a transfer method will work before attempting it. Check a whole column of codes before a payout run and get the bad rows back by name, with a code that is mistyped kept apart from one that names a branch which no longer exists. Or work the other way and find the code: search by bank, state and city, or narrow a bank down through the states, districts and branches it actually has. Every action reads: nothing here changes anything. No account or API key required.

Actions

ActionWhat it does
Check an IFSC codeAnswer yes or no for one IFSC code, and say why when the answer is no. Nothing fails this step: it is meant to be pointed at whatever somebody typed into a form or a spreadsheet, so an empty field or a line of nonsense is a result rather than an error.
Check several IFSC codesCheck a whole column of bank details in one step, and get back the bad rows by name.
Find branchesSearch the directory for branches when you have the bank and the place but not the code: every HDFC branch in Bangalore, or the one branch of a co-operative bank in a particular city.
List a bank's branches in a districtThe names of every branch one bank has in one district.
List a bank's districts in a stateThe districts one bank has branches in, inside one state.
List the states a bank is inFind out where a bank operates: every state and union territory it has a branch in.
Look up an IFSC codeTurn an IFSC code into the branch it names: the bank, the branch, its address, its phone number, its MICR and SWIFT codes, and which of NEFT, RTGS, IMPS and UPI it is enabled for.

Check an IFSC code

Answer yes or no for one IFSC code, and say why when the answer is no. Nothing fails this step: it is meant to be pointed at whatever somebody typed into a form or a spreadsheet, so an empty field or a line of nonsense is a result rather than an error. It keeps the two ways of being wrong apart, which the directory's own API cannot: a code that is misspelled, checked offline against the format the Reserve Bank defines, and a code that is spelled perfectly for a branch that is not there. The reason it gives back is written to be shown to whoever typed it. When the code is good it also comes back with the bank, branch and city, which is what a confirmation screen needs. No account or API key required.

Inputs

IFSC codeifsctextRequired
The code to check, exactly as it was given to you. It does not have to be well formed, or even present: this step is here to tell you whether it is.

Outputs

banktext
The bank, when the code is valid.
bank_codetext
The bank's four-letter code, when the code is valid.
branchtext
The branch name, when the code is valid.
citytext
The city, when the code is valid.
existstrue/false
Whether the directory has a branch with this code.
giventext
The code exactly as typed.
ifsctext
The code that was checked, cleaned of spacing.
reasontext
Why it is not valid, in words that can be shown to whoever typed it. Empty when it is valid.
statetext
The state, when the code is valid.
summarytext
The bank, branch and city in one line, to show somebody confirming the account.
validtrue/false
True only when the code is well formed and the directory has the branch. This is the field to branch on.
well_formedtrue/false
Whether it is spelled like an IFSC code at all: eleven characters, four letters, then a '0', then six more.
Example output
{
  "bank": "HDFC Bank",
  "bank_code": "HDFC",
  "branch": "TULSIANI CHMBRS - NARIMAN PT",
  "city": "GREATER MUMBAI",
  "exists": true,
  "given": "HDFC 0000001",
  "ifsc": "HDFC0000001",
  "reason": "",
  "state": "MAHARASHTRA",
  "summary": "HDFC Bank - TULSIANI CHMBRS - NARIMAN PT, GREATER MUMBAI",
  "valid": true,
  "well_formed": true
}

Check several IFSC codes

Check a whole column of bank details in one step, and get back the bad rows by name. This is the pre-flight before a payout run, a vendor import or a payroll upload: paste the codes, one a line, and the step reports how many are good, which are not IFSC codes at all, and which are spelled correctly for branches that do not exist. No single bad code can fail it, and 'all valid' is there to branch on so a workflow can stop before it moves money. A code repeated down the list is looked up once. If the directory itself cannot be reached the step does fail, deliberately: marking a hundred accounts 'not found' because a service is down is the one wrong answer here. No account or API key required.

Inputs

IFSC codesifsc_codeslistRequired
The codes to check, one on each line, or a list from an earlier step. Up to 100 in a step; each one is its own request to the directory, so a longer list belongs in a loop. Spacing, hyphens and lower case are all fine.

Outputs

all_validtrue/false
True when every code was found. The field to branch on before a payout run.
checkednumber
How many codes were checked.
found_countnumber
How many were found in the directory.
invalid_codeslist
The codes that are not IFSC codes, as they were given.
invalid_countnumber
How many are not IFSC codes at all.
missing_codeslist
The well-formed codes the directory does not have.
missing_countnumber
How many were spelled correctly but are not in the directory.
resultslist
One row per code, in the order they were given.
Example output
{
  "all_valid": false,
  "checked": 3,
  "found_count": 2,
  "invalid_codes": [
    "HDFC000001"
  ],
  "invalid_count": 1,
  "missing_codes": [],
  "missing_count": 0,
  "results": [
    {
      "branch": {
        "address": "101-104 TULSIANI CHAMBERS FREE PRESS JOURNAL MARG NARIMAN POINT MUMBAI MAHARASHTRA 400 021",
        "bank": "HDFC Bank",
        "bank_code": "HDFC",
        "branch": "TULSIANI CHMBRS - NARIMAN PT",
        "centre": "MUMBAI",
        "city": "GREATER MUMBAI",
        "contact": "+919890603333",
        "district": "MUMBAI",
        "ifsc": "HDFC0000001",
        "ifsc_bank_code": "HDFC",
        "imps": true,
        "is_sublet": false,
        "micr": "400240003",
        "neft": true,
        "payment_systems": [
          "NEFT",
          "RTGS",
          "IMPS",
          "UPI"
        ],
        "rtgs": true,
        "state": "MAHARASHTRA",
        "state_code": "IN-MH",
        "summary": "HDFC Bank - TULSIANI CHMBRS - NARIMAN PT, GREATER MUMBAI",
        "swift": "HDFCINBB",
        "upi": true
      },
      "found": true,
      "given": "HDFC0000001",
      "ifsc": "HDFC0000001",
      "reason": "",
      "valid": true,
      "well_formed": true
    },
    {
      "branch": {
        "address": "720, NEAR GHANTAGHAR, SUBZI MANDI, DELHI - 110007",
        "bank": "Delhi Nagrik Sehkari Bank",
        "bank_code": "DENS",
        "branch": "Delhi Nagrik Sehkari Bank IMPS",
        "centre": "DELHI",
        "city": "MUMBAI",
        "contact": "+919560344685",
        "district": "DELHI",
        "ifsc": "YESB0DNB002",
        "ifsc_bank_code": "YESB",
        "imps": true,
        "is_sublet": true,
        "micr": "110196002",
        "neft": true,
        "payment_systems": [
          "NEFT",
          "RTGS",
          "IMPS",
          "UPI"
        ],
        "rtgs": true,
        "state": "MAHARASHTRA",
        "state_code": "IN-MH",
        "summary": "Delhi Nagrik Sehkari Bank IMPS, MUMBAI",
        "swift": "",
        "upi": true
      },
      "found": true,
      "given": "YESB0DNB002",
      "ifsc": "YESB0DNB002",
      "reason": "",
      "valid": true,
      "well_formed": true
    },
    {
      "branch": {
        "address": "",
        "bank": "",
        "bank_code": "",
        "branch": "",
        "centre": "",
        "city": "",
        "contact": "",
        "district": "",
        "ifsc": "",
        "ifsc_bank_code": "",
        "imps": false,
        "is_sublet": false,
        "micr": "",
        "neft": false,
        "payment_systems": [],
        "rtgs": false,
        "state": "",
        "state_code": "",
        "summary": "",
        "swift": "",
        "upi": false
      },
      "found": false,
      "given": "HDFC000001",
      "ifsc": "HDFC000001",
      "reason": "'HDFC000001' is 10 characters long once spacing is removed, and an IFSC code is 11: four letters for the bank, a '0', then six for the branch, as in HDFC0000001.",
      "valid": false,
      "well_formed": false
    }
  ]
}

Find branches

Search the directory for branches when you have the bank and the place but not the code: every HDFC branch in Bangalore, or the one branch of a co-operative bank in a particular city. Each result is a full branch record with its IFSC code on it, so this is the step that produces the code the other actions consume. Results come back a page at a time, up to a hundred, and the result says how many matched in total and what to set 'Skip' to for the next page. The directory matches these filters exactly, which is a trap worth knowing about: it stores every city and district in capitals, so a city typed in ordinary case matches nothing at all. This step folds them for you, and takes a state as a name, a code or a two-letter abbreviation. A branch name is the one filter that cannot be folded, because some are genuinely mixed case; take those from 'List a bank's branches in a district'. No account or API key required.

Inputs

Bankbank_codetext
The bank, as the four letters its IFSC codes start with, or any whole IFSC code from that bank. Leave it empty to search every bank.
Statestatetext
Only branches in this state or union territory. 'Karnataka', 'KA' and 'IN-KA' all work. Leave it empty for the whole country.
Citycitytext
Only branches in this city. The directory matches it exactly, so this has to be the city it files the branch under rather than the one you would say out loud: HDFC's Nariman Point branch is in 'GREATER MUMBAI', and its AGS Employees branch is in 'BANGALORE URBAN', not 'BANGALORE'. Case does not matter. A search that comes back empty is usually this.
Branch namebranchtext
Only the branch with exactly this name. Case matters here and nowhere else in this step, because 1,298 branch names are not in capitals. Take the name from 'List a bank's branches in a district', which spells them the way the directory does.
How many brancheslimitnumber
How many branches to return, from 1 to 100. Twenty five by default. The directory will not send more than a hundred at once; use 'Skip' to page past them.From 1 to 100. Default: 25.
Skipoffsetnumber
How many matching branches to skip before returning any, for paging through a bank with more branches than one step can hold. Each result carries the value to use for the next page.At least 0. Default: 0.

Outputs

bank_codetext
The bank filtered to, if any.
branchtext
The branch name filtered to.
brancheslist
The branches this page returned.
citytext
The city filtered to, in the capitals the directory uses.
countnumber
How many branches came back.
filteredtrue/false
Whether any filter was applied. False means this is simply the front of the whole directory.
filters_usedlist
Which filters were applied, as names.
has_moretrue/false
Whether there are more branches behind this page.
limitnumber
How many branches were asked for.
matched_countnumber
How many branches matched the filters in total, before the page was taken.
next_offsetnumber
The 'Skip' value that returns the next page.
offsetnumber
How many were skipped.
statetext
The state filtered to, if any.
state_codetext
That state's ISO code, which is what was sent.
Example output
{
  "bank_code": "HDFC",
  "branch": "",
  "branches": [
    {
      "address": "101-104 TULSIANI CHAMBERS FREE PRESS JOURNAL MARG NARIMAN POINT MUMBAI MAHARASHTRA 400 021",
      "bank": "HDFC Bank",
      "bank_code": "HDFC",
      "branch": "TULSIANI CHMBRS - NARIMAN PT",
      "centre": "MUMBAI",
      "city": "GREATER MUMBAI",
      "contact": "+919890603333",
      "district": "MUMBAI",
      "ifsc": "HDFC0000001",
      "ifsc_bank_code": "HDFC",
      "imps": true,
      "is_sublet": false,
      "micr": "400240003",
      "neft": true,
      "payment_systems": [
        "NEFT",
        "RTGS",
        "IMPS",
        "UPI"
      ],
      "rtgs": true,
      "state": "MAHARASHTRA",
      "state_code": "IN-MH",
      "summary": "HDFC Bank - TULSIANI CHMBRS - NARIMAN PT, GREATER MUMBAI",
      "swift": "HDFCINBB",
      "upi": true
    }
  ],
  "city": "GREATER MUMBAI",
  "count": 1,
  "filtered": true,
  "filters_used": [
    "bank",
    "state",
    "city"
  ],
  "has_more": false,
  "limit": 25,
  "matched_count": 1,
  "next_offset": 1,
  "offset": 0,
  "state": "MAHARASHTRA",
  "state_code": "IN-MH"
}

List a bank's branches in a district

The names of every branch one bank has in one district. The last step of narrowing a branch down, and the one that makes 'Find branches' usable: the names come back spelled exactly as the directory spells them, which is what its branch filter needs and what nobody can guess, since some are in capitals and some are not. Pick a name here, pass it to Find branches, and you have the IFSC code. No account or API key required.

Inputs

Bankbank_codetextRequired
The bank, as the four letters its IFSC codes start with: HDFC, SBIN, ICIC, UTIB for Axis, KKBK for Kotak. Nobody memorises these, so any whole IFSC code from the bank works too and the four letters are taken from it. One caution: on a sublet branch those four letters name the bank whose code is being borrowed rather than the bank using it, so YESB0DNB002 asks about YES Bank. Look the code up first if you need the bank that actually holds the account.
StatestatetextRequired
The state or union territory. The list offers the ones this bank actually has branches in, and anything can be typed instead: 'Maharashtra', 'MH' and 'IN-MH' all name the same state. The directory itself filters on the ISO code only, so a name typed straight into its API matches nothing; here either spelling works.
DistrictdistricttextRequired
The district, as the directory spells it. The list offers the districts this bank is in within the chosen state, and any other can be typed. Case does not matter.

Outputs

bank_codetext
The bank that was asked about.
brancheslist
The branch names, alphabetically, spelled exactly as the directory does so they can be passed straight to Find branches.
countnumber
How many came back.
districttext
The district that was asked about.
statetext
The state that was asked about.
state_codetext
That state's ISO code.
Example output
{
  "bank_code": "AUBL",
  "branches": [
    "AB Road Indore",
    "Barlai Jagir",
    "INDORE JAWAHAR MARG",
    "MG ROAD INDORE"
  ],
  "count": 4,
  "district": "INDORE",
  "state": "MADHYA PRADESH",
  "state_code": "IN-MP"
}

List a bank's districts in a state

The districts one bank has branches in, inside one state. The second step of narrowing a branch down: pick the bank, pick the state, and this is what is left to choose from. The state can be given as a name, a code or a two-letter abbreviation, and the dropdown offers the states this particular bank is actually in rather than all 36. No account or API key required.

Inputs

Bankbank_codetextRequired
The bank, as the four letters its IFSC codes start with: HDFC, SBIN, ICIC, UTIB for Axis, KKBK for Kotak. Nobody memorises these, so any whole IFSC code from the bank works too and the four letters are taken from it. One caution: on a sublet branch those four letters name the bank whose code is being borrowed rather than the bank using it, so YESB0DNB002 asks about YES Bank. Look the code up first if you need the bank that actually holds the account.
StatestatetextRequired
The state or union territory. The list offers the ones this bank actually has branches in, and anything can be typed instead: 'Maharashtra', 'MH' and 'IN-MH' all name the same state. The directory itself filters on the ISO code only, so a name typed straight into its API matches nothing; here either spelling works.

Outputs

bank_codetext
The bank that was asked about.
countnumber
How many came back.
districtslist
The districts, alphabetically, in capitals.
statetext
The state that was asked about.
state_codetext
That state's ISO code.
Example output
{
  "bank_code": "AUBL",
  "count": 3,
  "districts": [
    "INDORE",
    "RATLAM",
    "UJJAIN"
  ],
  "state": "MADHYA PRADESH",
  "state_code": "IN-MP"
}

List the states a bank is in

Find out where a bank operates: every state and union territory it has a branch in. This is the first step of narrowing down a branch when all you have is the bank, and it is how you tell a bank with 22 states behind it from a co-operative that only exists in one district. Each state comes back twice over, as the name the directory prints and as the ISO code its own filters require. The two are not interchangeable, and passing the name back to the directory returns an empty list rather than an error, which is why this drill-down is easy to get wrong by hand. No account or API key required.

Inputs

Bankbank_codetextRequired
The bank, as the four letters its IFSC codes start with: HDFC, SBIN, ICIC, UTIB for Axis, KKBK for Kotak. Nobody memorises these, so any whole IFSC code from the bank works too and the four letters are taken from it. One caution: on a sublet branch those four letters name the bank whose code is being borrowed rather than the bank using it, so YESB0DNB002 asks about YES Bank. Look the code up first if you need the bank that actually holds the account.

Outputs

bank_codetext
The bank that was asked about.
countnumber
How many came back.
giventext
What was typed into the bank field.
state_codeslist
Just the codes, ready to loop over.
state_nameslist
Just the names, for a message or a list.
stateslist
The states, alphabetically, each with both spellings.
Example output
{
  "bank_code": "AUBL",
  "count": 3,
  "given": "AUBL",
  "state_codes": [
    "IN-GJ",
    "IN-KA",
    "IN-MH"
  ],
  "state_names": [
    "GUJARAT",
    "KARNATAKA",
    "MAHARASHTRA"
  ],
  "states": [
    {
      "code": "IN-GJ",
      "name": "GUJARAT"
    },
    {
      "code": "IN-KA",
      "name": "KARNATAKA"
    },
    {
      "code": "IN-MH",
      "name": "MAHARASHTRA"
    }
  ]
}

Look up an IFSC code

Turn an IFSC code into the branch it names: the bank, the branch, its address, its phone number, its MICR and SWIFT codes, and which of NEFT, RTGS, IMPS and UPI it is enabled for. This is the step behind showing somebody which account they are about to pay, filling a vendor record from one field, or checking that a transfer method will work before attempting it. The code can be pasted however it was written down, in any case and with spaces or hyphens in it. Two things worth knowing: a code that is not an IFSC code at all fails the step, because a lookup with nothing to look up has nothing to report, so point 'Check an IFSC code' at anything typed by hand; and one branch in a thousand is a sublet, where a small bank operates on a large bank's code, in which case the bank named here is the one holding the account and not the one the code begins with. No account or API key required.

Inputs

IFSC codeifsctextRequired
The eleven-character code for the branch, such as HDFC0000001. Spacing, hyphens and lower case are all fine: 'hdfc 0000001' and 'HDFC-0000001' name the same branch.

Outputs

branchobject
The branch, or a record of empty fields when there was none.
foundtrue/false
Whether the directory has this branch.
giventext
The code exactly as typed.
ifsctext
The code that was looked up, cleaned of spacing and separators.
Example output
{
  "branch": {
    "address": "101-104 TULSIANI CHAMBERS FREE PRESS JOURNAL MARG NARIMAN POINT MUMBAI MAHARASHTRA 400 021",
    "bank": "HDFC Bank",
    "bank_code": "HDFC",
    "branch": "TULSIANI CHMBRS - NARIMAN PT",
    "centre": "MUMBAI",
    "city": "GREATER MUMBAI",
    "contact": "+919890603333",
    "district": "MUMBAI",
    "ifsc": "HDFC0000001",
    "ifsc_bank_code": "HDFC",
    "imps": true,
    "is_sublet": false,
    "micr": "400240003",
    "neft": true,
    "payment_systems": [
      "NEFT",
      "RTGS",
      "IMPS",
      "UPI"
    ],
    "rtgs": true,
    "state": "MAHARASHTRA",
    "state_code": "IN-MH",
    "summary": "HDFC Bank - TULSIANI CHMBRS - NARIMAN PT, GREATER MUMBAI",
    "swift": "HDFCINBB",
    "upi": true
  },
  "found": true,
  "given": "hdfc0000001",
  "ifsc": "HDFC0000001"
}

On this page