# List mandates Retrieve a list of all mandates. The results are paginated. > 🔑 Access with > > [API key](/reference/authentication) > > [Organization access token with **mandates.read**](/reference/authentication) > > [OAuth access with **mandates.read**](/reference/authentication) # OpenAPI definition ```json { "openapi": "3.1.0", "info": { "title": "Recurring", "version": "1.0.0", "license": { "name": "Attribution-NonCommercial-ShareAlike 4.0 International", "identifier": "CC-BY-NC-SA-4.0" } }, "servers": [ { "url": "https://api.mollie.com/v2" } ], "security": [ { "apiKey": [] }, { "organizationAccessToken": [] }, { "oAuth": [] } ], "paths": { "/customers/{customerId}/mandates": { "parameters": [ { "name": "customerId", "description": "Provide the ID of the related customer.", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^cst_.+$", "example": "cst_5B8cwPMGnU" } } ], "get": { "summary": "List mandates", "x-speakeasy-name-override": "list", "tags": [ "Mandates API" ], "operationId": "list-mandates", "security": [ { "apiKey": [] }, { "organizationAccessToken": [ "mandates.read" ] }, { "oAuth": [ "mandates.read" ] } ], "description": "Retrieve a list of all mandates.\n\nThe results are paginated.\n\n> 🔑 Access with\n>\n> [API key](/reference/authentication)\n>\n> [Organization access token with **mandates.read**](/reference/authentication)\n>\n> [OAuth access with **mandates.read**](/reference/authentication)", "parameters": [ { "name": "from", "in": "query", "description": "Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the result set.", "schema": { "type": "string", "pattern": "^mdt_.+$", "example": "mdt_5B8cwPMGnU" } }, { "name": "limit", "description": "The maximum number of items to return. Defaults to 50 items.", "in": "query", "schema": { "type": [ "integer", "null" ], "minimum": 1, "maximum": 250, "default": 50, "example": 50 } }, { "name": "sort", "description": "Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from newest to oldest.\n\nPossible values: `asc` `desc`", "in": "query", "schema": { "type": "string", "example": "desc" } }, { "name": "testmode", "description": "Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter must not be sent. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`.\n\nTest entities cannot be retrieved when the endpoint is set to live mode, and vice versa.", "in": "query", "schema": { "type": "boolean", "example": false } } ], "responses": { "200": { "description": "A list of mandate objects.", "content": { "application/hal+json": { "schema": { "type": "object", "required": [ "count", "_embedded", "_links" ], "properties": { "count": { "type": "integer", "description": "The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result as well.\n\nThe maximum number of items per result set is controlled by the `limit` property provided in the request. The default limit is 50 items.", "minimum": 1, "maximum": 250, "example": 5 }, "_embedded": { "type": "object", "required": [ "mandates" ], "properties": { "mandates": { "description": "An array of mandate objects.", "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "resource": { "type": "string", "description": "Indicates the response contains a mandate object. Will always contain the string `mandate` for this endpoint.", "readOnly": true, "default": "mandate" }, "id": { "allOf": [ { "type": "string", "pattern": "^mdt_.+$", "example": "mdt_5B8cwPMGnU" } ], "description": "The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`." }, "mode": { "type": "string", "description": "Whether this entity was created in live mode or in test mode.\n\nPossible values: `live` `test`", "readOnly": true, "example": "live" }, "method": { "type": "string", "description": "Payment method of the mandate.\n\nSEPA Direct Debit and PayPal mandates can be created directly.\n\nPossible values: `creditcard` `directdebit` `paypal`", "example": "directdebit" }, "consumerName": { "type": "string", "description": "The customer's name.", "example": "John Doe", "writeOnly": true }, "consumerAccount": { "type": [ "string", "null" ], "description": "The customer's IBAN. Required for SEPA Direct Debit mandates.", "example": "NL55INGB0000000000", "writeOnly": true }, "consumerBic": { "type": [ "string", "null" ], "description": "The BIC of the customer's bank.", "example": "BANKBIC", "writeOnly": true }, "consumerEmail": { "type": [ "string", "null" ], "description": "The customer's email address. Required for PayPal mandates.", "example": "example@email.com", "writeOnly": true }, "details": { "type": "object", "properties": { "consumerName": { "type": [ "string", "null" ], "description": "The customer's name. Available for SEPA Direct Debit and PayPal mandates.", "example": "John Doe" }, "consumerAccount": { "type": [ "string", "null" ], "description": "The customer's IBAN or email address. Available for SEPA Direct Debit and PayPal mandates.", "example": "NL55INGB0000000000" }, "consumerBic": { "type": [ "string", "null" ], "description": "The BIC of the customer's bank. Available for SEPA Direct Debit mandates.", "example": "BANKBIC" }, "cardHolder": { "type": [ "string", "null" ], "description": "The card holder's name. Available for card mandates.", "example": "John Doe" }, "cardNumber": { "type": [ "string", "null" ], "description": "The last four digits of the card number. Available for card mandates.", "example": 3240 }, "cardExpiryDate": { "type": [ "string", "null" ], "description": "The card's expiry date in `YYYY-MM-DD` format. Available for card mandates.", "example": "2025-01-01" }, "cardLabel": { "type": [ "string", "null" ], "description": "The card's label. Available for card mandates, if the card label could be detected.\n\nPossible values: `American Express` `Carta Si` `Carte Bleue` `Dankort` `Diners Club` `Discover` `JCB` `Laser` `Maestro` `Mastercard` `Unionpay` `Visa`", "example": "Visa" }, "cardFingerprint": { "type": [ "string", "null" ], "description": "Unique alphanumeric representation of this specific card. Available for card mandates. Can be used to identify returning customers.", "example": "d3290e932k02f" } }, "readOnly": true }, "signatureDate": { "type": [ "string", "null" ], "description": "The date when the mandate was signed in `YYYY-MM-DD` format.", "example": "2025-01-01" }, "mandateReference": { "type": [ "string", "null" ], "description": "A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will decline Direct Debit payments if the mandate reference is not unique.", "example": "ID-1023892" }, "paypalBillingAgreementId": { "type": [ "string", "null" ], "description": "The billing agreement ID given by PayPal. For example: `B-12A34567B8901234CD`. Required for PayPal mandates. Must provide either this field or `payPalVaultId`, but not both.", "example": "B-12A34567B8901234CD", "writeOnly": true }, "payPalVaultId": { "type": [ "string", "null" ], "description": "The Vault ID given by PayPal. For example: `8kk8451t`. Required for PayPal mandates. Must provide either this field or `paypalBillingAgreementId`, but not both.", "example": "8kk8451t", "writeOnly": true }, "status": { "allOf": [ { "type": "string", "description": "The status of the mandate. A status can be `pending` for mandates when the first payment is not yet finalized, or when we did not received the IBAN yet from the first payment.\n\nPossible values: `valid` `pending` `invalid`", "example": "valid" } ], "readOnly": true }, "customerId": { "allOf": [ { "type": "string", "pattern": "^cst_.+$", "example": "cst_5B8cwPMGnU" } ], "description": "The identifier referring to the [customer](get-customer) this mandate was linked to.", "readOnly": true }, "createdAt": { "type": "string", "description": "The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true, "example": "2024-03-20T09:13:37+00:00" }, "testmode": { "type": [ "boolean", "null" ], "description": "Whether to create the entity in test mode or live mode.\n\nMost API credentials are specifically created for either live mode or test mode, in which case this parameter must not be sent. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.", "writeOnly": true, "example": false }, "_links": { "type": "object", "description": "An object with several relevant URLs. Every URL object will contain an `href` and a `type` field.", "required": [ "self", "customer" ], "properties": { "self": { "type": "object", "description": "In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field.", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } }, "customer": { "description": "The API resource URL of the [customer](get-customer) that this mandate belongs to.", "type": "object", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } } }, "readOnly": true } } }, { "type": "object", "required": [ "resource", "id", "mode", "status", "method", "details", "customerId", "mandateReference", "signatureDate", "createdAt", "_links" ] } ] } } } }, "_links": { "type": "object", "description": "Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field.", "required": [ "self", "previous", "next", "documentation" ], "properties": { "self": { "description": "The URL to the current set of items.", "type": "object", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } }, "previous": { "description": "The previous set of items, if available.", "type": [ "object", "null" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } }, "next": { "description": "The next set of items, if available.", "type": [ "object", "null" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } }, "documentation": { "type": "object", "description": "In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field.", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "description": "The actual URL string.", "example": "https://..." }, "type": { "type": "string", "description": "The content type of the page or endpoint the URL points to.", "example": "application/hal+json" } } } } } } }, "examples": { "list-mandates-200-1": { "summary": "A list of mandate objects", "value": { "count": 1, "_embedded": { "mandates": [ { "resource": "mandate", "id": "mdt_h3gAaD5zP", "mode": "live", "status": "valid", "method": "directdebit", "details": {}, "mandateReference": "EXAMPLE-CORP-MD13804", "signatureDate": "2023-05-07", "customerId": "cst_4qqhO89gsT", "createdAt": "2023-05-07T10:49:08+00:00", "_links": { "self": { "href": "...", "type": "application/hal+json" }, "customer": { "href": "https://api.mollie.com/v2/customers/cst_4qqhO89gsT", "type": "application/hal+json" }, "documentation": { "href": "...", "type": "text/html" } } } ] }, "_links": { "self": { "href": "...", "type": "application/hal+json" }, "previous": null, "next": { "href": "https://api.mollie.com/v2/mandates?from=mdt_pWUnw6pkBN&limit=5", "type": "application/hal+json" }, "documentation": { "href": "...", "type": "text/html" } } } } } } } }, "400": { "description": "The request contains issues. For example, if the specified `from` value is not a valid ID.", "content": { "application/hal+json": { "schema": { "type": "object", "description": "An error response object.", "required": [ "status", "title", "detail", "_links" ], "properties": { "status": { "type": "integer", "description": "The status code of the error message. This is always the same code as the status code of the HTTP message itself.", "minimum": 400, "maximum": 599, "example": 404 }, "title": { "type": "string", "description": "The HTTP reason phrase of the error. For example, for a `404` error, the `title` will be `Not Found`.", "example": "Not Found" }, "detail": { "type": "string", "description": "A detailed human-readable description of the error that occurred.", "example": "The resource does not exist" }, "field": { "type": "string", "description": "If the error was caused by a value provided by you in a specific field, the `field` property will contain the name of the field that caused the issue.", "example": "description" }, "_links": { "type": "object", "required": [ "documentation" ], "properties": { "documentation": { "type": "object", "description": "The URL to the generic Mollie API error handling guide.", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "example": "https://docs.mollie.com/errors" }, "type": { "type": "string", "example": "text/html" } } } } } } }, "example": { "status": 400, "title": "Bad Request", "detail": "Invalid cursor value", "field": "from", "_links": { "documentation": { "href": "...", "type": "text/html" } } } } } }, "404": { "description": "No entity with this ID exists.", "content": { "application/hal+json": { "schema": { "type": "object", "description": "An error response object.", "required": [ "status", "title", "detail", "_links" ], "properties": { "status": { "type": "integer", "description": "The status code of the error message. This is always the same code as the status code of the HTTP message itself.", "minimum": 400, "maximum": 599, "example": 404 }, "title": { "type": "string", "description": "The HTTP reason phrase of the error. For example, for a `404` error, the `title` will be `Not Found`.", "example": "Not Found" }, "detail": { "type": "string", "description": "A detailed human-readable description of the error that occurred.", "example": "The resource does not exist" }, "field": { "type": "string", "description": "If the error was caused by a value provided by you in a specific field, the `field` property will contain the name of the field that caused the issue.", "example": "description" }, "_links": { "type": "object", "required": [ "documentation" ], "properties": { "documentation": { "type": "object", "description": "The URL to the generic Mollie API error handling guide.", "required": [ "href", "type" ], "properties": { "href": { "type": "string", "example": "https://docs.mollie.com/errors" }, "type": { "type": "string", "example": "text/html" } } } } } } }, "example": { "status": 404, "title": "Not Found", "detail": "No entity exists with token 'uct_abcDEFghij123456789'", "_links": { "documentation": { "href": "...", "type": "text/html" } } } } } } }, "x-speakeasy-pagination": { "type": "url", "outputs": { "nextUrl": "$._links.next.href" } }, "x-readme": { "code-samples": [ { "language": "shell", "code": "curl -X GET https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/mandates \\\n -H \"Authorization: Bearer live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM\"" }, { "language": "php", "code": "setApiKey(\"live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM\");\n\n$mandates = $mollie->send(new GetPaginatedMandateRequest(\n customerId: \"cst_4qqhO89gsT\"\n));", "install": "composer require mollie/mollie-api-php" }, { "language": "node", "code": "const { createMollieClient } = require('@mollie/api-client');\nconst mollieClient = createMollieClient({ apiKey: 'live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM' });\n\nconst mandates = mollieClient.customerMandates.iterate({ customerId: 'cst_4qqhO89gsT' });", "install": "npm install @mollie/api-client" }, { "language": "python", "code": "from mollie.api.client import Client\n\nmollie_client = Client()\nmollie_client.set_api_key(\"live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM\")\n\ncustomer = mollie_client.customers.get(\"cst_4qqhO89gsT\")\nmandates = customer.mandates.list()", "install": "pip install mollie-api-python" }, { "language": "ruby", "code": "require 'mollie-api-ruby'\n\nMollie::Client.configure do |config|\n config.api_key = 'live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM'\nend\n\ncustomer = Mollie::Customer.get('cst_4qqhO89gsT')\nmandates = customer.mandates", "install": "gem install mollie-api-ruby" } ] } } } }, "components": { "securitySchemes": { "apiKey": { "type": "http", "scheme": "bearer", "x-default": "live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" }, "organizationAccessToken": { "type": "http", "scheme": "bearer", "x-default": "access_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" }, "oAuth": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://my.mollie.com/oauth2/authorize", "tokenUrl": "https://api.mollie.com/oauth2/tokens", "scopes": {} } } } } }, "x-readme": { "explorer-enabled": false, "samples-languages": [ "shell", "php", "node", "python", "ruby" ] } } ```