# Update profile Update an existing profile. Profiles are required for payment processing. Normally they are created and updated via the Mollie dashboard. Alternatively, you can use this endpoint to automate profile management. > 🔑 Access with > > [Organization access token with **profiles.write**](/reference/authentication) > > [OAuth access with **profiles.write**](/reference/authentication) # OpenAPI definition ```json { "openapi": "3.1.0", "info": { "title": "Mollie Connect", "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" } ], "security": [ { "apiKey": [] }, { "organizationAccessToken": [] }, { "oAuth": [] } ], "paths": { "/v2/profiles/{profileId}": { "parameters": [ { "name": "profileId", "description": "Provide the ID of the related profile.", "in": "path", "required": true, "schema": { "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." } } ], "patch": { "summary": "Update profile", "x-speakeasy-name-override": "update", "tags": [ "Profiles API" ], "operationId": "update-profile", "security": [ { "organizationAccessToken": [ "profiles.write" ] }, { "oAuth": [ "profiles.write" ] } ], "description": "Update an existing profile.\n\nProfiles are required for payment processing. Normally they are created and updated via the Mollie dashboard. Alternatively, you can use this endpoint to automate profile management.\n\n> 🔑 Access with\n>\n> [Organization access token with **profiles.write**](/reference/authentication)\n>\n> [OAuth access with **profiles.write**](/reference/authentication)", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": [ "string", "null" ], "description": "The profile's name, this will usually reflect the trade name or brand name of the profile's website or application.", "example": "My new website name" }, "website": { "type": [ "string", "null" ], "description": "The URL to the profile's website or application. Only `https` or `http` URLs are allowed. No `@` signs are allowed.", "example": "https://example.com" }, "email": { "type": [ "string", "null" ], "description": "The email address associated with the profile's trade name or brand.", "example": "test@mollie.com" }, "phone": { "type": [ "string", "null" ], "description": "The phone number associated with the profile's trade name or brand.", "example": "+31208202071" }, "description": { "type": [ "string", "null" ], "description": "The products or services offered by the profile's website or application.", "example": "My website description", "maxLength": 500 }, "countriesOfActivity": { "type": [ "array", "null" ], "items": { "type": "string" }, "description": "A list of countries where you expect that the majority of the profile's customers reside, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.", "example": [ "NL", "GB" ] }, "businessCategory": { "type": [ "string", "null" ], "description": "The industry associated with the profile's trade name or brand. Please refer to the [business category list](common-data-types) for all possible options.", "example": "OTHER_MERCHANDISE" }, "mode": { "description": "Updating a profile from `test` mode to `live` mode will trigger a verification process, where we review the profile before it can start accepting payments.\n\nPossible values: `live` `test`", "type": "string", "readOnly": true, "example": "live" } } } } } }, "responses": { "200": { "description": "The updated profile object.", "content": { "application/hal+json": { "schema": { "allOf": [ { "type": "object", "properties": { "resource": { "type": "string", "description": "Indicates the response contains a profile object. Will always contain the string `profile` for this endpoint.", "readOnly": true, "default": "profile", "example": "profile" }, "id": { "type": "string", "description": "The identifier uniquely referring to this profile. Example: `pfl_v9hTwCvYqw`.", "readOnly": true, "example": "pfl_QkEhN94Ba" }, "mode": { "example": "live", "type": "string", "description": "Whether this entity was created in live mode or in test mode.\n\nPossible values: `live` `test`", "readOnly": true }, "name": { "type": "string", "description": "The profile's name, this will usually reflect the trade name or brand name of the profile's website or application.", "example": "My website name" }, "website": { "type": "string", "description": "The URL to the profile's website or application. Only `https` or `http` URLs are allowed. No `@` signs are allowed.", "maxLength": 255, "example": "https://example.com" }, "email": { "type": "string", "description": "The email address associated with the profile's trade name or brand.", "example": "test@mollie.com" }, "phone": { "type": "string", "description": "The phone number associated with the profile's trade name or brand.", "example": "+31208202070" }, "description": { "type": "string", "description": "The products or services offered by the profile's website or application.", "example": "My website description", "maxLength": 500 }, "countriesOfActivity": { "type": "array", "items": { "type": "string" }, "description": "A list of countries where you expect that the majority of the profile's customers reside, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.", "example": [ "NL", "GB" ] }, "businessCategory": { "type": "string", "description": "The industry associated with the profile's trade name or brand. Please refer to the [business category list](common-data-types#business-category) for all possible options.", "example": "OTHER_MERCHANDISE" }, "status": { "allOf": [ { "type": "string", "description": "The profile status determines whether the profile is able to receive live payments.\n\n* `unverified`: The profile has not been verified yet and can only be used to create test payments.\n* `verified`: The profile has been verified and can be used to create live payments and test payments.\n* `blocked`: The profile is blocked and can no longer be used or changed.\n\nPossible values: `unverified` `verified` `blocked`", "example": "unverified" } ], "readOnly": true }, "review": { "type": "object", "description": "Present if changes have been made that have not yet been approved by Mollie. Changes to test profiles are approved automatically, unless a switch to a live profile has been requested. The review object will therefore usually be `null` in test mode.", "properties": { "status": { "type": "string", "description": "The status of the requested changes.\n\nPossible values: `pending` `rejected`", "example": "pending" } }, "readOnly": true, "example": { "status": "pending" } }, "createdAt": { "example": "2022-01-19T12:30:22+00:00", "type": "string", "description": "The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.", "readOnly": true }, "_links": { "type": "object", "description": "An object with several relevant URLs. Every URL object will contain an `href` and a `type` field.", "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" } } }, "dashboard": { "description": "Link to the profile in the Mollie dashboard.", "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" } } }, "chargebacks": { "description": "The API resource URL of the chargebacks that belong to this profile.", "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" } } }, "methods": { "description": "The API resource URL of the methods that are enabled for this profile.", "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" } } }, "payments": { "description": "The API resource URL of the payments that belong to this profile.", "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" } } }, "refunds": { "description": "The API resource URL of the refunds that belong to this profile.", "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" } } }, "checkoutPreviewUrl": { "description": "The hosted checkout preview URL. You need to be logged in to access this page.", "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" } } }, "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, "example": { "self": { "href": "...", "type": "application/hal+json" }, "dashboard": { "href": "https://www.mollie.com/dashboard/org_7049691/settings/profiles/pfl_2q3RyuMGry", "type": "text/html" }, "chargebacks": { "href": "https://api.mollie.com/v2/chargebacks?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "methods": { "href": "https://api.mollie.com/v2/methods?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "payments": { "href": "https://api.mollie.com/v2/payments?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "refunds": { "href": "https://api.mollie.com/v2/refunds?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "checkoutPreviewUrl": { "href": "https://www.mollie.com/checkout/preview/pfl_2q3RyuMGry", "type": "text/html" }, "documentation": { "href": "...", "type": "text/html" } } } } }, { "type": "object", "required": [ "resource", "id", "mode", "name", "website", "email", "phone", "businessCategory", "status", "createdAt", "_links" ], "properties": { "businessCategory": { "type": [ "string", "null" ], "description": "The industry associated with the profile's trade name or brand. Please refer to the [business category list](common-data-types#business-category) for all possible options.", "example": "OTHER_MERCHANDISE" } } } ] }, "examples": { "update-profile-200-1": { "summary": "The updated profile object", "value": { "resource": "profile", "id": "pfl_QkEhN94Ba", "mode": "live", "name": "My updated website name", "website": "https://updated.example.org", "email": "info@example.org", "phone": "+31208202070", "businessCategory": "OTHER_MERCHANDISE", "status": "verified", "review": { "status": "pending" }, "createdAt": "2023-03-20T09:28:37+00:00", "_links": { "self": { "href": "...", "type": "application/hal+json" }, "dashboard": { "href": "https://www.mollie.com/dashboard/org_123456789/settings/profiles/pfl_QkEhN94Ba", "type": "text/html" }, "documentation": { "href": "...", "type": "text/html" } } } }, "update-profile-200-2": { "summary": "Update profile", "x-request": "./requests.yaml#/oauth-update-profile", "value": { "resource": "profile", "id": "pfl_2q3RyuMGry", "mode": "live", "name": "My new website name", "website": "https://example.com", "email": "test@mollie.com", "phone": "+31208202071", "businessCategory": "OTHER_MERCHANDISE", "status": "unverified", "createdAt": "2022-01-19T12:30:22+00:00", "review": { "status": "pending" }, "_links": { "self": { "href": "...", "type": "application/hal+json" }, "dashboard": { "href": "https://www.mollie.com/dashboard/org_7049691/settings/profiles/pfl_2q3RyuMGry", "type": "text/html" }, "chargebacks": { "href": "https://api.mollie.com/v2/chargebacks?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "methods": { "href": "https://api.mollie.com/v2/methods?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "payments": { "href": "https://api.mollie.com/v2/payments?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "refunds": { "href": "https://api.mollie.com/v2/refunds?profileId=pfl_2q3RyuMGry", "type": "application/hal+json" }, "checkoutPreviewUrl": { "href": "https://www.mollie.com/checkout/preview/pfl_2q3RyuMGry", "type": "text/html" }, "documentation": { "href": "...", "type": "text/html" } } } } } } } }, "403": { "description": "This profile cannot be edited because it belongs to a demo account.", "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": 403, "title": "Forbidden", "detail": "This profile cannot be edited because it belongs to a demo account.", "_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" } } } } } }, "410": { "description": "The requested resource is no longer available. The profile associated with the ID has been deleted and cannot be accessed.", "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": 410, "title": "Gone", "detail": "Profile with token pfl_QkEhN94Ba has been deleted.", "_links": { "documentation": { "href": "...", "type": "text/html" } } } } } }, "422": { "description": "The request contains issues. For example, if you are trying to update a property that can not be updated.", "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": 422, "title": "Unprocessable Entity", "detail": "At least the 'name', 'website', 'email', 'phone', 'categoryCode', 'businessCategory', 'description', 'countriesOfActivity' or 'mode' field has to be provided", "_links": { "documentation": { "href": "...", "type": "text/html" } } } } } } }, "x-readme": { "code-samples": [ { "language": "shell", "code": "curl -X PATCH https://api.mollie.com/v2/profiles/pfl_QkEhN94Ba \\\n -H \"Authorization: Bearer access_Wwvu7egPcJLLJ9Kb7J632x8wJ2zMeJ\" \\\n -d \"name=My updated website name\" \\\n -d \"website=https://updated.example.org\"" }, { "language": "php", "code": "setAccessToken(\"access_Wwvu7egPcJLLJ9Kb7J632x8wJ2zMeJ\");\n\n$profile = $mollie->send(\n new UpdateProfileRequest(\n id: \"pfl_QkEhN94Ba\",\n name: \"My updated website name\",\n website: \"https://updated.example.org\"\n )\n);", "install": "composer require mollie/mollie-api-php" }, { "language": "node", "code": "const { createMollieClient } = require('@mollie/api-client');\nconst mollieClient = createMollieClient({ accessToken: 'access_Wwvu7egPcJLLJ9Kb7J632x8wJ2zMeJ' });\n\nawait mollieClient.profiles.update('pfl_QkEhN94Ba', {\n name: 'My updated website name',\n website: 'https://updated.example.org'\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(\"access_Wwvu7egPcJLLJ9Kb7J632x8wJ2zMeJ\")\n\nprofile = mollie_client.profiles.update(\"pfl_QkEhN94Ba\", {\n \"name\": \"My updated website name\",\n \"website\": \"https://updated.example.org\"\n})", "install": "pip install mollie-api-python" }, { "language": "ruby", "code": "require 'mollie-api-ruby'\n\nMollie::Client.configure do |config|\n config.api_key = 'access_Wwvu7egPcJLLJ9Kb7J632x8wJ2zMeJ'\nend\n\nprofile = Mollie::profile.update(\n 'pfl_QkEhN94Ba',\n name: 'My updated website name',\n website: 'https://updated.example.org'\n)", "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" ] } } ```