Flujo de Contragargos en Sandbox
Estos endpoints te permiten simular el ciclo completo de un contracargo usando tus llaves de prueba. Todas las peticiones deben usar una llave de API de pruebas. Enviar una llave de producción devuelve 403 Forbidden.
URL base: https://api.conekta.io
Crear contracargo
Abre un nuevo contracargo sobre un cargo existente.
POST /charges/{charge_id}/chargebacks
Parámetros de ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
charge_id | string | Sí | ID del cargo (ej. a1b2c3d4e5f6a7b8c9d0e1f2) |
Cuerpo de la petición
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
acquirer | string | Sí | Banco que emitió el contracargo. Valores: amex, banorte, bbva, afirme, banregio, conekta |
bank_reason | string | No | Código de razón del banco (ej. 4853) |
case_number | string | No | Número de caso o referencia del banco |
curl -X POST https://api.conekta.io/charges/a1b2c3d4e5f6a7b8c9d0e1f2/chargebacks \
-H "Authorization: Bearer key_test_xxxx" \
-H "Content-Type: application/json" \
-d '{
"acquirer": "bbva",
"bank_reason": "4853",
"case_number": "CASE-001"
}'Respuesta 201 Created
201 Created{
"id": "chbk_3aaLMNbci2BVGGDwu",
"status": "action_required",
"charge_id": "a1b2c3d4e5f6a7b8c9d0e1f2",
"created_at": "2025-04-17T10:30:25Z",
"updated_at": "0001-01-01T00:00:00Z",
"evidence_due_by": "2025-04-22T23:59:59Z"
}
updated_atdevuelve el valor cero (0001-01-01T00:00:00Z) cuando el contracargo aún no ha sido actualizado.
Obtener contracargo
Devuelve el estado actual de un contracargo.
GET /charges/{charge_id}/chargebacks/{chargeback_id}
Parámetros de ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
charge_id | string | Sí | ID del cargo (ej. a1b2c3d4e5f6a7b8c9d0e1f2) |
chargeback_id | string | Sí | ID del contracargo (ej. chbk_3aaLMNbci2BVGGDwu) |
curl https://api.conekta.io/charges/a1b2c3d4e5f6a7b8c9d0e1f2/chargebacks/chbk_3aaLMNbci2BVGGDwu \
-H "Authorization: Bearer key_test_xxxx"Respuesta 200 OK
200 OK{
"id": "chbk_3aaLMNbci2BVGGDwu",
"status": "action_required",
"charge_id": "a1b2c3d4e5f6a7b8c9d0e1f2",
"created_at": "2025-04-17T10:30:25Z",
"updated_at": "0001-01-01T00:00:00Z",
"evidence_due_by": "2025-04-22T23:59:59Z"
}Actualizar estado del contracargo
Transiciona un contracargo a un nuevo estado. Úsalo para simular las acciones del operador (ej. marcar un contracargo como ganado o perdido).
PATCH /charges/{charge_id}/chargebacks/{chargeback_id}
Parámetros de ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
charge_id | string | Sí | ID del cargo (ej. a1b2c3d4e5f6a7b8c9d0e1f2) |
chargeback_id | string | Sí | ID del contracargo (ej. chbk_3aaLMNbci2BVGGDwu) |
Cuerpo de la petición
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
status | string | Sí | Estado destino. Valores: lost, won, pending_review, under_review, represented, covered |
lost_reason | string | No | Requerido solo al transicionar a lost. Motivo por el que se pierde la disputa. |
curl -X PATCH https://api.conekta.io/charges/a1b2c3d4e5f6a7b8c9d0e1f2/chargebacks/chbk_3aaLMNbci2BVGGDwu \
-H "Authorization: Bearer key_test_xxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "won"
}'curl -X PATCH https://api.conekta.io/charges/a1b2c3d4e5f6a7b8c9d0e1f2/chargebacks/chbk_3aaLMNbci2BVGGDwu \
-H "Authorization: Bearer key_test_xxxx" \
-H "Content-Type: application/json" \
-d '{
"status": "lost",
"lost_reason": "Evidencia insuficiente"
}'Respuesta 204 No Content
204 No ContentSin cuerpo en la respuesta.
Obtener transiciones disponibles
Devuelve la lista de estados a los que puede moverse el contracargo desde su estado actual.
GET /charges/{charge_id}/chargebacks/{chargeback_id}/transitions
Parámetros de ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
charge_id | string | Sí | ID del cargo (ej. a1b2c3d4e5f6a7b8c9d0e1f2) |
chargeback_id | string | Sí | ID del contracargo (ej. chbk_3aaLMNbci2BVGGDwu) |
curl https://api.conekta.io/charges/a1b2c3d4e5f6a7b8c9d0e1f2/chargebacks/chbk_3aaLMNbci2BVGGDwu/transitions \
-H "Authorization: Bearer key_test_xxxx"Respuesta 200 OK
200 OK[
{ "state_to": "won" },
{ "state_to": "lost" },
{ "state_to": "under_review" }
]Un arreglo vacío indica que no hay más transiciones disponibles desde el estado actual.
Estados del contracargo
| Estado | Descripción |
|---|---|
action_required | Contracargo abierto. Se debe enviar evidencia antes de la fecha límite. |
pending_review | Evidencia enviada. En espera de revisión por el banco. |
under_review | El banco está revisando el caso activamente. |
represented | El comercio contra-representó la disputa ante el banco. |
won | Disputa resuelta a favor del comercio. |
lost | Disputa resuelta a favor del tarjetahabiente. |
covered | Pérdida cubierta bajo un programa de protección. |
Errores
| Código | Causa |
|---|---|
400 | Parámetros faltantes o inválidos. |
403 | Llave de producción utilizada, o el cargo no pertenece a tu cuenta. |
404 | Cargo o contracargo no encontrado. |
500 | Error inesperado del servidor. |
