# Enable payment method Enable a payment method on a specific profile. When using a profile-specific API credential, the alias `me` can be used instead of the profile ID to refer to the current profile. Some payment methods require extra steps in order to be activated. In cases where a step at the payment method provider needs to be completed first, the status will be set to `pending-external` and the response will contain a link to complete the activation at the provider. To enable voucher or gift card issuers, refer to the [Enable payment method issuer](enable-method-issuer) endpoint. > 🔑 Access with > > [API key](/reference/authentication) > > [Organization access token with **profiles.write**](/reference/authentication) > > [OAuth access with **profiles.write**](/reference/authentication) # OpenAPI definition ```json { "openapi": "3.1.0", "info": { "title": "Accepting payments", "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": { "/profiles/{profileId}/methods/{methodId}": { "parameters": [ { "name": "profileId", "description": "Provide the ID of the related profile.", "in": "path", "required": true, "schema": { "oneOf": [ { "type": "string", "pattern": "^pfl_.+$", "example": "pfl_5B8cwPMGnU", "description": "The identifier referring to the [profile](get-profile) this entity belongs to.\n\nMost API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is required." }, { "type": "string", "enum": [ "me" ], "default": "me" } ] } }, { "name": "methodId", "description": "Provide the ID of the related payment method.\n\nPossible values: `alma` `applepay` `bacs` `bancomatpay` `bancontact` `banktransfer` `belfius` `billie` `bizum` `blik` `creditcard` `directdebit` `eps` `giftcard` `ideal` `in3` `kbc` `klarna` `mbway` `mobilepay` `multibanco` `mybank` `paybybank` `paypal` `paysafecard` `pointofsale` `przelewy24` `riverty` `satispay` `swish` `trustly` `twint` `vipps` `voucher`", "in": "path", "required": true, "schema": { "type": [ "string", "null" ], "description": "Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment method and your customer will skip the selection screen and is sent directly to the chosen payment method. The parameter enables you to fully integrate the payment method selection into your website.\n\nYou can also specify the methods in an array. By doing so we will still show the payment method selection screen but will only show the methods specified in the array. For example, you can use this functionality to only show payment methods from a specific country to your customer `['bancontact', 'belfius']`.\n\nPossible values: `alma` `applepay` `bacs` `bancomatpay` `bancontact` `banktransfer` `belfius` `billie` `bizum` `blik` `creditcard` `directdebit` `eps` `giftcard` `ideal` `in3` `kbc` `klarna` `mbway` `mobilepay` `multibanco` `mybank` `paybybank` `paypal` `paysafecard` `pointofsale` `przelewy24` `riverty` `satispay` `swish` `trustly` `twint` `vipps` `voucher`", "example": "ideal", "x-deprecated-enum": [ "klarnapaylater", "klarnapaynow", "klarnasliceit", "payconiq" ], "x-speakeasy-enum-descriptions": { "klarnapaylater": "Deprecated, use 'klarna' instead", "klarnapaynow": "Deprecated, use 'klarna' instead", "klarnasliceit": "Deprecated, use 'klarna' instead", "payconiq": "No longer available" } } } ], "post": { "summary": "Enable payment method", "x-speakeasy-name-override": "enable", "tags": [ "Methods API" ], "operationId": "enable-method", "security": [ { "apiKey": [] }, { "organizationAccessToken": [ "profiles.write" ] }, { "oAuth": [ "profiles.write" ] } ], "description": "Enable a payment method on a specific profile.\n\nWhen using a profile-specific API credential, the alias `me` can be used instead of the profile ID to refer to the current profile.\n\nSome payment methods require extra steps in order to be activated. In cases where a step at the payment method provider needs to be completed first, the status will be set to `pending-external` and the response will contain a link to complete the activation at the provider.\n\nTo enable voucher or gift card issuers, refer to the [Enable payment method issuer](enable-method-issuer) endpoint.\n\n> 🔑 Access with\n>\n> [API key](/reference/authentication)\n>\n> [Organization access token with **profiles.write**](/reference/authentication)\n>\n> [OAuth access with **profiles.write**](/reference/authentication)", "responses": { "200": { "description": "The payment method object.", "content": { "application/hal+json": { "schema": { "allOf": [ { "type": "object", "required": [ "resource", "id", "description", "minimumAmount", "maximumAmount", "image", "status", "_links" ], "properties": { "resource": { "type": "string", "description": "Indicates the response contains a payment method object. Will always contain the string `method` for this endpoint.", "readOnly": true, "example": "method" }, "id": { "allOf": [ { "type": [ "string", "null" ], "description": "Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment method and your customer will skip the selection screen and is sent directly to the chosen payment method. The parameter enables you to fully integrate the payment method selection into your website.\n\nYou can also specify the methods in an array. By doing so we will still show the payment method selection screen but will only show the methods specified in the array. For example, you can use this functionality to only show payment methods from a specific country to your customer `['bancontact', 'belfius']`.\n\nPossible values: `alma` `applepay` `bacs` `bancomatpay` `bancontact` `banktransfer` `belfius` `billie` `bizum` `blik` `creditcard` `directdebit` `eps` `giftcard` `ideal` `in3` `kbc` `klarna` `mbway` `mobilepay` `multibanco` `mybank` `paybybank` `paypal` `paysafecard` `przelewy24` `riverty` `satispay` `swish` `trustly` `twint` `vipps` `voucher`", "example": "ideal", "x-deprecated-enum": [ "klarnapaylater", "klarnapaynow", "klarnasliceit", "payconiq" ], "x-speakeasy-enum-descriptions": { "klarnapaylater": "Deprecated, use 'klarna' instead", "klarnapaynow": "Deprecated, use 'klarna' instead", "klarnasliceit": "Deprecated, use 'klarna' instead", "payconiq": "No longer available" } } ], "type": "string", "description": "The unique identifier of the payment method. When used during [payment creation](create-payment), the payment method selection screen will be skipped.", "example": "ideal", "readOnly": true }, "description": { "type": "string", "description": "The full name of the payment method.\n\nIf a `locale` parameter is provided, the name is translated to the given locale if possible.", "example": "iDeal", "readOnly": true }, "minimumAmount": { "allOf": [ { "type": "object", "description": "In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field.", "required": [ "currency", "value" ], "properties": { "currency": { "type": "string", "description": "A three-character ISO 4217 currency code.", "example": "EUR" }, "value": { "type": "string", "description": "A string containing an exact monetary amount in the given currency.", "example": "10.00" } } } ], "description": "The minimum payment amount required to use this payment method.", "readOnly": true }, "maximumAmount": { "allOf": [ { "type": [ "object", "null" ], "description": "In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field.", "required": [ "currency", "value" ], "properties": { "currency": { "type": "string", "description": "A three-character ISO 4217 currency code.", "example": "EUR" }, "value": { "type": "string", "description": "A string containing an exact monetary amount in the given currency.", "example": "10.00" } } } ], "description": "The maximum payment amount allowed when using this payment method. If there is no method-specific maximum, `null` is returned instead.", "readOnly": true }, "image": { "type": "object", "description": "URLs of images representing the payment method.", "required": [ "size1x", "size2x", "svg" ], "properties": { "size1x": { "type": "string", "description": "The URL pointing to an icon of 32 by 24 pixels.", "example": "https://..." }, "size2x": { "type": "string", "description": "The URL pointing to an icon of 64 by 48 pixels.", "example": "https://..." }, "svg": { "type": "string", "description": "The URL pointing to a vector version of the icon. Usage of this format is preferred, since the icon can scale to any desired size without compromising visual quality.", "example": "https://..." } }, "readOnly": true }, "status": { "type": [ "string", "null" ], "description": "The payment method's activation status for this profile.\n\nPossible values: `activated` `pending-boarding` `pending-review` `pending-external` `rejected` ``", "x-enumDescriptions": { "activated": "The payment method is activated and ready for use.", "pending-boarding": "Mollie is waiting for you to finish onboarding in the Merchant Dashboard before the payment method can be activated.", "pending-review": "Mollie needs to review your request for this payment method before it can be activated.", "pending-external": "Activation of this payment method relies on you taking action with an external party, for example signing up with PayPal or a giftcard issuer.", "rejected": "Your request for this payment method was rejected. Whenever Mollie rejects such a request, you will always be informed via email." }, "example": "activated" }, "issuers": { "type": "array", "description": "**Optional include.** Array of objects for each 'issuer' that is available for this payment method. Only relevant for iDEAL, KBC/CBC, gift cards, and vouchers.", "items": { "type": "object", "required": [ "resource", "id", "name", "image" ], "properties": { "resource": { "type": "string", "default": "issuer" }, "id": { "type": "string", "example": "ideal_ABNANL2A" }, "name": { "type": "string", "description": "The full name of the issuer.", "example": "ING Bank" }, "image": { "type": "object", "description": "URLs of images representing the issuer. required:\n - size1x\n - size2x\n - svg", "properties": { "size1x": { "type": "string", "description": "The URL pointing to an icon of 32 by 24 pixels.", "example": "https://..." }, "size2x": { "type": "string", "description": "The URL pointing to an icon of 64 by 48 pixels.", "example": "https://..." }, "svg": { "type": "string", "description": "The URL pointing to a vector version of the icon. Usage of this format is preferred, since the icon can scale to any desired size without compromising visual quality.", "example": "https://..." } } } }, "readOnly": true } }, "_links": { "type": "object", "description": "An object with several relevant URLs. Every URL object will contain an `href` and a `type` field.", "required": [ "self" ], "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" } } }, "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" } } } }, "readOnly": true } } }, { "type": "object", "properties": { "id": { "allOf": [ { "type": [ "string", "null" ], "description": "Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment method and your customer will skip the selection screen and is sent directly to the chosen payment method. The parameter enables you to fully integrate the payment method selection into your website.\n\nYou can also specify the methods in an array. By doing so we will still show the payment method selection screen but will only show the methods specified in the array. For example, you can use this functionality to only show payment methods from a specific country to your customer `['bancontact', 'belfius']`.\n\nPossible values: `alma` `applepay` `bacs` `bancomatpay` `bancontact` `banktransfer` `belfius` `billie` `bizum` `blik` `creditcard` `directdebit` `eps` `giftcard` `ideal` `in3` `kbc` `klarna` `mbway` `mobilepay` `multibanco` `mybank` `paybybank` `paypal` `paysafecard` `pointofsale` `przelewy24` `riverty` `satispay` `swish` `trustly` `twint` `vipps` `voucher`", "example": "ideal", "x-deprecated-enum": [ "klarnapaylater", "klarnapaynow", "klarnasliceit", "payconiq" ], "x-speakeasy-enum-descriptions": { "klarnapaylater": "Deprecated, use 'klarna' instead", "klarnapaynow": "Deprecated, use 'klarna' instead", "klarnasliceit": "Deprecated, use 'klarna' instead", "payconiq": "No longer available" } } ], "type": "string", "description": "The unique identifier of the payment method. When used during [payment creation](create-payment), the payment method selection screen will be skipped.", "example": "ideal", "readOnly": true } } } ] }, "examples": { "enable-method-200-1": { "summary": "The payment method object", "value": { "resource": "method", "id": "ideal", "description": "iDEAL", "minimumAmount": { "value": "0.01", "currency": "EUR" }, "maximumAmount": { "value": "50000.00", "currency": "EUR" }, "image": { "size1x": "https://mollie.com/external/icons/payment-methods/ideal.png", "size2x": "https://mollie.com/external/icons/payment-methods/ideal%402x.png", "svg": "https://mollie.com/external/icons/payment-methods/ideal.svg" }, "status": "activated", "_links": { "self": { "href": "...", "type": "application/hal+json" }, "documentation": { "href": "...", "type": "text/html" } } } }, "enable-method-200-2": { "summary": "Enable creditcard payment method", "value": { "resource": "method", "id": "creditcard", "description": "Credit card", "minimumAmount": { "value": "0.01", "currency": "EUR" }, "maximumAmount": { "value": "500.00", "currency": "EUR" }, "image": { "size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png", "size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png", "svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg" }, "status": "pending-review", "_links": { "self": { "href": "...", "type": "application/hal+json" }, "documentation": { "href": "...", "type": "text/html" } } } }, "enable-method-200-3": { "summary": "Enable ideal payment method", "value": { "resource": "method", "id": "ideal", "description": "iDEAL", "minimumAmount": { "value": "0.01", "currency": "EUR" }, "maximumAmount": { "value": "50000.00", "currency": "EUR" }, "image": { "size1x": "https://www.mollie.com/external/icons/payment-methods/ideal.png", "size2x": "https://www.mollie.com/external/icons/payment-methods/ideal%402x.png", "svg": "https://www.mollie.com/external/icons/payment-methods/ideal.svg" }, "status": "pending-review", "_links": { "self": { "href": "...", "type": "application/hal+json" }, "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-readme": { "code-samples": [ { "language": "shell", "code": "curl -X POST https://api.mollie.com/v2/profiles/pfl_QkEhN94Ba/methods/ideal \\\n -H \"Authorization: Bearer live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM\"" }, { "language": "php", "code": "setApiKey(\"live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM\");\n\n// Enable on a specific profile\n$method = $mollie->send(\n new EnableMethodRequest(\n profileId: \"pfl_QkEhN94Ba\",\n methodId: \"ideal\"\n )\n);\n\n// Enable on the current profile\n$method = $mollie->send(\n new EnableMethodRequest(\n profileId: \"me\",\n methodId: \"ideal\"\n )\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 method = await mollieClient.methods.enable({\n id: 'ideal',\n profileId: 'pfl_QkEhN94Ba'\n});", "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\nprofile = mollie_client.profiles.get(\"pfl_QkEhN94Ba\")\nmethod = profile.methods.enable(\"ideal\")", "install": "pip install mollie-api-python" }, { "language": "ruby", "code": "# We don't have a Ruby code example for this\n# API call yet.\n#\n# If you have some time to spare, feel free to\n# share suggestions on our Discord:\n# https://discord.gg/VaTVkXB4aQ", "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" ] } } ```