
What is a payment purpose code?
A payment purpose code is a short, standardized code attached to a payment that states why the money is being sent, such as salary, a supplier invoice, or a tax payment. It's also called a purpose of payment code, or simply a purpose code.
Most domestic payments don't need one. Cross-border payments often do, because the countries at either end want to know what the money is for. A platform paying contractors in India from abroad, for example, needs the right Indian purpose code on each payment, or the receiving bank may hold it.
The format depends on the system. ISO 20022 uses four-letter codes, India uses five-character codes such as P0802, and the UAE uses three-letter codes such as SAL.
Why do payments need a purpose code?
Purpose codes give banks and regulators a structured answer to "what is this payment for?" The Payments Market Practice Group's ISO 20022 guidance points to two main uses:
- Regulatory reporting: payments into or out of some countries "can be subject to Balance of Payment Statistical Reporting or other bespoke reporting," so banks must report why money crosses the border
- Screening: structured purpose data helps banks run more effective sanctions and AML checks
The code also travels with the payment from end to end. On a SWIFT payment that passes through several banks, each one sees the same reason without having to read free-text notes.
Which countries require payment purpose codes?
Purpose code rules are set country by country, and they change over time. The PMPG guidance and national sources point to several common examples:
- India: the Reserve Bank of India assigns purpose codes to foreign exchange transactions, with codes starting with P for money received and S for money sent, such as P0802 for software consultancy
- United Arab Emirates: payments into the UAE use three-letter purpose of payment codes, such as SAL for salary and GDE for goods sold, as listed in BNP Paribas's UAE code appendix
- France: the PMPG cites Banque de France reporting rules for cross-border payments leaving France
- Indonesia: the PMPG cites Bank Indonesia requirements that apply even to domestic payments
- United Kingdom: since November 2024, the Bank of England has required purpose codes on CHAPS payments between financial institutions and on certain property payments
The UK plans to extend the requirement to all CHAPS payments over time. For any corridor, the safest assumption is that the destination's rules apply, even when the sending country has none.
What do ISO 20022 purpose codes look like?
ISO 20022 uses four-letter purpose codes from a shared external code list. The Bank of England's recommended list for the UK includes 129 of them. Common examples include:
- SALA: salary payment
- SUPP: payment to a supplier
- GDSV: purchase or sale of goods and services
- INTC: payment between two companies in the same group
- TAXS: tax payment
- CASH: cash management transfer
ISO 20022 also has a separate Category Purpose field. Purpose explains why the payment is being made, while Category Purpose flags how banks should process it. Country codes are kept apart from both. In the PMPG's examples, India's P1301 and the UAE's PPL go in a separate Regulatory Reporting field, because the Purpose field is non-regulatory.
What happens if a payment has the wrong purpose code?
A missing or wrong purpose code rarely makes a payment disappear, but it does slow it down. According to the PMPG, putting purpose information in the wrong field can cause "delays to payments" and less straight-through processing. Banks may also hold the payment and send a request for information until the details are fixed.
Rejection is possible too. The Bank of England said it would not reject CHAPS payments solely for incomplete or incorrect purpose codes before 2025, which leaves room to do so later.
How do you choose the right purpose code for a payout?
The safest approach is to decide codes once, per payout type and corridor, rather than per payment. That keeps codes consistent across thousands of wire transfers and batch payments:
- List the destination countries that require purpose codes, and note which code set each one uses
- Map each payout type, such as payroll, vendor invoices, or intra-group transfers, to the matching code
- Store the code with the payout type, so it's set automatically instead of typed in by hand
- Review the mapping when a country updates its code list, as the UK did when it added two codes in June 2026
How does Due handle purpose codes?
Due's API supports purpose codes at the transfer level, per its transfer flow documentation:
- Optional by default: the
purposeCodefield can be left out unless the channel requires it - Required on some channels: if a payment channel includes a non-empty
purposeCodesobject, the transfer must include a validpurposeCode - Set per transfer: the code goes in the transfer request, alongside the quote, recipient, and memo, as in the documented example
"purposeCode": "OTHER"
Checking each channel's requirements before creating transfers avoids payouts getting stuck on a missing code.
Book a call to set up compliant cross-border payouts with Due.