Enable the support for Plaid account validation solution
This task explains how to enable and use Plaid's Auth and Balance products in Zuora for ACH transactions, including setup, authentication, and balance check flows.
This article describes Zuora's support for Plaid Auth and Balance products, and how to enable them in Zuora.
Support for Plaid Auth and Balance products can be requested through the Specialized Payment Connections service at an additional cost.
Plaid offers Auth and Balance products to streamline bank account validation in the payment flow. Auth authenticates account details before sending requests to the gateway, while Balance checks the real-time account balance before transactions. Currently, these Plaid products are supported for ACH transactions in Zuora.
To use the Plaid Auth and Balance products in Zuora, you must first enable them in both Plaid and Zuora. Once enabled, the following flows apply to the ACH transactions:
-
Authentication flow If Plaid Auth is enabled, you can implement a Payment Page 2.0 to add ACH payment methods in Zuora through the Plaid Link flow. The Plaid Link UI is displayed in the iFrame of the hosted payment page. The bank account information, routing number, and access token are returned and saved in Zuora.
-
Balance check flow If Plaid Balance is enabled, one-time and recurring payments made with the ACH payment methods that were created through the Plaid Link flow are processed through the Balance flow by using the access token. The account balance is checked before transactions.
The following procedure describes the end-user experience flow:
Zuora also supports the Plaid update mode to handle scenarios where your customers' bank credentials change. When this happens, the Plaid access token linked to the payment method is deactivated. If Zuora attempts to call the Plaid API for this payment method before the payment is made, the transaction fails, and a notification is logged in the Payment Transaction Log with the following details:
-
Gateway = 'Plaid'
-
GatewayResponseCode = 'ITEM_LOGIN_REQUIRED'
Based on this notification, you can implement custom logic to prompt your customers to re-authenticate their credentials. The following two scenarios may occur in the update mode:
-
If your customer's account is with a non-OAuth bank, they re-authenticate by entering their new credentials.
-
If your customer's account is with an OAuth bank, an additional account selection page is displayed:
-
If the customer selects the same payment method as before the credentials expired, the new credentials are authenticated, and the access token is re-activated for the existing payment method.
-
If the customer selects a different payment method, Zuora creates a new payment method. If the original payment method was the default, the new one becomes the default. Otherwise, it remains non-default. The previous payment method is deleted from the customer's account.
-
To enable the support for Plaid Auth and Balance, complete the following steps:
Setting up notifications allows you to proactively address issues that might impact payment processing. For example, if a bank account balance is insufficient, you can inform your customers to take corrective action, ensuring the next payment attempt succeeds. Similarly, if customer credentials have expired, you can notify the customer to re-authenticate before the next scheduled payment.
To receive notifications for bank account authentication and balance check events, complete the following steps:
To prevent payment failures and achieve better cost efficiency, we have now included support for reviewing whether your payment methods are verified by Plaid. Additionally, you can also verify the status of the tokens linked to the Plaid payment methods.
If you have enabled Plaid ACH validation, webhooks are automatically enabled for your tenant.
The status of their corresponding access tokens is available in the Account verification service and Account verification status fields. The status available on these fields will help merchants take preventive measures.
These fields are added to the ‘List payment methods of an account ’ and ‘Retrieve a payment method ’ APIs.If the payment method is Plaid verified, Zuora will populate one of the following statuses of the access token linked to the payment method:
-
Active
-
Expired
-
Expiring
-
InActive
-
Null
Account verification service populates the following values:
-
Plaid - If the payment method was verified by Plaid.
-
Null - If the payment method was not verified.
-
To export data about Plaid account validation, use Data Source Export or Data Query on the Payment Method Transaction Log object.
-
If you want to manually implement the integration with Zuora's support for Plaid Balance, you can use the Retrieve the balance of a bank account API operation.