API FONDYВерсія 1.0

Правильна послідовність виконання стадій операції capture

Операція capture призначена для списання заздалегідь заблокованої на картці суми на підставі попереднього запиту на передавторизацію з параметром preauth = Y.

Ця операція також називається двостадійною схемою оплати. Перша стадія – операція купівлі з попереднім блокуванням суми. Друга стадія – безпосередньо списання (capture) заблокованої суми.

Списання може бути виконано як на повну суму, так і на часткову.

Примітка!

  • Операція передавторизації та capture доступні тільки за платіжним методом card. Решта платіжних методів не підтримують ці операції й автоматично відбуватиметься повне списання суми за одностадійною схемою:
  • Якщо операція capture ще не була виконана, то при поверненні коштів платнику, комісія FONDY не стягується. За фактом відбувається миттєве скасування заблокованої суми і жодних рухів фінансових коштів не відбувається;
  • Якщо операція capture ще не була виконана, то доступне тільки скасування повної суми блокування через операцію reverse;
  • Якщо виконано операцію часткового capture, то залишок суми автоматично повернеться на картку платника і додатково операцію реверсу виконувати вже не потрібно.
    Наприклад, якщо сума передавторизації 1000 і клієнту потрібно повернути 200, то необхідно виконати capture на суму 800. Реверс на суму 200 виконувати не потрібно, інакше відбудеться повторне повернення суми 200;
  • За однією операцією передавторизації доступний тільки один повний/частковий capture;
  • За однією операцією завершеної купівлі доступно кілька послідовних часткових реверсів;

 

Параметри запиту

ПараметрТипОписПриклад переданого мерчантом значення
order_idstring(1024)Унікальний ідентифікатор замовлення. Призначається мерчантом.

обов’язковий
ID1234
merchant_idinteger(12)Унікальний ідентифікатор мерчанта. Видається торговцю після реєстрації.

обов’язковий
1
signaturestring(40)Підпис замовлення. Слугує для перевірки цілісності та автентичності запиту на стороні сервера платіжного шлюзу

обов’язковий
1773cf135bd89656131134b98637894dad42f808
versionstring(10)Версія протоколу.

Значення за замовчуванням: 1.0
1.0
amountinteger(12)Сума підтвердження

обов’язковий
1020 (USD) — означає 10 доларів 20 центів
currencystring(3)Валюта замовлення. Допустимі значення:
UAH — українська гривня
USD — доллар США
EUR — євро
GBP — фунт стерлінгів

обов’язковий
USD

Параметри відповіді

ПараметрТипОписПриклад відповіді
order_idstring(1024)Унікальний ідентифікатор замовлення. Призначається мерчантом.ID1234
merchant_idinteger(12)Унікальний ідентифікатор мерчанта. Видається торговцю після реєстрації.1
capture_statusstring(50)Статус обробки підтвердження. Може містити такі значення:
hold — запит на підтвердження відхилено платіжним шлюзом FONDY, зовнішньою платіжною системою або банком-еквайєром
captured — запит на підтвердження успішно здійснено
approved
response_statusstring(50)Статус обробки запиту. Якщо виникла помилка під час валідації переданих, то повертається failure, інакше success 
signaturestring(40)Підпис замовлення. Слугує для перевірки цілісності та автентичності запиту на стороні сервера платіжного шлюзу
1773cf135bd89656131134b98637894dad42f808
response_codeinteger(4)Збій коду1008
response_descriptionstring(1024)Причина відмовиПараметр `amount` є обов’язковим

Параметри відповіді в разі помилки

Див. Параметри відповіді в разі помилки

Формування запиту

Запит підтвердження на сервер FONDY завжди формується способом host-to-host на URL https://pay.fondy.eu/api/capture/order_id

Host-to-host АПІ підтримує такі текстові формати запитів:

У контексті запиту завжди повертається відповідь у тому ж форматі, що й запит. Тобто якщо запит був у форматі JSON, то і відповідь повернеться у форматі JSON.

Пример host-to-host JSON

Content Type: application/json

Запит

{
   "request":{
      "order_id":"test7926651365",
      "currency":"USD",
      "amount":"1",
      "merchant_id":"1",
      "signature":"b1ed592ff76ddca287503b11c1aad70bb1c67f37"
   }
}

Нормальна відповідь

{
   "response":{
      "order_id":"test309906285",
      "response_status":"success",
      "response_code":"",
      "capture_status":"captured",
      "response_description":"",
      "merchant_id":"1"
   }
}

Відповідь у разі помилки

{
   "response":{
      "response_status":"failure",
      "error_message":"Order Not Found",
      "error_code":"1018"
   }
}

Приклад host-to-host XML

Content Type: application/xml

Запит

<?xml version="1.0" encoding="UTF-8"?>
<reqest>
   <order_id>test7926651365</order_id>
   <currency>USD</currency>
   <amount>1</amount>
   <merchant_id>1</merchant_id>
   <signature>b1ed592ff76ddca287503b11c1aad70bb1c67f37</signature>
</request>

Нормальна відповідь

<?xml version="1.0" encoding="UTF-8"?>
<response>
   <order_id>test6622534987</order_id>
   <response_status>success</response_status>
   <response_code />
   <capture_status>captured</capture_status>
   <response_description />
   <merchant_id>1</merchant_id>
</response>

Відповідь у разі помилки

<?xml version="1.0" encoding="UTF-8"?>
<response>
   <response_status>failure</response_status>
   <error_message>Order Not Found</error_message>
   <error_code>1018</error_code>
</response>

Приклад host-to-host HTML форма

Content Type: application/x-www-form-urlencoded

Запит

order_id=test6622534987&currency=USD&amount=1&merchant_id=1
&signature=6ccbfeb82894b5c51855e032da1e7a3bee65f3a3

Нормальна відповідь

order_id=test7101250216&response_status=success&response_code=
&capture_status=captured&response_description=&merchant_id=1

Відповідь у разі помилки

response_status=failure&error_message=Order+Not+Found&error_code=1018

Хочу приймати платежі з усього світу!