Extends the Agency Pulse Invoice system with comprehensive support for global billing โ built on a proper accounting architecture that separates invoice currency from base accounting currency and permanently locks exchange rates at the point of issuance.
_invoice_exchange_rate_locked. This rate never changes, ensuring historical invoice values remain accurate regardless of future market movements — consistent with how systems like Xero, QuickBooks, and Stripe Invoicing operate._invoice_base_currency), creating a complete, self-contained record that does not depend on future system defaults.unpaid, partial, or paid), the currency metabox switches to a read-only display. The currency selector is intentionally disabled to prevent retroactive modification of financial records.apapi_get_exchange_rate_for_invoice filter, called by gateway and payment modules when recording a payment, enabling downstream FX gain/loss calculation.apapi_convert_invoice_to_base filter accepts an amount and currency pair, returning the equivalent base-currency value for admin dashboards that display dual-currency totals.get_rate_for_invoice() service method returns both the rate and its source (live, manual, same_currency, or fallback), allowing the system to record how a rate was determined at the time of lock.cached_for_seconds value to balance freshness with API call efficiency.APMC_DISABLE_EXCHANGE_CACHE = true to force live rate lookups on every request, bypassing transient caches during testing or critical billing adjustments._client_currency post meta to ensure portability and consistent reference across the entire ecosystem.client-currency-sync.js) listens for client selection events in the invoice builder and automatically pre-selects the client’s assigned currency.apapi_invoice_display_total, apapi_invoice_display_tax_total) to display subtotals, tax lines, and grand totals with the correct symbol, decimal precision, and positioning.$1,420 CAD ($1,000 USD)), giving the agency a clear picture of both the client-facing amount and the internal accounting value.APMC_Currency_Service Singleton: A dedicated service class providing currency data access, amount formatting, currency conversion, and live rate fetching independently of the WordPress UI layer. Designed for consumption by other plugins in the ecosystem.apapi_get_base_currency, apapi_convert_invoice_to_base, apapi_get_exchange_rate_for_invoice, apapi_format_currency_amount, and agency_pulse_invoice_currency_symbol for deep integration by other system components.manage_options, edit_post) on all privileged endpoints.Unlock all the features above for your agency.