Integrating with FlexPay for Payment Recovery

Payment recovery providers, like FlexPay, use AI and machine-learning models to recover failed payments. Previously, DirectScale clients who process AutoShips had retry rules programmed to rerun failed AutoShip orders and capture the funds.

Now, with payment recovery enabled, any time an AutoShip order fails, the order information is sent to FlexPay, who then returns a recommended retry date.

All AutoShips are automatically retried based on the date provided by FlexPay; meaning, you no longer need to custom AutoShip retry rules programmed in the Client Extension.

However, payment recovery is merchant-specific, with Nexio and NMI being the only current options at this time. FlexPay will only retry orders processed by these specific merchants. Other orders processed by, for example, Auth.Net will not have any retry dates from FlexPay; this allows for flexibility in using more than one merchant for your AutoShips. So, if you have multiple merchants, you will still need programmatic retry rules for any who are not Nexio or NMI.

FlexPay Process

  1. An AutoShip order fails. The system sends the AutoShip data to FlexPay.

  2. FlexPay sends either the next-run date or a "Do Not Retry" status.

  3. The system stores the recommended date and waits for the next AutoShip retry run.

  4. The next AutoShip retry run looks at the order number and retry date. Then it determines if the retry date is today.

    • If so, the order is processed again.

    • If not, it’s skipped.

  5. If the retry is successful, the system notifies FlexPay.

  6. If the retry is unsuccessful, we start the process again from step 1.

  7. If a successful payment gets refunded, FlexPay is notified to reverse any "success" charges to your account.

Before You Start

  1. Integrate with Nexio or NMI if you haven’t already.

  2. Set up an account with FlexPay.

  3. Obtain your API Key from FlexPay.

  4. FlexPay has a portal ( with which you should become familiar. This portal works as a reporting hub, among other things, and will list all transactions that have passed through FlexPay and their status.

FlexPay Integration Requirements

Admin: Corporate Admin
Page: Reports > Custom
Permission: ManageCustomReports() or ViewCustomReports()

One of the elements that FlexPay requires to integrate with them is a report on your past six months of AutoShip orders to get a baseline for their AI. Conveniently, DirectScale provides such a report for this very purpose.

On the Custom Reports page:

  1. Locate the FlexPay 6-Month Baseline Report.

  2. Select the report.

  3. In the report, click Export.

    Export the report to a CSV file
  4. Provide FlexPay with the exported CSV file.

Enabling Payment Recovery

This feature is not available to all by default.

As a reminder, any who want to use FlexPay with DirectScale:

  • Must be integrated with Nexio or NMI as a payment processor.

  • Must set up an account with FlexPay.

If both of these statements are true:

  1. Contact Customer Care.

  2. Request to "Enable Payment Recovery".

Internal Steps

  1. Navigate to Corporate Admin > Advanced Settings > Release Toggles > Autoships and select the Enable Payment Recovery checkbox.

  2. Client or Customer Care can then select and save FlexPay for the appropriate merchant on the Administration > Autoship Payment Recovery page, which is covered below in Selecting the Payment Recovery Provider.

  3. Client or Customer Care can then enter API Key provided by FlexPay in Advanced Settings > Autoship Payment Recovery. Covered below in Configuring Settings and Credentials.


Once enabled, you’ll see a new page under the Administration section named Autoship Payment Recovery.

Administration > Autoship Payment Recovery

Selecting the Payment Recovery Provider

Admin: Corporate Admin
Page: Settings > Company Settings > Autoship Payment Recovery
Permission: ViewAdministration()

Finally, with the new page enabled in Corporate Admin, select your payment recovery provider for your integrated merchant.

  1. For each necessary merchant and currency, click the dropdown and select FlexPay.

    Select FlexPay as your provider

    If you select None, there will be no payment recovery provider set for the merchant even though payment recovery may be enabled within the system.

  2. Click Save Changes.

Now, all failed AutoShips that use the corresponding merchant as the payment processor will get retry dates back from FlexPay.

Configuring Settings and Credentials

Admin: Corporate Admin
Page: Settings > Advanced Settings > Autoship Payment Recovery
Permission: ViewAdministration(), ViewAdvancedSettings()

After you set up your account with FlexPay, they provided you with an API Key. Enter this Key in Corporate Admin to tie your FlexPay account with DirectScale.

On the Advanced Settings > Autoship Payment Recovery page:

Autoship Payment Recovery settings
  1. Enter your provided FlexPay API Key in the field.

  2. Additionally, there are optional settings you can enable:

    • Cancel Autoship Order After DO NOT RETRY Status Received - Cancel AutoShip orders if the FlexPay returns a "Do Not Retry" status. If enabled, the order will be voided and will not appear in the Order History.

        The "Do Not Retry" status may return due to reaching the maximum retry count, fraud detection, processing errors, or other scenarios.
        This does not delete the order. It just cancels it.
    • Send Autoship Failed Emails - Send an email to the Associate if their AutoShip payment fails to process.

        This setting takes Email Settings and Hooks into account.
  3. Click Save Changes.

Where is the Data Stored?

When DirectScale gets info back from FlexPay, we store it in various data tables.

  • CRM_PaymentRecovery_Providers - A read-only table that stores the currently available providers (FlexPay).

  • CRM_PaymentRecovery_ProviderMerchantMap - A read-only table that maps payment recovery providers with merchants. This table also indicates which of the mappings are currently active.

  • CRM_PaymentRecovery_RecommendationInfo - Stores all the vital data from communications with FlexPay; most importantly, the RetryDate. This Retry Date is what DirectScale uses to determine whether to retry the AutoShip. If it’s null, the retry does not process, and the order is skipped or canceled (depending on settings). DirectScale stores all transactions for a given order, not just the most recent. Therefore, you will see orders show up multiple times here—​even for a "success" or a refund.

Can I Still Manually Process AutoShips?

Yes! Integrating with FlexPay will not interrupt normal day-to-day reprocessing. You may process any failed AutoShip order manually. However, you may still be charged for the success if FlexPay has already supplied a retry date.

DirectScale merely reports the successes and refunds back to FlexPay after a recommendation has been provided. If there is no outstanding retry recommendation for a given AutoShip order, we don’t report it to FlexPay.

Was this article helpful?
0 out of 0 found this helpful
Previous Next



Please sign in to leave a comment.