---
title: "Create an open banking mandate"
method: POST
path: "/open-banking/mandates"
tags: ["Variable Recurring Payments"]
---

# Create an open banking mandate

`POST /open-banking/mandates`

Creates an Open Banking mandate and returns details needed to continue the user authorisation journey.

Mandate `type` must be one of: `SWEEPING`, `VISA_A2A`, `COMMERCIAL`.

Where periodic limits specify an `alignment`, it must be one of: `CALENDAR` or `CONSENT`.

## Headers

- `Company-Id` string, uuid
- `Mid` string, uuid

## Request body

- OpenBankingMandateCreateRequest
  - `debtor` object, required
    - `customer_id` string, uuid, required — Customer identifier for the debtor.
    - `account_number` string — Debtor account number (optional).
    - `sort_code` string — Debtor sort code (optional).
    - `account_name` string — Debtor account name (optional).
  - `bank_id` string, required — Identifier of the supported bank.
  - `currency` string, required — ISO 4217 currency code. Case-insensitive.
  - `periodic_limit` object, required
    - `per_payment` object, required
      - `maximum_amount` number, required — Maximum amount per payment.
    - `day` object
      - `maximum_amount` number — Maximum amount per day.
      - `alignment` 'CALENDAR' | 'CONSENT' — Alignment used to define the period. Case-insensitive; values are normalised to uppercase.
    - `week` object
      - `maximum_amount` number — Maximum amount per week.
      - `alignment` 'CALENDAR' | 'CONSENT' — Alignment used to define the period. Case-insensitive; values are normalised to uppercase.
    - `fortnight` object
      - `maximum_amount` number — Maximum amount per fortnight.
    - `month` object
      - `alignment` 'CALENDAR' | 'CONSENT' — Alignment used to define the period. Case-insensitive; values are normalised to uppercase.
      - `maximum_amount` number — Maximum amount per month aligned by the alignment field.
    - `half_year` object
      - `alignment` 'CALENDAR' | 'CONSENT' — Alignment used to define the period. Case-insensitive; values are normalised to uppercase.
      - `maximum_amount` number — Maximum amount per half-year aligned by the alignment field.
    - `year` object
      - `alignment` 'CALENDAR' | 'CONSENT' — Alignment used to define the period. Case-insensitive; values are normalised to uppercase.
      - `maximum_amount` number — Maximum amount per year aligned by the alignment field.
  - `type` 'SWEEPING' | 'VISA_A2A' | 'COMMERCIAL', required — Mandate type. Case-insensitive; values are normalised to uppercase.
  - `term` object — Mandate term (validity window).
    - `start_date` string, date-time — The date/time the mandate is active from (ISO 8601).
    - `end_date` string, date-time — The date/time the mandate is active until (ISO 8601).
  - `reference` string — Reference used for payments taken against this mandate.
  - `order_id` string, required — Merchant order identifier.

## Response `201`

Created

- OpenBankingMandateCreateResponse
  - `mandate_id` string, required — The unique ID assigned to the open banking mandate.
  - `status` string — Mandate status.
  - `auth_url` string, uri — URL the customer should be redirected to in order to authorise the mandate.
  - `created_at` string, date-time — The time the mandate was created in UTC.

## Other responses

- `400`
- `401`
- `403`
- `500`

---

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