3-Decimal Currency Support
1. Short Description
Agency Handy now supports full precision for 3-decimal place currencies, ensuring accuracy in billing, payments, and currency conversions. This guide covers the system's support for currencies like BHD, JOD, KWD, OMR, TND, and others that require three decimal places for precise transactions.
2. Goals
Business Goals
Ensure reliable support for high-precision currencies.
Prevent rounding errors and ensure regulatory compliance.
Expand international usability with currencies that require 3-decimal precision.
User Goals
Accurately process payments and refunds in supported currencies.
View properly formatted amounts in both the UI and exports.
Experience smooth currency selection, conversion, and transaction tracking.
3. Pre-Conditions
Feature available on payment processors like Stripe where supported.
User must be operating with one of the supported 3-decimal currencies.
Admin permissions required for configuring currency settings and integrations.
4. Table of Contents
Supported Currencies
Currency Display & Formatting
Payment Processing
Currency Conversion
Specific Currency Behavior
API & Database Support
User Interface Experience
Edge Cases & Validations
Outcome
Important Notes
5. Contents
1. Supported Currencies
Bahraini Dinar
BHD
✅ Yes
Jordanian Dinar
JOD
✅ Yes
Kuwaiti Dinar
KWD
✅ Yes
Omani Rial
OMR
✅ Yes
Tunisian Dinar
TND
✅ Yes
Libyan Dinar
LYD
Partial/Planned
Iraqi Dinar
IQD
❌ Not Available
Malagasy Ariary
MGA
❌ Not Available
Mauritanian Ouguiya
MRU
❌ Not Available
2. Currency Display & Formatting
All 3-decimal currencies display with exactly three decimal places (e.g.,
BHD 123.456
)Currency symbols and codes are shown correctly (e.g.,
KWD
,OMR
)Negative and zero amounts are correctly formatted:
-12.345
,0.000
Formatting is consistent across reports, dashboards, and exports.
3. Payment Processing
Successful payments preserve full 3-decimal precision.
Refunds (full or partial) calculate with 3 decimals without rounding.
Payment failures, if any, still maintain the correct decimal format in logs.
Stripe gateway supports real-time payments for BHD, JOD, KWD, OMR, TND.
4. Currency Conversion
Accurate exchange rate application between 3-decimal and 2-decimal currencies.
All conversion calculations maintain precision.
Converted values are rounded and displayed based on the target currency’s decimal standard.
5. Specific Currency Behavior
Bahraini Dinar (BHD)
Fully supported via Stripe
Format:
XXX.XXX
All transactions processed and refunded accurately
Iraqi Dinar (IQD)
Listed but not available for payments
User is informed accordingly during selection
Kuwaiti Dinar (KWD), Jordanian Dinar (JOD), Omani Rial (OMR), Tunisian Dinar (TND)
Fully functional with Stripe
Decimal handling and formatting verified
Libyan Dinar (LYD), Malagasy Ariary (MGA), Mauritanian Ouguiya (MRU)
Display only; no active payment support
Selection results in proper notification about unavailability
6. API & Database Support
API endpoints accept, process, and return 3-decimal values
Database fields store all values without rounding or loss of precision
All integrations (e.g., Stripe, webhooks) retain 3-decimal accuracy
Backup, restore, and data migration preserve precision
7. User Interface Experience
Input Validation
Allows valid input of up to 3 decimal places
Prevents inputs with more than 3 decimals
Clear error messages for invalid entries
Copy/paste from spreadsheets retains precision
Display Consistency
Consistent formatting across all views: dashboard, mobile, reports, exports
Responsive design handles 3-decimal currency formatting on all devices
User Experience
Clear visual indication of 3-decimal currency use
Help text/tooltips guide users during selection
Easy-to-use currency selector interface
8. Edge Cases & Validations
Boundary Testing
Minimum (
0.001
) and maximum currency values are handled correctlyVery large 3-decimal numbers are processed without overflow
Error Handling
Graceful handling of payment gateway downtime
Conversion failure fallback with user-friendly errors
Robust error messages for failed transactions or invalid input
Test Data Validation
All of the following passed and display as expected:
0.001
,0.999
,1.000
,123.456
,999.999
,1000.000
9. Outcome
You can now seamlessly process, display, convert, and refund 3-decimal currency values in Agency Handy—ensuring high accuracy and a smooth user experience across the board.
10. Important Notes
Not all currencies are available for payment processing. IQD, MGA, and MRU are display-only.
Precision is maintained across all systems—UI, database, and API.
Stripe only supports selected currencies—always verify current availability.
Last updated
Was this helpful?