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
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.com
    Log in
    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 Plaid 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
    Discord
    Discord