Este endpoint permite cancelar una order que aún no ha sido pagada, utilizando el ID obtenido en la respuesta a su creación. Solo las orders en estado created o action_required pueden ser canceladas. La cancelación libera cualquier saldo reservado cuando aplica. En caso de éxito, la solicitud devolverá una respuesta con el estado 200.
POST
REQUERIDO
REQUERIDO
REQUERIDO
REQUERIDO
manual.400Error de solicitud.
empty_required_header
El header X-Idempotency-Key es requerido y no fue enviado. Vuelve a realizar la solicitud incluyéndolo.
401Error. Access Token no autorizado.
401
El valor enviado como Access Token es incorrecto. Por favor, verifícalo y vuelve a intentar realizar la solicitud enviando el valor correcto.
invalid_credentials
No hay soporte para credenciales de prueba. Utiliza usuarios de prueba con credenciales de producción para el entorno de prueba (sandbox) y sus credenciales de producción para el entorno de producción.
403Error. Prohibido.
forbidden
La aplicación no tiene permisos para acceder a este recurso. Verifica que el Access Token utilizado tenga los permisos y scopes necesarios para esta operación.
PA_UNAUTHORIZED_RESULT_FROM_POLICIES
La cuenta está bloqueada y sus claves de API fueron revocadas. Al menos una política evaluada por el Policy Agent retornó un resultado no autorizado.
404Error. Order no encontrada.
order_not_found
Order no encontrada. Comprueba si enviaste el ID correcto.
409Conflicto.
order_already_canceled
La order ya fue cancelada.
cannot_cancel_order
El estado de la order no permite su cancelación. Solo pueden cancelarse orders en estado action_required o created.
429Límite de solicitudes excedido.
too_many_requests
Client ID bloqueado por el gateway porque se alcanzó el límite de solicitudes para el ID en cuestión. Lee el header Retry-After de la respuesta y espera la cantidad de segundos indicada antes de volver a intentarlo. Para mayor resiliencia, implementa backoff exponencial con jitter, es decir, aumenta el tiempo de espera en cada nuevo intento y añade una variación aleatoria para evitar el reenvío simultáneo de muchas solicitudes.
usage_quota_exceeded
Cuota impuesta por el backend de la API porque se alcanzó el límite de solicitudes por cliente. Lee el header Retry-After de la respuesta y espera la cantidad de segundos indicada antes de volver a intentarlo. Para mayor resiliencia, implementa backoff exponencial con jitter, es decir, aumenta el tiempo de espera en cada nuevo intento y añade una variación aleatoria para evitar el reenvío simultáneo de muchas solicitudes.
500Error genérico.
internal_error
Error genérico. Intenta enviar la solicitud nuevamente.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/cancel'\
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ' \
-H 'X-Idempotency-Key: 2615a7b3-857c-4b17-ad59-d9f8ce6b38df' \
{
"id": "ORD01J49MMW3SSBK5PSV3DFR32959",
"processing_mode": "manual",
"external_reference": "ext_ref_1234",
"total_amount": "50.00",
"integration_data": {
"application_id": "1234",
"integrator_id": "dev_123",
"platform_id": "1234567890",
"sponsor": {
"id": "446566691"
}
},
"user_id": "12345",
"created_date": "2024-08-26T13:06:51.045317772Z",
"last_updated_date": "2024-08-26T13:06:51.045317772Z",
"country_code": "ARG",
"type": "online",
"status": "canceled",
"status_detail": "canceled_transaction",
"capture_mode": "automatic_async",
"transactions": {
"payments": [
{
"id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
"amount": "24.50",
"reference_id": "01JEVQM899NWSQC4FYWWW7KTF9",
"status": "canceled",
"status_detail": "canceled_transaction",
"expiration_time": "P3Y6M4DT12H30M5S",
"payment_method": {
"id": "master",
"type": "credit_card",
"token": "12345",
"installments": 1,
"statement_descriptor": "My Store"
}
}
]
},
"client_token": "eyJhbGciOiJSUzI1NiIs...",
"description": "Smartphone",
"items": [
{
"external_code": "ITEM-001",
"title": "Product 001",
"description": "Product description",
"category_id": "travels",
"picture_url": "https://example.com/img.jpg",
"quantity": 1,
"unit_price": "1000.00",
"type": "travel",
"warranty": true,
"event_date": "2014-06-28T16:53:03.176-04:00"
}
]
}