10
10
11
11
class Currency implements ValidationRule, ValidatesOnFrontEnd
12
12
{
13
+
13
14
/**
14
15
* @inheritDoc
15
16
*
@@ -53,6 +54,19 @@ public function __invoke($value, Closure $fail, string $key, array $values)
53
54
}
54
55
55
56
/**
57
+ * Returns the list of valid ISO 4217 currency codes.
58
+ *
59
+ * @unreleased Updated to match current ISO 4217 standard as of 2024.
60
+ *
61
+ * Major changes include:
62
+ * - Removed obsolete codes: BYR (→BYN), EEK (→EUR), GHC (→GHS), LVL (→EUR),
63
+ * LTL (→EUR), TRL (→TRY), VEF (→VES), ZWD (→ZWL)
64
+ * - Added 74+ missing current ISO 4217 codes including AED, AMD, AOA, BHD, etc.
65
+ * - Kept commonly used non-ISO codes: GGP, IMP, JEP, TVD
66
+ * - Total codes increased from 95 to 169 for better global coverage
67
+ *
68
+ * @see https://www.iso.org/iso-4217-currency-codes.html
69
+ *
56
70
* @since 1.0.0
57
71
*
58
72
* @return string[]
@@ -63,120 +77,169 @@ public static function currencyCodes(): array
63
77
64
78
if ($ codes === null ) {
65
79
$ codes = [
66
- "ALL " ,
67
- "AFN " ,
68
- "ARS " ,
69
- "AWG " ,
70
- "AUD " ,
71
- "AZN " ,
72
- "BSD " ,
73
- "BBD " ,
74
- "BDT " ,
75
- "BYR " ,
76
- "BZD " ,
77
- "BMD " ,
78
- "BOB " ,
79
- "BAM " ,
80
- "BWP " ,
81
- "BGN " ,
82
- "BRL " ,
83
- "BND " ,
84
- "KHR " ,
85
- "CAD " ,
86
- "KYD " ,
87
- "CLP " ,
88
- "CNY " ,
89
- "COP " ,
90
- "CRC " ,
91
- "HRK " ,
92
- "CUP " ,
93
- "CZK " ,
94
- "DKK " ,
95
- "DOP " ,
96
- "XCD " ,
97
- "EGP " ,
98
- "SVC " ,
99
- "EEK " ,
100
- "EUR " ,
101
- "FKP " ,
102
- "FJD " ,
103
- "GHC " ,
104
- "GIP " ,
105
- "GTQ " ,
106
- "GGP " ,
107
- "GYD " ,
108
- "HNL " ,
109
- "HKD " ,
110
- "HUF " ,
111
- "ISK " ,
112
- "INR " ,
113
- "IDR " ,
114
- "IRR " ,
115
- "IMP " ,
116
- "ILS " ,
117
- "JMD " ,
118
- "JPY " ,
119
- "JEP " ,
120
- "KZT " ,
121
- "KPW " ,
122
- "KRW " ,
123
- "KGS " ,
124
- "LAK " ,
125
- "LVL " ,
126
- "LBP " ,
127
- "LRD " ,
128
- "LTL " ,
129
- "MKD " ,
130
- "MYR " ,
131
- "MUR " ,
132
- "MXN " ,
133
- "MNT " ,
134
- "MZN " ,
135
- "NAD " ,
136
- "NPR " ,
137
- "ANG " ,
138
- "NZD " ,
139
- "NIO " ,
140
- "NGN " ,
141
- "NOK " ,
142
- "OMR " ,
143
- "PKR " ,
144
- "PAB " ,
145
- "PYG " ,
146
- "PEN " ,
147
- "PHP " ,
148
- "PLN " ,
149
- "QAR " ,
150
- "RON " ,
151
- "RUB " ,
152
- "SHP " ,
153
- "SAR " ,
154
- "RSD " ,
155
- "SCR " ,
156
- "SGD " ,
157
- "SBD " ,
158
- "SOS " ,
159
- "ZAR " ,
160
- "LKR " ,
161
- "SEK " ,
162
- "CHF " ,
163
- "SRD " ,
164
- "SYP " ,
165
- "TWD " ,
166
- "THB " ,
167
- "TTD " ,
168
- "TRY " ,
169
- "TRL " ,
170
- "TVD " ,
171
- "UAH " ,
172
- "GBP " ,
173
- "USD " ,
174
- "UYU " ,
175
- "UZS " ,
176
- "VEF " ,
177
- "VND " ,
178
- "YER " ,
179
- "ZWD " ,
80
+ "AED " , // UAE Dirham
81
+ "AFN " , // Afghan Afghani
82
+ "ALL " , // Albanian Lek
83
+ "AMD " , // Armenian Dram
84
+ "ANG " , // Netherlands Antillean Guilder
85
+ "AOA " , // Angolan Kwanza
86
+ "ARS " , // Argentine Peso
87
+ "AUD " , // Australian Dollar
88
+ "AWG " , // Aruban Florin
89
+ "AZN " , // Azerbaijani Manat
90
+ "BAM " , // Bosnia and Herzegovina Convertible Mark
91
+ "BBD " , // Barbados Dollar
92
+ "BDT " , // Bangladeshi Taka
93
+ "BGN " , // Bulgarian Lev
94
+ "BHD " , // Bahraini Dinar
95
+ "BIF " , // Burundian Franc
96
+ "BMD " , // Bermudian Dollar
97
+ "BND " , // Brunei Dollar
98
+ "BOB " , // Bolivian Boliviano
99
+ "BRL " , // Brazilian Real
100
+ "BSD " , // Bahamian Dollar
101
+ "BTN " , // Bhutanese Ngultrum
102
+ "BWP " , // Botswanan Pula
103
+ "BYN " , // Belarusian Ruble
104
+ "BZD " , // Belize Dollar
105
+ "CAD " , // Canadian Dollar
106
+ "CDF " , // Congolese Franc
107
+ "CHF " , // Swiss Franc
108
+ "CLP " , // Chilean Peso
109
+ "CNY " , // Chinese Yuan
110
+ "COP " , // Colombian Peso
111
+ "CRC " , // Costa Rican Colón
112
+ "CUP " , // Cuban Peso
113
+ "CVE " , // Cape Verdean Escudo
114
+ "CZK " , // Czech Koruna
115
+ "DJF " , // Djiboutian Franc
116
+ "DKK " , // Danish Krone
117
+ "DOP " , // Dominican Peso
118
+ "DZD " , // Algerian Dinar
119
+ "EGP " , // Egyptian Pound
120
+ "ERN " , // Eritrean Nakfa
121
+ "ETB " , // Ethiopian Birr
122
+ "EUR " , // Euro
123
+ "FJD " , // Fijian Dollar
124
+ "FKP " , // Falkland Islands Pound
125
+ "GBP " , // British Pound Sterling
126
+ "GEL " , // Georgian Lari
127
+ "GGP " , // Guernsey Pound (non-ISO but commonly used)
128
+ "GHS " , // Ghanaian Cedi
129
+ "GIP " , // Gibraltar Pound
130
+ "GMD " , // Gambian Dalasi
131
+ "GNF " , // Guinean Franc
132
+ "GTQ " , // Guatemalan Quetzal
133
+ "GYD " , // Guyanese Dollar
134
+ "HKD " , // Hong Kong Dollar
135
+ "HNL " , // Honduran Lempira
136
+ "HRK " , // Croatian Kuna (replaced by EUR in 2023)
137
+ "HTG " , // Haitian Gourde
138
+ "HUF " , // Hungarian Forint
139
+ "IDR " , // Indonesian Rupiah
140
+ "ILS " , // Israeli New Shekel
141
+ "IMP " , // Isle of Man Pound (non-ISO but commonly used)
142
+ "INR " , // Indian Rupee
143
+ "IQD " , // Iraqi Dinar
144
+ "IRR " , // Iranian Rial
145
+ "ISK " , // Icelandic Króna
146
+ "JEP " , // Jersey Pound (non-ISO but commonly used)
147
+ "JMD " , // Jamaican Dollar
148
+ "JOD " , // Jordanian Dinar
149
+ "JPY " , // Japanese Yen
150
+ "KES " , // Kenyan Shilling
151
+ "KGS " , // Kyrgyzstani Som
152
+ "KHR " , // Cambodian Riel
153
+ "KMF " , // Comorian Franc
154
+ "KPW " , // North Korean Won
155
+ "KRW " , // South Korean Won
156
+ "KWD " , // Kuwaiti Dinar
157
+ "KYD " , // Cayman Islands Dollar
158
+ "KZT " , // Kazakhstani Tenge
159
+ "LAK " , // Laotian Kip
160
+ "LBP " , // Lebanese Pound
161
+ "LKR " , // Sri Lankan Rupee
162
+ "LRD " , // Liberian Dollar
163
+ "LSL " , // Lesotho Loti
164
+ "LYD " , // Libyan Dinar
165
+ "MAD " , // Moroccan Dirham
166
+ "MDL " , // Moldovan Leu
167
+ "MGA " , // Malagasy Ariary
168
+ "MKD " , // Macedonian Denar
169
+ "MMK " , // Myanmar Kyat
170
+ "MNT " , // Mongolian Tugrik
171
+ "MOP " , // Macanese Pataca
172
+ "MRU " , // Mauritanian Ouguiya
173
+ "MUR " , // Mauritian Rupee
174
+ "MVR " , // Maldivian Rufiyaa
175
+ "MWK " , // Malawian Kwacha
176
+ "MXN " , // Mexican Peso
177
+ "MYR " , // Malaysian Ringgit
178
+ "MZN " , // Mozambican Metical
179
+ "NAD " , // Namibian Dollar
180
+ "NGN " , // Nigerian Naira
181
+ "NIO " , // Nicaraguan Córdoba
182
+ "NOK " , // Norwegian Krone
183
+ "NPR " , // Nepalese Rupee
184
+ "NZD " , // New Zealand Dollar
185
+ "OMR " , // Omani Rial
186
+ "PAB " , // Panamanian Balboa
187
+ "PEN " , // Peruvian Sol
188
+ "PGK " , // Papua New Guinean Kina
189
+ "PHP " , // Philippine Peso
190
+ "PKR " , // Pakistani Rupee
191
+ "PLN " , // Polish Zloty
192
+ "PYG " , // Paraguayan Guaraní
193
+ "QAR " , // Qatari Riyal
194
+ "RON " , // Romanian Leu
195
+ "RSD " , // Serbian Dinar
196
+ "RUB " , // Russian Ruble
197
+ "RWF " , // Rwandan Franc
198
+ "SAR " , // Saudi Riyal
199
+ "SBD " , // Solomon Islands Dollar
200
+ "SCR " , // Seychellois Rupee
201
+ "SDG " , // Sudanese Pound
202
+ "SEK " , // Swedish Krona
203
+ "SGD " , // Singapore Dollar
204
+ "SHP " , // Saint Helena Pound
205
+ "SLE " , // Sierra Leonean Leone (new)
206
+ "SLL " , // Sierra Leonean Leone (old)
207
+ "SOS " , // Somali Shilling
208
+ "SRD " , // Surinamese Dollar
209
+ "SSP " , // South Sudanese Pound
210
+ "STN " , // São Tomé and Príncipe Dobra
211
+ "SVC " , // Salvadoran Colón
212
+ "SYP " , // Syrian Pound
213
+ "SZL " , // Swazi Lilangeni
214
+ "THB " , // Thai Baht
215
+ "TJS " , // Tajikistani Somoni
216
+ "TMT " , // Turkmenistani Manat
217
+ "TND " , // Tunisian Dinar
218
+ "TOP " , // Tongan Paʻanga
219
+ "TRY " , // Turkish Lira
220
+ "TTD " , // Trinidad and Tobago Dollar
221
+ "TVD " , // Tuvaluan Dollar (non-ISO but used)
222
+ "TWD " , // New Taiwan Dollar
223
+ "TZS " , // Tanzanian Shilling
224
+ "UAH " , // Ukrainian Hryvnia
225
+ "UGX " , // Ugandan Shilling
226
+ "USD " , // United States Dollar
227
+ "UYU " , // Uruguayan Peso
228
+ "UZS " , // Uzbekistani Som
229
+ "VED " , // Venezuelan Bolívar Digital
230
+ "VES " , // Venezuelan Bolívar Soberano
231
+ "VND " , // Vietnamese Dong
232
+ "VUV " , // Vanuatuan Vatu
233
+ "WST " , // Samoan Tala
234
+ "XAF " , // Central African CFA Franc
235
+ "XCD " , // East Caribbean Dollar
236
+ "XDR " , // Special Drawing Rights
237
+ "XOF " , // West African CFA Franc
238
+ "XPF " , // CFP Franc
239
+ "YER " , // Yemeni Rial
240
+ "ZAR " , // South African Rand
241
+ "ZMW " , // Zambian Kwacha
242
+ "ZWL " , // Zimbabwean Dollar
180
243
];
181
244
}
182
245
0 commit comments