SkipDocumentación Skipdocs
Conceptos

Errores

El catálogo de errores 4xx con casos concretos relevantes para partners.

Las APIs de Skip usan códigos HTTP estándar. Esta página lista los códigos que efectivamente vas a encontrar, con la causa y la recuperación de cada uno.

400 Bad Request

CausaEjemploRecuperación
Error de validaciónFalta customer.email en POST /ordersArregla el body.
Restricción a nivel campototal_amount es negativoArregla el body.
provider_data desde un no-meta-providerLlamando /api/spot/widget con provider_data cuando tu cuenta no está marcadaQuítalo, o pide a Skip habilitar modo meta-prestador.
Probe de readiness del widgetPOST /orders/{hash}/payment con códigos como processor_customer_identity_not_validatedEl widget lo gestiona — tú no. Ver Caso borde del widget AAPD.

401 Unauthorized

CausaEjemploRecuperación
Credencial faltante o erróneaSin header Authorization en POST /ordersAgrégalo.
Tipo de credencial erradoEnviando client_id a un endpoint que necesita client_secretCambia a la credencial correcta.
Provider inactivoTu public_key apunta a un Provider con is_active=falseContacta ops.
Ambiente equivocadoEnviando pk_test_* a producciónUsa la clave de producción.

403 Forbidden

CausaEjemploRecuperación
Falta scopeLlamando POST /api/spot/sacmed/centers sin scope cnpl.meta_prestadorPide a Skip agregar el scope.

404 Not Found

CausaEjemploRecuperación
Hash de orden desconocidoGET /orders/ord_unknownConfirma el hash.
Beneficiario no existe por RUTPOST /api/spot/gastos?rut=... para un RUT sin beneficiario SkipEl paciente no es usuario Skip. Onboardéalo primero vía Spot, o salta el envío.
Widget token no existeEl paciente abrió un link viejoMintea un token nuevo.

409 Conflict

CausaEjemploRecuperación
Reference de orden duplicadaPOST /orders con una reference que ya existeUsa reference única por intento.
Colisión de RUTPOST /api/spot/user para un RUT registrado bajo otro correoMuéstrale al paciente el flujo de recuperación (ver Casos borde del widget Spot).

410 Gone

CausaEjemploRecuperación
Widget token expiradoEl paciente volvió después del TTL de 1 horaMintea un token nuevo, o usa long_term_token=true para extender a 30 días.

422 Unprocessable Entity

CausaEjemploRecuperación
RUT mal formado12345678 (sin dígito verificador)Normaliza y reenvía. Ver RUT.
Formato de CI inválidoValidate-identity con un serial mal formadoRecolecta de nuevo del paciente.
Ventipay rechazó la identidadMismatch con registros nacionalesEl paciente debe contactar ISAPRE / registro nacional. Skip no puede saltarse esto.

Forma de las respuestas de error

Todas las respuestas de error de Skip tienen este shape:

{
  "error": "invalid_credential",
  "message": "Explicación legible.",
  "details": { /* opcional, específico al código */ }
}

error es un código machine-readable estable. Hazle match en tu manejo de errores. message es solo para humanos — su redacción cambia.

Las respuestas 5xx son problemas server-side del lado Skip. Son raros. Reintenta con backoff (ver la política de retries que usa SkipPay internamente). Si los 5xx persisten más de ~5 minutos, escala a ops por Slack o correo.

On this page