Create payment profile

This endpoint allows to create a payment profile for a customer to reuse that information for automatic or recurring payments. In case of success, the request will return a response with status 201.

POST

https://api.mercadopago.com/v1/customers/{customer_id}/payment-profiles
Request parameters
Header
Authorization
string

REQUIRED

Access Token obtained through the developer panel. Must be sent in all requests.
X-Idempotency-Key
string

REQUIRED

This feature allows you to safely retry requests without the risk of accidentally performing the same action more than once. This is useful for avoiding errors, such as creating two identical payments. To ensure that eac...Show more
Path
customer_id
string

REQUIRED

Unique customer identifier for which the payment profile is being created. Can be obtained by sending a request to the "Search clients" endpoint.
Body
description
string
Description of the customer's payment profile, that will be used to facilitate the identification of the nature of the charges linked to this profile within the integrator or seller's management ecosystem. Text field use...Show more
max_day_overdue
integer
It sets the number of days to retry the payment processing in case of failure or initial rejection. For example, if you send "5" as value, new processing attempts will be made for the next 5 days after the first failure....Show more
statement_descriptor
string
Description for the payment to be shown on the client's card statement. (e.g. MERCADOPAGO)
sequence_control
string
It defines whether the subscription data, such as the information that determines the payment sequence, should be sent manually or automatically. The possible values are:
AUTO: The subscription data is sent automatically. It is the default value if the field is not sent.
MANUAL: The subscription data must be sent manually.
Response parameters
id
string
Unique identifier of the payment profile, automatically generated by Mercado Pago.
created_date
string
Creation date of the payment profile, in "yyyy-MM-ddTHH:mm:ss.sssZ" format.
last_updated_date
string
Last update date of the payment profile, in "yyyy-MM-ddTHH:mm:ss.sssZ" format.
description
string
Description of the customer's payment profile, that will be used to facilitate the identification of the nature of the charges linked to this profile within the integrator or seller's management ecosystem.
Errors

400Error

payment_method_id_cannot_be_blank

The request failed because no "payment_method_id" was sent. More details can be found in "details". Verify that the data sent is correct and try again.

payment_methods_cannot_be_null

The request failed because no payment method information was sent. More details can be found in "details". Verify that the data sent is correct and try again.

payment_methods_required

The request failed because no object with payment method information was sent. More details can be found in "details". Verify that the data sent is correct and try again.

payment_method_token_or_card_id_required

The request failed because no "card_token" or "card_id" was sent when at least one of them is required for the payment profile creation. More details can be found in "details". Verify that the data sent is correct and try again.

html_insertion_not_allowed

Request failed because HTML tags were inserted in fields that do not allow them. More information can be found in "details". Verify that the data sent is correct and try again.

max_day_overdue_out_of_range

The request failed because the value sent for the "max_day_overdue" field is not within the allowed range. More details can be found in "details". Verify that the data sent is correct and try again.

validation_error

The request failed due to a validation error for the senti fields. More details can be found in "details". Verify that the data sent is correct and try again.

payload_failed

The request failed, possibly due to formatting or invalid data errors. More details can be found in "details". Verify that the data sent is correct and try again.

multiple_default_payment_methods_not_allowed

The request failed because the maximum number of default payment methods was exceeded. Remember that you can only define one payment method with the "default_method" = true.

more_than_two_payment_methods_not_allowed

The request failed because more than two objects containing payment method information were sent, which is the maximum allowed for the profile creation. Review the request and verify that you have sent that node correctly.

two_cards_with_token_not_allowed

Request failed because it is not allowed to create a payment profile with two cards containing "card_token" as payment methods. Review the request to send both objects correctly.

duplicate_payment_method_not_allowed

Request failed due to a duplicated payment method. It is not allowed to add a payment method that already exists in the payment profile.

invalid_site_id_for_fintoc

Request failed because the site_id associated with the user who is creating the payment profile is not valid for fintoc, a payment method that is only available for Chile. Verify that you are sending the correct credentials or create a profile using a valid payment method for your country.

profile_modification_not_allowed

Request failed because it's not allowed to change profile with canceled status. Verify that the payment profile status is correct before attempting changes.

payment_method_validation_failed

Request failed because the payment method validation could not be done. Try again later and, if the problem persists, contact Support with error details.

customer_id_mismatch

Request failed because the "customer_id" sent does not match the payment profile. Verify if the correct value was sent and try again.

caller_id_mismatch

Request failed because the "caller_id" sent does not match the payment profile. Verify if the correct value was sent and try again.

site_id_mismatch

Request failed because the "site_id" does not match the payment profile. Verify if the correct value was sent and try again.

unknown_error_occurred

Unknown error. Contact Support for more information.

401Error

header_missing

Request failed because a required header is missing. Make sure that all necessary authentication headers are being sent.

Unauthorized Access Token

The value sent as Access Token is incorrect. Please check and try again with the correct value.

402Processing error

payment_method_not_approved

Request failed because the payment for the payment method verification was not approved. Verify that the payment information is valid and sufficient to complete the transaction or use a different payment method.

404Error

resource_not_found

Request failed because the payment profile was not found. Verify that the payment profile ID, customer ID and caller ID are correct.

429Error

Too Many Requests

Request failed because the request rate has been exceeded. Reduce the frequency or implement a retry system with exponential backoff.

500Error

internal_server_error

Request failed due to an internal server error. Please try again later and, if the problem persists, contact Support with error details.

Request
curl -X POST \
    'https://api.mercadopago.com/v1/customers/{customer_id}/payment-profiles'\
    -H 'Content-Type: application/json' \
       -H 'Authorization: Bearer APP_USR-1*********685765-12*********1b4332e5c*********e077d7679*********664' \
       -H 'X-Idempotency-Key: 9467b696-d9d5-497c-aa47-019de6f19763' \
    -d '{
  "description": "Test payment profile",
  "max_day_overdue": 5,
  "statement_descriptor": "Test Descriptor",
  "sequence_control": "MANUAL",
  "payment_methods": [
    {
      "id": "visa",
      "type": "credit_card",
      "token": "12345",
      "default_method": false
    }
  ]
}'
Response
{
  "id": "7036b192b541454fa9b9990660dfa1b5",
  "created_date": "2024-05-22T14:03:28.653Z",
  "last_updated_date": "2024-05-22T14:03:28.653Z",
  "description": "Test payment profile",
  "max_day_overdue": 5,
  "statement_descriptor": "Test Descriptor",
  "status": "READY",
  "sequence_control": "AUTO",
  "payment_methods": [
    {
      "payment_method_id": "64abf0f5-3e15-48a5-9be0-a8ac56bbd87a",
      "id": "visa",
      "type": "credit_card",
      "card_id": 1234567890,
      "status": "READY",
      "default_method": true
    }
  ]
}