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

Запрос

URL

https://api.enot.io/invoice/create

Метод отправки

POST

Параметры запроса:

Имя поляТип поляОбязательныйПо умолчаниюОписание
amountnumber
Сумма к оплате. (Если в сумме есть копейки, то отправляйте их с разделителем "."
Пример: 10.28
order_idstring max:255
ID платежа в вашей системе
currencystring max:10
RUBВалюта платежа (RUB, USD, EUR, UAH)
shop_idUUID
Идентификатор кассы (используется для авторизации)
hook_urlstring max:500
nullURL для отправки webhook (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
custom_fieldsstring JSON max:500
nullСтрока, которая будет возвращена в уведомления после оплаты (webhook, callback)
commentstring max:255
nullНазначение платежа (показывается клиенту при оплате)
fail_urlstring max:255
nullURL для переадресовки пользователя при ошибке при оплате (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
success_urlstring
nullURL для переадресовки пользователя при успешной оплате. (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
expireint
(Минуты)
300Время жизни инвойса в минутах, максимум - 5 дней (По умолчанию - 5 часов)
include_servicearray
nullМетоды оплаты доступные на странице счёта
exclude_servicearray
nullМетоды оплаты недоступные на странице счёта
Тип поля
number
Обязательный
По умолчанию
Описание
Сумма к оплате. (Если в сумме есть копейки, то отправляйте их с разделителем "."
Пример: 10.28
Тип поля
string max:255
Обязательный
По умолчанию
Описание
ID платежа в вашей системе
Тип поля
string max:10
Обязательный
По умолчанию
RUB
Описание
Валюта платежа (RUB, USD, EUR, UAH)
Тип поля
UUID
Обязательный
По умолчанию
Описание
Идентификатор кассы (используется для авторизации)
Тип поля
string max:500
Обязательный
По умолчанию
null
Описание
URL для отправки webhook (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
Тип поля
string JSON max:500
Обязательный
По умолчанию
null
Описание
Строка, которая будет возвращена в уведомления после оплаты (webhook, callback)
Тип поля
string max:255
Обязательный
По умолчанию
null
Описание
Назначение платежа (показывается клиенту при оплате)
Тип поля
string max:255
Обязательный
По умолчанию
null
Описание
URL для переадресовки пользователя при ошибке при оплате (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
Тип поля
string
Обязательный
По умолчанию
null
Описание
URL для переадресовки пользователя при успешной оплате. (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа)
Тип поля
int
(Минуты)
Обязательный
По умолчанию
300
Описание
Время жизни инвойса в минутах, максимум - 5 дней (По умолчанию - 5 часов)
Тип поля
array
Обязательный
По умолчанию
null
Описание
Методы оплаты доступные на странице счёта
Тип поля
array
Обязательный
По умолчанию
null
Описание
Методы оплаты недоступные на странице счёта

Ответ после запроса:

Формат ответа

JSON

nametypedescription
iduuidID операции в нашей системе
amountstringСумма инвойса (в рублях)
currencystringВалюта платежа (RUB, USD, EUR, UAH)
urlstringСсылка на форму оплаты
expiredstring{'Время завершения инвойса в формате “Y‑m‑d H:i:s”'}
type
uuid
description
ID операции в нашей системе
type
string
description
Сумма инвойса (в рублях)
type
string
description
Валюта платежа (RUB, USD, EUR, UAH)
type
string
description
Ссылка на форму оплаты
type
string
description
{'Время завершения инвойса в формате “Y‑m‑d H:i:s”'}

Возможные статусы ответа:

  • 200 : Успех
  • 401 : Ошибка авторизации (неверный shop_id или секретный ключ)
  • 403 : Ошибка доступа (Неверная сумма по сервису, неактивный магазин)
  • 404 : Объект не найден (Не найден тариф для вывода, или он выключен)
  • 422 : Ошибка валидации
  • 500 : Внутренняя ошибка системы

Пример запроса:

URL

https://api.enot.io/invoice/create

Метод отправки

POST

Тело запроса:

  1. 1.{
  2. 2. "amount": 10,
  3. 3. "order_id": "1",
  4. 4. "email": "test.test@example.com",
  5. 5. "currency": "RUB",
  6. 6. "custom_fields": "{\"order\": \"74056\"}",
  7. 7. "comment": "string",
  8. 8. "fail_url": "https://enot.io/fail",
  9. 9. "success_url": "https://enot.io/success",
  10. 10. "hook_url": "https://enot.io/hook",
  11. 11. "shop_id": "33908637-00e0-4f0d-a27d-d1d87d2f5033",
  12. 12. "expire": 300,
  13. 13. "include_service": [
  14. 14. "card"
  15. 15. ],
  16. 16. "exclude_service": [
  17. 17. "qiwi"
  18. 18. ]
  19. 19.}

Curl

  1. 1.curl -X "POST" \
  2. 2.'https://api.enot.io/invoice/create' \
  3. 3.-H "Accept: application/json" \
  4. 4.-H "x-api-key: secret_key" \
  5. 5.-H "Content-Type: application/json" \
  6. 6.-d '{
  7. 7. "amount": 10,
  8. 8. "order_id": "1dsadf",
  9. 9. "email": "test.test@example.com",
  10. 10. "custom_fields": "{\"order\": \"74056\"}",
  11. 11. "comment": "string",
  12. 12. "fail_url": "https://enot.io/fail",
  13. 13. "success_url": "https://enot.io/success",
  14. 14. "hook_url": "https://enot.io/hook",
  15. 15. "shop_id": "79cf5d6e-c481-4349-84d0-c956b628d118",
  16. 16. "expire": 300,
  17. 17. "include_service": [
  18. 18. "card"
  19. 19. ],
  20. 20. "exclude_service": [
  21. 21. "qiwi"
  22. 22. ]
  23. 23.}'

Пример ответа:

Responses

При успешном запросе: код ответа - 200.

  1. 1.{
  2. 2. data: {
  3. 3. "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  4. 4. "amount": 0,
  5. 5. "currency": "USD",
  6. 6. "url": "https://enot.io/pay/a6eee926-2679-741b-77a2-15789a3aa6cf",
  7. 7. "expired": "2022-12-15 20:20:20"
  8. 8. }
  9. 9. "status": 200,
  10. 10. "status_check": true
  11. 11.}

При ошибке: код ответа - 401, 404, 422, 500.

  1. 1.{
  2. 2. "data": null,
  3. 3. "error": "Поле x-api-key обязательно для заполнения.",
  4. 4. "status": 422,
  5. 5. "status_check": false
  6. 6.}

Примеры кода:

  1. 1.import json
  2. 2.import requests
  3. 3.
  4. 4.
  5. 5.# Create invoice
  6. 6.def create_invoice(api_key, invoice_data):
  7. 7. session = requests.Session()
  8. 8. session.headers['Accept'] = 'application/json'
  9. 9. session.headers['Content-Type'] = 'application/json'
  10. 10. session.headers['x-api-key'] = api_key
  11. 11. response = session.post('https://api.enot.io/invoice/create', data=json.dumps(invoice_data))
  12. 12. return response.json()
  13. 13.
  14. 14.
  15. 15.api_key = 'secret_key'
  16. 16.invoice_data = {
  17. 17. "amount": 10,
  18. 18. "order_id": "1",
  19. 19. "email": "test.test@example.com",
  20. 20. "currency": "RUB",
  21. 21. "custom_fields": "{"order": "74056"}",
  22. 22. "comment": "string",
  23. 23. "fail_url": "https://enot.io/fail",
  24. 24. "success_url": "https://enot.io/success",
  25. 25. "hook_url": "https://enot.io/hook",
  26. 26. "shop_id": "33908637-00e0-4f0d-a27d-d1d87d2f5033",
  27. 27. "expire": 300,
  28. 28. "include_service": [
  29. 29. "card"
  30. 30. ],
  31. 31. "exclude_service": [
  32. 32. "qiwi"
  33. 33. ]
  34. 34.}
  35. 35.
  36. 36.# Response full info
  37. 37.invoice = create_invoice(api_key, invoice_data)
  38. 38.
  39. 39.# Response status
  40. 40.invoice['status']
  41. 41.
  42. 42.# Invoice data
  43. 43.invoice['data']
  44. 44.
  45. 45.# Invoice info
  46. 46.invoice['data']['id']
  47. 47.invoice['data']['url']
  48. 48.invoice['data']['amount']
  49. 49.invoice['data']['expired']
  1. 1.function createInvoice(string $apiKey, array $invoiceData): array
  2. 2.{
  3. 3. $url = "https://api.enot.io/invoice/create";
  4. 4. $headers = [
  5. 5. "accept: application/json",
  6. 6. "content-type: application/json",
  7. 7. "x-api-key: {$apiKey}"
  8. 8. ];
  9. 9.
  10. 10. $ch = curl_init();
  11. 11. curl_setopt($ch, CURLOPT_URL, $url);
  12. 12. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  13. 13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  14. 14. curl_setopt($ch, CURLOPT_POST, true);
  15. 15. curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($invoiceData));
  16. 16. $response = curl_exec($ch);
  17. 17. curl_close($ch);
  18. 18. return json_decode($response, true);
  19. 19.}
  20. 20.
  21. 21.$apiKey = "04af123542bc8fb302c090f226256bc3e3043464";
  22. 22.$invoiceData = [
  23. 23. "amount" => 10,
  24. 24. "order_id" => "13377",
  25. 25. "email" => "test.test@example.com",
  26. 26. "currency" => "RUB",
  27. 27. "custom_fields" => ["order" => "74056"],
  28. 28. "comment" => "string",
  29. 29. "fail_url" => "https://enot.io/fail",
  30. 30. "success_url" => "https://enot.io/success",
  31. 31. "hook_url" => "https://enot.io/hook",
  32. 32. "shop_id" => "da7a9fd4-2115-48c4-9e35-f2258bc8ec1f",
  33. 33. "expire" => 300,
  34. 34. "include_service" => ["card"],
  35. 35. "exclude_service" => ["qiwi"]
  36. 36.];
  37. 37.
  38. 38.# Response full info
  39. 39.$invoice = createInvoice($apiKey, $invoiceData);
  40. 40.
  41. 41.# Response status
  42. 42.$invoice['status'];
  43. 43.
  44. 44.# Invoice data
  45. 45.$invoice['data'];