Общая информация
Лимиты
Повторные уведомления: Если сервер не подтвердит получение callback (например, если ваш сервер не вернёт HTTP-ответ с кодом 200 или 429), система будет повторно отправлять уведомление с задержкой в N минут, где N - количество уже совершённых попыток.
Общее количество попыток: Если после нескольких попыток уведомление не было успешно доставлено, оно будет помечено как не доставленное, и дальнейшие попытки прекращаются. Максимальное количество попыток составляет 10.
Условия
Формат уведомлений: Все callback уведомления отправляются с использованием POST-запросов в формате JSON.
Гарантированное получение уведомлений: Для успешной интеграции необходимо, чтобы ваш сервер всегда был готов принимать и корректно обрабатывать callback уведомления. Для подтверждения успешного приёма сервер должен возвращать HTTP-ответ с кодом 200 или 429.
Таймаут обработки: Ваш сервер должен обработать запрос в течение 30 секунд. Если обработка займёт больше времени, система примет это за неуспех и повторит попытку отправки уведомления.
Подтверждение подписи: Для каждой callback-операции мы генерируем и отправляем уникальную подпись в поле signature. Вы должны сгенерировать аналогичную подпись на своей стороне в соответствии с указанным форматом и сравнить её с подписью, полученной в уведомлении, чтобы убедиться в подлинности данных.
Защита от дублирования: Возможны случаи, когда уведомление может быть отправлено несколько раз (например, если предыдущий HTTP-ответ не был зафиксирован). Ваш сервер должен быть готов к обработке таких дубликатов, избегая повторной обработки одной и той же операции.
Безопасность
Все callback уведомления содержат поле signature, в котором передаётся сгенерированная нашей системой подпись. Для безопасности важно сгенерировать подпись на вашей стороне в соответствии с заданным форматом и сверить её с подписью, полученной в уведомлении.
Пример валидации signature
signature
Обратите внимание!
Данные примеры валидации подписи signature актуальны только для формата: {id}:{salt}.
В случае, если указано иное, необходимо скорректировать код под другой формат.
Last updated