Paya

FinDock integrates with Paya, an payment service provider that is today part of Nuvei.

ย ย ย The Paya payment extension is in a closed pilot. Please contact FinDock Support if you would like to participate.

Multi-merchantMulti-currency
Payment MethodOnline Payment FlowIntegration PatternsData EntryOne-timeRecurringRefunds
ACH Direct DebitOnline RedirectVirtual TerminalNo
CardOnline RedirectVirtual TerminalNo

Pilot scope and limitations

The FinDock integration with Paya is a work in progress. We are adding features to the payment extension during the pilot phase. Currently, Paya for FinDock supports:

  • Payment methods
    • Card, one-time and recurring
    • ACH direct debit, one-time and recurring
  • Payment channels
    • FinDock Virtual Terminal (MOTO)

Prerequisites

  • FinDock is installed and configured.
  • Working connections to ProcessingHub and WebHub.
  • You have at least one Paya account and the associated credentials.

Install Paya for FinDock

To install the Paya payment extension, the Paya feature pilot needs to be enabled for your org.

To install Paya and activate payment methods:

  1. Contact FinDock Support and provide your Org Id.
  2. Wait for confirmation that the Paya feature pilot is enabled.
  3. Once enabled, go to FinDock Setup and install Paya for FinDock following the standard procedure.
  4. Activate one or more payment methods following the standard procedure.

Configure Paya for FinDock

To integrate FinDock with Paya, you need to add a merchant account. The merchant account setup requires your Paya account Merchant Id and Merchant Key. These credentials are only available in the email response from Paya when you set up the account.

ย ย ย For ACH sandbox testing, you need to use Merchant Id 173859436515 and Merchant Key P1J2V8P2Q3D8. You can not perform ACH sandbox tests on your own merchant.

To add a merchant account:

  1. Go to FinDock Setup and select Processors & Methods.
  2. On the Installed tab, click the Paya processor entry.
  3. On the Accounts tab, click Add account.
  4. Enter your Merchant Id and Merchant Key.
  5. Adjust other settings as needed and click Save.

Configure notifications from Paya

FinDock reconciles Paya payments using asynchronous notifications in the form of a CSV file. This requires you to set up file delivery from Paya.

To configuration notifications:

  1. Log into the Paya Virtual Terminal with user credentials associated with the merchant account you added above.
  2. Go to Sage Payment Solutions.
  3. Adjust the Batch Close Notification Settings:
    • Batch Close Email Address: can be any email address, if you use automated Chatter uploads with no email forwarding, then enter the email address for automated uploading
    • Batch Close Notifications: select the option โ€œEmail Me, Generic Export Formatโ€
  4. Save your changes and go back to your Salesforce org.
  5. If you havenโ€™t already, go to FinDock Setup and configure file exchanges.
  6. Optional: set up automated Chatter uploads.

Using Paya for FinDock

For both credit card and ACH payments, FinDock relies on the Payment Intent Id from FinDock to create the Paya Transaction Order Number value to manage the installments. In the case of recurring ACH payments, FinDock also creates a mandate to capture the payer authorization to collect future installments. However, the mandate itself is controlled by Paya.

You can set up and accept one-time and recurring payments through the following channels:

New one-time payments are automatically processed and collected. For recurring payments, you use payment schedules to collect future installments.

Address Verification Service

Paya supports fraud detection through Address Verification Service (AVS). The option is enabled through your merchant account Paya Exchange settings.

To use AVS in MOTO payments, you enable it through the Payment component configuration. The settings tell the agent if the billing address for AVS is required, not required or optional. In addition, you define which Salesforce fields are used to pre-fill address values.

Please note that the component settings are independent of your Paya merchant account setup. If you have enabled AVS but do not require it on the component, MOTO payments fail.

Payment Component AVS settings

The Payment component can also be used in Flows with AVS enabled. With Flows, merge fields should be used for pre-filling address values.

Payment Component AVS settings for Flow

Refunds with Paya

With the Paya integration, FinDock supports refunds from Salesforce. You can initiate refunds for individual Payment records for a given (receivable) installment. The refund amount can be less than or equal to the payment.

FinDock uses the Refund object to capture refunds. The refund processing, in turn, results in a new Payment record with a negative amount equal to the refund amount. This works much in the same way as installments where the installment collection results in a payment record with a positive amount.

To enable refunds:

  1. Include the invocable action FinDock Initiate Refund in a custom Flow. The class includes the following parameters:
    • paymentId: Id of the originating Payment record to refund
    • amount: decimal amount to be refunded (less than or equal to originating payment amount)
    • refundReason: reason for refund (values of customizable picklist field Refund Reason)
    • refundReference: unique generated reference for tracking the refund payment
  2. Assign the FinDock Core Refunds Run permission set to Salesforce users who need to handle refunds. (This set is included in the FinDock Service Agent permission set group.)

When the action is invoked, FinDock creates an inbound report to validate the refund parameters and create a new Refund record. Once validated, FinDock automatically makes callouts to Paya to start processing, updating the status of the Refund record and creating a new Payment record for the successful refund.

Refund object fields

Field NameDescriptionName
StatusStatus of the refund transaction. Once the transaction is complete, the Refund record status is set to Completed, and a Payment record is created and linked to the Refund record.
Last Status ReasonDetails about the latest Status update for the record, received from the PSP or provided by FinDock.
AmountThe refund amount. This may be less than or equal to Amount of the Originating Payment record amount.
Refund DateDate the refund was confirmed.
AccountThe account that requested the refund, taken from the related original Payment record.
ContactThe contact that requested the refund, taken from the related original Payment record.
Payment MethodThe payment method used to pay the refund.
Payment ProcessorThe payment processor used to process the refund transaction.
TargetThe target (merchant account) from which the refund payment is made.
Original Payment ReferencePayment reference of the original payment being refunded, taken from the Payment record of the linked Installment record.
Refund TypeOptional field that can be used to classify refunds.
Originating PaymentThe Payment record that represents the original receivable transaction to be refunded.
Refund PaymentThe Payment record that represents the refund transaction.
Refund ReasonCustomizable picklist of refund reasons. Default values include Customer request, Duplicate and Other.
CommentsOptional free text field for a more detailed explanation of the refund event. This field can be used as input, for example, for later follow up as part of an internal review process.
Refund ReferenceFinal payment reference for the refund transaction.
Processor ReferenceRefund payment reference provided by the PSP.
InstallmentInstallment record related to the refund request.

Reconciling Paya payments

Payment reconciliation is file-based using the file Paya sends on a daily basis. Transaction entries are parsed into Inbound Report records that are processed through Guided Matching. For Paya, the Inbound Report type is Paya-for-FinDock with the following subtypes.

| Inbound Report Subtype | Installment Status | | installment.collect | Collected | | installment.expired | Failed | | installment.settled | N/A (status unchanged) | | installment.voided | Failed |

Was this page helpful?