Milkyway — обзор¶
Milkyway — платформа трансграничных переводов. Банки-отправители интегрируются с платформой один раз и получают доступ ко всем подключённым банкам-получателям (партнёрам) через единый интерфейс: Milkyway сам взаимодействует с выбранным партнёром и приводит ответ к общему формату.
Список партнёров, услуг и их условий — в разделе Услуги.
Аутентификация¶
Доступ к Milkyway защищён по OAuth 2.0. Банк-отправитель получает access token в
Keycloak Planet9 (по client credentials, выданным при подключении), а затем
передаёт его в каждом запросе к Milkyway в заголовке Authorization: Bearer <token>.
Как получить токен в окружениях stage и production (realm'ы, token endpoint, примеры запросов) — см. раздел Аутентификация.
Жизненный цикл перевода¶
Каждый перевод проходит: Precheck (проверка получателя и расчёт курса) и Pay (исполнение). Статус затем можно опрашивать (Postcheck) или получать вебхуком от Milkyway — выберите удобный способ.
sequenceDiagram
autonumber
participant S as Банк-отправитель
participant O as Keycloak
participant M as Milkyway
Note over S,O: Аутентификация
S->>O: Запрос токена (client credentials)
O-->>S: Access token
Note over S,M: Precheck — проверка получателя и расчёт курса
S->>M: Precheck + Bearer token
M-->>S: amount_debit, currency_debit, rate
Note over S,M: Pay — исполнение перевода
S->>M: Pay (+ data)
M-->>S: Принят в обработку
Получение статуса¶
Статус перевода — двумя способами на выбор:
Вариант 1 — опрос (Postcheck)
sequenceDiagram
participant S as Банк-отправитель
participant M as Milkyway
S->>M: GET postcheck + Bearer token
M-->>S: transaction_id, status, error
Вариант 2 — вебхук (push от Milkyway)
sequenceDiagram
participant M as Milkyway
participant S as Банк-отправитель
M->>S: POST callback (transaction_id, status, error)
S-->>M: 200 OK
Оба способа несут одинаковую полезную нагрузку — ту же, что отдаёт
GET /payments/v1/postcheck:
{
"transaction_id": 42,
"status": 1,
"error": ""
}
Статусы: 0 — в обработке, 1 — выполнен, 2 — отменён, 3 — ошибка,
4 — отмена в процессе.
Вебхук избавляет от опроса: при смене статуса Milkyway сам отправляет этот POST на
callback URL, согласованный при подключении; ожидается ответ 2xx, иначе — повтор с
экспоненциальной паузой. Если вебхук недоступен — всегда остаётся опрос через Postcheck.
Статус функциональности
Опрос (Postcheck) доступен сейчас. Вебхук — в планах; контракт payload приведён выше и совпадёт с Postcheck.
Единый интерфейс¶
Запросы и ответы одинаковы для всех партнёров и услуг; полная схема — в OpenAPI-спеке
milkyway core (ветка dev) и здесь не дублируется. Ключевые поля:
- Precheck:
recipient_id,amount_credit,currency_credit→amount_debit,currency_debit,rate. - Партнёро-специфичные поля передаются в объекте
data— см. раздел Услуги.