Download OpenAPI specification:Download
Данная спецификация определяет протокол доставки оповещений о возникновении новых событий по кошелькам в рамках вашей организации, которые система доставляет в виде HTTP-запросов на URL-адреса созданных вами webhook'ов. Обработчики для подобного рода запросов необходимо реализовать на стороне вашего серверного кода согласно данной спецификации.
Webhook — это подписка на определенный тип события либо их группу, касающихся различных объектов в рамках вашей организации. Для управления webhook'ами используются методы API, описанные в данной спецификации. Когда наступает одно из событий в рамках определенного кошелька (например, изменение статуса кошелька), система выбирает webhook, подходящий под этот тип события, и отправляет HTTP-запрос, содержащий сообщение в формате JSON на указанный в этом webhook'е URL. Если вы создали несколько webhook'ов, подходящих под этот тип события, то событие доставляется одновременно на все заданные в них URL в неопределённом порядке.
Система гарантирует порядок доставки событий в рамках определенного предмета оповещения (кошелек, пополнение, выплата и т.п.). Система поддерживает очередь сообщений для каждого предмета оповещения, чтобы соблюсти очередность и гарантированную доставку.
Запрос на доставку считается успешным только при получении ответа со
статусом 200. Система будет ожидать успешного ответа на отправленный
запрос в течение 10 секунд. В случае ответа любым другим статусом или по
истечении указанного времени, отведённого на обработку оповещения, система
будет пытаться повторно доставить оповещения до получения успешного ответа,
либо до принятия решения о невозможности доставить информацию. Попытки
доставки будут производиться со следующими временными интервалами между
запросами:
Если последняя попытка доставить оповещение оканчивается неудачей, все события, которые накопились в очереди этого кошелька, отбрасываются.
Система подтверждает подлинность оповещений, подписывая сообщения
приватным ключом, уникальным для каждого webhook'а, парный публичный ключ к
которому содержится в данных этого webhook'а. Подпись передается в
HTTP-заголовке Content-Signature. В заголовке в виде различных атрибутов
содержится информация об использованном при формировании подписи алгоритме и
значение подписи в формате
URL-safe base-64.
Content-Signature: alg=RS256; digest=zFuf7bRH4RHwyktaqHQwmX5rn3LfSb4dKo...
На данный момент возможно использование единственного алоритма формирования подписи.
Подпись формируется согласно алгоритму RSASSA-PKCS1-v1_5, на вход которому подаётся результат вычисления хэша сообщения по алгоритму SHA-256.
Набор атрибутов заголовка и список возможных алгоритмов формирования подписи в дальнейшем могут быть расширены.
| Content-Signature required | string Подпись сообщения, сформированная согласно указанным выше правилам |
Данные произошедшего в платформе события
| eventID | string Идентификатор события в системе |
| occuredAt required | string <date-time> Дата и время возникновения события |
| topic required | string Enum: "WithdrawalTopic" "DestinationTopic" Предмет оповещения |
| eventType required | string Тип произошедшего с предметом оповещения события |
required | object (Withdrawal) Данные вывода денежных средств |
{- "eventID": "string",
- "occuredAt": "2019-08-24T14:15:22Z",
- "topic": "WithdrawalTopic",
- "eventType": "WithdrawalStarted",
- "withdrawal": {
- "id": "tZ0jUmlsV0",
- "createdAt": "2019-08-24T14:15:22Z",
- "destination": "10ASF74D98",
- "body": {
- "amount": 1430000,
- "currency": "RUB"
}, - "metadata": null,
- "wallet": "10068321",
- "externalID": "10036274"
}
}