Skip to main content

Errores al llamar /InicioPago

SíntomaCausa probableSolución
HTTP 404URL mal escritaVerifica que sea Apis_CicloPago/api/InicioPago (no dummie_ciclopago).
HTTP 415Falta header Content-TypeAñadir Content-Type: application/json.
HTTP 400JSON malformadoValidar con un JSON linter antes de enviar.
HTTP 500/502/503Error del servidorReintentar con backoff. Si persiste, contactar soporte.
TimeoutRed saturada o servidor lentoTimeout recomendado: 30s. Reintentar si procede.
int_codigo: 2 + “Object reference…”Credenciales inválidas, campo faltante, o comercio inexistenteRevisar credenciales y estructura del body.
int_codigo: 2 sin descripción útilFalta un campo obligatorioRevisar InformacionPago.flt_total_con_iva, str_id_pago, str_descripcion_pago.
”Código 50 requerido”Tu comercio tiene PSE pero no enviaste AdicionalesConfiguracion con código 50Incluir { "int_codigo": 50, "str_valor": "tu_codigo_servicio" }.
str_id_pago rechazadoTiene ceros a la izquierda o supera 30 caracteresUsar un ID sin ceros iniciales, máximo 30 chars.
Duplicate key / ID ya usadoReutilizaste un str_id_pagoGenerar un ID único por pago.

Errores al llamar /VerificacionPago

SíntomaCausa probableSolución
int_estado: 2, str_detalle: "Credenciales inválidas"Usuario/clave malRevisar env vars.
int_cantidad_pagos: 0 cuando esperabas pagosEl usuario no inició el ciclo de pago, o estás consultando un ID que nunca creasteVerificar str_id_pago exacto.
str_res_pago vacío a pesar de int_cantidad_pagos > 0Bug raro del APIContactar soporte.
Campo str_pwd_Comercio rechazadoLo escribiste con minúscula (str_pwd_comercio)Debe ser str_pwd_Comercio con C mayúscula.

Errores durante la sonda

SíntomaCausa probableSolución
Dos sondas corriendo en paraleloFalta lock distribuidoImplementar lock con Redis/DB.
Sonda consume 100% CPUQuery SQL no filtra pagos cerradosRevisar WHERE estado_local = 'pendiente'.
Pagos que nunca cambian de 999Usuario abandonó tras autorizar PSEMarcar como abandonado tras 48h.
Sonda falla silenciosamenteExcepción no manejadaEnvolver cada iteración en try/catch.
Notificaciones duplicadas al usuarioSonda no marca pagos como “notificado”Añadir flag notificado en BD.

Errores en el callback

SíntomaCausa probableSolución
No recibes callbackURL de retorno mal configurada en el comercioVerificar config o enviar código 104 dinámicamente.
Callback llega al dominio equivocadoDev y prod comparten configUsar código 104 con URL según ambiente.
Recibes callback sin id_pagoEl formulario fue interrumpidoManejar este caso sin crashear.
Callback duplicadoUsuario recarga la páginaImplementar idempotencia.

Errores al parsear str_res_pago

SíntomaCausa probableSolución
Array vacío cuando sí hay pagosstr_res_pago es null o string vacíoVerificar en int_cantidad_pagos primero.
Campos shifted (datos en posiciones incorrectas)Un valor opcional tiene un pipe `` internoNo enviar pipes en str_opcional1-5.
Campo int_id_forma_pago vacíoPago aún no ha sido procesado por ningún medioNormal si estado es 888.
Campos extras faltantes para medio 29 o 32Parser no considera el medioRevisar el mapa EXTRAS_POR_MEDIO.

Errores de producción

SíntomaCausa probableSolución
Pagos aprobados que no se reflejan en mi BDCallback no llega o es ignoradoVerificar logs del endpoint de retorno. La sonda debería resolverlo.
Pedidos duplicados en producciónFalla de idempotencia en callbackRevisar Idempotencia.
Clientes reclaman que pagaron pero no recibieron productoFalla en la sonda o en lógica de entregaConsultar /VerificacionPago manualmente con el str_id_pago reportado.
Tasa de rechazo súbitamente altaProblema con la red de pagos, no contigoContactar soporte ZonaPagos para confirmar.

Cuándo contactar soporte

Contacta a soporte@zonapagos.com cuando:
  • Un pago específico tiene comportamiento anómalo y ya verificaste tu código.
  • Recibes errores que no aparecen en estas tablas.
  • La tasa de errores sube sin cambios en tu código.
  • Necesitas credenciales de preproducción.
  • Necesitas certificación PSE.
Incluye siempre en el email:
  • Tu int_id_comercio.
  • str_id_pago del caso específico.
  • Timestamp del intento (hora Colombia).
  • Request y response completos (ocultando str_clave).
  • Logs de tu lado si los tienes.

Ver también

FAQ

Preguntas más frecuentes.

Manejo de errores

Estrategia general.