---
title: "Get mandate"
method: GET
path: "/v3/mandates/{id}"
tags: ["Mandates"]
---

# Get mandate

`GET /v3/mandates/{id}`

## Request

- Base URL: `https://api.truelayer-sandbox.com`
- URL: `https://api.truelayer-sandbox.com/v3/mandates/{id}`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://auth.truelayer.com/connect/token` scopes: `mandates`
  - HTTP bearer

Returns a mandate with the stated ID.

This endpoint can be called either by the regular `backend token` or the `mandate token` for that mandate.

## Path parameters

- `id` string, required

## Response `200`

Mandate

- union
  - union
    - object: A mandate yet to be authorized. This is the first status for a mandate that requires further actions to be authorized.
      - `type` 'sweeping', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorization_required', required
    - object
      - `type` 'sweeping', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorizing', required
      - `authorization_flow` object, required: Contains information regarding the nature and the state of the authorization flow
        - `actions` object, required
          - `next` union, required: The next action can be performed via `POST /v3/mandate/{id}/authorization_flow/action/{action_name}` - check its documentation for relevant examples.
            - ActionSpecProviderSelection: Provider selection represents the end user action of selecting a provider
              - …
            - ActionSpecRedirect
              - …
            - ActionSpecWaitForOutcome2: Indication that there are currently no actions to perform.
              - …
            - ActionSpecConsent2
              - …
        - `configuration` MandateAuthorizationFlowConfiguration
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
    - object
      - `type` 'sweeping', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorized', required
      - `authorized_at` string, datetime: The date and time the mandate was authorized at
      - `authorization_flow` MandateAuthorizationFlowFrozen, required: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
      - `remitter` VRPPaymentRemitter: The routing information for the remitter bank account.
        - `account_holder_name` string, required: The name of the remitter account holder.
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
    - object
      - `type` 'sweeping', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'failed', required
      - `failed_at` string, datetime: The date and time the mandate authorization was failed at
      - `failure_stage` 'authorization_required' | 'authorized' | 'authorizing' | 'revoked', required: The status the mandate was in when it failed.
      - `failure_reason` string, required: A readable detail for why the mandate failed. Example values to expect: - `authorization_failed` - `provider_error` - `provider_rejected` - `internal_server_error` - `invalid_sort_code` - `invalid_request` - `expired` - `unknown_error`
      - `authorization_flow` MandateAuthorizationFlowFrozen: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
    - object
      - `type` 'sweeping', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'revoked', required
      - `revocation_source` 'client' | 'provider', required: Source for the revocation
      - `authorization_flow` MandateAuthorizationFlowFrozen, required: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
      - `authorized_at` string, datetime: The date and time the mandate was authorized at
      - `revoked_at` string, datetime: The date and time the mandate was revoked at
  - union
    - object: A mandate yet to be authorized. This is the first status for a mandate that requires further actions to be authorized.
      - `type` 'commercial', required
      - `use_case` 'charity' | 'financial_services' | 'government' | 'utilities': The use case for which the cVRP mandate is used for.
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorization_required', required
    - object
      - `type` 'commercial', required
      - `use_case` 'charity' | 'financial_services' | 'government' | 'utilities': The use case for which the cVRP mandate is used for.
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorizing', required
      - `authorization_flow` object, required: Contains information regarding the nature and the state of the authorization flow
        - `actions` object, required
          - `next` union, required: The next action can be performed via `POST /v3/mandate/{id}/authorization_flow/action/{action_name}` - check its documentation for relevant examples.
            - ActionSpecProviderSelection: Provider selection represents the end user action of selecting a provider
              - …
            - ActionSpecRedirect
              - …
            - ActionSpecWaitForOutcome2: Indication that there are currently no actions to perform.
              - …
            - ActionSpecConsent2
              - …
        - `configuration` MandateAuthorizationFlowConfiguration
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
    - object
      - `type` 'commercial', required
      - `use_case` 'charity' | 'financial_services' | 'government' | 'utilities': The use case for which the cVRP mandate is used for.
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorized', required
      - `authorized_at` string, datetime: The date and time the mandate was authorized at
      - `authorization_flow` MandateAuthorizationFlowFrozen, required: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
      - `remitter` VRPPaymentRemitter: The routing information for the remitter bank account.
        - `account_holder_name` string, required: The name of the remitter account holder.
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
    - object
      - `type` 'commercial', required
      - `use_case` 'charity' | 'financial_services' | 'government' | 'utilities': The use case for which the cVRP mandate is used for.
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'failed', required
      - `failed_at` string, datetime: The date and time the mandate authorization was failed at
      - `failure_stage` 'authorization_required' | 'authorized' | 'authorizing' | 'revoked', required: The status the mandate was in when it failed.
      - `failure_reason` string, required: A readable detail for why the mandate failed. Example values to expect: - `authorization_failed` - `provider_error` - `provider_rejected` - `internal_server_error` - `invalid_sort_code` - `invalid_request` - `expired` - `unknown_error`
      - `authorization_flow` MandateAuthorizationFlowFrozen: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
    - object
      - `type` 'commercial', required
      - `use_case` 'charity' | 'financial_services' | 'government' | 'utilities': The use case for which the cVRP mandate is used for.
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `beneficiary` union, required
        - GetMandateDestinationMerchantAccount: The identifier for a TrueLayer's merchant account.
          - `type` 'merchant_account', required: The type of destination.
          - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
          - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
        - GetMandateDestinationExternalAccount: The routing information for an external bank account.
          - `type` 'external_account', required: The type of destination.
          - `account_holder_name` string, required: The name of the external account holder.
          - `account_identifier` union, required: A unique account identifier for an external account.
            - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
              - …
            - AccountIdentifierIban: The international bank account number.
              - …
            - AccountIdentifierBban: Basic bank account number.
              - …
            - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
              - …
          - `reference` string: The auto-generated reference for the mandate. Read more about references [here](https://docs.truelayer.com/docs/recurring-payment-references-reconciliation)
      - `reference` string, required: Reference set on the mandate. This field is deprecated. Please use the `statement_reference` field instead.
      - `statement_reference` string: Reference set on the mandate.
      - `provider_selection` union, required: Provider Selection
        - object: Indicates that the provider is to be selected from a collection
          - `type` 'user_selected', required: The type of provider.
          - `provider_id` string: The provider ID the end user will use for this payment. Will be populated when the provider selection has been submitted.
          - `filter` ProviderFilter: Configuration options to constrain which providers should be available during the `provider_selection` action.
            - `countries` CountryCode[]: Only providers from the specified countries will be returned.
            - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': The lowest stability release stage of a provider that should be returned. Note that many EUR providers are in `public_beta` or `private_beta`.
            - `customer_segments` string[]: The customer segments that providers cater to that should be returned. By default, returns retail only.
            - `provider_ids` string[]: IDs of providers to include in those returned.
            - `excludes` object: Options to exclude providers included by the filters
              - …
        - object: Preselected provider. Indicates that the provider for this payment is preselected.
          - `type` 'preselected', required: The type of provider.
          - `provider_id` string, required: The provider ID the end user will use for this payment.
          - `remitter` Remitter: Remitter
            - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
            - `account_identifier` union, required: A unique account identifier for an external account.
              - …
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `constraints` VRPConstraints, required: Sets the limits for the payments that can be created by the mandate. If a payment is attempted that doesn't fit within these constraints it will fail. These constraints are considered only for VRP mandates (not direct debit).
        - `valid_from` string, datetime: Start date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `valid_to` string, datetime: End date time for which the consent remains valid using format `YYYY-MM-DDTHH:mm:ss.sssZ`
        - `maximum_individual_amount` integer, required: A 'cent' value representing the maximum amount that can be specified in a payment instruction
        - `periodic_limits` object, required: The limits for the payments that can be created by the mandate within a specified time period. At least one periodic limit must be provided upon mandate creation.
          - `day` object: Limit for payments made within a day
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `week` object: Limit for payments made within a week
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `fortnight` object: Limit for payments made within a fortnight Only supports `period_alignment` of `consent`.
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `month` object: Limit for payments made within a month
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `half_year` object: Limit for payments made within 6 months
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
          - `year` object: Limit for payments made within a year
            - `maximum_amount` integer, required: A 'cent' value representing the maximum cumulative amount that all successful payments can claim in the period. `maximum_amount` must be greater or equal to `maximum_individual_amount` specified on the `constraints` object if `maximum_individual_amount` has been specified.
            - `period_alignment` 'consent' | 'calendar', required: Specifies whether the period starts on the date of consent creation or lines up with a calendar. If the `period_alignment` is `calendar`, the limit is pro-rated in the first period to the remaining number of days.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'revoked', required
      - `revocation_source` 'client' | 'provider', required: Source for the revocation
      - `authorization_flow` MandateAuthorizationFlowFrozen, required: Information about the authorization flow the mandate went through. If the mandate transitioned immediately to `authorized` or `failed`, this field will be null.
        - `configuration` MandateAuthorizationFlowConfiguration, required
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
      - `authorized_at` string, datetime: The date and time the mandate was authorized at
      - `revoked_at` string, datetime: The date and time the mandate was revoked at
  - union
    - object: A mandate yet to be authorized. This is the first status for a mandate that requires further actions to be authorized.
      - `type` 'direct_debit', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `remitter` GetDDRemitter, required: Remitter
        - `type` 'preselected', required
        - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `beneficiary` DDBeneficiary, required: The identifier for a TrueLayer's merchant account.
        - `type` 'merchant_account', required: The type of destination.
        - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
        - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorization_required', required
    - object
      - `type` 'direct_debit', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `remitter` GetDDRemitter, required: Remitter
        - `type` 'preselected', required
        - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `beneficiary` DDBeneficiary, required: The identifier for a TrueLayer's merchant account.
        - `type` 'merchant_account', required: The type of destination.
        - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
        - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorizing', required
      - `authorization_flow` object: Contains information regarding the nature and the state of the authorization flow
        - `actions` object, required
          - `next` union, required: The next action can be performed via `POST /v3/mandate/{id}/authorization_flow/action/{action_name}` - check its documentation for relevant examples.
            - ActionSpecProviderSelection: Provider selection represents the end user action of selecting a provider
              - …
            - ActionSpecRedirect
              - …
            - ActionSpecWaitForOutcome2: Indication that there are currently no actions to perform.
              - …
            - ActionSpecConsent2
              - …
        - `configuration` MandateAuthorizationFlowConfiguration
          - `provider_selection` object, required: Can the UI render a provider selection screen? Configuration options are available to constrain which providers should be shown.
          - `redirect` object, required: Can the UI redirect the end user to a third-party page? Configuration options are available to constrain if TrueLayer's Hosted Payment Page should be leveraged.
            - `return_uri` string, url, required: During the authorization flow the end user might be redirected to another page (e.g. bank website, TrueLayer's Hosted Payment Page). This URL determines where they will be redirected back once they completed the flow on the third-party's website. This field is optional - if left unspecified, the end user will be redirected back to the default URI specified in your client settings in TrueLayer's Console. `return_uri`, if specified, must be one of the allowed `return_uri`s registered in TrueLayer's Console.
    - object
      - `type` 'direct_debit', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `remitter` GetDDRemitter, required: Remitter
        - `type` 'preselected', required
        - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `beneficiary` DDBeneficiary, required: The identifier for a TrueLayer's merchant account.
        - `type` 'merchant_account', required: The type of destination.
        - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
        - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'authorized', required
      - `statement_reference` string, required: Reference set on the mandate.
      - `authorized_at` string, datetime, required: The date and time the mandate was authorized at.
    - object
      - `type` 'direct_debit', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `remitter` GetDDRemitter, required: Remitter
        - `type` 'preselected', required
        - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `beneficiary` DDBeneficiary, required: The identifier for a TrueLayer's merchant account.
        - `type` 'merchant_account', required: The type of destination.
        - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
        - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'failed', required
      - `failed_at` string, datetime, required: The date and time the mandate authorization failed at.
      - `failure_stage` 'authorization_required' | 'authorized' | 'authorizing' | 'revoked', required: The status the mandate was in when it failed.
      - `failure_reason` string, required: A readable detail for why the mandate failed. Example values to expect: - `authorization_failed` - `provider_error` - `provider_rejected` - `internal_server_error` - `invalid_sort_code` - `invalid_request` - `expired` - `unknown_error`
    - object
      - `type` 'direct_debit', required
      - `id` string, required: Unique ID for the mandate
      - `currency` 'GBP' | 'EUR', required
      - `remitter` GetDDRemitter, required: Remitter
        - `type` 'preselected', required
        - `account_holder_name` string, required: The name of the external account holder. pattern: `^[^\(\)]{1,80}$`
        - `account_identifier` union, required: A unique account identifier for an external account.
          - AccountIdentifierScan: The scheme identifier for a bank account participating in UK payment schemes.
            - `type` 'sort_code_account_number', required: The type of scheme identifier.
            - `sort_code` string, required: 6 digit sort code (no spaces or dashes). pattern: `^[0-9]{6}$`
            - `account_number` string, required: 8 digit account number. pattern: `^[0-9]{8}$`
          - AccountIdentifierIban: The international bank account number.
            - `type` 'iban', required: The type of scheme identifier.
            - `iban` string, required: Valid International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN). pattern: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$`
          - AccountIdentifierBban: Basic bank account number.
            - `type` 'bban', required: The type of scheme identifier.
            - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
          - AccountIdentifierNrb: The scheme identifier for a bank account participating in Poland's payment schemes.
            - `type` 'nrb', required: The type of scheme identifier.
            - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `beneficiary` DDBeneficiary, required: The identifier for a TrueLayer's merchant account.
        - `type` 'merchant_account', required: The type of destination.
        - `merchant_account_id` string, uuid, required: Unique ID for the Merchant Account
        - `account_holder_name` string: The name of the beneficiary, which displays in the remitter's bank statement. If unspecified, the API uses the account owner name associated with the selected merchant account.
      - `user` PaymentUser
        - `id` string, required: Unique ID for the User
      - `created_at` string, datetime, required: The date and time the mandate was created at.
      - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - `sub_merchants` PaymentSubMerchants: The details related to any applicable sub-merchants, for example an underlying division of the overall business.
        - `ultimate_counterparty` union, required
          - UltimateCounterpartyBusinessDivision: The business details of the ultimate counterparty.
            - `type` 'business_division', required: The ultimate counterparty is a division of the main business.
            - `id` string, required: The identifier of the business division.
            - `name` string, required: The name of the business division.
          - UltimateCounterpartyBusinessClient: The business details of the ultimate counterparty.
            - `type` 'business_client', required: The ultimate counterparty is a registered business.
            - `id` string, required: The identifier of the business client.
            - `trading_name` string, required: The trading name of the business. pattern: `^.{1,70}$`
            - `commercial_name` string: The commercial name of the business. pattern: `^.{1,100}$`
            - `url` string: The website of the business. This must be a valid URL.
            - `mcc` string: The ISO 18245 merchant category code (MCC) of the business. pattern: `^[0-9]{4}$`
            - `registration_number` string: The registration number of the business. This is required if `address` is not provided. pattern: `^.{1,35}$`
            - `address` Address
              - …
      - `status` 'revoked', required
      - `statement_reference` string, required: Reference set on the mandate.
      - `revocation_source` 'client' | 'provider', required: Source for the revocation
      - `authorized_at` string, datetime, required: The date and time the mandate was authorized at.
      - `revoked_at` string, datetime, required: The date and time the mandate was revoked at.
      - `revocation_reason` string: The reason that the mandate was revoked.

## Other responses

- `400`: Invalid Parameters
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Mandate Not Found
- `500`: Unknown Error

---

[API](https://skmtc.dev/truelayer/apis/payments-api-v3.md) - [All operations](https://skmtc.dev/truelayer/apis/payments-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/payments-api-v3/revisions/a7c585fc9b84?raw)
