Códigos de error

KernelHost API

Todos los errores siguen el RFC 7807. El cuerpo es application/problem+json con los campos type, title, status, detail, request_id y, opcionalmente, reason o errors[].

{
  "type": "https://www.kernelhost.com/en/kernelhost-api/errors/payment_required",
  "title": "Payment required",
  "status": 402,
  "detail": "The order could not be paid.",
  "request_id": "01HX7Z3K8Q...",
  "reason": "insufficient_credit_and_no_card"
}
HTTPtypeSignificado
400validation_failedValidación de entrada fallida. Consulte errors[] para el detalle de cada campo.
401auth_failedAutenticación fallida. La respuesta siempre contiene reason unauthorized (o ip_not_allowed si la clave está restringida a otras direcciones IP) y deliberadamente no revela nada más. Compruebe la clave, el secreto, la hora (±300 s), el nonce y la firma; el soporte puede consultar la causa exacta mediante el request_id.
402payment_requiredPago requerido. reason, véase a continuación.
403forbidden_scopePermiso ausente. reason: missing_scope.
404not_foundEl recurso no existe o no es visible para esta clave (evita la enumeración de clientes).
409idempotency_conflict, order_in_progress, service_not_activeConflicto. O bien el Idempotency-Key ya se utilizó con otro cuerpo u otro endpoint (idempotency_conflict, reason in_progress mientras la primera solicitud sigue en curso), o bien otro pedido de su cuenta todavía se está procesando (reason order_in_progress, respete la cabecera Retry-After), o bien el servicio no está en un estado que permita la acción (service_not_active, véase service_status).
413payload_too_largeCuerpo de la solicitud superior a 65.536 bytes. Se rechaza antes de la autenticación.
422unprocessableSolicitud comprendida pero no ejecutable. reason billing_cycle_not_available: el producto no se ofrece en este ciclo de facturación. reason zero_total_not_allowed: el pedido sería gratuito sin un motivo válido, como un código promocional.
429rate_limitedLímite de tasa superado. Respete la cabecera Retry-After.
500internal_errorError interno del servidor. Indique request_id al contactar con soporte para correlacionar con el registro de auditoría.

Motivos de pago requerido (HTTP 402)

Cuando el pedido no se puede pagar, la API devuelve HTTP 402 con un reason legible por máquina en el cuerpo JSON.

  • insufficient_credit_and_no_card (Saldo insuficiente y sin tarjeta registrada. Solución: recargar el saldo o añadir una tarjeta en el portal de clientes.)
  • card_declined (Tarjeta rechazada por el banco o la pasarela. Solución: probar con otra tarjeta o contactar con su banco.)
  • credit_apply_failed (No se pudo aplicar el saldo a la factura. No se ha cobrado nada y el pedido se ha cancelado. Vuelva a intentarlo con un nuevo Idempotency-Key o contacte con el soporte.)
  • client_not_found (Identificador de cuenta no encontrado (no debería ocurrir en la práctica, contacte con soporte).)