Códigos de error

API de Revendedores

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/reseller-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. reason indica el motivo: missing_headers, bad_key, bad_timestamp, timestamp_out_of_window, bad_nonce, bad_signature, signature_mismatch, replay_detected, unknown_or_locked_key, ip_not_allowed.
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_conflictIdempotency-Key ya utilizado con un cuerpo distinto.
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.)
  • card_expired (Tarjeta caducada. Solución: añadir una nueva tarjeta en el portal de clientes.)
  • client_not_found (Identificador de cuenta no encontrado (no debería ocurrir en la práctica, contacte con soporte).)