@ducatjs/money 0.0.0-stage → 0.1.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 (285) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +51 -0
  3. package/README.md +617 -2
  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 +399 -0
  9. package/data/checkout.json +230 -0
  10. package/data/iso4217-list-one.xml +1956 -0
  11. package/data/klarna.json +95 -0
  12. package/data/paypal.json +65 -0
  13. package/data/stripe-fx.json +17 -0
  14. package/data/stripe.json +285 -0
  15. package/dist/adyen-fx.d.ts +25 -0
  16. package/dist/adyen-fx.d.ts.map +1 -0
  17. package/dist/adyen-fx.js +122 -0
  18. package/dist/adyen-fx.js.map +1 -0
  19. package/dist/adyen.d.ts +25 -0
  20. package/dist/adyen.d.ts.map +1 -0
  21. package/dist/adyen.js +34 -0
  22. package/dist/adyen.js.map +1 -0
  23. package/dist/allocate.d.ts +72 -0
  24. package/dist/allocate.d.ts.map +1 -0
  25. package/dist/allocate.js +314 -0
  26. package/dist/allocate.js.map +1 -0
  27. package/dist/bag.d.ts +58 -0
  28. package/dist/bag.d.ts.map +1 -0
  29. package/dist/bag.js +122 -0
  30. package/dist/bag.js.map +1 -0
  31. package/dist/braintree.d.ts +34 -0
  32. package/dist/braintree.d.ts.map +1 -0
  33. package/dist/braintree.js +45 -0
  34. package/dist/braintree.js.map +1 -0
  35. package/dist/cash.d.ts +35 -0
  36. package/dist/cash.d.ts.map +1 -0
  37. package/dist/cash.js +86 -0
  38. package/dist/cash.js.map +1 -0
  39. package/dist/checkout.d.ts +42 -0
  40. package/dist/checkout.d.ts.map +1 -0
  41. package/dist/checkout.js +52 -0
  42. package/dist/checkout.js.map +1 -0
  43. package/dist/convert.d.ts +51 -0
  44. package/dist/convert.d.ts.map +1 -0
  45. package/dist/convert.js +55 -0
  46. package/dist/convert.js.map +1 -0
  47. package/dist/currency.d.ts +22 -0
  48. package/dist/currency.d.ts.map +1 -0
  49. package/dist/currency.js +38 -0
  50. package/dist/currency.js.map +1 -0
  51. package/dist/decimal.d.ts +52 -0
  52. package/dist/decimal.d.ts.map +1 -0
  53. package/dist/decimal.js +251 -0
  54. package/dist/decimal.js.map +1 -0
  55. package/dist/ecb.d.ts +17 -0
  56. package/dist/ecb.d.ts.map +1 -0
  57. package/dist/ecb.js +147 -0
  58. package/dist/ecb.js.map +1 -0
  59. package/dist/exact.d.ts +62 -0
  60. package/dist/exact.d.ts.map +1 -0
  61. package/dist/exact.js +147 -0
  62. package/dist/exact.js.map +1 -0
  63. package/dist/fetch.d.ts +58 -0
  64. package/dist/fetch.d.ts.map +1 -0
  65. package/dist/fetch.js +79 -0
  66. package/dist/fetch.js.map +1 -0
  67. package/dist/fixed.d.ts +121 -0
  68. package/dist/fixed.d.ts.map +1 -0
  69. package/dist/fixed.js +420 -0
  70. package/dist/fixed.js.map +1 -0
  71. package/dist/fn.d.ts +27 -0
  72. package/dist/fn.d.ts.map +1 -0
  73. package/dist/fn.js +30 -0
  74. package/dist/fn.js.map +1 -0
  75. package/dist/format.d.ts +13 -0
  76. package/dist/format.d.ts.map +1 -0
  77. package/dist/format.js +90 -0
  78. package/dist/format.js.map +1 -0
  79. package/dist/generated/adyen.d.ts +3 -0
  80. package/dist/generated/adyen.d.ts.map +1 -0
  81. package/dist/generated/adyen.js +144 -0
  82. package/dist/generated/adyen.js.map +1 -0
  83. package/dist/generated/braintree.d.ts +3 -0
  84. package/dist/generated/braintree.d.ts.map +1 -0
  85. package/dist/generated/braintree.js +140 -0
  86. package/dist/generated/braintree.js.map +1 -0
  87. package/dist/generated/cash.d.ts +12 -0
  88. package/dist/generated/cash.d.ts.map +1 -0
  89. package/dist/generated/cash.js +364 -0
  90. package/dist/generated/cash.js.map +1 -0
  91. package/dist/generated/checkout.d.ts +3 -0
  92. package/dist/generated/checkout.d.ts.map +1 -0
  93. package/dist/generated/checkout.js +151 -0
  94. package/dist/generated/checkout.js.map +1 -0
  95. package/dist/generated/iso4217.d.ts +174 -0
  96. package/dist/generated/iso4217.d.ts.map +1 -0
  97. package/dist/generated/iso4217.js +175 -0
  98. package/dist/generated/iso4217.js.map +1 -0
  99. package/dist/generated/kernel.d.ts +17 -0
  100. package/dist/generated/kernel.d.ts.map +1 -0
  101. package/dist/generated/kernel.js +208 -0
  102. package/dist/generated/kernel.js.map +1 -0
  103. package/dist/generated/klarna.d.ts +3 -0
  104. package/dist/generated/klarna.d.ts.map +1 -0
  105. package/dist/generated/klarna.js +21 -0
  106. package/dist/generated/klarna.js.map +1 -0
  107. package/dist/generated/paypal.d.ts +3 -0
  108. package/dist/generated/paypal.d.ts.map +1 -0
  109. package/dist/generated/paypal.js +31 -0
  110. package/dist/generated/paypal.js.map +1 -0
  111. package/dist/generated/stripe.d.ts +8 -0
  112. package/dist/generated/stripe.d.ts.map +1 -0
  113. package/dist/generated/stripe.js +150 -0
  114. package/dist/generated/stripe.js.map +1 -0
  115. package/dist/index.d.ts +11 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +11 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/klarna.d.ts +31 -0
  120. package/dist/klarna.d.ts.map +1 -0
  121. package/dist/klarna.js +38 -0
  122. package/dist/klarna.js.map +1 -0
  123. package/dist/money.d.ts +218 -0
  124. package/dist/money.d.ts.map +1 -0
  125. package/dist/money.js +577 -0
  126. package/dist/money.js.map +1 -0
  127. package/dist/parse.d.ts +11 -0
  128. package/dist/parse.d.ts.map +1 -0
  129. package/dist/parse.js +132 -0
  130. package/dist/parse.js.map +1 -0
  131. package/dist/paypal.d.ts +41 -0
  132. package/dist/paypal.d.ts.map +1 -0
  133. package/dist/paypal.js +58 -0
  134. package/dist/paypal.js.map +1 -0
  135. package/dist/plugins/adyen.d.ts +15 -0
  136. package/dist/plugins/adyen.d.ts.map +1 -0
  137. package/dist/plugins/adyen.js +10 -0
  138. package/dist/plugins/adyen.js.map +1 -0
  139. package/dist/plugins/all.d.ts +22 -0
  140. package/dist/plugins/all.d.ts.map +1 -0
  141. package/dist/plugins/all.js +23 -0
  142. package/dist/plugins/all.js.map +1 -0
  143. package/dist/plugins/allocate.d.ts +20 -0
  144. package/dist/plugins/allocate.d.ts.map +1 -0
  145. package/dist/plugins/allocate.js +26 -0
  146. package/dist/plugins/allocate.js.map +1 -0
  147. package/dist/plugins/braintree.d.ts +12 -0
  148. package/dist/plugins/braintree.d.ts.map +1 -0
  149. package/dist/plugins/braintree.js +12 -0
  150. package/dist/plugins/braintree.js.map +1 -0
  151. package/dist/plugins/cash.d.ts +19 -0
  152. package/dist/plugins/cash.d.ts.map +1 -0
  153. package/dist/plugins/cash.js +16 -0
  154. package/dist/plugins/cash.js.map +1 -0
  155. package/dist/plugins/checkout.d.ts +21 -0
  156. package/dist/plugins/checkout.d.ts.map +1 -0
  157. package/dist/plugins/checkout.js +16 -0
  158. package/dist/plugins/checkout.js.map +1 -0
  159. package/dist/plugins/convert.d.ts +20 -0
  160. package/dist/plugins/convert.d.ts.map +1 -0
  161. package/dist/plugins/convert.js +13 -0
  162. package/dist/plugins/convert.js.map +1 -0
  163. package/dist/plugins/exact.d.ts +15 -0
  164. package/dist/plugins/exact.d.ts.map +1 -0
  165. package/dist/plugins/exact.js +13 -0
  166. package/dist/plugins/exact.js.map +1 -0
  167. package/dist/plugins/fixed.d.ts +17 -0
  168. package/dist/plugins/fixed.d.ts.map +1 -0
  169. package/dist/plugins/fixed.js +13 -0
  170. package/dist/plugins/fixed.js.map +1 -0
  171. package/dist/plugins/format.d.ts +9 -0
  172. package/dist/plugins/format.d.ts.map +1 -0
  173. package/dist/plugins/format.js +16 -0
  174. package/dist/plugins/format.js.map +1 -0
  175. package/dist/plugins/klarna.d.ts +10 -0
  176. package/dist/plugins/klarna.d.ts.map +1 -0
  177. package/dist/plugins/klarna.js +10 -0
  178. package/dist/plugins/klarna.js.map +1 -0
  179. package/dist/plugins/paypal.d.ts +14 -0
  180. package/dist/plugins/paypal.d.ts.map +1 -0
  181. package/dist/plugins/paypal.js +16 -0
  182. package/dist/plugins/paypal.js.map +1 -0
  183. package/dist/plugins/prisma.d.ts +8 -0
  184. package/dist/plugins/prisma.d.ts.map +1 -0
  185. package/dist/plugins/prisma.js +13 -0
  186. package/dist/plugins/prisma.js.map +1 -0
  187. package/dist/plugins/stripe.d.ts +14 -0
  188. package/dist/plugins/stripe.d.ts.map +1 -0
  189. package/dist/plugins/stripe.js +16 -0
  190. package/dist/plugins/stripe.js.map +1 -0
  191. package/dist/plugins/tax.d.ts +21 -0
  192. package/dist/plugins/tax.d.ts.map +1 -0
  193. package/dist/plugins/tax.js +18 -0
  194. package/dist/plugins/tax.js.map +1 -0
  195. package/dist/prisma.d.ts +66 -0
  196. package/dist/prisma.d.ts.map +1 -0
  197. package/dist/prisma.js +66 -0
  198. package/dist/prisma.js.map +1 -0
  199. package/dist/processor.d.ts +28 -0
  200. package/dist/processor.d.ts.map +1 -0
  201. package/dist/processor.js +118 -0
  202. package/dist/processor.js.map +1 -0
  203. package/dist/provider.d.ts +89 -0
  204. package/dist/provider.d.ts.map +1 -0
  205. package/dist/provider.js +240 -0
  206. package/dist/provider.js.map +1 -0
  207. package/dist/rate.d.ts +119 -0
  208. package/dist/rate.d.ts.map +1 -0
  209. package/dist/rate.js +271 -0
  210. package/dist/rate.js.map +1 -0
  211. package/dist/rounding-error.d.ts +9 -0
  212. package/dist/rounding-error.d.ts.map +1 -0
  213. package/dist/rounding-error.js +9 -0
  214. package/dist/rounding-error.js.map +1 -0
  215. package/dist/rounding.d.ts +50 -0
  216. package/dist/rounding.d.ts.map +1 -0
  217. package/dist/rounding.js +87 -0
  218. package/dist/rounding.js.map +1 -0
  219. package/dist/stripe-fx.d.ts +22 -0
  220. package/dist/stripe-fx.d.ts.map +1 -0
  221. package/dist/stripe-fx.js +30 -0
  222. package/dist/stripe-fx.js.map +1 -0
  223. package/dist/stripe.d.ts +36 -0
  224. package/dist/stripe.d.ts.map +1 -0
  225. package/dist/stripe.js +39 -0
  226. package/dist/stripe.js.map +1 -0
  227. package/dist/tax.d.ts +29 -0
  228. package/dist/tax.d.ts.map +1 -0
  229. package/dist/tax.js +39 -0
  230. package/dist/tax.js.map +1 -0
  231. package/package.json +171 -4
  232. package/src/adyen-fx.ts +154 -0
  233. package/src/adyen.ts +46 -0
  234. package/src/allocate.ts +393 -0
  235. package/src/bag.ts +170 -0
  236. package/src/braintree.ts +71 -0
  237. package/src/cash.ts +115 -0
  238. package/src/checkout.ts +77 -0
  239. package/src/convert.ts +159 -0
  240. package/src/currency.ts +61 -0
  241. package/src/decimal.ts +283 -0
  242. package/src/ecb.ts +162 -0
  243. package/src/exact.ts +182 -0
  244. package/src/fetch.ts +127 -0
  245. package/src/fixed.ts +558 -0
  246. package/src/fn.ts +80 -0
  247. package/src/format.ts +106 -0
  248. package/src/generated/adyen.ts +144 -0
  249. package/src/generated/braintree.ts +140 -0
  250. package/src/generated/cash.ts +375 -0
  251. package/src/generated/checkout.ts +151 -0
  252. package/src/generated/iso4217.ts +179 -0
  253. package/src/generated/kernel.ts +230 -0
  254. package/src/generated/klarna.ts +21 -0
  255. package/src/generated/paypal.ts +31 -0
  256. package/src/generated/stripe.ts +150 -0
  257. package/src/index.ts +37 -0
  258. package/src/klarna.ts +54 -0
  259. package/src/money.ts +781 -0
  260. package/src/parse.ts +144 -0
  261. package/src/paypal.ts +93 -0
  262. package/src/plugins/adyen.ts +25 -0
  263. package/src/plugins/all.ts +47 -0
  264. package/src/plugins/allocate.ts +53 -0
  265. package/src/plugins/braintree.ts +23 -0
  266. package/src/plugins/cash.ts +33 -0
  267. package/src/plugins/checkout.ts +32 -0
  268. package/src/plugins/convert.ts +50 -0
  269. package/src/plugins/exact.ts +23 -0
  270. package/src/plugins/fixed.ts +28 -0
  271. package/src/plugins/format.ts +28 -0
  272. package/src/plugins/klarna.ts +21 -0
  273. package/src/plugins/paypal.ts +29 -0
  274. package/src/plugins/prisma.ts +24 -0
  275. package/src/plugins/stripe.ts +29 -0
  276. package/src/plugins/tax.ts +41 -0
  277. package/src/prisma.ts +118 -0
  278. package/src/processor.ts +181 -0
  279. package/src/provider.ts +324 -0
  280. package/src/rate.ts +377 -0
  281. package/src/rounding-error.ts +8 -0
  282. package/src/rounding.ts +122 -0
  283. package/src/stripe-fx.ts +49 -0
  284. package/src/stripe.ts +69 -0
  285. package/src/tax.ts +71 -0
@@ -0,0 +1,399 @@
1
+ {
2
+ "retrieved": "2026-11-07",
3
+ "note": "Smallest cash increment where it differs from the ISO minor unit. 'verified': false means only secondary sources (press, Wikipedia) were found; treat as a default you should confirm.",
4
+ "rules": [
5
+ {
6
+ "currency": "CHF",
7
+ "increment": "0.05",
8
+ "scope": "cash (practice; card/electronic to 0.01)",
9
+ "countries": [
10
+ "CH",
11
+ "LI"
12
+ ],
13
+ "source": "https://www.snb.ch/en/the-snb/mandates-goals/cash/coins",
14
+ "note": "1-centime coin withdrawn 1 Jan 2007; 5 centimes is the smallest coin. No statutory rounding rule found; rounding to 0.05 is market practice.",
15
+ "verified": false
16
+ },
17
+ {
18
+ "currency": "SEK",
19
+ "increment": "1.00",
20
+ "scope": "cash only",
21
+ "countries": [
22
+ "SE"
23
+ ],
24
+ "source": "https://archive.riksbank.se/en/Web-archive/Published/Notices/2009/50-ore-coin-to-be-abolished-in-2010/index.html",
25
+ "note": "50-öre coin ceased to be legal tender 30 Sep 2010. Riksbank: card payments not affected; cash rounded to nearest krona (1-49 öre down, 50-99 up). Öre remains an accounting unit.",
26
+ "verified": true
27
+ },
28
+ {
29
+ "currency": "DKK",
30
+ "increment": "0.50",
31
+ "scope": "cash only",
32
+ "countries": [
33
+ "DK",
34
+ "GL",
35
+ "FO"
36
+ ],
37
+ "source": "https://lex.dk/afrunding",
38
+ "note": "Since 1 Oct 2008 (25-øre coin withdrawn). 1-24 øre down, 25-49 up to 50, 51-74 down to 50, 75-99 up. Card payments exact. Danmarks Nationalbank primary page not retrieved (URL 404); secondary sources only. Greenland/Faroe applicability assumed.",
39
+ "verified": false
40
+ },
41
+ {
42
+ "currency": "NOK",
43
+ "increment": "1.00",
44
+ "scope": "cash only",
45
+ "countries": [
46
+ "NO",
47
+ "SJ",
48
+ "BV"
49
+ ],
50
+ "source": "https://www.norges-bank.no/en/news-events/news/Circulars/2011/Regulation-relating-to-withdrawal-of-50-ore-coins-as-legal-tender/",
51
+ "note": "From 1 May 2012 (50-øre coin withdrawn): øre 1-49 rounded down, 50-99 rounded up, in final settlement of cash transactions.",
52
+ "verified": true
53
+ },
54
+ {
55
+ "currency": "CAD",
56
+ "increment": "0.05",
57
+ "scope": "cash only",
58
+ "countries": [
59
+ "CA"
60
+ ],
61
+ "source": "https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/gi-131/phasing-penny.html",
62
+ "note": "Since 4 Feb 2013. CRA GI-131: cash totals rounded to nearest 5 cents; cheque and electronic (card) payments still to the cent; GST computed before rounding. Penny remains legal tender. (Page content seen via search summary; direct fetch returned 404.)",
63
+ "verified": true
64
+ },
65
+ {
66
+ "currency": "AUD",
67
+ "increment": "0.05",
68
+ "scope": "cash only",
69
+ "countries": [
70
+ "AU",
71
+ "CX",
72
+ "CC",
73
+ "NF",
74
+ "NR",
75
+ "KI",
76
+ "TV",
77
+ "HM"
78
+ ],
79
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
80
+ "note": "1c/2c coins withdrawn Feb 1992; cash totals ending 1,2,6,7 down, 3,4,8,9 up. Electronic not usually rounded. No primary RBA/ACCC page fetched; applicability to other AUD-using territories assumed.",
81
+ "verified": false
82
+ },
83
+ {
84
+ "currency": "NZD",
85
+ "increment": "0.10",
86
+ "scope": "cash only",
87
+ "countries": [
88
+ "NZ",
89
+ "CK",
90
+ "NU",
91
+ "PN",
92
+ "TK"
93
+ ],
94
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
95
+ "note": "5c coin demonetised 1 Nov 2006 (1c/2c in 1990). Rounding of total of cash transactions only; treatment of 5c is at retailer discretion (RBNZ advised rounding down). Primary RBNZ page (newcoins.govt.nz) is dead; secondary sources only.",
96
+ "verified": false
97
+ },
98
+ {
99
+ "currency": "EUR",
100
+ "increment": "0.05",
101
+ "scope": "cash only (mandatory for in-person cash; optional for other methods; not allowed for distance sales)",
102
+ "countries": [
103
+ "BE"
104
+ ],
105
+ "source": "https://economie.fgov.be/en/themes/sales/mandatory-rounding-cash",
106
+ "note": "Since 1 Dec 2019. Verbatim: \"The rounding obligation applies to all cash payments.\" \"For other payment methods, you are free to decide whether or not to apply rounding.\" \"Rounding is not permitted for distance sales (e.g. via internet).\"",
107
+ "verified": true
108
+ },
109
+ {
110
+ "currency": "EUR",
111
+ "increment": "0.05",
112
+ "scope": "cash only (permitted, must be signposted)",
113
+ "countries": [
114
+ "NL"
115
+ ],
116
+ "source": "https://www.rijksoverheid.nl/documenten/vraag-en-antwoord/betalingsverkeer/mogen-winkeliers-betalingen-afronden-op-0-eurocent-of-5-eurocent",
117
+ "note": "Since Sept 2004. Rijksoverheid: shops may round the cash total to 0 or 5 cent if clearly indicated; card payments exact. Voluntary, not mandatory.",
118
+ "verified": true
119
+ },
120
+ {
121
+ "currency": "EUR",
122
+ "increment": "0.05",
123
+ "scope": "cash only (statutory)",
124
+ "countries": [
125
+ "FI"
126
+ ],
127
+ "source": "https://www.finlex.fi/fi/lainsaadanto/2000/890",
128
+ "note": "Act 890/2000 on rounding of euro payments; in force since euro cash introduction 2002. 1c/2c remain legal tender. Statute not fetched directly (cited via Wikipedia).",
129
+ "verified": false
130
+ },
131
+ {
132
+ "currency": "EUR",
133
+ "increment": "0.05",
134
+ "scope": "cash only (voluntary)",
135
+ "countries": [
136
+ "IE"
137
+ ],
138
+ "source": "https://www.irishtimes.com/news/ireland/irish-news/coin-rounding-begins-as-use-of-1-cent-2-cent-coins-reduced-1.2408459",
139
+ "note": "National rounding since 28 Oct 2015 (Central Bank of Ireland scheme). Applies to total bill paid in cash; card payments unaffected; voluntary for customer and retailer; 1c/2c remain legal tender. Press source, not CBI primary page.",
140
+ "verified": false
141
+ },
142
+ {
143
+ "currency": "EUR",
144
+ "increment": "0.05",
145
+ "scope": "cash only (voluntary practice)",
146
+ "countries": [
147
+ "IT"
148
+ ],
149
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
150
+ "note": "Italy stopped minting 1c/2c from 1 Jan 2018 (DL 50/2017 art. 13-quater). Some sellers round cash to 0.05; no general mandatory rule.",
151
+ "verified": false
152
+ },
153
+ {
154
+ "currency": "EUR",
155
+ "increment": "0.05",
156
+ "scope": "cash only",
157
+ "countries": [
158
+ "SK"
159
+ ],
160
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
161
+ "note": "From 1 July 2022 per Wikipedia (1c/2c removed from general circulation). Legal basis/mandatory status not confirmed from NBS or Slovak law.",
162
+ "verified": false
163
+ },
164
+ {
165
+ "currency": "EUR",
166
+ "increment": "0.05",
167
+ "scope": "cash only, at physical point of sale",
168
+ "countries": [
169
+ "EE"
170
+ ],
171
+ "source": "https://www.eestipank.ee/en/press/rounding-rule-will-start-apply-payments-cash-new-year-27122024",
172
+ "note": "Since 1 Jan 2025. Eesti Pank: final price of a basket paid in cash at a physical point of sale rounded to nearest five cents. 1c/2c remain legal tender.",
173
+ "verified": true
174
+ },
175
+ {
176
+ "currency": "EUR",
177
+ "increment": "0.05",
178
+ "scope": "cash only",
179
+ "countries": [
180
+ "LT"
181
+ ],
182
+ "source": "https://www.baltictimes.com/lithuania_starts_rounding_off_cash_payments_to_phase_out_1__2_cent_coins",
183
+ "note": "Since 1 May 2025. Ending 1,2,6,7 down; 3,4,8,9 up. Not applied to non-cash payments, currency exchange, cash transfers, deposits/withdrawals. Press source.",
184
+ "verified": false
185
+ },
186
+ {
187
+ "currency": "HUF",
188
+ "increment": "5",
189
+ "scope": "cash only (statutory)",
190
+ "countries": [
191
+ "HU"
192
+ ],
193
+ "source": "https://njt.jog.gov.hu/jogszabaly/2008-3-00-00",
194
+ "note": "Act III of 2008; 1 and 2 Ft coins withdrawn 1 Mar 2008. Cash total not ending in 0 or 5 Ft rounded per the act (1-2 down to 0, 3-4 up to 5, 6-7 down to 5, 8-9 up to 10). Card/transfer to 1 Ft. Note fillér (0.01) is still ISO minor unit but unused.",
195
+ "verified": true
196
+ },
197
+ {
198
+ "currency": "CZK",
199
+ "increment": "1.00",
200
+ "scope": "cash only",
201
+ "countries": [
202
+ "CZ"
203
+ ],
204
+ "source": "https://www.cnb.cz/en/faq/How-to-round-after-the-withdrawal-of-50-heller-coins",
205
+ "note": "50-heller coins invalid from 31 Aug 2008. Consumer Protection Act 634/1992 art. 3(c): cash total rounded to nearest valid denomination (whole koruna). Non-cash payments unaffected; prices may still be shown in hellers.",
206
+ "verified": true
207
+ },
208
+ {
209
+ "currency": "ILS",
210
+ "increment": "0.10",
211
+ "scope": "cash only",
212
+ "countries": [
213
+ "IL",
214
+ "PS"
215
+ ],
216
+ "source": "https://boi.org.il/en/communication-and-publications/press-releases/the-bank-of-israel-asks-the-government-to-approve-abolishing-the-5-agorot-coin-as-legal-tender/",
217
+ "note": "5-agorot coin withdrawn from circulation 1 Jan 2008; cash totals rounded to nearest 10 agorot (1-4 down, 5-9 up); non-cash to 1 agora. Sources conflict on formal legal-tender status of the 5 agorot coin (a 2020 BoI release asks to abolish it).",
218
+ "verified": false
219
+ },
220
+ {
221
+ "currency": "MYR",
222
+ "increment": "0.05",
223
+ "scope": "over-the-counter payments (originally cash and non-cash per 2007 announcement; current practice cash only)",
224
+ "countries": [
225
+ "MY"
226
+ ],
227
+ "source": "https://www.bnm.gov.my/-/introduction-of-a-rounding-mechanism-for-over-the-counter-payments",
228
+ "note": "Since 1 Apr 2008. Total bill: ending 1,2,6,7 sen down; 3,4,8,9 up. Not applicable to online transactions. Scope conflict: 2007 statement covers cash and non-cash OTC; later sources say cash only.",
229
+ "verified": false
230
+ },
231
+ {
232
+ "currency": "SGD",
233
+ "increment": "0.05",
234
+ "scope": "cash (informal practice; always rounded down per Wikipedia)",
235
+ "countries": [
236
+ "SG"
237
+ ],
238
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
239
+ "note": "1-cent coin no longer produced (still legal tender). No MAS rounding rule found; treat as optional retailer practice.",
240
+ "verified": false
241
+ },
242
+ {
243
+ "currency": "RON",
244
+ "increment": "0.05",
245
+ "scope": "cash (practice)",
246
+ "countries": [
247
+ "RO"
248
+ ],
249
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
250
+ "note": "1 ban coins legal tender but rare.",
251
+ "verified": false
252
+ },
253
+ {
254
+ "currency": "XPF",
255
+ "increment": "5",
256
+ "scope": "cash only",
257
+ "countries": [
258
+ "PF",
259
+ "NC",
260
+ "WF"
261
+ ],
262
+ "source": "https://www.ieom.fr/nouvelles-pieces/",
263
+ "note": "1 and 2 franc coins ceased legal tender 30 Nov 2022; rounding does not apply to non-cash transactions. Cited via Wikipedia.",
264
+ "verified": false
265
+ },
266
+ {
267
+ "currency": "BSD",
268
+ "increment": "0.05",
269
+ "scope": "cash",
270
+ "countries": [
271
+ "BS"
272
+ ],
273
+ "source": "https://www.centralbankbahamas.com/download/075913500.pdf",
274
+ "note": "One cent coins ceased to be legal tender 2021; cash rounded to nearest 5 cents. Cited via Wikipedia.",
275
+ "verified": false
276
+ },
277
+ {
278
+ "currency": "TTD",
279
+ "increment": "0.05",
280
+ "scope": "cash",
281
+ "countries": [
282
+ "TT"
283
+ ],
284
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
285
+ "note": "1c lost legal tender 2018.",
286
+ "verified": false
287
+ },
288
+ {
289
+ "currency": "ZAR",
290
+ "increment": "0.10",
291
+ "scope": "cash (practice)",
292
+ "countries": [
293
+ "ZA"
294
+ ],
295
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
296
+ "note": "5c production stopped 2012 but coins remain legal tender; prices rounded to 10c in practice.",
297
+ "verified": false
298
+ },
299
+ {
300
+ "currency": "HKD",
301
+ "increment": "0.10",
302
+ "scope": "cash (practice)",
303
+ "countries": [
304
+ "HK"
305
+ ],
306
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
307
+ "note": "5-cent coin eliminated 1989; smallest coin 10 cents.",
308
+ "verified": false
309
+ },
310
+ {
311
+ "currency": "UAH",
312
+ "increment": "0.10",
313
+ "scope": "cash",
314
+ "countries": [
315
+ "UA"
316
+ ],
317
+ "source": "https://www.bank.gov.ua/news/all/natsionalniy-bank-uporyadkovuye-nominalniy-ryad-banknot-i-monet-grivni",
318
+ "note": "From 1 Oct 2019, 1/2/5 kopiyka coins withdrawn; cash rounded to nearest 10 kopiyok. Cited via Wikipedia.",
319
+ "verified": false
320
+ },
321
+ {
322
+ "currency": "CLP",
323
+ "increment": "10",
324
+ "scope": "cash only",
325
+ "countries": [
326
+ "CL"
327
+ ],
328
+ "source": "https://www.dgac.gob.cl/monedas-de-1-y-5-pesos-pasaran-a-la-historia-ley-n-20-956-ministerio-de-hacienda/",
329
+ "note": "Ley 20.956, since 1 Nov 2017: cash totals ending 1-5 rounded down, 6-9 up, to nearest 10 pesos. Cited via Wikipedia.",
330
+ "verified": false
331
+ },
332
+ {
333
+ "currency": "PEN",
334
+ "increment": "0.10",
335
+ "scope": "cash (practice)",
336
+ "countries": [
337
+ "PE"
338
+ ],
339
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
340
+ "note": "5-céntimo coin discontinued 2019.",
341
+ "verified": false
342
+ },
343
+ {
344
+ "currency": "THB",
345
+ "increment": "0.25",
346
+ "scope": "cash (practice)",
347
+ "countries": [
348
+ "TH"
349
+ ],
350
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
351
+ "note": "Coins below 25 satang not issued for general circulation.",
352
+ "verified": false
353
+ },
354
+ {
355
+ "currency": "AED",
356
+ "increment": "0.25",
357
+ "scope": "cash (practice)",
358
+ "countries": [
359
+ "AE"
360
+ ],
361
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
362
+ "note": "25 fils smallest coin in general circulation; 1/5/10 fils rarely seen. Wikipedia lists AED under both 0.05 and 0.25 sections; inconsistent.",
363
+ "verified": false
364
+ },
365
+ {
366
+ "currency": "INR",
367
+ "increment": "1.00",
368
+ "scope": "cash (practice)",
369
+ "countries": [
370
+ "IN"
371
+ ],
372
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
373
+ "note": "25 paise and lower demonetised 2011 (0.50 rounding); 50 paise seldom seen since ~2019, so whole-rupee rounding in practice.",
374
+ "verified": false
375
+ },
376
+ {
377
+ "currency": "JMD",
378
+ "increment": "1.00",
379
+ "scope": "cash",
380
+ "countries": [
381
+ "JM"
382
+ ],
383
+ "source": "https://jis.gov.jm/information/get-the-facts/demonetisation-of-coins/",
384
+ "note": "Coins below 1 dollar demonetised 15 Feb 2018.",
385
+ "verified": false
386
+ },
387
+ {
388
+ "currency": "USD",
389
+ "increment": "0.05",
390
+ "scope": "cash (permitted, not required; varies by state)",
391
+ "countries": [
392
+ "US"
393
+ ],
394
+ "source": "https://en.wikipedia.org/wiki/Cash_rounding",
395
+ "note": "Penny production for circulation ended Nov 2025; businesses may round cash to nearest 5c or in customer's favour; state laws vary. Not a uniform rule; do not apply by default.",
396
+ "verified": false
397
+ }
398
+ ]
399
+ }
@@ -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
+ }