Skip to content

Set Up Multicurrency Payments

By the end of this guide your gateways are correctly scoped to the currencies they can process, and you know exactly how ChargeOn decides which currency any given payment runs in.

Who does this: a Salesforce administrator.
How long: about 45 minutes, plus time confirming with each gateway which currencies it actually supports.

Complete the quick start guide first

This guide assumes ChargeOn is already installed and connected to at least one gateway. If you have not worked through the quick start guide yet, do that first.


Before You Start

  • ChargeOn is installed and connected to at least one payment gateway. See the quick start guide if it isn't yet.
  • Multiple Currencies is turned on in Salesforce, and every currency you intend to sell in is Active, under Setup → Company Information → Currency Setup. This is a Salesforce platform setting. Enabling it is permanent; confirm your currency requirements before switching it on.
  • You know which currencies each of your connected gateways can genuinely process. That comes from your gateway’s account or documentation. Use that confirmed list in Part 2.

Turning on Multiple Currencies is permanent

Confirm this is what you want before switching it on in a production org. If you're not sure, do this step in a sandbox first.


What You Will Do

  1. Confirm your Salesforce currency setup
  2. Tell ChargeOn which currencies each gateway can process
  3. See how ChargeOn decides a payment's currency
  4. Check the zero- and three-decimal currencies you use
  5. Take a test payment in a second currency

Part 1: Confirm Your Salesforce Currency Setup

  1. Go to Setup → Company Information.
  2. Click Currency Setup (or Manage Currencies).

    The Salesforce Currency Setup page with active currency rows, corporate currency and decimal places visible

  3. Under Active Currencies, confirm every currency you intend to take payments in is listed and Active.

  4. Note the Decimal Places shown for each currency you use. You'll come back to this in Part 4.

  5. Note your Corporate Currency. ChargeOn doesn't change this, but it's the currency your Salesforce reports and rollups convert everything into.

What you should see: every currency you plan to accept payments in appears in the Active Currencies list, each with the decimal places you expect.


Part 2: Tell ChargeOn Which Currencies Each Gateway Can Process

Repeat this for each gateway you've connected.

  1. Go to Global Settings → Payment Gateways and open the gateway.
  2. Set Default Currency to the currency this gateway is primarily set up for in its own account.

  3. If the gateway can genuinely settle in more than one currency, tick Supports MultiCurrency.

  4. If you ticked it, choose every currency this gateway can actually process in Supported Currencies. Leave it unticked and the gateway is only ever offered for its Default Currency.

    The Stripe gateway editor with USD as Default Currency, Supports MultiCurrency checked, USD and EUR selected, and Save enabled

  5. Click Save.

Use currencies confirmed by your gateway

Set Supported Currencies to the currencies enabled on your merchant account. Confirm the list with your gateway’s documentation or account team before saving. ChargeOn uses your configured list when offering gateways for a payment.

What you should see: each gateway record shows the currencies you configured: either a single Default Currency, or Supports MultiCurrency ticked with your full list under Supported Currencies.


Part 3: See How ChargeOn Decides a Payment's Currency

  1. Open a record of your payment object.
  2. Look at its Currency field. Every record carries one once Multiple Currencies is on, and this is the exact value ChargeOn uses.

    Summit Technologies’ Q4 expansion Opportunity showing USD currency and an amount of USD 8,500

  3. Click Charge.

  4. Confirm the gateways on offer are only the ones you set up to support that currency in Part 2.
  5. Select a gateway, choose Card Payment and Instant Payment, and complete the payer and payment details. Check that Payable Amount shows the source record currency.

    The completed Charge form for Emily Ross’s Summit Technologies Q4 expansion, with Payable Amount showing USD 8,500

The rule, plainly: ChargeOn always charges a payment in whatever currency is already sitting on the record it's raised against. No one chooses a currency at charge time (not the payer, not the person clicking Charge, not an AI agent). It is decided before the Charge screen even opens, by reading the record's own Currency field. A payment link works the same way, reading the currency stamped on the Payment Link record itself when it was generated.

Once the currency is known, ChargeOn only offers gateways configured to support it (Part 2). If Gateway Routing is switched on, the same check applies to routing rules: a rule that would send a payment to a gateway not configured for its currency is skipped, and the next rule (or the default gateway) is tried instead.

What happens when no gateway supports the currency

If none of the gateways linked to a payment object support the record's currency, ChargeOn blocks the charge before it reaches a gateway. No money moves and no decline is generated anywhere. The Charge screen shows:

No payment gateways support (currency). Please contact your administrator to enable payment processing for this currency.

To fix it: add that currency to a linked gateway (Part 2), or link a gateway that already supports it under Global Settings → Object and Rules.

What you should see: for a record in a currency you've configured, the gateway(s) you expect appear on the Charge screen. For a record in a currency none of your gateways support, you see the blocked message above instead of a gateway picker.


Part 4: Check the Zero- and Three-Decimal Currencies You Use

Most currencies use two decimal places: dollars and cents, pounds and pence. A few don't work that way, and ChargeOn already knows the difference: it rounds displayed amounts and encodes what it sends to your gateway according to each currency's real minor unit, not a blanket two-decimal assumption. There is nothing to configure for this. It happens automatically for every gateway.

Currencies with no minor unit at all (0 decimal places): a Japanese yen amount is always a whole number, never ¥100.00:

BIF: Burundian franc CLP: Chilean peso DJF: Djiboutian franc GNF: Guinean franc
JPY: Japanese yen KMF: Comorian franc KRW: South Korean won MGA: Malagasy ariary
PYG: Paraguayan guaraní RWF: Rwandan franc UGX: Ugandan shilling VND: Vietnamese đồng
VUV: Vanuatu vatu XAF: Central African CFA franc XOF: West African CFA franc XPF: CFP franc

Currencies with three decimal places, one more than usual:

BHD: Bahraini dinar IQD: Iraqi dinar
JOD: Jordanian dinar KWD: Kuwaiti dinar
LYD: Libyan dinar OMR: Omani rial
TND: Tunisian dinar

Everything else uses the standard two decimal places.

  1. If you use any currency from either table above, open Setup → Company Information → Currency Setup and check its Decimal Places value (you already noted this in Part 1).

  2. Compare it against the tables above.

Align currency display and payment precision

Salesforce’s Decimal Places setting controls standard currency fields and reports. ChargeOn rounds payment amounts and sends them to gateways using the currency precision in the tables above. Set Salesforce’s values to the same precision for consistent display. If your organisation uses a customised decimal setting, verify a test transaction against the gateway dashboard to confirm the amount received.

What you should see: a payment in a zero-decimal currency (e.g. JPY) shows as a whole number everywhere in ChargeOn (the Charge screen, Transaction History, invoices), and the identical, undivided amount on your gateway's own dashboard.


Part 5: Take a Test Payment in a Second Currency

  1. Open or create a test record in a currency you configured a gateway for in Part 2, one different from your main currency. In this example, Emily Ross’s Summit Technologies Q4 expansion is quoted at EUR 7,820, equivalent to USD 8,500 at the org’s configured rate of 0.92 EUR per USD.

  2. Click Charge.

  3. Confirm the currency shown matches the record, and the gateway offered is the one you expect.

  4. Complete the payment with your gateway's test card or test account details.

  5. Open the completed payment’s Transaction History record and confirm its currency, amount, customer, successful status, gateway and transaction ID.

    Emily Ross’s completed Summit Q4 expansion payment showing EUR 7,820, its USD 8,500 equivalent, Success status and the gateway transaction ID

  6. Check the same transaction in your gateway's own dashboard. The currency and amount should match exactly, decimal places included.

What you should see: a successful transaction in ChargeOn showing the second currency, and a matching transaction (same currency, same amount) in your gateway's own dashboard.


How Multicurrency Affects Installments and Subscriptions

When you create an installment plan or subscription, its currency comes from the record you launch it against. Every charge uses that currency for the life of the plan.

Choose the right currency before you create the plan

To use a different currency for an installment plan or subscription, abort the plan and create a new one against a record in the correct currency.


Multicurrency and the AI Surfaces

Agentforce and Headless 360 payments use the currency of the record they run against, just like the Charge button. Before starting the conversation, confirm that record’s Currency. To take a payment in another currency, use a record set to that currency and start a new request.


Reconciliation and Multicurrency

Transaction Reconciliation compares what ChargeOn recorded against what your gateway actually processed. For gateways whose API reports amounts in a minor unit (cents, paise and similar), reconciliation has to know how many decimal places that currency actually uses to compare amounts correctly.

ChargeOn handles this for you. Reconciliation uses the same currency-aware decimal handling as the rest of the product, so a zero-decimal currency such as Japanese yen is compared correctly against what the gateway reports.

If an amount mismatch does appear on a multicurrency transaction, check it against your gateway's own dashboard first: the two records should agree, and the dashboard tells you which side to look at.


Next

Post-configuration testing guide: work through every payment type, including any second currency, before you go live.

ChargeOn terminology: definitions for Gateway fallback, Payment orchestration and other terms used in this guide.


If Something Went Wrong

Symptom Likely cause What to do
The Charge screen shows "No payment gateways support (currency)" No active gateway linked to this payment object has that currency in its Default Currency or Supported Currencies Add the currency to a linked gateway (Part 2), or link a gateway that already supports it under Global Settings → Object and Rules
A payment link shows the same "no gateway" behaviour Same cause as above, checked against the Payment Link record's own currency rather than the original payment object Same fix: Part 2
An installment plan or subscription is charging in a currency you didn't intend, or you need to change one that's running Currency is fixed on the plan when it's created and is never re-evaluated Abort the plan and create a new one against a record in the correct currency
A zero- or three-decimal currency (e.g. JPY, BHD) looks wrong compared to your gateway's dashboard Check whether someone has customised that currency's Decimal Places in Salesforce's own Currency Setup away from the standard value (Part 4) Confirm the real amount against your gateway's dashboard; ChargeOn's own decimal handling, not Salesforce's setting, decides what the gateway receives
An Agentforce or Headless 360 conversation can't switch which currency it's paying in Expected. Currency comes from the record the action runs against, not a value the agent or caller can set Run the action against a record in the correct currency, or have a person change the underlying record first