Общие принципы

Интеграция с API выплат Mandarin предполагает два этапа:

  1. Синхронное создание запроса на выплату.
  2. Асинхронное получение статуса выплаты.

Корректная реализация этих этапов критически важна для исключения задвоений, потерь данных и ошибок при выплатах.

1. Создание выплаты

Если ваш запрос прошёл успешно, в ответ вы получите HTTP 200 и поле id (это и есть transactionId). Пример:

{
"id": "43913ddc000c4d3990fddbd3980c1725"
}

Если в ответе возник таймаут или вернулся код отличный от 200 (например, 502, 504), вы обязаны повторить запрос с тем же значением orderId.

Это безопасно: если операция уже была получена и создана ранее, вы получите ошибку Duplicate order id.

Пример ответа на повторный запрос:

{
"error": "Duplicate order id 5f2fdcf6-0b78-4dd7-be9f-212c7c058001 found for incomplete payout transaction",
"errorCode": -2
}

Такой ответ говорит о том, что операция уже была создана и находится в обработке — повторной выплаты не произойдёт.

Важно: orderId должен быть уникальным в пределах всех успешных операций. Это ключевой параметр, по которому ведётся идентификация операции.

2. Проверка создания запроса (если вы не получили id)

Если вы не получили id, либо не уверены, был ли успешно создан запрос, проверьте это через сервис мониторинга:

https://secure.mandarinpay.com/admin/heartbeat/transactions

Там доступен поиск по orderId. Если операция найдена — значит, мы получили ваш запрос, и он обрабатывается. Если не найдена — повторите запрос.

3. Получение статуса выплаты