BIC Validation API

Part of the BIC Validation service. One request checks a BIC / SWIFT code against the official BIC directory licensed from S.W.I.F.T. SCRL and returns the institution behind it: name, branch, address, whether it is a financial institution, whether it is connected to the SWIFT network, and the network services and market infrastructures it takes part in. A second endpoint searches the same directory by institution name and country, for finding the BIC when you only have the bank’s name. Worldwide coverage.

Endpoints

Validate and look up a BIC:

POSThttps://api.iban.com/clients/api/swiftv2/bic/
GEThttps://api.iban.com/clients/api/swiftv2/bic/?api_key=YOUR_API_KEY&format=json&bic=BARCGB22XXX

Search the directory by institution name:

POSThttps://api.iban.com/clients/api/swiftv2/bank/
GEThttps://api.iban.com/clients/api/swiftv2/bank/?api_key=YOUR_API_KEY&format=json&country=US&bank_name=natwest
  • HTTPS only. POST bodies are application/x-www-form-urlencoded; GET takes the same parameters in the query string. Both methods return the same response. JSON bodies are not read.
  • The HTTP status is 200 for every processed request, whether the BIC is valid or not; the outcome is in the body. 403 with the normal JSON or XML structure for an account error (result codes 301–305; 301 recorded, the others follow the same path). 400 with a short plain-text body when a required parameter is missing or format is wrong. 429 when the rate limit is exceeded (HTML page), 500 with an empty body for a malformed parameter.
  • Responses are UTF-8; Content-Type is application/json or application/xml. Directory text is upper case as registered with SWIFT.
  • Typical response time is about 0.1 s for a BIC lookup and 0.1–0.2 s for a name search.
  • A BIC or an institution name is not personal data, so requests to this API and their responses are kept in our server logs.
Your first request
  1. Copy your key from API Access.
  2. Run, with the key in place of YOUR_API_KEY:
curl "https://api.iban.com/clients/api/swiftv2/bic/" -d api_key=YOUR_API_KEY -d format=json -d bic=BARCGB22XXX

The full response to this request is in the Response section; the same request in six more languages is under Example request.

Keeping the key safe
  • Use POST in production. With GET the key is part of the URL and ends up in proxy, load-balancer and web-server access logs; with POST it travels in the request body.
  • Call the API from your server. A key embedded in browser JavaScript or a mobile app can be read from the source or the network traffic.
  • Restrict the key to the IP addresses of your servers under Settings; requests from anywhere else are refused.
  • Keep the key out of source control; load it from an environment variable or a configuration file. A key cannot be regenerated from the client area: if it is exposed, contact support to have it replaced.

Request parameters

Both endpoints take the key and the format; each has its own input. Parameters the endpoint does not know are ignored.

ParameterRequiredValueDescription
api_keyyesstringYour personal key, shown under API Access. Missing: HTTP 400 with a text body; wrong or empty: HTTP 403 with result code 301.
formatyesjson or xmlResponse format, lower case. Missing, empty or any other value (including JSON or XML in upper case) is refused with HTTP 400 and a text body (see Handling errors).
BIC endpoint
ParameterRequiredValueDescription
bicyesstring, 8 or 11 charactersThe BIC to validate. Letters and digits only, in any case (lower case is converted and echoed in upper case). Spaces, hyphens and other characters are not removed: they give result code 801. Any length other than 8 or 11 gives 802. An 8-character BIC is looked up as its head-office record (branch code XXX) and directory_results.bic is returned in the 11-character form. Missing or empty: HTTP 400. When the parameter is sent twice, the last value is used.
Bank endpoint
ParameterRequiredValueDescription
bank_nameyesstring, at least 3 charactersPart of the institution name, matched case-insensitively as a substring of the name in the directory (barclays finds BARCLAYS BANK PLC and its branches). Letters, digits and spaces are accepted; full stops, hyphens and apostrophes pass the check and are then matched literally (j.p. morgan finds J.P. Morgan records, wells-fargo finds nothing); accented and other non-ASCII letters give 806. The value is used exactly as sent: leading or trailing spaces and double spaces find nothing (808), so trim it. Fewer than 3 characters: 806. Missing: HTTP 400.
countryyesstring, 2 lettersISO 3166-1 alpha-2 code of the country of the institution, in any case. Anything other than two letters gives 807; two letters that are not a country (UK, XX) find nothing (808). Missing: HTTP 400.
citynostringNarrows the search to records whose city contains the value (case-insensitive substring: lond matches LONDON). Echoed in query when sent. A city that matches nothing gives 808. Cannot be used without bank_name.
limitnointeger, 1 to 100Maximum number of records to return. Default 10, maximum 100 (larger values are capped). A value that is not a positive integer (0, -1, abc) is ignored and the default applies; 5.5 is read as 5. There is no paging: records beyond the first 100 cannot be retrieved, so narrow the search with city or a longer name when records_found is above 100.

Example request

Every example validates the same BIC, BARCGB22XXX (Barclays Bank PLC, head office); its response is shown in the next section. Replace YOUR_API_KEY with the key from API Access.

curl "https://api.iban.com/clients/api/swiftv2/bic/" \
  -d api_key=YOUR_API_KEY \
  -d format=json \
  -d bic=BARCGB22XXX

The bank endpoint takes the same form; the search in the Bank name search section:

curl "https://api.iban.com/clients/api/swiftv2/bank/" \
  -d api_key=YOUR_API_KEY \
  -d format=json \
  -d country=US \
  -d bank_name=natwest

Response

A BIC endpoint response has five members after query: bic_valid, bic_active, directory_results, services and error, in that order in both formats. The response to the example request:

{
   "query": {
      "bic": "BARCGB22XXX",
      "success": true
   },
   "bic_valid": true,
   "bic_active": true,
   "directory_results": {
      "bic": "BARCGB22XXX",
      "bic8": "BARCGB22",
      "bic_branch": "XXX",
      "institution": "FINANCIAL",
      "name": "BARCLAYS BANK PLC",
      "branch_name": "ALL U.K. OFFICES",
      "office": "HEAD OFFICE",
      "address": "1 CHURCHILL PLACE",
      "city": "LONDON",
      "zip": "E14 5HP",
      "country_name": "UNITED KINGDOM",
      "iso_country_code": "GB"
   },
   "services": [
      {
         "code": "FIN",
         "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
      },
      {
         "code": "SCO",
         "description": "SCORE FIN"
      }
   ],
   "error": {}
}
FieldTypeDescription
query.bicstringThe BIC as received, converted to upper case. Empty in the response to an account error (301–305).
query.successbooleantrue when the request was processed, including when the BIC failed validation (801–803); false only for account errors.
bic_validbooleantrue when the BIC has the right form and exists in the directory; false for 801, 802 and 803.
bic_activebooleantrue when the directory marks the BIC as connected to the SWIFT network. false for a BIC that exists but is not connected: passive participants (8th character 1, such as UNCRITM1) and institutions that have been disconnected from the network. An active BIC can still have an empty services list. Also false whenever bic_valid is false.
directory_resultsobjectThe directory record, twelve fields (below). An empty object in JSON and an empty element in XML when the BIC was not found.
servicesarrayThe SWIFT network services and market infrastructures the BIC takes part in, each with code (3 characters) and description. Empty when the BIC has none or was not found. Codes are listed under Service codes.
errorobjectEmpty ({} in JSON, empty code and message elements in XML) when the BIC was found. Otherwise code (a three-digit string, "803") and message. See Result codes.
directory_results
FieldDescription
bicThe BIC of the record, always 11 characters (BARCGB22XXX for an 8-character request).
bic8The first eight characters: institution, country and location codes.
bic_branchThe branch code, three characters; XXX for the head office record.
institutionFINANCIAL or NONFINANCIAL (a corporate with its own BIC, such as VODAGB2L).
nameName of the institution as registered with SWIFT, upper case.
branch_nameName of the branch or department; often empty, and HEAD OFFICE for some head-office branch codes.
officeHEAD OFFICE or BRANCH, the office type of the record. A passive or disconnected BIC can be registered as BRANCH even with branch code XXX.
addressStreet address; empty when the directory has none.
cityCity; may be empty.
zipPostal code; may be empty.
country_nameCountry name, upper case.
iso_country_codeISO 3166-1 alpha-2 code, the same as characters 5–6 of the BIC.
Valid but not connected

UniCredit’s passive BIC UNCRITM1 (8th character 1): it is in the directory, so bic_valid is true, but it is not connected to the network and has no services:

{
   "query": {
      "bic": "UNCRITM1",
      "success": true
   },
   "bic_valid": true,
   "bic_active": false,
   "directory_results": {
      "bic": "UNCRITM1XXX",
      "bic8": "UNCRITM1",
      "bic_branch": "XXX",
      "institution": "FINANCIAL",
      "name": "UNICREDIT S.P.A.",
      "branch_name": "",
      "office": "BRANCH",
      "address": "",
      "city": "",
      "zip": "",
      "country_name": "ITALY",
      "iso_country_code": "IT"
   },
   "services": [],
   "error": {}
}
Non-financial institution

A corporate BIC, VODAGB2L:

{
   "query": {
      "bic": "VODAGB2L",
      "success": true
   },
   "bic_valid": true,
   "bic_active": true,
   "directory_results": {
      "bic": "VODAGB2LXXX",
      "bic8": "VODAGB2L",
      "bic_branch": "XXX",
      "institution": "NONFINANCIAL",
      "name": "VODAFONE GROUP SERVICES LTD",
      "branch_name": "",
      "office": "HEAD OFFICE",
      "address": "VODAFONE HOUSE, THE CONNECTION",
      "city": "NEWBURY",
      "zip": "RG14 2FN",
      "country_name": "UNITED KINGDOM",
      "iso_country_code": "GB"
   },
   "services": [
      {
         "code": "FIN",
         "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
      },
      {
         "code": "SCO",
         "description": "SCORE FIN"
      }
   ],
   "error": {}
}
Branch code

An 11-character BIC with a branch code, CRESCHZZ80A. Institution names follow the directory: the former Credit Suisse BIC is now registered to UBS Switzerland AG, and BEARUS33 to J.P. Morgan Securities LLC, so do not assume a BIC’s owner from its letters:

{
   "query": {
      "bic": "CRESCHZZ80A",
      "success": true
   },
   "bic_valid": true,
   "bic_active": true,
   "directory_results": {
      "bic": "CRESCHZZ80A",
      "bic8": "CRESCHZZ",
      "bic_branch": "80A",
      "institution": "FINANCIAL",
      "name": "UBS SWITZERLAND AG (FORMERLY CREDIT SUISSE)",
      "branch_name": "HEAD OFFICE",
      "office": "BRANCH",
      "address": "PARADEPLATZ",
      "city": "ZUERICH",
      "zip": "8001",
      "country_name": "SWITZERLAND",
      "iso_country_code": "CH"
   },
   "services": [
      {
         "code": "EB+",
         "description": "EBA CLEARING - EURO1/STEP1 REACHABLE INSTITUTIONS"
      },
      {
         "code": "FIN",
         "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
      },
      {
         "code": "TG+",
         "description": "TARGET2 INDIRECT PARTICIPANTS AND ADDRESSABLE BICS"
      }
   ],
   "error": {}
}
BIC not found

Result code 803; directory_results and services are empty. 801 and 802 have the same shape with their own code and message:

{
   "query": {
      "bic": "ZZZZZZ99XXX",
      "success": true
   },
   "bic_valid": false,
   "bic_active": false,
   "directory_results": {},
   "services": [],
   "error": {
      "code": "803",
      "message": "BIC Code not found in directory."
   }
}
Account error

HTTP 403, result code 301 shown; 302 to 305 have the same shape with the messages from the code table. query.bic is empty and query.success is false:

{
   "query": {
      "bic": "",
      "success": false
   },
   "bic_valid": false,
   "bic_active": false,
   "directory_results": {},
   "services": [],
   "error": {
      "code": "301",
      "message": "API Key is invalid"
   }
}

Bank name search

The bank endpoint finds every record whose institution name contains bank_name in the given country, optionally narrowed by city, and returns up to limit of them (default 10, maximum 100). Each record carries the twelve directory fields, its own bic_active flag and its own services. The search for natwest in the United States, four records:

{
   "query": {
      "country": "US",
      "bank_name": "natwest",
      "success": true
   },
   "records_found": 4,
   "records_displayed": 10,
   "directory_results": [
      {
         "bic": "RBOSUS3GXXX",
         "bic8": "RBOSUS3G",
         "bic_branch": "XXX",
         "institution": "FINANCIAL",
         "name": "NATWEST MARKETS SECURITIES INC.",
         "branch_name": "",
         "bic_active": true,
         "office": "BRANCH",
         "address": "600 WASHINGTON BLVD",
         "city": "STAMFORD,CT",
         "zip": "06901",
         "country_name": "UNITED STATES OF AMERICA",
         "iso_country_code": "US",
         "services": [
            {
               "code": "FIN",
               "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
            }
         ]
      },
      {
         "bic": "GRNWUS33FUT",
         "bic8": "GRNWUS33",
         "bic_branch": "FUT",
         "institution": "FINANCIAL",
         "name": "NATWEST MARKETS SECURITIES INC.",
         "branch_name": "FUTURES",
         "bic_active": true,
         "office": "BRANCH",
         "address": "600 WASHINGTON BLVD",
         "city": "STAMFORD,CT",
         "zip": "06901",
         "country_name": "UNITED STATES OF AMERICA",
         "iso_country_code": "US",
         "services": [
            {
               "code": "FIN",
               "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
            }
         ]
      },
      {
         "bic": "GRNWUS3EXXX",
         "bic8": "GRNWUS3E",
         "bic_branch": "XXX",
         "institution": "FINANCIAL",
         "name": "NATWEST MARKETS SECURITIES INC.",
         "branch_name": "",
         "bic_active": true,
         "office": "BRANCH",
         "address": "600 WASHINGTON BLVD",
         "city": "STAMFORD,CT",
         "zip": "06901",
         "country_name": "UNITED STATES OF AMERICA",
         "iso_country_code": "US",
         "services": [
            {
               "code": "FIN",
               "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
            }
         ]
      },
      {
         "bic": "GRNWUS33XXX",
         "bic8": "GRNWUS33",
         "bic_branch": "XXX",
         "institution": "FINANCIAL",
         "name": "NATWEST MARKETS SECURITIES INC.",
         "branch_name": "",
         "bic_active": true,
         "office": "HEAD OFFICE",
         "address": "600 WASHINGTON BLVD",
         "city": "STAMFORD,CT",
         "zip": "06901",
         "country_name": "UNITED STATES OF AMERICA",
         "iso_country_code": "US",
         "services": [
            {
               "code": "FIN",
               "description": "MANY-TO-MANY FIN PAYMENT SERVICE"
            }
         ]
      }
   ],
   "error": {}
}
FieldTypeDescription
queryobjectcountry and bank_name as received (case is kept; a country value longer than two characters is cut to two; an apostrophe is echoed with a backslash before it), success, and city when it was sent. success is false for 806, 807, 808 and the account errors.
records_foundintegerNumber of records that match the search, before limit is applied; with city it counts the filtered records. 0 with result code 808.
records_displayedintegerThe limit in effect (the limit sent, capped at 100, or 10), not the number of records returned: a search with four matches and the default limit reports 10. Count directory_results instead. 0 on an error.
directory_resultsarrayThe matching records, each with the twelve directory fields above plus bic_active and its own services array. Empty on an error. In XML each record is a record element; there bic_active is the numeric flag 1 for connected, the services element of a record is empty even when JSON lists services, and the response carries top-level bic_valid, bic_active and services elements that have no meaning for a search. Use JSON when you need the services of a record.
errorobjectAs on the BIC endpoint: empty on success, code and message otherwise.
No records

Result code 808, query.success false. 806 and 807 have the same shape:

{
   "query": {
      "country": "US",
      "bank_name": "zzzzqqqqxx",
      "success": false
   },
   "records_found": 0,
   "records_displayed": 0,
   "directory_results": [],
   "error": {
      "code": "808",
      "message": "No records found in directory."
   }
}

Records are returned in the directory’s own order, which is not alphabetical; sort them yourself. A search without country or without bank_name is refused with HTTP 400, and bic is not accepted on this endpoint: validate a BIC you found with the BIC endpoint.

Result codes

A result code is a three-digit string in error.code. 8xx codes come with HTTP 200 and describe the input; 3xx codes come with HTTP 403 and describe the account.

BIC endpoint
CodeMessageMeaning
801Invalid characters in BIC.A character other than a letter or digit, including a space or hyphen.
802Incorrect BIC Length. Accepted BIC length 8 or 11 charactersThe value has a length other than 8 or 11.
803BIC Code not found in directory.Well-formed, but not in the current directory: never issued, deleted, or a test BIC (8th character 0).
Bank endpoint
CodeMessageMeaning
806Bank Name Invalid! Bank search should be minimum of 3 characters. Allowed characters a-z, A-Z, 0-9, space!bank_name is shorter than three characters or contains characters outside the allowed set (accented letters, for instance).
807Country code incorrect! Allowed is 2 letter country code. Example: UK, DE, FRcountry is not exactly two letters.
808No records found in directory.Nothing matches the name, country and city sent.
Account errors

HTTP 403, both endpoints. No lookup is performed.

CodeMessageWhat to do
301API Key is invalidCopy the key exactly as shown under API Access; an empty key gives the same answer.
302Subscription expiredRenew the BIC Validation service under My Services.
303No queries availableBIC Validation plans have no query limit, so this code is not expected; contact support if you see it.
304You have no access to this APIThe BIC Validation service is not active on this account.
305IP Address not allowedThe key is restricted to certain IP addresses; add the calling server's address under Settings.
Request errors

HTTP 400 with a plain-text body (text/html), both endpoints. There is no result code; match on the status.

BodyCause
Bad Request: Missing 'api_key' or 'format' parameter valuesapi_key or format is missing. Also the answer to a JSON body, which is not read.
Bad Request: Invalid 'format' parameter valueformat is empty or not exactly json or xml.
Bad Requestbic missing or empty (BIC endpoint); bank_name or country missing (bank endpoint).

Handling errors

What each outcome means for your code. Lookups are deterministic for a given input; the directory itself changes with each SWIFTRef release, so if you cache responses, give the cache a limited lifetime.

SituationMeaningWhat to do
HTTP 400, text bodyA required parameter is missing or format is wrong. The body is plain text, not JSON or XML.Fix the request. Do not retry it unchanged.
HTTP 403, result code 301 or 304The key is wrong, or the BIC Validation service is not on the account. The body has the normal structure with the error object filled and query emptied.Stop sending; every request will fail the same way. Check the key under API Access, or contact support for 304.
HTTP 403, result code 302 or 303The BIC Validation service has expired (302); 303 is not expected on an unlimited plan.Stop sending and alert whoever handles the subscription; renew under My Services, or contact support for 303.
HTTP 403, result code 305The calling address is not on the key’s IP allow-list.Add the address under Settings, then resend.
HTTP 429, HTML bodyMore than 20 requests per second. The request was rejected by the web server before reaching the API and was not processed.Wait a moment and resend; lower the sending rate. Safe to retry. There is no Retry-After header.
HTTP 500, empty bodyA parameter was sent in a form the API cannot read, such as bic[].Send plain string parameters.
HTTP 5xx, timeout, connection errorTemporary problem on the way to the API or on the API itself.Retry with increasing delays (1 s, 2 s, 4 s, then give up and queue). A request that got no response may still have been processed.
HTTP 200, result code 801–803 or 806–808The request was fine; the BIC or the search terms are not.Do not retry: the same input gives the same result. Show the user the message, log the code.

Reading the result

  • A BIC is usable for a payment when bic_valid and bic_active are both true. bic_valid alone means the code exists in the directory; a valid but inactive BIC (passive participant, disconnected institution) cannot receive SWIFT messages.
  • Decide on the two flags and error.code, not on HTTP status or on the presence of directory_results.
  • Send the BIC without spaces or separators; the API does not clean the input. Lower case is fine.
  • An 8-character BIC is answered with the head-office record. If you need a particular branch, send the 11-character BIC; a branch code the directory does not know gives 803.
  • Check institution when the payee should be a bank: NONFINANCIAL records are corporates with their own BIC.
  • For euro payments, a service code TGT, TG+, EBA, EB+ or ERP tells you how the institution is reached in TARGET2 or EURO1/STEP1; STG is CHAPS in the UK. The lists are per BIC and can be empty for an active institution.
  • The name search is a substring match on the registered name, which is often the legal name (BARCLAYS BANK PLC; HONGKONG AND SHANGHAI BANKING CORPORATION LIMITED, THE for HSBC Hong Kong): search for the shortest distinctive word (hsbc finds 27 records in HK) rather than the full brand, and trim the input.
  • Count directory_results; do not rely on records_displayed.

Service codes

Every entry in a services array carries its description, so you do not need this table to display a result. It lists the codes the directory can return: SWIFT network services and the EU-wide infrastructures first, then national market infrastructures by country.

Show all 147 service codes
CodeServiceCountry
ABEEBA CLEARING - EURO1/STEP1 (EBA)network / EU
EB+EBA CLEARING - EURO1/STEP1 REACHABLE INSTITUTIONSnetwork / EU
EBAEBA CLEARING - EURO1network / EU
ERPEBA CLEARING - STEP1network / EU
FINMANY-TO-MANY FIN PAYMENT SERVICEnetwork / EU
MACFinancial institution restricted to a Member-Administered Closed User Group (MA-CUG)network / EU
SCOSCORE FINnetwork / EU
TG+TARGET2 INDIRECT PARTICIPANTS and addressable BICsnetwork / EU
TGTTARGET2 DIRECT PARTICIPANTSnetwork / EU
RPDRAPID-FINCOPY RPD (LIVE)AE United Arab Emirates
AIPALBANIAN INTERBANK PAYMENT SYSTEMAL Albania
PTRSISTEMA DE LIQUIDACO POR BRUTOAO Angola
CCECCP.CEEAT Austria
CSABULK PAYMENTS BYCLEARING SERVICE AUSTRIAAT Austria
OEKOEK CSDAT Austria
ACLAUSTRACLEAR CLOSED USER GROUPAU Australia
PDSPAYMENT DELIVERY SYSTEM/RITS-RTGSAU Australia
AZMAZIPS - AZERBAIJAN INTERBANK PAYMENT SYSTEMAZ Azerbaijan
BAPBOSNIA I HERCEGOVINA RTGSBA Bosnia And Herzegovina
BDSCBRTGS - CENTRAL REAL TIME GROSS SETTLEMENT SYSTEMBB Barbados
BHRBAHRAIN RTGSBH Bahrain
CBSBAHRAIN SSS (SECURITIES SETTLEMENT SYSTEM)BH Bahrain
BPSBURUNDI RTGS SYSTEM FOR EAPSBI Burundi
BHSBAHAMAS RTGSBS Bahamas
BISBOTSWANA INTERBANK SETTLEMENT SYSTEMBW Botswana
CADLVTS - LARGE VALUE TRANSFER SYSTEMCA Canada
CDSMT566 - CORPORATE ACTION CONFIRMATION DELIVERY SERVICECA Canada
BCGCSD SERVICE OF DRCCD Congo, The Democratic Republic Of The
CBCRTGS OF CENTRAL BANK OF CONGOCD Congo, The Democratic Republic Of The
PCHSWISS INTERBANK CLEARING (SIC)CH Switzerland
UTPUBS THIRD PARTY FIN MT971CH Switzerland
SCPSISTEMA CHILENO DE PAGOS INTERBANCARIOSCL Chile
SYGSYGMACM Cameroon
CCCCOMPENSACION DE DIVISAS DE COLOMBIACO Colombia
UNICSD PRAGUE FIN-CUGCZ Czechia
EP+EPM-ECBDE Germany
DD+KRONOS - DANISH KRONE RTGSDK Denmark
DDKKRONOS - DANISH KRONE RTGSDK Denmark
DKDDANMARKS NATIONAL BANKDK Denmark
VPDVP SECURITIES A/S CUGDK Denmark
SDDSIPARD LBTRDO Dominican Republic
ALGBANK OF ALGERIA - GROSS PAYMENT SYSTEMDZ Algeria
MCSMCDR_FIN_CUGEG Egypt
PEGPAYMENT SYSTEM IN EGYPTEG Egypt
CAMSPIES Spain
RTCREGIS-TR CORPORATE STATUSES Spain
FBNRTGS FIJIFJ Fiji
AIMBLOOMBERG ASSET AND INVESTMENT MANAGERGB United Kingdom
BFIBLACKROCKGB United Kingdom
BMFBLOOMBERG MONEY MARKET FUNDSGB United Kingdom
CCSBROADRIDGE MATCHINGGB United Kingdom
FXGBLOOMBERG FX SETTLEMENT SERVICEGB United Kingdom
GSSSWIFTNET BULK PAYMENTS BY VOCALINKGB United Kingdom
GSTGSTP GLOBAL STRAIGHT THROUGH PROCESSINGGB United Kingdom
SSEBLOOMBERG SELL SIDE EXECUTION AND ORDER MANAGEMENT SOLUTIONSGB United Kingdom
STGCHAPS STERLING (RTGS)GB United Kingdom
STPBLOOMBERG STRAIGHT THROUGH PROCESSINGGB United Kingdom
TLFLCH - TRADE LEG FEEDGB United Kingdom
TOMBLOOMBERG SELL SIDE TRADE ORDER MANAGEMENT SOLUTIONSGB United Kingdom
TRMBLOOMBERG CORPORATE TREASURY MANAGEMENTGB United Kingdom
GISGHANA INTERBANK SETTLEMENT SYSTEM (GISS)GH Ghana
CBGGAMBIA RTGSGM Gambia
GNRREPUBLIQUE DE GUINEE RTGS SERVICEGN Guinea
HKLHONG KONG RTGS SERVICEHK Hong Kong
SPHLBTR HONDURAS - FIN COPY (LIVE)HN Honduras
HRKHSVP - HRVATSKI SUSTAV VELIKIH PLACANJAHR Croatia
HUFVIBER - VALOS IDEJU BRUTTO ELSZAMOLASI RENDSZERHU Hungary
KLRCLOSED USER GROUP FOR HUNGARIAN SECURITIES MARKETHU Hungary
CBIIRISIE Ireland
BIRISRAELI RTGSIL Israel
TACISRAEL: TAC - TACH CUG (LIVE)IL Israel
XBCXBOMINBB_CUGIN India
ISGICELAND RTGS SERVICEIS Iceland
JODRTGS-JOJO Jordan
JOEJORDAN CROSS BORDER REPORTINGJO Jordan
JOFJORDAN CROSS BORDER REPORTINGJO Jordan
KPSKENYA ELECTRONIC PAYMENT SETTLEMENT SYSTEM (KEPSS)KE Kenya
CBEEASTERN CARIBBEAN PAYMENTS SYSTEMKN Saint Kitts And Nevis
LKBLANKASETTLELK Sri Lanka
LRRLIBERIA RTGS SERVICELR Liberia
LSWLESOTHO WIRELS Lesotho
LA+LATVIA'S ACCESS TO TARGETLV Latvia
LVLSTARPBANKU AUTOMATIZETA MAKSAJUMU SISTEMALV Latvia
MUPMACSS - MAURITIUS AUTOMATED CLEARING AND SETTLEMENT SYSTEMMU Mauritius
RBMMALAWI: RTGS SERVICE - MITASSMW Malawi
RTSMALAYSIA: BANK NEGARA MALAYSIA - RENTASMY Malaysia
NAMNAMIBIAN INTERBANK SETTLEMENT SYSTEM (NISS)NA Namibia
INCINTERPAY CUGNL The Netherlands
MCFMCF - EMCF CUGNL The Netherlands
NBONORGES BANK RTGS SERVICENO Norway
NOCNICS - NORWEGIAN INTERBANK CLEARING SYSTEMNO Norway
OSCOSC EQUITY CLEARINGNO Norway
AVPAVP - ASSURED VALUE PAYMENTSNZ New Zealand
AVTRESERVE BANK OF NEW ZEALAND - AVTNZ New Zealand
NSINZClear InterfaceNZ New Zealand
BSPPPS - PHILIPPINES PAYMENT SYSTEMPH Philippines
KDPPOLAND: KDPW_FIN_CSDPL Poland
PLNPOLAND: SORBNET2 - POLAND RTGSPL Poland
PMAPMA RTGSPS Palestine, State Of
PPYSISTEMA DE PAGOS DEL PARAGUAYPY Paraguay
DECCSDA_FIN_CUGRO Romania
ROBROMANIAN GSRS (NEW)RO Romania
ROLREPORT - ROMANIAN ELECTRONIC PAYMENT OPERATIONS IN REAL-TIMERO Romania
RONNEW REGIS SERVICE - RONRO Romania
ROSROMANIAN GSRSRO Romania
RWSRWANDAN RTGS SYSTEM FOR EAPSRW Rwanda
SARSARIE - SAUDI ARABIAN RIYAL INTERBANK EXPRESSSA Saudi Arabia
BCCBGC CLEARING CUGSE Sweden
SE+RIXSE Sweden
SECRXSE Sweden
SSKRIX - REAL-TIME GROSS SETTLEMENT IN SEKSE Sweden
MEPMEPS+ : SINGAPORE RTGS SYSTEMSG Singapore
MEQTEST SINGAPORE RTGS SYSTEMSG Singapore
MEUTEST SERVICE FOR MEPS (INTERNAL TESTING)SG Singapore
SLFSIERRA LEONE RTGS SERVICESL Sierra Leone
SLRSIERRA LEONE RTGS SERVICE SLISSSL Sierra Leone
BCASTAR - UEMO A MI-CUGSN Senegal
IPSSWAZILAND INTERBANK PAYMENTS AND SETTLEMENTS SYSTEMSZ Swaziland
ERSECOBANK RAPID TRADE (USD)TG Togo
ERUECOBANK RAPID TRADE (EUR)TG Togo
THBBAHTBNET/2 - THAILAND PAYMENT SYSTEMTH Thailand
DVPTAKASBANK DVP SETTLEMENT SYSTEMTR Turkey
TTDSAFE-TTTT Trinidad And Tobago
TWITAIWAN FOREIGN CURRENCY DIRECT DEBIT SERVICETW Taiwan
TWPFOREIGN CURRENCY RTGS SERVICETW Taiwan
TISTANZANIA INTERBANK SETTLEMENT SYSTEM (TISS)TZ Tanzania, United Republic Of
UISUGANDA NATIONAL INTER-BANK SETTLEMENT (UNIS) SYSTEMUG Uganda
BTCFUNDPLICITY SERVICEUS United States Of America
CLNCLN - CLSNET FINCOPY SIT/PERFUS United States Of America
COTLOAN/SERV CLEAR FINUS United States Of America
FACFedACHUS United States Of America
FWRFedWIREUS United States Of America
OMGOmgeo (INTELLIGENT TRADE MANAGEMENT SOLUTIONS)US United States Of America
PEFPERES OPERATIONS (LIVE)US United States Of America
CUYFIN COPY FOR THE CENTRAL BANK OF URUGUAYUY Uruguay
PVEPVE - PAYMENTS SYSTEM VENEZUELAVE Venezuela (Bolivarian Republic Of)
YVELBTR VENEZUELAVE Venezuela (Bolivarian Republic Of)
MOSSAMOS - SOUTH AFRICAN MULTIPLE OPTION SETTLEMENTZA South Africa
RCHBANKSERVAFRICA RCHZA South Africa
SRSSIRESS FIN COPY SERVICEZA South Africa
ZASSTRATE - SHARE TRANSACTIONS TOTALLY ELECTRONICZA South Africa
ZCLSOUTH AFRICA FX FIN COPYZA South Africa
ZDSSOUTH AFRICA DS FIN COPYZA South Africa
ZVASOUTH AFRICAN VALUE ADDED PAYMENTS SYSTEMZA South Africa
ZISZAMBIA INTERBANK PAYMENT & SETTLEMENT SYSTEM (ZIPSS)ZM Zambia
CCHCOMESA REPSS PAYMENT SYSTEMZW Zimbabwe
ZETZETSS - ZIMBABWE ELECTRONIC TRANSFER AND SETTLEMENT SYSTEMZW Zimbabwe

Rate limits

  • The shared API accepts up to 20 requests per second. A short burst of a few dozen requests above that rate is absorbed; beyond it every request is rejected with HTTP 429 Too Many Requests and a small HTML body. A rejected request never reaches the API and is not processed. Acceptance resumes as soon as your rate drops below the limit, so wait a moment and resend; keep the sending rate at or below 20 per second with a queue or a token bucket. If several processes send requests, apply the limit to their total.
  • Need more throughput? A dedicated API server is available for your account with no per-second limit, on its own hostname. Contact support with your expected volume.

Glossary

TermMeaning
BICBusiness Identifier Code (ISO 9362), also called SWIFT code: 4-letter institution code, 2-letter country code, 2-character location code, and an optional 3-character branch code. 8 characters identify the institution, 11 a specific branch.
Head office / XXXThe 8-character BIC is the institution itself; in the directory it is stored as the 11-character form with branch code XXX. The API returns that record for an 8-character request.
Location codeCharacters 7–8. An 8th character of 0 marks a test BIC (not in the directory, result 803); 1 marks a passive participant, an institution that is in the directory but not connected to the network (bic_active false).
ConnectedThe directory flag behind bic_active: the institution can send and receive messages on the SWIFT network. A BIC can be valid and registered without being connected.
Non-financial institutionA corporate or other organisation with its own BIC for treasury traffic; institution is NONFINANCIAL.
Service codeThree-character code of a SWIFT network service (FIN) or a market infrastructure the BIC participates in (TGT for TARGET2, STG for CHAPS), from the directory.
SWIFTRefThe reference-data products of S.W.I.F.T. SCRL. The BIC directory behind this API is licensed from SWIFTRef and refreshed regularly; BIC data is used with the permission of S.W.I.F.T. SCRL, database rights reserved.