CNAPS Code

CNAPS reference guide

What a CNAPS Code Is—and What It Cannot Confirm

A practical explanation of CNAPS bank and branch identifiers, where they appear in mainland-China payment instructions, and why a directory result must still be confirmed with the recipient bank.

Edited by John Lan · Reviewed 2026-07-21

The short definition

CNAPS is the common name used for the China National Advanced Payment System. In payment instructions, a CNAPS bank code is used to identify a participating bank or branch within mainland China's domestic clearing environment. Bank of China describes the code as being developed and published by the People's Bank of China for interbank funds transfer and clearing. That statement establishes the general role of the identifier; it does not make this independent website an official registry.

A directory entry is best understood as an address label for routing, not as an approval, an account-number check, or a promise that a transfer will settle. The identifier can help a sending bank distinguish institutions or branches with similar names. The sender and beneficiary still need to supply the other fields required by their banks, such as the beneficiary name, account number, currency, purpose of payment, and sometimes a BIC or intermediary-bank instruction.

What the twelve digits represent in this directory

CNAPS Code Finder stores twelve-digit records and presents the visible portions as category, sequence, district, branch, and check-digit segments. This display is a reading aid built from the dataset's consistent numeric shape. It should not be used to reverse-engineer an institution or to invent a missing code. A plausible-looking number can still refer to the wrong bank, an obsolete branch, or a record that the receiving bank does not want used for a particular transfer channel.

The first three digits are useful for grouping records under a bank family in this directory. The remaining digits narrow the record toward a location and branch. Users should search by the beneficiary's actual bank and location, compare the full branch name, and treat every digit as significant. Leading zeroes must be preserved. Copying only a prefix or changing the final digit produces a different identifier and should fail the site's format checker.

  • Use the checker to catch length and character errors, not to prove that a branch accepts the transfer.
  • Use the finder to narrow candidates by bank, province, and city before comparing the branch name.
  • Keep the full twelve-digit value exactly as supplied by the recipient or receiving bank.

When a CNAPS code may be requested

The required fields depend on the sending bank, destination bank, currency, account type, and payment rail. Bank of China Panama's remittance guidance, for example, tells customers sending renminbi to mainland China to provide a CNAPS code. A Bank of China Singapore corporate remittance form similarly marks a CNAPS number as mandatory for a CNY remittance to China. These are concrete examples of bank workflows, not proof that every domestic or international payment uses the same rule.

A sender may encounter the field in an online remittance form, a corporate treasury portal, or instructions supplied by a beneficiary. Another bank may obtain it internally or ask for different routing information. If the form does not explain the field, the safest question is not simply “Do I need CNAPS?” but “Which routing identifier do you require for this currency, destination branch, and transfer method?” That phrasing lets the bank answer for the actual transaction.

What a CNAPS code does not prove

Finding a record does not verify the beneficiary's identity, account ownership, account status, ability to receive a currency, sanctions status, or the legitimacy of a payment request. It also does not show whether the bank has merged, renamed, relocated, or retired the branch since a source record was collected. A directory cannot see a bank's live core system, and this site does not connect to the People's Bank of China or to a beneficiary bank.

The code also should not be treated as interchangeable with a Swift BIC. Both can identify financial institutions in payment workflows, but they belong to different identification contexts and have different formats. A transfer instruction can request one, the other, or both. Replacing a missing CNAPS field with a BIC—or entering twelve CNAPS digits in a BIC field—creates a field-level mismatch even if both identifiers point toward the same broad institution.

A safe lookup workflow

Start with the written payment instructions from the beneficiary rather than with a broad web search. Record the beneficiary's legal name, account number, exact bank name, branch name, city, currency, and requested transfer method. Search the directory using the bank and location. If several records look similar, do not choose the closest name by intuition. Ask the beneficiary to obtain the full code from the branch or use the receiving bank's official support channel.

After identifying a candidate, compare it character by character with the value supplied by the recipient. Confirm any discrepancy before payment. If the amount is material or the instructions changed unexpectedly, verify through a second channel you already trust. For a new beneficiary or a high-value transfer, ask the sending bank whether a small test payment is appropriate. Save the confirmed instructions and who confirmed them so the organization can investigate a rejection without reconstructing the decision from memory.

  • Do not rely on a screenshot whose sender or date you cannot establish.
  • Do not accept a last-minute routing change only by replying to the same email thread.
  • Do not infer a branch from a bank's head-office name when a branch-specific field is requested.

Worked example: separating format from confirmation

Imagine that an invoice names a beneficiary at a Shanghai branch and includes a twelve-digit number. The checker confirms that the value contains exactly twelve digits. That result answers one narrow question: the text matches the directory's expected format. Searching the number then returns a bank and branch record in Shanghai. That is a useful second comparison, but it still does not establish that the invoice is genuine or that the beneficiary account belongs to the named company.

The final step is independent confirmation. The payer compares the result with onboarding records, calls a known contact or uses the bank's official channel, and asks whether the exact branch and code apply to this CNY payment. If the bank gives a different code, the payer pauses rather than selecting whichever value appears more convenient. This sequence—format, directory match, independent confirmation—keeps each source within the question it can actually answer.

Common mistakes and how to recover

Frequent errors include dropping a leading zero, copying a code from a different branch with a similar English name, using an outdated beneficiary template, and confusing the bank family prefix with the complete branch identifier. Transliteration adds another difficulty: two English spellings may represent the same Chinese branch, while two branches can share very similar translated names. Location and the original-language branch name can be more discriminating than English wording alone.

If a transfer is rejected, do not repeatedly resubmit the same details. Ask the sending bank for the rejection reason and the exact field that failed. Reconfirm the beneficiary instructions, including currency and branch. A rejected payment can involve an account-name mismatch, an unsupported currency, compliance review, a closed account, or intermediary routing—not only the CNAPS field. Correct the diagnosed field, keep the bank's response, and update any saved payment template only after the new details are confirmed.

Primary references

These sources support the general definitions and bank-workflow examples in this article. They do not provide row-level provenance for every record in this independent compiled directory.