POST /payment_initiation/consent/create

The /payment_initiation/consent/create endpoint is used to create a payment consent, which can be used to initiate payments on behalf of the user. Payment consents are created with UNAUTHORISED status by default and must be authorised by the user before payments can be initiated.

Consents can be limited in time and scope, and have constraints that describe limitations for payments.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
scopes[] Array No

An array of payment consent scopes.

constraints Object Yes

Limitations that will be applied to payments initiated using the payment consent.

constraints.valid_date_time Object No

Life span for the payment consent. After the to date the payment consent expires and can no longer be used for payment initiation.

constraints.valid_date_time.to String No

The date and time at which the consent expires, in ISO 8601 format.

constraints.valid_date_time.from String No

The date and time from which the consent should be active, in ISO 8601 format.

constraints.periodic_amounts[] Array Yes

A list of amount limitations per period of time.

constraints.periodic_amounts[].interval String Yes

Payment consent periodic interval.

Possible values:

  • "WEEK"
  • "MONTH"
  • "DAY"
  • "YEAR"
constraints.periodic_amounts[].alignment String Yes

Where the payment consent period should start.

If the institution is Monzo, only CONSENT alignments are supported.

CALENDAR: line up with a calendar.

CONSENT: on the date of consent creation.

Possible values:

  • "CONSENT"
  • "CALENDAR"
client_id String No

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.

options Object No

(Deprecated) Additional payment consent options. Please use payer_details to specify the account.

options.iban String No

The International Bank Account Number (IBAN) for the payer's account. Where possible, the end user will be able to set up payment consent using only the specified bank account if provided.

options.request_refund_details Boolean No

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.

recipient_id String Yes

The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this recipient only.

type String No

Payment consent type. Defines possible use case for payments made with the given consent.

SWEEPING: Allows moving money between accounts owned by the same user.

COMMERCIAL: Allows initiating payments from the user's account to third parties.

Possible values:

  • "SWEEPING"
  • "COMMERCIAL"
reference String Yes

A reference for the payment consent. This must be an alphanumeric string with at most 18 characters and must not contain any special characters.

payer_details Object No

An object representing the payment consent payer details. Payer name and account numbers are required to lock the account to which the consent can be created.

payer_details.name String Yes

The name of the payer as it appears in their bank account

payer_details.date_of_birth String No

The payer's birthdate, in ISO 8601 (YYYY-MM-DD) format.

payer_details.phone_numbers[] Array No

The payer's phone numbers in E.164 format: +{countrycode}{number}

payer_details.emails[] Array No

The payer's emails

payer_details.numbers Object Yes

The counterparty's bank account numbers. Exactly one of IBAN or BACS data is required.

payer_details.numbers.iban String No

International Bank Account Number (IBAN).

payer_details.address Object No

The optional address of the payment recipient's bank account. Required by most institutions outside of the UK.

payer_details.address.postal_code String Yes

The postal code where the recipient is located. Maximum of 16 characters.

payer_details.address.country String Yes

The ISO 3166-1 alpha-2 country code where the recipient is located.

payer_details.address.street[] Array Yes

An array of length 1-2 representing the street address where the recipient is located. Maximum of 70 characters.

payer_details.address.city String Yes

The city where the recipient is located. Maximum of 35 characters.

secret String No

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.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.