---
title: "Migrate a mandate to Pro Account"
method: POST
path: "/api/external/v2/pro_account/mandate_migrations"
tags: ["Mandates"]
---

# Migrate a mandate to Pro Account

`POST /api/external/v2/pro_account/mandate_migrations`

This endpoint allows you to migrate a mandate to a Pro Account.
Only mandates with status 'available' are eligible for migration.

**Requirements:**
- Company must have a Pro Account (returns 404 if not)
- Company must have an enabled merchant profile (returns 403 if not)


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

## Request body

- object
  - `mandate_type` 'SepaMandate' | 'Mandate', required — The type of the mandate to migrate. Use "Mandate" for GoCardless mandates or "SepaMandate" for SEPA mandates.
  - `mandate_id` integer, required — The ID of the mandate to migrate.
  - `early_execution_date_permitted` boolean — Whether to permit early execution date for the migration. Defaults to false if not specified.

## Response `201`

Mandate migration initiated successfully

- object
  - `mandate_migration` object, required
    - `id` integer, required
    - `status` string, required
    - `direct_debit_method` 'GoCardless' | 'XML' | 'ProAccount', nullable, required — The direct debit method used by this mandate. - `GoCardless`: GoCardless mandate - `XML`: SEPA mandate - `ProAccount`: Pro Account mandate
    - `signed_at` string, date-time, nullable, required — Date when the mandate was signed
    - `error_message` string, nullable, required — Error message if the migration failed
    - `migrated_at` string, date-time, nullable, required — Date when the mandate was successfully migrated
    - `migration_started_at` string, date-time, nullable, required — Date when the migration was started
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `mandate` object, required — A polymorphic mandate object can either be a SepaMandate or a Gocardless mandate.
      - `id` integer, required
      - `type` string, required
    - `customer` object, required
      - `id` integer, required
      - `url` string, required — URL to get the customer.
      - `pro_account_mandate` object, required — Link to the pro account mandate for this customer.
        - `url` string, required — URL to list pro account mandates for this customer.

## 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

---

[API](https://skmtc.net/pennylane/apis/company-v2.md) · [All operations](https://skmtc.net/pennylane/apis/company-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pennylane/company-v2/revisions/a5b7236473c6/schema)
