Multiple currency support in FinDock

Multiple currency support in FinDock begins with Salesforce multiple currency handling. Once enabled, this feature cannot be deactivated, one of the Salesforce considerations organizations need to address before taking multiple currencies into use.

When the multiple currencies feature is enabled in your org, the CurrencyISOCode field is added to payment-related objects, including FinDock custom objects like Installment and Recurring Payment.

Generally speaking, FinDock handles multiple currency support under the hood. However, there are some key points to keep in mind when moving to multi-currency payment handling.

Currencies and payment acceptance

When working with multiple currencies, there are a few factors to consider when setting up new one-time and recurring payments.

  • Org default currency
    If the currency is not included in the payment intent message to the Payment API (via custom front-end, Giving Pages or PayLinks), then FinDock falls back to the org default currency.
  • User currency
    The Salesforce user currency is separate from the org default and determined by the user's profile settings. When a user manually creates a record, such as a new installment, the user's currency is selected by default. This may need to be changed to the correct (or required) currency. We recommend using the Data Quality component to validate new payment-related records that are manually created.
  • Payment method currency
    Some payment methods only accept a specific currency (see table below), and PSPs may also set limits on currencies for a given method. These currencies need to be explicitly set in payment intent messages if the org default is something else.

Below are some examples of payment methods that require a specific currency.

Payment MethodCurrency
AutogiroSEK
AvtaleGiroNOK
Bacs DDGBP
Gift AidGBP
LSV+, CH-DDCHF
SEPA DDEUR
SEPA CTEUR
VippsNOK

Currencies and payment collection

Installments generated via a payment schedule use the currency of the recurring payment record (of the source-specific object). The currency value on the schedule itself is part of the selection criteria to identify valid installments that are ready for collection.

The basic rule for payment schedules is that all installments linked to the payment schedule need to have the same currency. Installments with a currency other than the currency supported by the payment processor and method combination will fail, and the payment schedule is rejected. Error messages on the payment schedule and failed installments provide further information.

Currencies and reconciliation

FinDock automatically takes currency into account in both online and file-based reconciliation. If currencies are not equal, the transaction or inbound report is not matched. Payment records created through reconciliation use the currency of the matched transaction or inbound report.

   If you are using Manual Review (deprecated) with multiple currencies, we recommend adding the CurrencyISOCode field to your layout.

Currencies and sources

With multiple currencies in use, the application of the Currency ISO Code field varies depending on the source package.

Multiple currencies with FinDock Standalone

If you are using FinDock as your source (standalone configuration), currency is defined on Installment records and Recurring Payment records. All installments for a recurring payment automatically get the currency defined on the recurring payment.

Multiple currencies with NPC

The Fundraising feature of Nonprofit Cloud (NPC) and Education Cloud (EDU) implements Currency ISO Code on gift-related objects including Gift Commitment, Gift Commitment Schedule, Gift Refund and Gift Transaction.

When creating new one-time or recurring gifts, FinDock automatically applies the currency to the created gift transaction and commitment (and commitment schedule) records. The currency that ends up on an Installment record is based on the related Gift Transaction record. The currency field on these related records is mapped and synced in both directions.

Multiple currencies with NPSP

When multiple currencies is activated, a new mapping rule for the Currency ISO Code field is automatically added to the Field Mapper. FinDock for NPSP syncs the Currency ISO Code field between Installment and Opportunity in both directions.

If you are using FinDock for NPSP, we also recommend reading this Salesforce FAQ.

Multiple currencies with PSPs

Payment Service Providers (PSPs) can set their own limits around currency handling. Some limitations may be technical, while others may be contractual. If you are using multiple currencies in your org, online payments through an integrated PSP fall back to the default currency (corporate currency) defined by the org Manage Currencies settings whenever Currency ISO Code is not defined.

For payment intent messages to the Payment API, FinDock automatically validates the currency before the payment is processed. If the currency is active in the org, the payment is processed. If currency is inactive, the API call is rejected.

Currency conversions

FinDock does not perform currency conversions. Payments are expected to be made in the currency of the installment. However, PSPs and banking networks may provide their own currency conversion services that allow you to accept payments in a currency other than that of the installment.

For example, the hosted payment page of a PSP may offer the payer currency options. The payment is still processed on the backend with FinDock in the original currency, but the PSP handles conversion as part of its processing service.

Some direct debit schemes may also allow banking networks to use other currencies as part of payment processing. The SEPA Direct Debit Core scheme requires transactions to be in euros, for instance, but the bank accounts of debtors and creditors can be in any other currency. The conversion is handled exclusively by the banks, though, and not dictated by the scheme.

Was this page helpful?