Plaid logo
Docs
ALL DOCS

Virtual Accounts (UK and Europe)

  • Introduction to Virtual Accounts
  • Managing your Virtual Account
  • Payment Confirmation
  • Payouts
  • Refunds
  • Account Sweeping
  • Add Virtual Accounts to your app
Plaid logo
Docs
Plaid.com
Get API keys
Open nav

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.

  1. Go through the Payment Initiation flow and initiate a payment.

    • Use the recipient_id associated with your wallet_id so Plaid knows to route the payment to your virtual account.
  2. 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 now SETTLED. This is the primary webhook that indicates payment confirmation.

    • If you configured a webhook through the developer dashboard, you will also receive a status update that a transaction of type PIS_PAY_IN transitioned from INITIATED to SETTLED 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 the payment_id from Step 1.

  3. 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.

Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord