Saltar al contenido
VeloraBlog
← Todos los artículos

12 de junio de 2026

¿Qué significan los status y status_detail de MercadoPago y cómo los manejo en mi backend?

Un pago en MercadoPago tiene 5 estados: approved, pending, in_process, rejected, cancelled. El campo status_detail da el motivo específico. cc_rejected_insufficient_amount viene del banco (fondos); cc_rejected_high_risk es bloqueo antifraude de MP. Cada caso requiere una acción diferente en el backend.

Mapa de estados y acciones recomendadas

statusstatus_detailCausaAcción
approvedaccreditedPago acreditadoProcesar el pedido
pendingpending_waiting_paymentPago en efectivo generadoEsperar webhook de actualización
in_processpending_review_manualMP revisando manualmenteEsperar — puede tardar horas
rejectedcc_rejected_insufficient_amountFondos insuficientesSugerir otro medio de pago
rejectedcc_rejected_bad_filled_card_dataDatos de tarjeta incorrectosPedir revisar número/vencimiento/CVV
rejectedcc_rejected_call_for_authorizeBanco requiere autorizaciónSugerir llamar al banco
rejectedcc_rejected_card_disabledTarjeta deshabilitadaSugerir otro medio
rejectedcc_rejected_duplicated_paymentPago duplicado detectadoNo reintentar sin cambiar params
rejectedcc_rejected_high_riskBloqueo antifraude de MPNo reintentar automáticamente
cancelledexpiredTimeout / link expiradoGenerar nueva preferencia

Regla crítica sobre reintentos

El cc_rejected_duplicated_payment se dispara cuando dos pagos consecutivos tienen los mismos parámetros. Nunca reintentes automáticamente sin cambiar algún parámetro del item o agregar un external_reference único.

Nota: la documentación oficial de MP usa formas cortas como insufficient_amount (sin prefijo cc_rejected_) en algunos contextos. Usar la API GET /v1/payments/{id} para obtener el status_detail real del pago.