Документация

Создание платежа

Сайт мерчанта должен подготовить платеж через систему Eight, чтобы получить ссылку для перенаправления покупателя на платежные страницы Eight. Для этого с сервера (из недоступной для покупателя зоны) мерчант должен быть выполнен запрос:

Для инициализация тестовых платежей используйте поле test = true, в противном случае платеж будет считаться боевым и произойдет списание средств с карты!!!

Инициализация процесса оплаты по созданному платежу

Формат запроса:
URL: https://secure.eight.uz/prepare_payment
Метод: POST
Content-type: application/json
Тело запроса:
{
   "merchant_shop_id": 1,
   "merchant_secret": "29586cd6-b18d-4262-8ec5-26eb13b941c3",
   "shop_transaction_id": "{{generatedUUID}}",
   "auto_capture": false,
   "test": false,
   "init_time": "{{currentDate}}",
   "total_sum": 500,
   "currency": "RUB",
   "description": "Test",
   "user_data": {
       "user_id": "уникальный ИД_пользователя в системе мерчанта",
       "phone": "998901234567",
       "email": "user@gmail.com"
   },
   "payment_methods": [
       {
           "method": "bank_card"
       },
       {
           "method": "sbp"
       }
   ],
   "return_url": "https://example.com",
   "language": "ru",
   "notify_url": "https://example.com",
   "tsp_id":18,
   "ttl": 15
}
 Поле                | Обязательное | Описание             
 :------------------ | :----------: | ---------------------------------------: 
 merchant_shop_id    | Да           | Уникальный ID мерчанта (доступен в ЛК   мерчанта)
 merchant_secret     | Да           | Персональный секретный ключ мерчанта,   который генерируется в ЛК мерчанта. 
                                      Должен содержаться в безопасной недоступной зоне сайта мерчанта.
 shop_transaction_id | Да           | Уникальный идентификатор транзакции на стороне мерчанта. 
                                      Используется Eight для предотвращения случайного дублирования транзакций.
 init_time           | Да           | Время создания платежа yyyy-MM-dd HH:mm:ss
 total_sum           | Да           | Итоговая сумма платежа
 currency            | Да           | Валюта. Варианты: “USD”, “UZS”, "RUB"
 description         | Да           | Описание товара
 payment_methods     | Нет          | Множество доступных покупателю методов оплаты. 
                                      Если не передается, то будут предложены все доступные методы.
 method              | Да           | Название одного метода из вариантов: bank_card, uzcard, humo, mir_card, sbp. 
                                      Обязательно в случае передачи всего блока payment_methods.
 return_url          | Да           | URL на который следует перенаправить покупателя после завершения оплаты. 
                                      URL должен содержать уникальный параметр, идентифицирующий конкретный платеж.
 auto_capture        | Нет          | Если true, то ПС Eight будет автоматически подтверждать списание средств 
                                      со счета покупателя. 
                                      Если false, то после авторизации платежа Eight будет ожидать от
                                      магазина дополнительного подтверждения окончательного завершения транзакции. 
                                      По умолчанию false.
 user_data           | Нет          | Информация о покупателе, используется для отображения на странице оплаты
 user_id             | Да           | ID пользователя в БД магазина. 
                                      Обязательно в случае передачи всего блока user_data.
 phone               | Да           | Обязательно в случае передачи всего блока user_data.
 email               | Да           | Обязательно в случае передачи всего блока user_data.
 test                | Нет          | Передается true только для тестовых платежей
 tag                 | Нет          | Необязательный короткий маркер типа платежа. 
                                      Определяется мерчантом и позволияет категоризировать платежи в личном кабинете.
 notify_url          | Нет          | URL на который сервер Eight будет отправлять нотификации 
                                      об изменении статуса платежа. 
                                      Если не установлен, то используется общий URL, 
                                      который установлен в личном кабинете.
 ttl                 | Нет          | Время жизни платежа с момента создания (в минутах). 
                                      По истечению этого времени провести платеж будет невозможно.
 language            | Нет          | Язык платежной формы. По умолчанию - язык браузера или en. 
                                      Допустимые значения:
                                      oz - узбекский, латиница
                                      uz - узбекский, кирилица
                                      en - английский
                                      ru - русский                                    
 tsp_id              | Нет          | Идентификатор торгово-сервисного предприятия,
                                      обеспечивающего продажу данной услуги или товара
 customer_ip         | Нет          | IP-адрес покупателя. Если указан, то сервис Eight сверяет его 
                                      с IP-адресом плательщика и в случае отличия блокирует оплату.

Ответ ПС Eight на запрос формирования платежа

В ответ на запрос магазина ПС Eight отвечает следующим JSON в теле ответа:

{
   "error": 0,
   "shop_transaction_id": "17e396df-cdd5-4a5f-af78-3365d05fe1ef",
   "payment_UUID": "80a10834-8d30-43b6-b3fd-1e55c0e1f0a6",
   "status": "created",
   "pay_url": "https://gateway.eight.uz/pay/80a10834-8d30-43b6-b3fd-1e55c0e1f0a6?language=ru",
   "transfer_sum": 990.00,
   "refunded_sum": 0.00,
   "processor_key": "ygygdxsxgh=",
   "rrn": "253242",
   "cancel_reason": "error_1",
}

Описание полей ответа Eight:

 Поле               | Обязательное     | Описание             
 :----------------- | :---------------:| ---------------------------------: 
 status             | Да (если error=0)| Статус платежа в системе Eight, один из:
                                         created - платеж создан
                                         canceled - платеж отменен
                                         wait_user_action - ожидает действий пользователя
                                         waiting_for_capture - платеж авторизован и ожидает подтверждения мерчантом
                                         succeeded - платеж успешно выполнен
 payment_UUID       | Да (если error=0)| Уникальный идентификатор транзакции в ПС Eight.
 shop_transaction_id| Да (если error=0)| Уникальный идентификатор транзакции на стороне мерчанта.    
 pay_url            | Да (если error=0)| URL совершения платежа в ПС Eight.
 transfer_sum       | Нет              | Сумма по счету за вычетом комиссии Eight, доступная для      
                                         возврата средств покупателю
 refunded_sum       | Нет              | Возвращенная покупателю сумма
 processor_key      | Нет              | ID в процессинге
 errorMessage       | Нет              | детальное описание ошибки
 rrn                | Нет              | RRN операции от банка.
 cancel_reason      | Нет              | Причина отказа транзакции
 error              | Да               | Код ошибки. Варианты: 
                                         0 - нет ошибок
                                         1 - ошибка формата данных
                                         2 - ошибка авторизации
                                         4 - внутренняя ошибка сервиса
                                         5 - статус магазина не позволяет создавать реальные платежи
                                         6 - недопустимая валюта
                                         7 - неизвестный или недопустимый по тарифу метод платежа
                                         9 - отсутствует notify_url и при этом auto_capture == false
                                         10 - не все данные пользователя магазина мерчанта указаны корректно
                                         11 - слишком часто идет запрос на создание платежа 
                                         с одним и тем же shop_transaction_id
                                         12 - мерчант в статусе blocked
                                         13 - данному мерчанту необходимо указать параметр tsp_id