Create a payment

POST /payment_initiation/payment/create

After creating a payment recipient, you can use the /payment_initiation/payment/create endpoint to create a payment to that recipient. Payments can be one-time or standing order (recurring) and can be denominated in either EUR, GBP or other chosen currency. If making domestic GBP-denominated payments, your recipient must have been created with BACS numbers. In general, EUR-denominated payments will be sent via SEPA Credit Transfer, GBP-denominated payments will be sent via the Faster Payments network and for non-Eurozone markets typically via the local payment scheme, but the payment network used will be determined by the institution. Payments sent via Faster Payments will typically arrive immediately, while payments sent via SEPA Credit Transfer or other local payment schemes will typically arrive in one business day.

Standing orders (recurring payments) must be denominated in GBP and can only be sent to recipients in the UK. Once created, standing order payments cannot be modified or canceled via the API. An end user can cancel or modify a standing order directly on their banking application or website, or by contacting the bank. Standing orders will follow the payment rules of the underlying rails (Faster Payments in UK). Payments can be sent Monday to Friday, excluding bank holidays. If the pre-arranged date falls on a weekend or bank holiday, the payment is made on the next working day. It is not possible to guarantee the exact time the payment will reach the recipient’s account, although at least 90% of standing order payments are sent by 6am.

In Limited Production, payments must be below 5 GBP or other chosen currency, and standing orders, variable recurring payments, and Virtual Accounts are not supported.

Request Body

Required

PaymentInitiationPaymentCreateRequest defines the request schema for /payment_initiation/payment/create

Parameters

client_id
string
Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.
secret
string
Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.
recipient_id
required, string
The ID of the recipient the payment is for.
reference
required, string
A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any special characters (since not all institutions support them). In order to track settlement via Payment Confirmation, each payment must have a unique reference. If the reference provided through the API is not unique, Plaid will adjust it. Some institutions may limit the reference to less than 18 characters. If necessary, Plaid will adjust the reference by truncating it to fit the institution’s requirements. Both the originally provided and automatically adjusted references (if any) can be found in the reference and adjusted_reference fields, respectively.
amount
required, object
The amount and currency of a payment
currency
required, string
The ISO-4217 currency code of the payment. For standing orders and payment consents, "GBP" must be used. For Poland, Denmark, Sweden and Norway, only the local currency is currently supported.
value
required, number
The amount of the payment. Must contain at most two digits of precision e.g. 1.23. Minimum accepted value is 1.
schedule
object
The schedule that the payment will be executed on. If a schedule is provided, the payment is automatically set up as a standing order. If no schedule is specified, the payment will be executed only once.
options
object
Additional payment options
request_refund_details
boolean
When true, Plaid will attempt to request refund details from the payee’s financial institution. Support varies between financial institutions and will not always be available. If refund details could be retrieved, they will be available in the /payment_initiation/payment/get response.
iban
string
The International Bank Account Number (IBAN) for the payer’s account. Where possible, the end user will be able to send payments only from the specified bank account if provided.
bacs
object
An optional object used to restrict the accounts used for payments. If provided, the end user will be able to send payments only from the specified bank account.
scheme
string
Payment scheme. If not specified - the default in the region will be used (e.g. SEPA_CREDIT_TRANSFER for EU). Using unsupported values will result in a failed payment. LOCAL_DEFAULT: The default payment scheme for the selected market and currency will be used. LOCAL_INSTANT: The instant payment scheme for the selected market and currency will be used (if applicable). Fees may be applied by the institution. SEPA_CREDIT_TRANSFER: The standard payment to a beneficiary within the SEPA area. SEPA_CREDIT_TRANSFER_INSTANT: Instant payment within the SEPA area. May involve additional fees and may not be available at some banks.

Response

PaymentInitiationPaymentCreateResponse defines the response schema for /payment_initiation/payment/create

Response Properties

payment_id
required, string
A unique ID identifying the payment
status
required, string
For a payment returned by this endpoint, there is only one possible value: PAYMENT_STATUS_INPUT_NEEDED: The initial phase of the payment
request_id
required, string
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.