---
title: "List mandate migration candidates"
method: GET
path: "/api/external/v2/pro_account/mandate_migrations"
tags: ["Mandates"]
---

# List mandate migration candidates

`GET /api/external/v2/pro_account/mandate_migrations`

This endpoint allows you to retrieve all mandate migration candidates
for your company. These are mandates that can be migrated to a Pro Account.

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 one of the following scopes: `customer_mandates:readonly`, `customer_mandates:all`

## Query parameters

- `cursor` string
- `limit` integer
- `filter` string
- `sort` string

## Response `200`

The list of mandate migration candidates

- object
  - `has_more` boolean, required — Indicates whether additional results are available beyond this set. Use this flag to determine if another request is needed.
  - `next_cursor` string, nullable, required — Cursor to retrieve the next set of results. Include this value in the cursor parameter of your next request to fetch subsequent items. A `null` `next_cursor` in the response indicates no further results.
  - `items` object[], required
    - `id` integer, required — Numeric ID extracted from the display_id
    - `status` 'available' | 'completed', required — Status of the mandate migration candidate. - `available`: The mandate is available for migration - `completed`: The mandate has been successfully migrated
    - `direct_debit_method` 'GoCardless' | 'XML' | 'ProAccount', required — The direct debit method used by this mandate. - `GoCardless`: GoCardless mandate - `XML`: SEPA XML 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
    - `mandate` object, required — A polymorphic mandate object can either be a SepaMandate or a Gocardless mandate.
      - `id` integer, required
      - `type` 'SepaMandate' | 'Mandate', required
    - `customer` object, nullable, required — The customer associated with this mandate
      - `id` integer, required
      - `url` string, required — URL to get the customer.
      - `pro_account_mandate` object, required
        - `url` string, required — Link to the pro account mandate for this customer.
    - `created_at` string, date-time, required — Creation date of the mandate migration candidate
    - `updated_at` string, date-time, required — Last update date of the mandate migration candidate

## Other responses

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

---

[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)
