Sometimes, within a company, there arises a need to maintain multiple payment processors in order to segregate payments into different bank accounts. A perfect example of this is when a company does business in different countries wherein they may want to setup different processors in each country, thereby avoiding the currency conversion rates imposed when using a single payment processor.

 

To use multiple processors, follow the steps below:

Step 1. Define a category for each of your processors. In our example above, you can define the category by currency, as shown below:

To define multiple processor of the same kind (like the one above where there are three Stripe accounts), rename the existing processor and add a new one by clicking the restore settings button. For example, to add a new Stripe processor, first rename the existing one (Stripe) to, say, Stripe – USD. Then click Restore Stripe Settings to add a new one.

Step 2. After defining the categories for each of your processors, you need to do a one-time setup to pass the appropriate category when making a payment.The processor matching the category will be used to process the payment. When using the Pay Now widget, pass the category in a parameter called processorCategory. In our example above, you can pass the parameter as follows:

/apex/fw1__Payment?amount={!TEXT(Opportunity.Amount)} 
&accountId={!Opportunity.AccountId} 
&lookupField=fw1__Opportunity__c 
&lookupId={!Opportunity.Id} 
&currency={!Opportunity.CurrencyIsoCode} 
&lookupObject=Opportunity 
&paidAmountField=Total_Paid_Amount__c 
&processorCategory={!Opportunity.CurrencyIsoCode}

In this instance, we have attached the widget in the Opportunity and passed the Opportunity currency as the category.

Step 3. When using invoices, a pre-defined field in the Invoice object called Processor Category (fw1__Processor_Category__c) is created to hold the category. The value of that field will be used to match the processor when the invoice is being paid. So the setup that needs to be done is to populate that field with the appropriate category. In our example, we wanted invoice currency to be the category. To update that field, we can create a workflow as follows:

Workflow:

Screen Shot 2015-03-18 at 10.40.08 PM

Field Update:

Screen Shot 2015-03-18 at 10.41.33 PM

The workflow basically fires every time an invoice is created or updated, and will populate Processor Category with the invoice currency. The value of Processor Category will then be matched with the processor having the same category, and use that processor to process the payment.

 

The above segregation of payments by currency is just an example, you can come up with your own categories and use the above steps to set them up. If you need help in setup, please contact Support at support@kulturra.com.