- How do I install akaunting/money in a Laravel application?
- Install the package with Composer using the akaunting/money package name. In most Laravel applications, package discovery should register the service provider automatically, but confirm that behavior against the README and your Laravel version. You will typically publish any package configuration and verify the supported Laravel and PHP constraints before adopting it.
- What is akaunting/money used for in Laravel projects?
- It is used for handling monetary values with precision, including currency formatting, arithmetic, conversion, and multi-currency support. Typical use cases include invoices, carts, e-commerce displays, and lightweight currency conversion. Treat it as an application-boundary utility rather than the system of record for balances, ledgers, settlement, or tax calculations.
- Does akaunting/money support multiple currencies?
- Yes, the package provides multi-currency support and currency formatting suitable for Laravel applications that need to display or convert amounts across currencies. You should still store canonical amounts as integer minor units plus ISO 4217 currency codes. Confirm that the currency and locale metadata you need aligns with your finance and payment-provider requirements.
- How should I store and round monetary values when using akaunting/money?
- Canonical storage should remain integer minor units plus ISO 4217 currency codes, with the package used for presentation and controlled conversion. Define a rounding policy per currency and per use case, because rounding can differ across currencies and business scenarios. Add golden-file formatting and rounding tests for your top currencies before relying on the output in production.
- How does akaunting/money handle currency conversion and exchange rates?
- The package offers conversion and multi-currency support, but your application must define the authoritative FX rate source, refresh SLA, and historical-rate requirements. Conversion spread, markup ownership, and settlement versus display conversion are financial-policy decisions rather than package features. Wrap conversion behind an internal adapter so rate-source changes and rounding rules do not leak across domains.
- Which Laravel and PHP versions does akaunting/money support?
- The exact supported Laravel and PHP versions are defined by the package Composer constraints and should be verified before adoption. Pin a tested package version and validate it against your target Laravel and PHP matrix. Also confirm compatibility with your cache driver, queue workers, and deployment configuration.
- Does akaunting/money require ext-intl or locale data?
- Currency and locale formatting often depends on intl/ICU availability and locale data, so confirm these requirements in your runtime environment. Locale-specific formatting can vary, especially for symbols, separators, and decimal places. Test representative locales in CI and production-like environments before rolling formatting out to customer-facing views.
- Can akaunting/money be the source of truth for accounting balances?
- No, it should not be treated as the system of record for balances, ledgers, settlement, or tax calculations. Use it for presentation, controlled conversion, and formatting in invoices or carts, while keeping canonical money values in integer minor units with ISO currency codes. This boundary reduces coupling and keeps financial policy under explicit ownership.
- How should I test akaunting/money formatting and rounding in Laravel?
- Build adapter tests around your internal MoneyFormatter or CurrencyConverter rather than calling package APIs throughout the codebase. Use golden-file formatting tests for your top currencies and locales, plus rounding tests for each business use case. Run old and new formatting in parallel for a sample of transactions and add reconciliation reports before cutover.
- Is akaunting/money suitable for production, and what maintenance should I plan for?
- The MIT license and low code footprint are favorable, but you should confirm maintenance cadence and test coverage before relying on it in production. Pin a tested version and plan for Composer updates, Laravel upgrade compatibility, currency metadata refreshes, and FX provider changes. Keep the package behind a small adapter so replacement remains feasible, and prefer a framework-agnostic money library for non-Laravel services.