Saltar al contenido principal
Traducción Automática

Esta página utiliza traducción automática. Para cualquier inconsistencia, consulte la documentación en inglés.

Callbacks

Información general

  • Se representa como una solicitud HTTP POST al sistema del cliente, enviada a la URL especificada en el área personal
  • Los datos en el cuerpo de la solicitud y de la respuesta están disponibles en formato JSON
  • La solicitud contiene los siguientes encabezados:
    • Content-Type: application/json
    • User-Agent: información sobre el sistema que realiza la llamada
  • Las fechas se transmiten en UTC en formato ISO 8601. Por ejemplo: 2024-07-02T12:50:30Z

Requisitos de la URL de callback

  1. Debe usar el protocolo seguro HTTPS
  2. Debe usar nombres de dominio, no direcciones IP

Autenticación

La autenticación de un callback se realiza mediante el envío de encabezados en la solicitud, similares a los encabezados utilizados para autorizar las solicitudes a la API (consulte la sección Autorización).

Verificación del callback

Para prevenir el fraude, el sistema del cliente debe verificar los valores de los encabezados de callback especificados de la siguiente manera:

  1. La diferencia entre la hora actual del servidor y el valor del encabezado X-Processing-Timestamp no supera el valor del encabezado X-Processing-RecvWindow
  2. El valor del encabezado X-Processing-Key coincide con el valor de la clave de acceso pública activa de la API del cliente
  3. El valor del encabezado X-Processing-Signature coincide con la firma de los datos de la solicitud firmados con la clave secreta

Manejo de callbacks

Respuesta exitosa

Si la solicitud de callback se procesa correctamente, el sistema del cliente debe responder con el código HTTP 200 OK.

Idempotencia

Si, después de una respuesta exitosa a una solicitud de callback, llega otra solicitud similar, se debe generar la misma respuesta que para la anterior.

Las solicitudes se consideran similares si tienen los mismos valores para los siguientes parámetros en el cuerpo de la solicitud:

  • type - Tipo de transacción
  • id - Identificador de la transacción en el sistema de procesamiento (para una verificación de dirección - checkId)
  • status - Estado de la transacción

Unicidad de la transacción

Para determinar si varios callbacks corresponden a la misma transacción o a transacciones diferentes, use la combinación de los parámetros type e id del elemento raíz del JSON del callback. Esta combinación es única en todas las transacciones.

Para los callbacks de verificación de direcciones (type = AddressCheck), se usa el parámetro checkId en lugar de id.

Política de reintentos

Códigos sin reintentos

Un callback no se reintentará si el sistema del cliente responde con los siguientes códigos HTTP:

  • 1xx
  • 3xx
  • 4xx

Códigos con reintentos

Si la respuesta tiene un código HTTP en el rango 5xx, el callback permanece en la cola de envío y los intentos de entrega continúan según una política de retroceso exponencial.

Fórmula de cálculo del retroceso:

60 seconds + {retry count}^4

Número máximo de intentos de reintento: 10

Intervalos de reintento

IntentoIntervaloTiempo total
161 sec61 sec
276 sec137 sec
3141 sec278 sec
4361 sec594 sec
5685 sec1,279 sec
61,356 sec2,635 sec
72,461 sec5,096 sec
84,156 sec9,252 sec
96,621 sec15,873 sec
1010,060 sec25,933 sec (~7.2 hours)