@ducatjs/money 0.0.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +51 -0
  3. package/README.md +1034 -3
  4. package/assets/CREDITS.md +12 -0
  5. package/data/adyen-fx.json +19 -0
  6. package/data/adyen.json +171 -0
  7. package/data/braintree.json +223 -0
  8. package/data/cash-rounding.json +520 -0
  9. package/data/checkout.json +230 -0
  10. package/data/cldr-cash.json +101 -0
  11. package/data/historic.json +78 -0
  12. package/data/iso4217-list-one.xml +1956 -0
  13. package/data/iso4217-list-three.xml +1185 -0
  14. package/data/klarna.json +95 -0
  15. package/data/paypal.json +65 -0
  16. package/data/stripe-fx.json +17 -0
  17. package/data/stripe.json +285 -0
  18. package/dist/adyen-fx.d.ts +25 -0
  19. package/dist/adyen-fx.d.ts.map +1 -0
  20. package/dist/adyen-fx.js +140 -0
  21. package/dist/adyen-fx.js.map +1 -0
  22. package/dist/adyen.d.ts +25 -0
  23. package/dist/adyen.d.ts.map +1 -0
  24. package/dist/adyen.js +34 -0
  25. package/dist/adyen.js.map +1 -0
  26. package/dist/allocate.d.ts +72 -0
  27. package/dist/allocate.d.ts.map +1 -0
  28. package/dist/allocate.js +314 -0
  29. package/dist/allocate.js.map +1 -0
  30. package/dist/bag.d.ts +58 -0
  31. package/dist/bag.d.ts.map +1 -0
  32. package/dist/bag.js +122 -0
  33. package/dist/bag.js.map +1 -0
  34. package/dist/boc.d.ts +31 -0
  35. package/dist/boc.d.ts.map +1 -0
  36. package/dist/boc.js +114 -0
  37. package/dist/boc.js.map +1 -0
  38. package/dist/boe.d.ts +33 -0
  39. package/dist/boe.d.ts.map +1 -0
  40. package/dist/boe.js +114 -0
  41. package/dist/boe.js.map +1 -0
  42. package/dist/braintree.d.ts +34 -0
  43. package/dist/braintree.d.ts.map +1 -0
  44. package/dist/braintree.js +45 -0
  45. package/dist/braintree.js.map +1 -0
  46. package/dist/cash.d.ts +64 -0
  47. package/dist/cash.d.ts.map +1 -0
  48. package/dist/cash.js +134 -0
  49. package/dist/cash.js.map +1 -0
  50. package/dist/checkout.d.ts +42 -0
  51. package/dist/checkout.d.ts.map +1 -0
  52. package/dist/checkout.js +52 -0
  53. package/dist/checkout.js.map +1 -0
  54. package/dist/convert.d.ts +52 -0
  55. package/dist/convert.d.ts.map +1 -0
  56. package/dist/convert.js +65 -0
  57. package/dist/convert.js.map +1 -0
  58. package/dist/currency.d.ts +22 -0
  59. package/dist/currency.d.ts.map +1 -0
  60. package/dist/currency.js +38 -0
  61. package/dist/currency.js.map +1 -0
  62. package/dist/decimal.d.ts +52 -0
  63. package/dist/decimal.d.ts.map +1 -0
  64. package/dist/decimal.js +251 -0
  65. package/dist/decimal.js.map +1 -0
  66. package/dist/drizzle/mysql.d.ts +105 -0
  67. package/dist/drizzle/mysql.d.ts.map +1 -0
  68. package/dist/drizzle/mysql.js +60 -0
  69. package/dist/drizzle/mysql.js.map +1 -0
  70. package/dist/drizzle/pg.d.ts +103 -0
  71. package/dist/drizzle/pg.d.ts.map +1 -0
  72. package/dist/drizzle/pg.js +60 -0
  73. package/dist/drizzle/pg.js.map +1 -0
  74. package/dist/drizzle/sqlite.d.ts +102 -0
  75. package/dist/drizzle/sqlite.d.ts.map +1 -0
  76. package/dist/drizzle/sqlite.js +59 -0
  77. package/dist/drizzle/sqlite.js.map +1 -0
  78. package/dist/ecb.d.ts +52 -0
  79. package/dist/ecb.d.ts.map +1 -0
  80. package/dist/ecb.js +285 -0
  81. package/dist/ecb.js.map +1 -0
  82. package/dist/exact.d.ts +62 -0
  83. package/dist/exact.d.ts.map +1 -0
  84. package/dist/exact.js +147 -0
  85. package/dist/exact.js.map +1 -0
  86. package/dist/fed.d.ts +35 -0
  87. package/dist/fed.d.ts.map +1 -0
  88. package/dist/fed.js +134 -0
  89. package/dist/fed.js.map +1 -0
  90. package/dist/fetch.d.ts +103 -0
  91. package/dist/fetch.d.ts.map +1 -0
  92. package/dist/fetch.js +222 -0
  93. package/dist/fetch.js.map +1 -0
  94. package/dist/fixed.d.ts +121 -0
  95. package/dist/fixed.d.ts.map +1 -0
  96. package/dist/fixed.js +420 -0
  97. package/dist/fixed.js.map +1 -0
  98. package/dist/fn.d.ts +34 -0
  99. package/dist/fn.d.ts.map +1 -0
  100. package/dist/fn.js +37 -0
  101. package/dist/fn.js.map +1 -0
  102. package/dist/format.d.ts +13 -0
  103. package/dist/format.d.ts.map +1 -0
  104. package/dist/format.js +90 -0
  105. package/dist/format.js.map +1 -0
  106. package/dist/generated/adyen.d.ts +3 -0
  107. package/dist/generated/adyen.d.ts.map +1 -0
  108. package/dist/generated/adyen.js +144 -0
  109. package/dist/generated/adyen.js.map +1 -0
  110. package/dist/generated/braintree.d.ts +3 -0
  111. package/dist/generated/braintree.d.ts.map +1 -0
  112. package/dist/generated/braintree.js +140 -0
  113. package/dist/generated/braintree.js.map +1 -0
  114. package/dist/generated/cash.d.ts +14 -0
  115. package/dist/generated/cash.d.ts.map +1 -0
  116. package/dist/generated/cash.js +465 -0
  117. package/dist/generated/cash.js.map +1 -0
  118. package/dist/generated/checkout.d.ts +3 -0
  119. package/dist/generated/checkout.d.ts.map +1 -0
  120. package/dist/generated/checkout.js +151 -0
  121. package/dist/generated/checkout.js.map +1 -0
  122. package/dist/generated/historic.d.ts +337 -0
  123. package/dist/generated/historic.d.ts.map +1 -0
  124. package/dist/generated/historic.js +66 -0
  125. package/dist/generated/historic.js.map +1 -0
  126. package/dist/generated/iso4217.d.ts +174 -0
  127. package/dist/generated/iso4217.d.ts.map +1 -0
  128. package/dist/generated/iso4217.js +175 -0
  129. package/dist/generated/iso4217.js.map +1 -0
  130. package/dist/generated/kernel.d.ts +17 -0
  131. package/dist/generated/kernel.d.ts.map +1 -0
  132. package/dist/generated/kernel.js +208 -0
  133. package/dist/generated/kernel.js.map +1 -0
  134. package/dist/generated/klarna.d.ts +3 -0
  135. package/dist/generated/klarna.d.ts.map +1 -0
  136. package/dist/generated/klarna.js +21 -0
  137. package/dist/generated/klarna.js.map +1 -0
  138. package/dist/generated/paypal.d.ts +3 -0
  139. package/dist/generated/paypal.d.ts.map +1 -0
  140. package/dist/generated/paypal.js +31 -0
  141. package/dist/generated/paypal.js.map +1 -0
  142. package/dist/generated/stripe.d.ts +8 -0
  143. package/dist/generated/stripe.d.ts.map +1 -0
  144. package/dist/generated/stripe.js +150 -0
  145. package/dist/generated/stripe.js.map +1 -0
  146. package/dist/historic.d.ts +40 -0
  147. package/dist/historic.d.ts.map +1 -0
  148. package/dist/historic.js +43 -0
  149. package/dist/historic.js.map +1 -0
  150. package/dist/history.d.ts +96 -0
  151. package/dist/history.d.ts.map +1 -0
  152. package/dist/history.js +213 -0
  153. package/dist/history.js.map +1 -0
  154. package/dist/hmrc.d.ts +28 -0
  155. package/dist/hmrc.d.ts.map +1 -0
  156. package/dist/hmrc.js +108 -0
  157. package/dist/hmrc.js.map +1 -0
  158. package/dist/index.d.ts +11 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +11 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/klarna.d.ts +31 -0
  163. package/dist/klarna.d.ts.map +1 -0
  164. package/dist/klarna.js +38 -0
  165. package/dist/klarna.js.map +1 -0
  166. package/dist/kysely.d.ts +120 -0
  167. package/dist/kysely.d.ts.map +1 -0
  168. package/dist/kysely.js +309 -0
  169. package/dist/kysely.js.map +1 -0
  170. package/dist/money.d.ts +302 -0
  171. package/dist/money.d.ts.map +1 -0
  172. package/dist/money.js +703 -0
  173. package/dist/money.js.map +1 -0
  174. package/dist/parse.d.ts +55 -0
  175. package/dist/parse.d.ts.map +1 -0
  176. package/dist/parse.js +419 -0
  177. package/dist/parse.js.map +1 -0
  178. package/dist/paypal.d.ts +41 -0
  179. package/dist/paypal.d.ts.map +1 -0
  180. package/dist/paypal.js +58 -0
  181. package/dist/paypal.js.map +1 -0
  182. package/dist/pg.d.ts +100 -0
  183. package/dist/pg.d.ts.map +1 -0
  184. package/dist/pg.js +343 -0
  185. package/dist/pg.js.map +1 -0
  186. package/dist/plugins/adyen.d.ts +15 -0
  187. package/dist/plugins/adyen.d.ts.map +1 -0
  188. package/dist/plugins/adyen.js +10 -0
  189. package/dist/plugins/adyen.js.map +1 -0
  190. package/dist/plugins/all.d.ts +29 -0
  191. package/dist/plugins/all.d.ts.map +1 -0
  192. package/dist/plugins/all.js +30 -0
  193. package/dist/plugins/all.js.map +1 -0
  194. package/dist/plugins/allocate.d.ts +20 -0
  195. package/dist/plugins/allocate.d.ts.map +1 -0
  196. package/dist/plugins/allocate.js +26 -0
  197. package/dist/plugins/allocate.js.map +1 -0
  198. package/dist/plugins/braintree.d.ts +12 -0
  199. package/dist/plugins/braintree.d.ts.map +1 -0
  200. package/dist/plugins/braintree.js +12 -0
  201. package/dist/plugins/braintree.js.map +1 -0
  202. package/dist/plugins/cash.d.ts +19 -0
  203. package/dist/plugins/cash.d.ts.map +1 -0
  204. package/dist/plugins/cash.js +16 -0
  205. package/dist/plugins/cash.js.map +1 -0
  206. package/dist/plugins/checkout.d.ts +21 -0
  207. package/dist/plugins/checkout.d.ts.map +1 -0
  208. package/dist/plugins/checkout.js +16 -0
  209. package/dist/plugins/checkout.js.map +1 -0
  210. package/dist/plugins/convert.d.ts +19 -0
  211. package/dist/plugins/convert.d.ts.map +1 -0
  212. package/dist/plugins/convert.js +13 -0
  213. package/dist/plugins/convert.js.map +1 -0
  214. package/dist/plugins/exact.d.ts +15 -0
  215. package/dist/plugins/exact.d.ts.map +1 -0
  216. package/dist/plugins/exact.js +13 -0
  217. package/dist/plugins/exact.js.map +1 -0
  218. package/dist/plugins/fixed.d.ts +17 -0
  219. package/dist/plugins/fixed.d.ts.map +1 -0
  220. package/dist/plugins/fixed.js +13 -0
  221. package/dist/plugins/fixed.js.map +1 -0
  222. package/dist/plugins/format.d.ts +9 -0
  223. package/dist/plugins/format.d.ts.map +1 -0
  224. package/dist/plugins/format.js +16 -0
  225. package/dist/plugins/format.js.map +1 -0
  226. package/dist/plugins/klarna.d.ts +10 -0
  227. package/dist/plugins/klarna.d.ts.map +1 -0
  228. package/dist/plugins/klarna.js +10 -0
  229. package/dist/plugins/klarna.js.map +1 -0
  230. package/dist/plugins/paypal.d.ts +14 -0
  231. package/dist/plugins/paypal.d.ts.map +1 -0
  232. package/dist/plugins/paypal.js +16 -0
  233. package/dist/plugins/paypal.js.map +1 -0
  234. package/dist/plugins/prisma.d.ts +8 -0
  235. package/dist/plugins/prisma.d.ts.map +1 -0
  236. package/dist/plugins/prisma.js +13 -0
  237. package/dist/plugins/prisma.js.map +1 -0
  238. package/dist/plugins/stripe.d.ts +14 -0
  239. package/dist/plugins/stripe.d.ts.map +1 -0
  240. package/dist/plugins/stripe.js +16 -0
  241. package/dist/plugins/stripe.js.map +1 -0
  242. package/dist/plugins/tax.d.ts +20 -0
  243. package/dist/plugins/tax.d.ts.map +1 -0
  244. package/dist/plugins/tax.js +18 -0
  245. package/dist/plugins/tax.js.map +1 -0
  246. package/dist/policy.d.ts +34 -0
  247. package/dist/policy.d.ts.map +1 -0
  248. package/dist/policy.js +90 -0
  249. package/dist/policy.js.map +1 -0
  250. package/dist/prisma.d.ts +77 -0
  251. package/dist/prisma.d.ts.map +1 -0
  252. package/dist/prisma.js +76 -0
  253. package/dist/prisma.js.map +1 -0
  254. package/dist/processor.d.ts +28 -0
  255. package/dist/processor.d.ts.map +1 -0
  256. package/dist/processor.js +118 -0
  257. package/dist/processor.js.map +1 -0
  258. package/dist/provider.d.ts +103 -0
  259. package/dist/provider.d.ts.map +1 -0
  260. package/dist/provider.js +280 -0
  261. package/dist/provider.js.map +1 -0
  262. package/dist/rate-text.d.ts +38 -0
  263. package/dist/rate-text.d.ts.map +1 -0
  264. package/dist/rate-text.js +143 -0
  265. package/dist/rate-text.js.map +1 -0
  266. package/dist/rate.d.ts +175 -0
  267. package/dist/rate.d.ts.map +1 -0
  268. package/dist/rate.js +371 -0
  269. package/dist/rate.js.map +1 -0
  270. package/dist/rounding-error.d.ts +9 -0
  271. package/dist/rounding-error.d.ts.map +1 -0
  272. package/dist/rounding-error.js +9 -0
  273. package/dist/rounding-error.js.map +1 -0
  274. package/dist/rounding.d.ts +50 -0
  275. package/dist/rounding.d.ts.map +1 -0
  276. package/dist/rounding.js +87 -0
  277. package/dist/rounding.js.map +1 -0
  278. package/dist/schema.d.ts +43 -0
  279. package/dist/schema.d.ts.map +1 -0
  280. package/dist/schema.js +77 -0
  281. package/dist/schema.js.map +1 -0
  282. package/dist/sql.d.ts +54 -0
  283. package/dist/sql.d.ts.map +1 -0
  284. package/dist/sql.js +131 -0
  285. package/dist/sql.js.map +1 -0
  286. package/dist/stripe-fx.d.ts +22 -0
  287. package/dist/stripe-fx.d.ts.map +1 -0
  288. package/dist/stripe-fx.js +30 -0
  289. package/dist/stripe-fx.js.map +1 -0
  290. package/dist/stripe.d.ts +36 -0
  291. package/dist/stripe.d.ts.map +1 -0
  292. package/dist/stripe.js +39 -0
  293. package/dist/stripe.js.map +1 -0
  294. package/dist/tax.d.ts +33 -0
  295. package/dist/tax.d.ts.map +1 -0
  296. package/dist/tax.js +55 -0
  297. package/dist/tax.js.map +1 -0
  298. package/dist/testing/arbitraries.d.ts +43 -0
  299. package/dist/testing/arbitraries.d.ts.map +1 -0
  300. package/dist/testing/arbitraries.js +98 -0
  301. package/dist/testing/arbitraries.js.map +1 -0
  302. package/dist/testing/index.d.ts +67 -0
  303. package/dist/testing/index.d.ts.map +1 -0
  304. package/dist/testing/index.js +159 -0
  305. package/dist/testing/index.js.map +1 -0
  306. package/dist/testing/jest.d.ts +2 -0
  307. package/dist/testing/jest.d.ts.map +1 -0
  308. package/dist/testing/jest.js +15 -0
  309. package/dist/testing/jest.js.map +1 -0
  310. package/dist/testing/vitest.d.ts +7 -0
  311. package/dist/testing/vitest.d.ts.map +1 -0
  312. package/dist/testing/vitest.js +12 -0
  313. package/dist/testing/vitest.js.map +1 -0
  314. package/dist/valibot.d.ts +33 -0
  315. package/dist/valibot.d.ts.map +1 -0
  316. package/dist/valibot.js +61 -0
  317. package/dist/valibot.js.map +1 -0
  318. package/dist/zod.d.ts +36 -0
  319. package/dist/zod.d.ts.map +1 -0
  320. package/dist/zod.js +58 -0
  321. package/dist/zod.js.map +1 -0
  322. package/package.json +280 -5
  323. package/src/adyen-fx.ts +175 -0
  324. package/src/adyen.ts +46 -0
  325. package/src/allocate.ts +393 -0
  326. package/src/bag.ts +170 -0
  327. package/src/boc.ts +136 -0
  328. package/src/boe.ts +131 -0
  329. package/src/braintree.ts +71 -0
  330. package/src/cash.ts +183 -0
  331. package/src/checkout.ts +77 -0
  332. package/src/convert.ts +177 -0
  333. package/src/currency.ts +61 -0
  334. package/src/decimal.ts +283 -0
  335. package/src/drizzle/mysql.ts +78 -0
  336. package/src/drizzle/pg.ts +78 -0
  337. package/src/drizzle/sqlite.ts +70 -0
  338. package/src/ecb.ts +328 -0
  339. package/src/exact.ts +182 -0
  340. package/src/fed.ts +146 -0
  341. package/src/fetch.ts +306 -0
  342. package/src/fixed.ts +558 -0
  343. package/src/fn.ts +94 -0
  344. package/src/format.ts +106 -0
  345. package/src/generated/adyen.ts +144 -0
  346. package/src/generated/braintree.ts +140 -0
  347. package/src/generated/cash.ts +478 -0
  348. package/src/generated/checkout.ts +151 -0
  349. package/src/generated/historic.ts +67 -0
  350. package/src/generated/iso4217.ts +179 -0
  351. package/src/generated/kernel.ts +230 -0
  352. package/src/generated/klarna.ts +21 -0
  353. package/src/generated/paypal.ts +31 -0
  354. package/src/generated/stripe.ts +150 -0
  355. package/src/historic.ts +77 -0
  356. package/src/history.ts +333 -0
  357. package/src/hmrc.ts +125 -0
  358. package/src/index.ts +41 -0
  359. package/src/klarna.ts +54 -0
  360. package/src/kysely.ts +588 -0
  361. package/src/money.ts +979 -0
  362. package/src/parse.ts +511 -0
  363. package/src/paypal.ts +93 -0
  364. package/src/pg.ts +410 -0
  365. package/src/plugins/adyen.ts +25 -0
  366. package/src/plugins/all.ts +57 -0
  367. package/src/plugins/allocate.ts +53 -0
  368. package/src/plugins/braintree.ts +23 -0
  369. package/src/plugins/cash.ts +33 -0
  370. package/src/plugins/checkout.ts +32 -0
  371. package/src/plugins/convert.ts +49 -0
  372. package/src/plugins/exact.ts +23 -0
  373. package/src/plugins/fixed.ts +28 -0
  374. package/src/plugins/format.ts +28 -0
  375. package/src/plugins/klarna.ts +21 -0
  376. package/src/plugins/paypal.ts +29 -0
  377. package/src/plugins/prisma.ts +24 -0
  378. package/src/plugins/stripe.ts +29 -0
  379. package/src/plugins/tax.ts +40 -0
  380. package/src/policy.ts +124 -0
  381. package/src/prisma.ts +199 -0
  382. package/src/processor.ts +181 -0
  383. package/src/provider.ts +389 -0
  384. package/src/rate-text.ts +151 -0
  385. package/src/rate.ts +546 -0
  386. package/src/rounding-error.ts +8 -0
  387. package/src/rounding.ts +122 -0
  388. package/src/schema.ts +119 -0
  389. package/src/sql.ts +178 -0
  390. package/src/stripe-fx.ts +49 -0
  391. package/src/stripe.ts +69 -0
  392. package/src/tax.ts +102 -0
  393. package/src/testing/arbitraries.ts +134 -0
  394. package/src/testing/index.ts +247 -0
  395. package/src/testing/jest.ts +18 -0
  396. package/src/testing/vitest.ts +18 -0
  397. package/src/valibot.ts +87 -0
  398. package/src/zod.ts +78 -0
@@ -0,0 +1,230 @@
1
+ {
2
+ "processor": "Checkout.com",
3
+ "retrieved": "2026-11-07",
4
+ "amountFormat": "integer",
5
+ "sources": {
6
+ "format": {
7
+ "url": "https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value",
8
+ "quotes": [
9
+ "Additionally, the `amount` value must: Be greater than zero; Not contain decimals; Not contain more than nine digits",
10
+ "For the following currencies, the `amount` you specify is the final amount, without any additional calculations. For example, the following payment request with `amount` set to `100` is for 100 Japanese Yen",
11
+ "For the following currencies, the `amount` you specify is divided by 1000 to determine the final amount. For example, the following payment request with `amount` set to `100000` is for 100 Bahraini Dinar.",
12
+ "The last digit must always be a `0`. For example, an `amount` value of `1001` is invalid.",
13
+ "For all other currencies, the `amount` you specify is divided by 100 to determine the final amount. For example, the following payment request with `amount` set to `10000` is for 100 US Dollars.",
14
+ "For payment requests in which the `currency` is `CLP` (Chilean Peso), the last two digits of the `amount` must be `00`. For example, an `amount` value of `100010` is invalid.",
15
+ "This does not apply to authentication requests sent using the Standalone API."
16
+ ]
17
+ },
18
+ "currencies": {
19
+ "url": "https://www.checkout.com/docs/developer-resources/codes/currency-codes",
20
+ "quotes": [
21
+ "The following table lists the three-letter ISO 4217 code for each of the major currencies we support."
22
+ ]
23
+ },
24
+ "api": {
25
+ "url": "https://api-reference.checkout.com/v1/swagger.json",
26
+ "quotes": [
27
+ "PaymentRequest.amount: {\"maximum\": 9999999999, \"minimum\": 0, \"type\": \"integer\", \"format\": \"int64\"}",
28
+ "The payment amount. To perform a card verification, do not provide the amount or provide a value of `0`."
29
+ ]
30
+ }
31
+ },
32
+ "defaultExponent": 2,
33
+ "exponents": {
34
+ "BIF": 0,
35
+ "DJF": 0,
36
+ "GNF": 0,
37
+ "ISK": 0,
38
+ "JPY": 0,
39
+ "KMF": 0,
40
+ "KRW": 0,
41
+ "PYG": 0,
42
+ "RWF": 0,
43
+ "UGX": 0,
44
+ "VUV": 0,
45
+ "VND": 0,
46
+ "XAF": 0,
47
+ "XOF": 0,
48
+ "XPF": 0,
49
+ "BHD": 3,
50
+ "IQD": 3,
51
+ "JOD": 3,
52
+ "KWD": 3,
53
+ "LYD": 3,
54
+ "OMR": 3,
55
+ "TND": 3
56
+ },
57
+ "multiples": {
58
+ "BHD": 10,
59
+ "IQD": 10,
60
+ "JOD": 10,
61
+ "KWD": 10,
62
+ "LYD": 10,
63
+ "OMR": 10,
64
+ "TND": 10,
65
+ "CLP": 100
66
+ },
67
+ "standaloneMultiples": {
68
+ "CLP": 1
69
+ },
70
+ "currencies": [
71
+ "AED",
72
+ "AFN",
73
+ "ALL",
74
+ "AMD",
75
+ "AOA",
76
+ "AUD",
77
+ "AWG",
78
+ "AZN",
79
+ "BAM",
80
+ "BBD",
81
+ "BDT",
82
+ "BHD",
83
+ "BIF",
84
+ "BMD",
85
+ "BND",
86
+ "BOB",
87
+ "BRL",
88
+ "BSD",
89
+ "BTN",
90
+ "BWP",
91
+ "BZD",
92
+ "CAD",
93
+ "CDF",
94
+ "CHF",
95
+ "CLP",
96
+ "CNY",
97
+ "COP",
98
+ "CRC",
99
+ "CUP",
100
+ "CVE",
101
+ "CZK",
102
+ "DJF",
103
+ "DKK",
104
+ "DOP",
105
+ "DZD",
106
+ "EGP",
107
+ "ERN",
108
+ "ETB",
109
+ "EUR",
110
+ "FJD",
111
+ "FKP",
112
+ "GBP",
113
+ "GEL",
114
+ "GIP",
115
+ "GNF",
116
+ "GTQ",
117
+ "GYD",
118
+ "HKD",
119
+ "HNL",
120
+ "HTG",
121
+ "HUF",
122
+ "IDR",
123
+ "ILS",
124
+ "INR",
125
+ "IQD",
126
+ "IRR",
127
+ "ISK",
128
+ "JMD",
129
+ "JOD",
130
+ "JPY",
131
+ "KES",
132
+ "KGS",
133
+ "KHR",
134
+ "KMF",
135
+ "KRW",
136
+ "KWD",
137
+ "KYD",
138
+ "KZT",
139
+ "LAK",
140
+ "LKR",
141
+ "LRD",
142
+ "LSL",
143
+ "LYD",
144
+ "MAD",
145
+ "MDL",
146
+ "MGA",
147
+ "MKD",
148
+ "MMK",
149
+ "MNT",
150
+ "MOP",
151
+ "MRU",
152
+ "MUR",
153
+ "MVR",
154
+ "MWK",
155
+ "MXN",
156
+ "MYR",
157
+ "MZN",
158
+ "NAD",
159
+ "NGN",
160
+ "NIO",
161
+ "NOK",
162
+ "NPR",
163
+ "NZD",
164
+ "OMR",
165
+ "PAB",
166
+ "PEN",
167
+ "PGK",
168
+ "PHP",
169
+ "PKR",
170
+ "PLN",
171
+ "PYG",
172
+ "QAR",
173
+ "RON",
174
+ "RSD",
175
+ "RWF",
176
+ "SAR",
177
+ "SBD",
178
+ "SCR",
179
+ "SEK",
180
+ "SGD",
181
+ "SHP",
182
+ "SLE",
183
+ "SLL",
184
+ "SOS",
185
+ "SRD",
186
+ "STN",
187
+ "SVC",
188
+ "SZL",
189
+ "THB",
190
+ "TJS",
191
+ "TMT",
192
+ "TND",
193
+ "TOP",
194
+ "TRY",
195
+ "TTD",
196
+ "TWD",
197
+ "TZS",
198
+ "UAH",
199
+ "UGX",
200
+ "USD",
201
+ "UYU",
202
+ "UZS",
203
+ "VES",
204
+ "VND",
205
+ "VUV",
206
+ "WST",
207
+ "XAF",
208
+ "XCD",
209
+ "XCG",
210
+ "XDR",
211
+ "XOF",
212
+ "XPF",
213
+ "YER",
214
+ "ZAR",
215
+ "ZMW"
216
+ ],
217
+ "notes": [
218
+ "CLP is not in the full-amount list, so it falls under \"all other currencies\": two decimals, with the last two digits 00 for payments (like Stripe's ISK). ISO 4217 and Stripe give CLP 0 decimals; Adyen gives it 2 without the 00 rule.",
219
+ "Three-decimal currencies include IQD and LYD (Stripe lists neither); all seven need the last digit 0.",
220
+ "UYI (ISO 0 decimals) is not on the currency-codes page. MGA follows ISO (2), unlike Stripe (0).",
221
+ "The currency-codes page lists SLL (withdrawn from ISO 4217) and XDR (ISO minor unit N.A.); both fall under \"all other currencies\" (2). It does not list CLF, UYW, UYI, VED or ZWG.",
222
+ "Limits disagree: the format page says greater than zero and at most nine digits; the API reference allows 0 (card verification) up to 9999999999 (ten digits). Neither limit is enforced by ducat."
223
+ ],
224
+ "unverified": [
225
+ {
226
+ "claim": "The currency-codes page is the complete list of accepted presentment currencies (it says \"major currencies\").",
227
+ "verified": false
228
+ }
229
+ ]
230
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "source": "https://raw.githubusercontent.com/unicode-org/cldr/release-49/common/supplemental/supplementalData.xml",
3
+ "note": "CLDR <currencyData> fractions with a cash rule. cashDigits is the number of decimals cash amounts show, and cashRounding (0 means 1) the step in units of the last of them: CHF cashDigits 2, cashRounding 5 is CHF 0.05.",
4
+ "currencies": {
5
+ "AMD": {
6
+ "digits": 2,
7
+ "cashDigits": 0,
8
+ "cashRounding": 0
9
+ },
10
+ "CAD": {
11
+ "digits": 2,
12
+ "cashDigits": 2,
13
+ "cashRounding": 5
14
+ },
15
+ "CHF": {
16
+ "digits": 2,
17
+ "cashDigits": 2,
18
+ "cashRounding": 5
19
+ },
20
+ "CRC": {
21
+ "digits": 2,
22
+ "cashDigits": 0,
23
+ "cashRounding": 0
24
+ },
25
+ "CZK": {
26
+ "digits": 2,
27
+ "cashDigits": 0,
28
+ "cashRounding": 0
29
+ },
30
+ "DKK": {
31
+ "digits": 2,
32
+ "cashDigits": 2,
33
+ "cashRounding": 50
34
+ },
35
+ "GYD": {
36
+ "digits": 2,
37
+ "cashDigits": 0,
38
+ "cashRounding": 0
39
+ },
40
+ "HUF": {
41
+ "digits": 0,
42
+ "cashDigits": 0,
43
+ "cashRounding": 5
44
+ },
45
+ "MNT": {
46
+ "digits": 2,
47
+ "cashDigits": 0,
48
+ "cashRounding": 0
49
+ },
50
+ "MRU": {
51
+ "digits": 2,
52
+ "cashDigits": 2,
53
+ "cashRounding": 20
54
+ },
55
+ "MUR": {
56
+ "digits": 2,
57
+ "cashDigits": 0,
58
+ "cashRounding": 0
59
+ },
60
+ "NOK": {
61
+ "digits": 2,
62
+ "cashDigits": 0,
63
+ "cashRounding": 0
64
+ },
65
+ "PKR": {
66
+ "digits": 2,
67
+ "cashDigits": 0,
68
+ "cashRounding": 0
69
+ },
70
+ "RSD": {
71
+ "digits": 2,
72
+ "cashDigits": 0,
73
+ "cashRounding": 0
74
+ },
75
+ "SEK": {
76
+ "digits": 2,
77
+ "cashDigits": 0,
78
+ "cashRounding": 0
79
+ },
80
+ "TWD": {
81
+ "digits": 2,
82
+ "cashDigits": 0,
83
+ "cashRounding": 0
84
+ },
85
+ "TZS": {
86
+ "digits": 2,
87
+ "cashDigits": 0,
88
+ "cashRounding": 0
89
+ },
90
+ "UZS": {
91
+ "digits": 2,
92
+ "cashDigits": 0,
93
+ "cashRounding": 0
94
+ },
95
+ "VEF": {
96
+ "digits": 2,
97
+ "cashDigits": 0,
98
+ "cashRounding": 0
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "description": "Withdrawn ISO 4217 codes and non-ISO codes for @ducatjs/money/historic. Codes, names and withdrawal dates come from ISO 4217 List Three (data/iso4217-list-three.xml). List Three has no minor units, so each exponent here is the one ISO 4217 gave the code while it was current. Only codes whose exponent is sourced are included.",
3
+ "sources": {
4
+ "listThree": {
5
+ "url": "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-three.xml",
6
+ "published": "2026-01-01",
7
+ "retrieved": "2026-11-08"
8
+ },
9
+ "exponents": {
10
+ "url": "https://github.com/openjdk/jdk/blob/master/src/java.base/share/data/currency/CurrencyData.properties",
11
+ "note": "OpenJDK's currency data (dataVersion 180) keeps the ISO 4217 minor units of withdrawn codes; codes it lists as minorUndefined (XFO, XFU) are not monetary and are left out",
12
+ "retrieved": "2026-11-08"
13
+ }
14
+ },
15
+ "exponents": {
16
+ "ADP": 0,
17
+ "AFA": 2,
18
+ "ANG": 2,
19
+ "ATS": 2,
20
+ "AYM": 2,
21
+ "AZM": 2,
22
+ "BEF": 0,
23
+ "BGL": 2,
24
+ "BGN": 2,
25
+ "BYB": 0,
26
+ "BYR": 0,
27
+ "CSD": 2,
28
+ "CUC": 2,
29
+ "CYP": 2,
30
+ "DEM": 2,
31
+ "EEK": 2,
32
+ "ESP": 0,
33
+ "FIM": 2,
34
+ "FRF": 2,
35
+ "GHC": 2,
36
+ "GRD": 0,
37
+ "GWP": 2,
38
+ "HRK": 2,
39
+ "IEP": 2,
40
+ "ITL": 0,
41
+ "LTL": 2,
42
+ "LUF": 0,
43
+ "LVL": 2,
44
+ "MGF": 0,
45
+ "MRO": 2,
46
+ "MTL": 2,
47
+ "MZM": 2,
48
+ "NLG": 2,
49
+ "PTE": 0,
50
+ "ROL": 0,
51
+ "RUR": 2,
52
+ "SDD": 2,
53
+ "SIT": 2,
54
+ "SKK": 2,
55
+ "SLL": 2,
56
+ "SRG": 2,
57
+ "STD": 2,
58
+ "TMM": 2,
59
+ "TPE": 0,
60
+ "TRL": 0,
61
+ "USS": 2,
62
+ "VEB": 2,
63
+ "VEF": 2,
64
+ "YUM": 2,
65
+ "ZMK": 2,
66
+ "ZWD": 2,
67
+ "ZWL": 2,
68
+ "ZWN": 2,
69
+ "ZWR": 2
70
+ },
71
+ "nonIso": {
72
+ "CNH": {
73
+ "name": "Chinese Yuan Renminbi (offshore)",
74
+ "exponent": 2,
75
+ "note": "the offshore renminbi traded in Hong Kong; not an ISO 4217 code, listed by Adyen"
76
+ }
77
+ }
78
+ }