Ir al contenido

↑↓ navegar ↵ abrir Ctrl↵ nueva pestaña esc cerrar

Referencia de los valores aceptados en los dos canales de captura. Vale para POST /capture/{token}/events y POST /capture/events.

CampoTipoLímiteObligatorio
typestring (enum)ver tabla abajoSí
order_refstring100 caracteresSí
event_idstring64 caracteresSí en el navegador, opcional en el servidor
payloadobjetover campos aceptadosNo
captured_atstring (ISO 8601)-No, y solo lo usa el canal servidor
merchant_idstring (UUID)-Solo en el canal servidor

Es el identificador del pedido en tu sistema, y es lo único que une el evento a una transacción. Rapid busca, dentro de tu empresa y del merchant informado:

  1. una transacción con external_id igual al order_ref
  2. si no la encuentra, una transacción con order_number igual al order_ref

Envía siempre el mismo valor que usaste en external_id al crear la transacción. Un order_ref equivocado no genera error en la llamada: el evento se acepta, no encuentra transacción y se descarta después de la ventana de correlación.

Identificador del evento, generado por ti. Sirve como clave de idempotencia: reenviar el mismo event_id para el mismo merchant no crea evidencia duplicada.

En el canal navegador es obligatorio (el snippet genera un UUID por evento). En el canal servidor, si lo omites, Rapid genera uno. Envía el tuyo cuando puedas reenviar la misma llamada, es lo que garantiza la idempotencia.

No uses : en el event_id. El carácter se elimina antes del uso interno, lo que haría que dos ids distintos colisionen.

Cuándo ocurrió el hecho, en ISO 8601.

CanalComportamiento
Navegadorse ignora. Rapid registra la hora en que llegó el evento
Servidorse usa tal como se envió. Si se omite, vale la hora de la llamada

Si el hecho ocurrió antes de la llamada (un procesamiento por lotes de noche, por ejemplo), usa el canal servidor e informa captured_at.

ValorQué registraNavegadorServidor
checkoutFinalización de la compra, con los datos del dispositivoSíSí
terms_acceptanceAceptación de términos, política o contratoSíSí
access_logAcceso al producto o al área con sesión iniciadaSíSí
usage_logUso efectivo del producto o servicioSíSí
delivery_confirmationEntrega confirmadaNoSí
scanLectura de código de rastreo en tránsitoNoSí
delivery_gpsCoordenada de la entregaNoSí

Los tres últimos existen solo en el canal servidor: son hechos de tu operación, no del navegador del comprador. Usarlos en el canal navegador responde 422 invalid_type.

El payload tiene una lista cerrada de campos. Una clave fuera de la lista se descarta en silencio, sin error, así que revisa la ortografía.

CampoTipoUsar en
device_idstringcheckout
device_fingerprintstringcheckout
fpstringcheckout, indica el origen de la identificación (pro o fallback)
fp_request_idstringcheckout, exigido para validar la identificación
urlstringterms_acceptance, access_log, usage_log
notestringcualquier tipo
carrierstringdelivery_confirmation, scan
trackingstringdelivery_confirmation, scan
latnúmerodelivery_gps
lngnúmerodelivery_gps

Reglas:

  • solo valores escalares (string, número, booleano). Objetos y listas se descartan
  • un string de más de 512 caracteres responde 422 payload_too_large
  • un payload ausente o vacío se acepta

El checkout es el único tipo que graba datos directamente en la transacción, y no solo como registro adjunto. Completa el dispositivo y la IP de la transacción solo cuando esos campos están vacíos: una captura anterior nunca se sobrescribe.

Qué puede grabar cada canal:

Dato de la transacciónNavegadorServidor
device_idno grabagraba
device_fingerprintsolo con identificación validadagraba
ip_addresssolo con identificación validadagraba

La diferencia existe porque el token del navegador es publicable: cualquier persona que lo tenga puede enviar eventos. Un dato no validado no toca los campos que sostienen la defensa.

Identificación validada significa: enviaste fp_request_id y device_id en el payload, y Rapid confirmó el par contra Fingerprint del lado del servidor. En ese caso el evento también genera un registro de verificación del dispositivo, con las señales de bot, VPN y ventana de incógnito. Sin fp_request_id, el evento sigue valiendo como registro, solo que sin la parte del dispositivo.

Cada fp_request_id vale para una transacción. El mismo par reutilizado en otro pedido se trata como repetición y se ignora.

El evento puede llegar antes de que exista la transacción. Queda en la cola y se reintenta durante unas 68 horas, a intervalos crecientes. Pasada la ventana sin una transacción correspondiente, el evento se descarta.

En la práctica: enviar el checkout en el momento exacto de la compra funciona, aunque tu rutina solo envíe la transacción a Rapid horas después.