ForHosting KIT · Utilidades de desarrollo

Comprobar formato de clave de idempotencia

La comprobación de formato de clave de idempotencia toma la cadena que piensa enviar como cabecera Idempotency-Key y le dice si sigue la guía de formato habitual antes de que llegue a su API.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Verifica que la clave no esté vacía, que tenga la longitud suficiente para ser única en la práctica, que no supere una longitud máxima razonable y que cada carácter sea seguro en una URL, de modo que la clave sobreviva a cabeceras, registros y cadenas de consulta sin sorpresas de codificación. Usted envía una cadena y recibe un indicador valid claro, la longitud medida y una lista de problemas concretos cuando algo falla.

Por qué las claves de idempotencia necesitan una comprobación de formato

Las claves de idempotencia existen para que una petición reintentada —un pago enviado dos veces, un pedido creado tras un tiempo de espera— se procese una única vez. Pero la seguridad que prometen depende de que la propia clave esté bien formada. Una clave demasiado corta colisiona con la de otro cliente y desduplica en silencio dos operaciones distintas en una sola. Una clave con caracteres fuera del alfabeto seguro para URL se deforma en algún punto entre su cliente, un proxy, la cadena de registros y el servidor, de modo que el reintento llega con una cadena distinta de la original y se cobra dos veces. Una clave vacía es rechazada directamente por la mayoría de las API, a menudo con un error genérico que cuesta una tarde rastrear. Pasar la clave por esta comprobación de formato de clave de idempotencia en el borde de su sistema detecta los tres modos de fallo en tiempo de desarrollo, en una suite de pruebas o en una validación previa dentro de su propio servicio, en lugar de en un informe de conciliación semanas después.

Qué se valida exactamente

La comprobación aplica la guía de formato que los procesadores de pago y el middleware de desduplicación documentan con más frecuencia. Primero, la clave debe ser una cadena no vacía; una clave vacía es un error, no una advertencia, porque ningún servidor la aceptará. Segundo, la longitud: por defecto la clave debe tener al menos 16 caracteres, el suelo por debajo del cual la unicidad deja de ser plausible, y como máximo 255 caracteres, el techo que la mayoría de los almacenes aceptan; ambos límites son configurables en cada llamada. Tercero, el alfabeto: cada carácter debe pertenecer al conjunto no reservado de RFC 3986 —letras, dígitos, guion, punto, guion bajo y tilde—. Esos caracteres atraviesan cabeceras HTTP, segmentos de URL y transportadores de registros sin codificación, que es exactamente por donde viajan las claves de idempotencia. Cuando un carácter falla, la respuesta enumera cada carácter infractor distinto para que vea si alguien incrustó un espacio, una barra o un emoji, y la matriz issues nombra el problema de forma legible por máquina: too_short, too_long o unsafe_characters.

Dónde encaja la comprobación en su arquitectura

La mayoría de los equipos la integran en dos lugares. El primero es el cliente que genera las claves: justo después de construir una clave a partir de un UUID, una marca de tiempo y un id de usuario, valídela una vez y registre una advertencia si falla, para que un error del generador aparezca en staging y no en producción. El segundo son las pruebas de contrato: pase un lote de claves de cada integración que posea por el endpoint en CI, de modo que una actualización de librería que cambie el comportamiento de codificación haga fallar la compilación. El endpoint es determinista y sin estado —no se almacena nada, no se consulta ninguna lista de claves vistas y la misma entrada siempre produce la misma salida—, lo que significa que es seguro llamarlo con claves reales y lo bastante barato, a $0.002 por petición, para ejecutarlo en cada despliegue. La misma validación también se ejecuta gratis en su navegador en esta página, de modo que un desarrollador puede pegar una clave sospechosa durante un incidente y obtener la misma respuesta que daría la API.

Validar claves en un cliente de reintento de pagos

Compruebe la clave generada antes de adjuntar la cabecera Idempotency-Key, para que un generador mal formado falle rápido en lugar de cobrar dos veces a un cliente.

Pruebas de contrato de integraciones en CI

Envíe las claves que genera cada uno de sus servicios a la comprobación en cada compilación y haga fallar el pipeline cuando un cambio de librería rompa el formato.

Depurar un incidente de desduplicación

Pegue una clave de los registros en la comprobación gratuita del navegador para ver si la codificación o la longitud explican por qué dos reintentos se trataron como peticiones distintas.

¿Cuánto cuesta?

$0.002 por petición. La misma comprobación se ejecuta gratis en su navegador en esta página.

¿Se almacena la clave o se compara con claves vistas antes?

No. La comprobación trata únicamente del formato: longitud y caracteres. No se almacena nada ni se consulta ningún estado de desduplicación.

¿Por qué una clave vacía es un error y no una comprobación fallida?

Porque una clave vacía nunca es una elección de formato: es un fallo del llamante. La API la rechaza como entrada no válida para que el problema salte de inmediato.

¿Qué caracteres se consideran seguros para URL?

El conjunto no reservado de RFC 3986: letras mayúsculas y minúsculas, dígitos, guion, punto, guion bajo y tilde. Cualquier otro se informa en invalid_chars.

¿Puedo cambiar los límites de longitud?

Sí. Pase min_length y max_length para anular los valores por defecto de 16 y 255, por ejemplo para ajustarse a un proveedor que documenta un techo de 64 caracteres.

¿Un resultado válido garantiza que la clave es única?

No. La comprobación solo verifica el formato. La unicidad depende de cómo genere la clave: un UUID o una fuente de entropía similar es la respuesta habitual.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/idempotency-key-format-check

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/idempotency-key-format-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"order-7f3a9c2e-2026-07-25"}'
{
  "key": "order-7f3a9c2e-2026-07-25"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.idempotency_key_format_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →