---
title: "Update a SEPA mandate"
method: PUT
path: "/api/external/v2/sepa_mandates/{id}"
tags: ["Mandates"]
---

# Update a SEPA mandate

`PUT /api/external/v2/sepa_mandates/{id}`

## Request

- Base URL: `https://app.pennylane.com`
- URL: `https://app.pennylane.com/api/external/v2/sepa_mandates/{id}`
- Auth: OAuth 2
  - Authorization code: `https://app.pennylane.com/oauth/authorize`
  - Token URL: `https://app.pennylane.com/oauth/oauth/token` scopes: `customer_mandates:all`

This endpoint allows you to update an existing SEPA mandate

> ℹ️
> This endpoint requires the following scope: `customer_mandates:all`

## Path parameters

- `id` integer, required

## Headers

- `X-Company-Id` string

## Request body

- object
  - `bank` string, nullable: Name of the customer's bank
  - `bic` string: Bank Identifier Code (BIC) of the customer's bank
  - `iban` string: International Bank Account Number (IBAN) of the customer
  - `sequence_type` 'FRST' | 'OOFF' | 'RCUR' | 'FNAL': SEPA mandate sequence type that defines the payment process. - `FRST`: First payment in a series of recurring payments - `OOFF`: One-off payment - `RCUR`: Recurring payment that is not the first payment - `FNAL`: Final payment in a series of recurring payments
  - `signed_at` string, date: Date when the mandate was signed
  - `identifier` string: Unique identifier for the mandate
  - `customer_id` integer: ID of the customer for which the mandate is created

## Response `200`

Returns the updated SEPA mandate

- object
  - `id` integer, required: ID of the created SEPA mandate
  - `bank` string, nullable, required: Name of the customer's bank
  - `bic` string, required: Bank Identifier Code (BIC) of the customer's bank
  - `iban` string, required: International Bank Account Number (IBAN) of the customer
  - `sequence_type` 'FRST' | 'OOFF' | 'RCUR' | 'FNAL', required: SEPA mandate sequence type that defines the payment process. - `FRST`: First payment in a series of recurring payments - `OOFF`: One-off payment - `RCUR`: Recurring payment that is not the first payment - `FNAL`: Final payment in a series of recurring payments
  - `signed_at` string, date, required: Date when the mandate was signed
  - `identifier` string, required: Unique identifier for the mandate
  - `customer` object, required
    - `id` integer, required
    - `url` string, required: URL to get the customer.
  - `created_at` string, date-time, required: Creation date of the SEPA mandate
  - `updated_at` string, date-time, required: Last update date of the SEPA mandate

## Other responses

- `400`: Bad request
- `401`: Access token is missing or invalid
- `403`: Access to this resource forbidden
- `404`: The resource was not found
- `422`: Unprocessable content

## Changes

- **2026-11-03** `871f863307e5`: 1 info
  - added the new optional `header` request parameter `X-Company-Id`

[Operation history](https://skmtc.dev/pennylane/apis/company-v2/changes/api/external/v2/sepa_mandates/:id/put.md)

---

[API](https://skmtc.dev/pennylane/apis/company-v2.md) - [All operations](https://skmtc.dev/pennylane/apis/company-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/pennylane/apis/company-v2/revisions/871f863307e5?raw)
