К содержанию
Arbitpay Docs

Выплаты

Выплата — перечисление денег на счёт вашего клиента. Реквизиты получателя вы передаёте сами при создании, платформа исполняет перевод и прикрепляет квитанцию.

В API выплата — это сделка с типом sell. Все запросы идут на общие эндпоинты сделок, тип задаётся полем type в теле запроса.

ДействиеМетодПуть
Создание выплатыPOST/api/deals/create
Получение выплатыGET/api/deals/get
Обновление выплатыPOST/api/deals/update

Все действия раздела доступны только клиентам (по api_key). Сделка должна принадлежать вашему клиенту, иначе вернётся ACCESS_DENIED.

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

Создаёт выплату по присланным реквизитам получателя.

Тело запроса (JSON)

ПолеТипОбяз.Описание
typestring✅sell
user_idstring✅Идентификатор заказа на вашей стороне
amountnumber✅Сумма выплаты, положительное число (формат 500.00)
currencystring✅Валюта — см. «Справочники»
recipient_namestring✅ФИО получателя — владельца счёта
recipient_ibanstring✅IBAN получателя
recipient_identification_codestring⚠️ОКПО / ИНН получателя: если передан — 8 или 10 цифр
recipient_cardstring⚠️Номер карты получателя, 16–19 цифр
recipient_bank_namestring⚠️Название банка получателя
bank_uuidstring⚠️UUID банка из списка банков
payment_methodstring⚠️Метод оплаты, по умолчанию iban
callback_urlstring⚠️Адрес для уведомлений о смене статуса — см. «Колбеки»
bash
curl -X POST "https://arbitpay.online/api/deals/create" \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "sell",
    "user_id": "payout-5581",
    "amount": 500.00,
    "currency": "UAH",
    "recipient_name": "Петренко Іван Сергійович",
    "recipient_iban": "UA783057490000026003000022185",
    "recipient_identification_code": "3682310038",
    "recipient_card": "5167619611056719",
    "recipient_bank_name": "ПриватБанк"
  }'

Запрос идемпотентен по user_id. Если у вас уже есть выплата с тем же user_id, того же типа и на ту же сумму в статусе created, повторный запрос вернёт её же (с сообщением о существующей сделке), а не создаст дубль.

Важно: идемпотентность действует, только пока выплата в статусе created. Как только она перешла в другой статус (pending, paid, canceled и т.д.), повторный запрос с тем же user_id создаст новую выплату.

Сумма выплаты не корректируется — в payment.amount возвращается ровно запрошенная сумма, поля requested_amount в ответе не бывает. Платёжная страница для выплаты не создаётся: поля payment_url, time_limit и return_url / success_url / fail_url к выплатам отношения не имеют.

Пробелы в recipient_iban игнорируются, значение сохраняется в верхнем регистре. Из recipient_card сохраняются только цифры.

Возможные ошибки

codeУсловие
ACCESS_DENIEDТокен не принадлежит клиенту
INVALID_METHODМетод запроса не POST
MISSING_FIELDSОтсутствует одно из обязательных полей
INVALID_TYPEtype не buy и не sell
INVALID_AMOUNTamount не число или ≤ 0
INVALID_CURRENCYНедопустимая валюта
INVALID_PAYMENT_METHODПередан payment_method вне справочника
BANK_NOT_FOUNDБанк по bank_uuid не найден или отключён
INVALID_RECIPIENTПоле получателя передано не строкой
INVALID_IBANНеверный формат recipient_iban
INVALID_IDENTIFICATION_CODErecipient_identification_code не 8 и не 10 цифр
INVALID_CARDrecipient_card не 16–19 цифр

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

Возвращает выплату по её uuid.

Параметры запроса (query)

ПолеТипОбяз.Описание
uuidstring✅UUID сделки (36 символов)
bash
curl -X GET "https://arbitpay.online/api/deals/get?uuid=8f14e45f-cea1-4a2c-9b7a-1d2e3f4a5b6c" \
  -H "Authorization: Bearer <API_KEY>"

См. структуру ответа.

Возможные ошибки

codeУсловие
ACCESS_DENIEDТокен не принадлежит клиенту или сделка чужая
INVALID_METHODМетод запроса не GET
MISSING_FIELDSНе передан uuid
INVALID_UUIDuuid не соответствует формату (36 символов)

Обновление выплаты

Обновляет статус выплаты, добавляет комментарий и/или прикрепляет изображение оплаты.

Тело запроса (JSON)

ПолеТипОбяз.Описание
uuidstring✅UUID выплаты (36 символов)
statusstring⚠️Новый статус — см. «Справочники»
commentstring⚠️Текст комментария к выплате
image_base64string⚠️Изображение оплаты в формате data-URL: data:image/(png|jpg|jpeg|webp);base64,...

Помимо uuid, необходимо передать хотя бы одно из полей status, comment, image_base64. Иначе — ошибка NO_FIELDS_TO_UPDATE.

См. структуру ответа.

Возможные ошибки

codeУсловие
ACCESS_DENIEDТокен не принадлежит клиенту или выплата чужая
INVALID_METHODМетод запроса не POST
MISSING_FIELDSНе передан uuid
NO_FIELDS_TO_UPDATEНе передано ни одного поля для обновления
INVALID_UUIDuuid не соответствует формату
INVALID_STATUSНедопустимое значение status
INVALID_IMAGE_FORMATimage_base64 не PNG/JPEG/WebP в формате data-URL

Квитанция

Когда выплата исполнена, к ней прикрепляется файл квитанции. Ссылка на файл приходит двумя путями: событием deal.receipt на ваш callback_url и полем deal.receipt_url при получении выплаты.

Пока квитанция не прикреплена, поля receipt_url в ответе нет.

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

Структура ответа

Возвращается эндпоинтами создания, получения и обновления.

json
{
  "status": "success",
  "code": "SUCCESS",
  "data": {
    "deal": {
      "uuid": "9c1f2b7e-4a3d-4f88-9c21-0e7b5d3a1122",
      "type": "sell",
      "status": "created",
      "created": "2026-09-04 18:30:00"
    },
    "recipient": {
      "name": "Петренко Іван Сергійович",
      "iban": "UA783057490000026003000022185",
      "identification_code": "3682310038",
      "card": "5167619611056719",
      "bank_name": "ПриватБанк"
    },
    "payment": {
      "method": "iban",
      "amount": "500.00",
      "currency": "UAH"
    },
    "comments": []
  },
  "message": "Deal created successfully."
}

Описание полей

deal

ПолеТипОписание
uuidstringИдентификатор сделки
typestringВсегда sell для выплаты
statusstringТекущий статус — см. «Справочники»
createdstringДата и время создания
receipt_urlstringСсылка на квитанцию. Поле появляется только после того, как квитанцию прикрепили

recipient — реквизиты получателя выплаты

ПолеТипОписание
namestringФИО получателя
ibanstringIBAN получателя
identification_codestringОКПО / ИНН получателя
cardstringНомер карты, пустая строка если не передан
bank_namestringНазвание банка, пустая строка если не передан

payment — параметры выплаты

ПолеТипОписание
methodstringМетод оплаты
amountstringСумма выплаты
currencystringВалюта

comments — массив комментариев к сделке.

Блока requisite в ответе по выплате нет: наш реквизит в ней не участвует. Если вы работаете и с депозитами, и с выплатами, разбирайте ответ по полю deal.type.

© Arbitpay. Документация REST API.