Esta página utiliza traducción automática. Para cualquier inconsistencia, consulte la documentación en inglés.
Callbacks
Información General
- Representa una solicitud HTTP POST al sistema del cliente en una URL configurada en la cuenta personal
- Los datos en el cuerpo de la solicitud y respuesta están disponibles en formato JSON
- La solicitud contiene encabezados:
Content-Type: application/jsonUser-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 URL de Callback
- Usar protocolo seguro HTTPS
- Usar nombres de dominio, no direcciones IP
Autenticación
La autenticación para callbacks se realiza enviando encabezados en la solicitud, similar a los encabezados para la autorización de solicitudes API (ver sección Autorización).
Verificación de Callback
Para evitar fraudes, el sistema del cliente debe verificar los valores de encabezado de callback especificados de la siguiente manera:
- La diferencia entre la hora actual del servidor y el valor del encabezado
X-Processing-Timestampno excede el valor del encabezadoX-Processing-RecvWindow - El valor del encabezado
X-Processing-Keycoincide con el valor de la clave de acceso API pública activa del cliente - El valor del encabezado
X-Processing-Signaturecoincide con la firma de los datos de la solicitud con la clave secreta
Manejo de Callbacks
Respuesta Exitosa
Si la solicitud de callback es exitosa, el sistema del cliente debe responder con código HTTP 200 OK.
Idempotencia
Si después de una respuesta exitosa a una solicitud de callback, llega nuevamente una solicitud similar, es necesario generar la misma respuesta que para la anterior.
Las solicitudes se consideran similares si tienen valores idénticos para los siguientes parámetros en el cuerpo de la solicitud:
type- Tipo de transacciónid- Identificador de transacción en el sistema de procesamientostatus- Estado de la transacción
Unicidad de Transacción
Para determinar si múltiples callbacks se relacionan con una transacción o con diferentes, use la combinación de parámetros type e id del elemento raíz en el JSON del callback. Esta combinación es única para todas las transacciones.
Política de Reintentos
Códigos sin Reintento
El callback no se reintentará al recibir una respuesta del sistema del cliente con los siguientes códigos HTTP:
- 1xx
- 3xx
- 4xx
Códigos con Reintento
En caso de una respuesta con código HTTP 5xx, el callback permanece en la cola de envío y los intentos de envío continúan según una política de retroceso exponencial.
Fórmula de cálculo de retroceso:
60 segundos + {número de reintentos}^4
Número máximo de intentos de reintento: 10
Intervalos de Reintento
| Intento | Intervalo | Tiempo Total |
|---|---|---|
| 1 | 61 seg | 61 seg |
| 2 | 76 seg | 137 seg |
| 3 | 141 seg | 278 seg |
| 4 | 361 seg | 594 seg |
| 5 | 685 seg | 1,279 seg |
| 6 | 1,356 seg | 2,635 seg |
| 7 | 2,461 seg | 5,096 seg |
| 8 | 4,156 seg | 9,252 seg |
| 9 | 6,621 seg | 15,873 seg |
| 10 | 10,060 seg | 25,933 seg (~7.2 horas) |