Plaid logo
Docs
ALL DOCS

Payment Initiation (UK and Europe)

  • Introduction to Payment Initiation
  • Add Payment Initiation to your app
  • User onboarding and account funding
  • Add Variable Recurring Payments to your app
  • Virtual Accounts
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:
  • What is Remember Me?
  • Can you show code for getting transactions in Python?
  • Why is /transactions/sync/ better than /get?
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

Introduction to Payment Initiation

Initiate payments within your app using the Payment Initiation (Europe) product.

Get started with Payment Initiation
API ReferenceGetting Started GuideAccount Funding GuidePlaid Concepts

Overview

Plaid's Payment Initiation product enables your users to make real-time payments without manually entering their account number and sort code, or leaving your app. For example, your app might allow users to pay you. You can also provide transfers to a third party, such as in a marketplace application. You can create both one-time payments (also known as Single Immediate Payments) as well as standing orders that make recurring payments on a regular schedule. By combining Payment Initiation with the optional Virtual Accounts product, you can enable even more functionality, like sending refunds to users, allowing your users to cash out a credit balance to a bank account, or gaining granular visibility into the settlement status of a payment.

There are two ways to integrate with Plaid for Payment Initiation:

  1. Using Classic Link, which is optimized for conversion and allows customers to use existing Plaid Link front-end components to get up and running quickly. You can choose to create your own custom loading states to completely own the UI/UX or use Plaid loading states to save developer time.
  2. Using the white-label Modular Link experience, which allows customers to own the end-to-end experience.
Link flow: proposed payment details on first screen, then select your bank, then authentication screens, then payment confirmed screen with payment details

See the Add Payment Initiation to your App guide to learn more about the product and how to implement it.

Payment Initiation is UK and Europe-only. Looking for similar capabilities in the US? Check out the Transfer docs.

Supported countries

For a full, up-to-date list of supported countries for Payment Initiation, see Plaid Global Coverage.

Recurring Payments

Enable your users to make Variable Recurring Payments and set up Standing Orders. With Variable Recurring Payments (VRP), your users can set up repeat payments for different amounts and intervals. With Standing Orders, your users can set up repeat payments for a fixed amount.

Variable Recurring Payments (UK)

A Variable Recurring Payment (VRP) allows for setup of a single recurring payment consent, which can then be used for a series of ongoing payments, with no end user interaction required. For a VRP, the source and the recipient must be in the UK.

For complete implementation instructions for VRP, see Add Variable Recurring Payments to your app.

For more information on Variable Recurring Payments, see the VRP FAQ.

Standing Orders (UK)

A standing order is a recurring payment, which can be created with the Payment Initiation product. For a standing order payment, the recipient must be in the UK. The standing order creation flow is the same as the Payment Initiation flow described above. When creating a standing order, the frequency of the payment must be provided to /payment_initiation/payment/create. Note that standing orders are billed at a different rate than other calls to /payment_initiation/payment/create; for details, contact your Plaid Account Manager.

Testing Payment Initiation

Payment Initiation can immediately be tried out in the Sandbox environment. It uses test data and does not interact with financial institutions. In order to test Payment Initiation against live Items in Production, you will need to first request access by contacting Sales or your Account Manager.

Payment Initiation can be tested with real money using Limited Production. In Limited Production, payments must be below 5 GBP or other chosen currency; otherwise they will be blocked. Standing orders, variable recurring payments, and virtual accounts cannot be used in Limited Production.

QR code authentication

For some institutions, Plaid supports the use of QR codes to streamline the OAuth authentication process that may be required during the Payment Initiation flow. For more information, see the OAuth guide.

Payment Monitoring

Plaid monitors all recipient and payment creation attempts to review and block suspicious activity. If your payment is blocked, /payment_initiation/payment/create will return a PAYMENT_BLOCKED error code. In Limited Production, payments must be below 5 GBP or other chosen currency. For details on any payment limits in full Production, contact your Plaid Account Manager.

Payment Initiation pricing

Payment Initiation is billed on a per-payment model. To view the exact pricing you may be eligible for, contact Sales.

Sample app

For a simple real-world implementation of Payment Initiation, see the Payment Initiation Pattern App on GitHub, which uses Payment Initiation in an account funding use case.

Next steps

To get started building with Payment Initiation, see Add Payment Initiation to your App.

If you're ready to launch to Production, see the Launch checklist.

Launch checklist

Recommended steps to take before launching in Production

Launch

Launch checklist

Recommended steps to take before launching in Production

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