The Currencies & Rates panel governs how OwnPay prices and converts transactions across your brand’s checkout flows. Every brand operates with a single base (default) currency that anchors its ledger, reporting, and invoice totals. When customers pay in a different currency, OwnPay applies the configured exchange rate to calculate the correct amount. Administrators also control how long a checkout session stays alive before expiring and how many days an invoice remains open before becoming overdue.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/own-pay/OwnPay-Documentation/llms.txt
Use this file to discover all available pages before exploring further.
Navigating to Currencies & Rates
In the OwnPay admin dashboard, expand the GATEWAYS section in the left sidebar and click Currencies & Rates. The settings panel opens with currency, exchange rate, and lifecycle controls grouped on a single page.Base Currency
The Default Currency is the primary denomination for all transactions, ledger entries, and report totals on your brand. Select it from the dropdown — OwnPay supports all major ISO 4217 currency codes. Once transactions have been recorded under a currency, changing the default will affect how historical amounts are reported, so set this value carefully before you go live.Supported Currencies
The following currencies are available as the default base currency:| Code | Currency | Symbol |
|---|---|---|
| BDT | Bangladeshi Taka | ৳ |
| USD | US Dollar | $ |
| EUR | Euro | € |
| GBP | British Pound | £ |
| INR | Indian Rupee | ₹ |
OwnPay stores currency codes following the ISO 4217 three-letter standard. Always use the three-character code (e.g.
BDT, USD) when referencing currencies in API calls or plugin configurations — do not use currency symbols.Exchange Rate Configuration
When a customer’s checkout is denominated in a currency different from your brand’s default, OwnPay applies an exchange rate to convert the value. Two modes are available:Automatic Rates
OwnPay periodically fetches live conversion rates from a public exchange rate API and updates them automatically. Requires a running server cron job.
Manual Rates
You hardcode a fixed conversion factor for each currency pair directly in the settings. Rates stay static until you change them.
Changing the Exchange Rate Mode
Select your exchange rate mode
Open the Exchange Rate Update dropdown and choose either Automatic or Manual.
Changing the Base Currency
Open the Default Currency dropdown
Click the Default Currency dropdown and select your desired base currency (e.g.
USD – US Dollar).Payment Lifecycle Settings
Beyond currency, the Currencies & Rates panel controls two important timing settings that affect the customer payment experience.Payment Expiry
The Payment Expiry (minutes) setting defines how long a customer’s checkout page remains active before it automatically expires. Once expired, the transaction status transitions tocancelled or expired, and the checkout link becomes invalid.
- Minimum: 5 minutes
- Maximum: 1,440 minutes (24 hours)
- Default: 30 minutes
Invoice Due Days
Invoice Due Days sets the default number of days from the invoice creation date before a customer invoice becomes overdue. This applies to invoices issued directly from the Payments → Invoices section.- Minimum: 1 day
- Maximum: 365 days
- Default: 7 days
Auto-Approve Verified Payments
The Auto-approve verified payments toggle controls whether transactions that are matched via SMS parsing are completed automatically without manual administrator review.| State | Behaviour |
|---|---|
| Enabled | When an incoming SMS matches a pending transaction’s ID and amount, the transaction is automatically marked completed and the ledger is updated. |
| Disabled | Matched transactions are flagged for review but remain in a pending state until an administrator manually approves them. |
Settings Reference
| Setting | Type | Range / Options | Default | Description |
|---|---|---|---|---|
| Default Currency | Select | ISO 4217 codes | BDT | Base denomination for all brand transactions and reports. |
| Exchange Rate Update | Select | Automatic, Manual | Automatic | Method used to retrieve or set currency conversion rates. |
| Payment Expiry (minutes) | Number | 5 – 1440 | 30 | Checkout session lifespan before auto-cancellation. |
| Invoice Due Days | Number | 1 – 365 | 7 | Days before an unpaid invoice is flagged as overdue. |
| Auto-approve payments | Toggle | Enabled / Disabled | Enabled | Automatically complete SMS-matched transactions. |
Troubleshooting
Checkout pages are timing out too quickly for customers
Checkout pages are timing out too quickly for customers
The Payment Expiry duration is likely set too low. Increase it to at least 15 or 30 minutes and click Save Settings. Manual wallet customers in particular need time to open their banking app, execute the transfer, and return to the checkout to submit their Transaction ID.
Automatic exchange rates are not refreshing
Automatic exchange rates are not refreshing
The external rates API fetch relies on the server’s cron job scheduler. Check that your scheduler is running (for Laravel-based installations this is typically
php artisan schedule:run executed every minute). If the rates API endpoint is blocked by a server firewall, switch to Manual rates as a temporary fix while you resolve the network access issue.Report totals look wrong after changing the base currency
Report totals look wrong after changing the base currency
Historical transactions are stored in the currency that was active when they were created. After a currency change, old records retain their original denomination while new records use the updated currency. To get consistent multi-period totals, filter your reports by date ranges that fall entirely within one currency period.