Перейти к содержанию

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_creditamount_debit, currency_debit, rate.
  • Партнёро-специфичные поля передаются в объекте data — см. раздел Услуги.