Skip to main content

FinDock for NPSP

The Nonprofit Success Pack (NPSP) is provided by to the nonprofit industry, bringing donor management, pledge management and more to the Salesforce platform. To enable payment processing based on NPSP, FinDock provides a source connector for NPSP for seamless integration between FinDock and NPSP. This article details how to install, activate, configure and use the NPSP source connector.


In older implementations, you may see the name “PaymentHub” instead of FinDock.

Integration between NPSP and FinDock#

Data model of FinDock for NPSP integration

NPSP to FinDock#

The integration between FinDock and NPSP is mainly on the level of the Opportunity or Donation object. When a Recurring Donation is created, the NPSP creates Opportunities. For every Opportunity record created that does not have an excluded Record Type, the source connector creates an Installment to represent that Opportunity in FinDock.

From that point forward, the Opportunity and Installment object are kept in sync. This means that if the Installment is marked as collected, the Opportunity is closed as won.

Because the integration is based on the Opportunity object, all donation frequencies on the Recurring Donation object are supported, including custom frequencies. The same is true if an Opportunity is created separately (without a parent Recurring Donation).

FinDock to NPSP#

Not all actions originate in the NPSP. API requests, bank statement imports and so forth can start in FinDock. These actions need to be synchronized back to NPSP. To do this, the NPSP source connector uses a DataHandler to create NPSP objects based on FinDock objects or API requests. If any single non-recurring payment Installment is created in FinDock, the DataHandler creates an Opportunity to match the created Installment. If the API receives a recurring transaction, the DataHandler also creates a Recurring Donation.

Payment API with NPSP#

The Payment API fully supports initiating transactions and registering them as opportunities or recurring donations in NPSP. However, this can only be done with authenticated access. Anonymous Payment API access is not supported with NPSP.

Install and activate the NPSP source connector#

Follow the standard procedure for installing and activating the NPSP source connector.

Configure Reversal stage#

Before starting the Source Connector configuration, you need to add a stage to the Opportunity object to track the Reversal status.

To configure Reversal stage:

  1. Open the Object Manager in Salesforce Setup.
  2. Find the Opportunity object, click on Fields and Relationships and and using the quick find, search for the Stage Field. stage-field
  3. Click on the field label to open the field details for the Stage Field , scroll down to the “Opportunity Stages Picklist Values” related list, and click Add to add a new stage.
  4. Add “Reversed” as a Stage Name and set Type to “Closed/Lost.”.
  5. Enable this Stage for the Sales Processes relevant to the Nonprofit Success Pack, if you need to be able to manually select this Stage. Opportunity stages
  6. Click Save to save your new stage.

Configure the NPSP source connector#

This procedure shows you how to get to the configuration settings and explains what the settings do. The setting values need to be defined by the integration partner and may be updated later by a Salesforce admin.

To configure the NPSP connector:

  1. Launch the FinDock app and click the Setup tab.
  2. Under Extensions - Source, click the PaymentHub-for-NPSP tile. npsp-config-tile
  3. On the General Settings page, modify the settings as needed. NPSP General Settings
    • Treat Single Opportunities as One-Off: if an opportunity is not part of a recurring donation, the opportunity is treated as a single donation for payment methods that indicate single or recurring (such as direct debit).
    • Installments for Closed Opportunities: by default FinDock does not create Installments for newly created Opportunities with closed status. This might be useful, for example, when migrating old data. Enabling this setting makes sure Installments are also created when Opportunities are created with closed status.
    • Close Date equal to Last Collection Date: enabling this overwrites the default Salesforce behavior for setting the Opportunity Close Date. This means the Opportunity Close Date will always be equal to the Last Collection Date on the Installment. When disabled, the default Salesforce behaviour may in some cases set the Close Date to today’s date instead of the intended Installment Last Collection Date. For further information, please refer to this Salesforce help article.
    • Use Status Mapping in Forward To Source: selected by default. When this option is selected, FinDock checks first if there is a status mapping in the FinDock for NPSP mapping table. If not, the related opportunity is set to the default NPSP closed opportunity stage setting value (NPSP package). If this default NPSP setting is not defined, FinDock falls back to status 'Posted.'
    • Reversed Opportunity StageName: allows you to define the reversed Opportunity StageName.
    • Exclude Opportunity RecordTypes: allows you to disable the integration between PaymentHub and NPSP for certain Record types.
  4. On the Status Mapping tab, customize the status mapping between Installment and Opportunity. When opening the screen for the first time, it looks like this: NPSP status mapping The Installment status values are fixed. However, the mapping to Opportunity stages can be modified to match the processes of the given organization. If there are multiple Installment status values mapped to the same Opportunity stage, you can use the IS PRIMARY toggle to indicate which status value the Installment should get if the Opportunity is updated to that stage. Finally, you can override the mapping for particular Opportunity Record Types by adding a record using the Add record button. Mappings can be overridden per record type. Add new mapping This allows you to further customize the mapping to match your business processes.
  5. On the Opportunity Installment Field Mapping tab, customize how Installment and Opportunity records are synced at field level. For further information see NPSP Opportunity Installment field mapper.

Configure page layouts#

To make the PaymentHub related fields visible to NPSP users, make sure to add them to the correct page layouts for their respective objects. The required modifications are explained in detail below. We also recommend adding at least the Payment Profile related list to the Contact and/or Account layouts. This allows users to view existing Payment Profiles for donors. For more information on page layouts, and how to configure/change page layouts, see the Page Layouts article in the Salesforce documentation.

Modifications to NPSP objects#

To record information about payment processing, the NPSP source connector adds fields to the Recurring Donation, Opportunity and Payment objects as shown in the following tables.

Recurring Donation#

Field LabelField NameData Type
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Payment Processornpsp4hub__Payment_Processor__cPicklist
Payment Methodnpsp4hub__Payment_Method__cPicklist

These fields are also added to the NPSP settings – Recurring Donation Custom Field Mappings. This assures that when a Recurring Donation is created, the fields are automatically populated in the underlying Opportunities.


Field LabelField NameData Type
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Payment Processornpsp4hub__Payment_Processor__cPicklist
Payment Methodnpsp4hub__Payment_Method__cPicklist


Field LabelField NameData Type
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Payment Processornpsp4hub__Payment_Processor__cPicklist
Collected Throughnpsp4hub__Collected_Through__cLookup(Installment)

Modifications to FinDock objects#

To establish the link between an Installment and its parent Opportunity record, a lookup field is added to the Installment object to define this relationship.


Field LabelField NameData Type