---
title: "Create payment consent"
method: POST
path: "/payment_initiation/consent/create"
tags: ["plaid"]
---

# Create payment consent

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

## Request body

- PaymentInitiationConsentCreateRequest — PaymentInitiationConsentCreateRequest defines the request schema for `/payment_initiation/consent/create`
  - `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` string, required — The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this recipient only.
  - `reference` string, required — A reference for the payment consent. This must be an alphanumeric string with at most 18 characters and must not contain any special characters.
  - `scopes` PaymentInitiationConsentScope[], required — An array of payment consent scopes.
  - `constraints` PaymentInitiationConsentConstraints, required — Limitations that will be applied to payments initiated using the payment consent.
    - `valid_date_time` PaymentConsentValidDateTime, nullable — Life span for the payment consent. After the `to` date the payment consent expires and can no longer be used for payment initiation.
      - `from` string, date-time, nullable — The date and time from which the consent should be active, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
      - `to` string, date-time, nullable — The date and time at which the consent expires, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format.
    - `max_payment_amount` PaymentConsentMaxPaymentAmount, required — The amount and currency of a payment
      - `currency` 'GBP' | 'EUR' | 'PLN' | 'SEK' | 'DKK' | 'NOK', required — 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` number, double, required — The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
    - `periodic_amounts` PaymentConsentPeriodicAmount[], required — A list of amount limitations per period of time.
      - `amount` PaymentConsentPeriodicAmountAmount, required — The amount and currency of a payment
        - `currency` 'GBP' | 'EUR' | 'PLN' | 'SEK' | 'DKK' | 'NOK', required — 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` number, double, required — The amount of the payment. Must contain at most two digits of precision e.g. `1.23`. Minimum accepted value is `1`.
      - `interval` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required — Payment consent periodic interval.
      - `alignment` 'CALENDAR' | 'CONSENT', required — Where the payment consent period should start. `CALENDAR`: line up with a calendar. `CONSENT`: on the date of consent creation.
  - `options` ExternalPaymentInitiationConsentOptions, nullable — Additional payment consent options
    - `request_refund_details` boolean, nullable — 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, nullable — 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.
    - `bacs` PaymentInitiationOptionalRestrictionBacs, nullable — An object containing a BACS account number and sort code. If an IBAN is not provided or if you need to accept domestic GBP-denominated payments, BACS data is required.
      - `account` string — The account number of the account. Maximum of 10 characters.
      - `sort_code` string — The 6-character sort code of the account.

## Response `200`

OK

- PaymentInitiationConsentCreateResponse — PaymentInitiationConsentCreateResponse defines the response schema for `/payment_initiation/consent/create`
  - `consent_id` string, required — A unique ID identifying the payment consent.
  - `status` 'UNAUTHORISED' | 'AUTHORISED' | 'REVOKED' | 'REJECTED' | 'EXPIRED', required — The status of the payment consent. `UNAUTHORISED`: Consent created, but requires user authorisation. `REJECTED`: Consent authorisation was rejected by the user and/or the bank. `AUTHORISED`: Consent is active and ready to be used. `REVOKED`: Consent has been revoked and can no longer be used. `EXPIRED`: Consent is no longer valid.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Changes

- **2024-02-21** `5de70cc1e6ca` — 1 breaking, 2 warning, 2 info
  - the request property `scopes` became required
  - removed the request property `payer_details`
  - removed the request property `type`
  - request property `options` reactivated
  - …1 more

[Change history](https://skmtc.dev/plaid/apis/the-plaid-api/changes/payment_initiation/consent/create/post.md)

---

[API](https://skmtc.dev/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.dev/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/revisions/a5b45bccb4e8/schema)
