How does FinDock handle written off opportunity payments?
NPSP automatically marks unpaid opportunity payments as written off when the opportunity moves to a Closed/Lost stage type. This also happens when an installment changes to to a status that is mapped to a Closed/Lost stage. For example, by default, Failed status is mapped to Closed Lost, so an installment that fails automatically results in the opportunity payment being written off.
If you try to recollect that failed installment, NPSP throws the following error.
“CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY: NPSP4HUB.INSTALLMENTS: EXECUTION OF AFTERUPDATE CAUSED BY: SYSTEM.DMLEXCEPTION: UPDATE FAILED. FIRST EXCEPTION ON ROW 0 WITH ID A011J000006UDDHAAY; FIRST ERROR: FIELD_CUSTOM_VALIDATION_EXCEPTION, A PAYMENT CAN’T BE BOTH PAID AND WRITTEN OFF. YOU MUST DESELECT ONE OR BOTH CHECKBOXES.:  (NPSP4HUB)”
If you have workflows that include retrying closed (and lost) opportunities, you can do the following:
- Change the relevant installment status mappings, such as Failed and Reversed, to open opportunity stages
- Regularly check for this specific error and manually change the opportunity details (uncheck the Written Off flag) to allow recollection.
- If you frequently get closed opportunities that need to be reopened, consider building a custom solution that enables removing the Written Off flag when the opportunity is reopened.
- If you are not using GAUs or ASL, you can disable automatic creation of opportunity payments in the NPSP settings. In this setup, FinDock still creates opportunity payments, but only paid or reversed amounts, which avoids automatic write off of unpaid opportunity payment records. However, you can still run into this issue with manually created opportunity payments.
Do I need to use NPSP opportunity payments?
By default, NPSP automatically creates Opportunity Payment records when new opportunities are created. If you are not using General Account Units or Accounting Subledger, you can turn off this NPSP setting. FinDock still creates opportunity payments when an installment is fully paid. Negative opportunity payments are also created for reversed installments.
How should I handle opportunities with partially paid installments?
FinDock creates payment records for partial payments and automatically sets the related installment status to Partially Paid. By default, the Partially Paid status is mapped to Pledged, and no Opportunity Payment record is created until the full opportunity amount is collected.
If you have installment data included in your opportunity page layout, you can, for example, ensure that the installment status is included in the page view. However, tracking actual income in partial payment scenarios should include some form of checking as part of reconciliation. This can be done through Guided Matching rules, for example, or you can configure partial payments to go to Manual Review using the ProcessingHub general settings. (Set Underpaid Installment Handling option to Manual Review.)