Payment Confirmation
Confirm when funds have settled in a virtual account
Plaid offers Payment Confirmation on top of our Payment Initiation APIs. Payment Confirmation provides confirmation of payments settling in your virtual account. Plaid will notify you when funds have settled so you can confidently release those funds to your end users. Each virtual account can receive or send funds on payment rails supported by the currency of the account.
The Payment Confirmation flow builds on the Payment Initiation flow, with two main differences:
Payments are initiated with the client-owned virtual account as the recipient.
Optionally, the current balance of the virtual account can be automatically swept (transferred) periodically to your bank account. To use this functionality, reach out to your Account Manager.
To your end user, there is no difference between initiating a payment to a virtual account and initiating a payment directly to the recipient bank account.
Confirming funds have settled
Make sure your virtual account is set up before following these steps. For more information on setting up an account, see Managing virtual accounts.
Go through the Payment Initiation flow and initiate a payment.
- Use the
recipient_id
associated with yourwallet_id
so Plaid knows to route the payment to your virtual account.
- Use the
The payment will settle in your virtual account. You will receive the following webhooks:
If you included a webhook URL when creating your
link_token
you will receive a status update that the payment is nowSETTLED
. This is the primary webhook that indicates payment confirmation.If you configured a webhook through the Plaid Dashboard, you will also receive a status update that a transaction of type
PIS_PAY_IN
transitioned fromINITIATED
toSETTLED
in your virtual account. This webhook indicates an update to your virtual account with the funds that have settled (i.e., the transaction that corresponds to the payment that settled).Alternatively, if you are not using webhooks, you can check if the payment has settled by calling
/payment_initiation/payment/get
with thepayment_id
from Step 1.
Once the payment has settled, you can safely release funds to your end user.
In the UK, payments settle nearly instantly and run on the Faster Payment Services rails. In Europe, Plaid defaults to instant settlement times with SEPA Instant Credit rails when possible, and SEPA Credit Transfer otherwise.
Testing Payment Confirmation
You can begin testing Payment Confirmation in Sandbox by following the steps listed in the Add Virtual Accounts to your App guide. For Production access you will first need to submit a product access request Support ticket.