Создание платежа
Запрос
URL
https://api.mivion.com/invoice/create
Метод отправки
POST
Параметры запроса:
Имя поля | Тип поля | Обязательный | По умолчанию | Описание |
---|---|---|---|---|
amount | number | Сумма к оплате. (Если в сумме есть копейки, то отправляйте их с разделителем "." Пример: 10.28 | ||
order_id | string max:255 | ID платежа в вашей системе | ||
currency | string max:10 | RUB | Валюта платежа (RUB, USD, EUR, UAH) | |
shop_id | UUID | Идентификатор кассы (используется для авторизации) | ||
hook_url | string max:500 | null | URL для отправки webhook (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа) | |
custom_fields | string JSON max:500 | null | Строка, которая будет возвращена в уведомления после оплаты (webhook, callback) | |
comment | string max:255 | null | Назначение платежа (показывается клиенту при оплате) | |
fail_url | string max:255 | null | URL для переадресовки пользователя при ошибке при оплате (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа) | |
success_url | string | null | URL для переадресовки пользователя при успешной оплате. (Если не заполнено, значение берется из настроек магазина. Данный параметр является приоритетным для редиректа) | |
expire | int (Минуты) | 300 | Время жизни инвойса в минутах, максимум - 5 дней (По умолчанию - 5 часов) | |
include_service | array | null | Методы оплаты доступные на странице счёта | |
exclude_service | array | 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
name | type | description |
---|---|---|
id | uuid | ID операции в нашей системе |
amount | string | Сумма инвойса (в рублях) |
currency | string | Валюта платежа (RUB, USD, EUR, UAH) |
url | string | Ссылка на форму оплаты |
expired | string | {'Время завершения инвойса в формате “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.mivion.com/invoice/create
Метод отправки
POST
Тело запроса:
- 1.{
- 2. "amount": 10,
- 3. "order_id": "1",
- 4. "email": "[email protected]",
- 5. "currency": "RUB",
- 6. "custom_fields": "{\"order\": \"74056\"}",
- 7. "comment": "string",
- 8. "fail_url": "https://mivion.io/fail",
- 9. "success_url": "https://mivion.io/success",
- 10. "hook_url": "https://mivion.io/hook",
- 11. "shop_id": "33908637-00e0-4f0d-a27d-d1d87d2f5033",
- 12. "expire": 300,
- 13. "include_service": [
- 14. "card"
- 15. ],
- 16. "exclude_service": [
- 17. "qiwi"
- 18. ]
- 19.}
Curl
- 1.curl -X "POST" \
- 2.'https://api.mivion.com/invoice/create' \
- 3.-H "Accept: application/json" \
- 4.-H "x-api-key: secret_key" \
- 5.-H "Content-Type: application/json" \
- 6.-d '{
- 7. "amount": 10,
- 8. "order_id": "1dsadf",
- 9. "email": "[email protected]",
- 10. "custom_fields": "{\"order\": \"74056\"}",
- 11. "comment": "string",
- 12. "fail_url": "https://mivion.io/fail",
- 13. "success_url": "https://mivion.io/success",
- 14. "hook_url": "https://mivion.io/hook",
- 15. "shop_id": "79cf5d6e-c481-4349-84d0-c956b628d118",
- 16. "expire": 300,
- 17. "include_service": [
- 18. "card"
- 19. ],
- 20. "exclude_service": [
- 21. "qiwi"
- 22. ]
- 23.}'
Пример ответа:
Responses
При успешном запросе: код ответа - 200.
- 1.{
- 2. data: {
- 3. "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
- 4. "amount": 0,
- 5. "currency": "USD",
- 6. "url": "https://mivion.io/pay/a6eee926-2679-741b-77a2-15789a3aa6cf",
- 7. "expired": "2022-12-15 20:20:20"
- 8. }
- 9. "status": 200,
- 10. "status_check": true
- 11.}
При ошибке: код ответа - 401, 404, 422, 500.
- 1.{
- 2. "data": null,
- 3. "error": "Поле x-api-key обязательно для заполнения.",
- 4. "status": 422,
- 5. "status_check": false
- 6.}
Примеры кода:
- 1.import json
- 2.import requests
- 3.
- 4.
- 5.# Create invoice
- 6.def create_invoice(api_key, invoice_data):
- 7. session = requests.Session()
- 8. session.headers['Accept'] = 'application/json'
- 9. session.headers['Content-Type'] = 'application/json'
- 10. session.headers['x-api-key'] = api_key
- 11. response = session.post('https://api.mivion.com/invoice/create', data=json.dumps(invoice_data))
- 12. return response.json()
- 13.
- 14.
- 15.api_key = 'secret_key'
- 16.invoice_data = {
- 17. "amount": 10,
- 18. "order_id": "1",
- 19. "email": "[email protected]",
- 20. "currency": "RUB",
- 21. "custom_fields": "{"order": "74056"}",
- 22. "comment": "string",
- 23. "fail_url": "https://mivion.io/fail",
- 24. "success_url": "https://mivion.io/success",
- 25. "hook_url": "https://mivion.io/hook",
- 26. "shop_id": "33908637-00e0-4f0d-a27d-d1d87d2f5033",
- 27. "expire": 300,
- 28. "include_service": [
- 29. "card"
- 30. ],
- 31. "exclude_service": [
- 32. "qiwi"
- 33. ]
- 34.}
- 35.
- 36.# Response full info
- 37.invoice = create_invoice(api_key, invoice_data)
- 38.
- 39.# Response status
- 40.invoice['status']
- 41.
- 42.# Invoice data
- 43.invoice['data']
- 44.
- 45.# Invoice info
- 46.invoice['data']['id']
- 47.invoice['data']['url']
- 48.invoice['data']['amount']
- 49.invoice['data']['expired']
- 1.function createInvoice(string $apiKey, array $invoiceData): array
- 2.{
- 3. $url = "https://api.mivion.com/invoice/create";
- 4. $headers = [
- 5. "accept: application/json",
- 6. "content-type: application/json",
- 7. "x-api-key: {$apiKey}"
- 8. ];
- 9.
- 10. $ch = curl_init();
- 11. curl_setopt($ch, CURLOPT_URL, $url);
- 12. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- 13. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- 14. curl_setopt($ch, CURLOPT_POST, true);
- 15. curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($invoiceData));
- 16. $response = curl_exec($ch);
- 17. curl_close($ch);
- 18. return json_decode($response, true);
- 19.}
- 20.
- 21.$apiKey = "04af123542bc8fb302c090f226256bc3e3043464";
- 22.$invoiceData = [
- 23. "amount" => 10,
- 24. "order_id" => "13377",
- 25. "email" => "[email protected]",
- 26. "currency" => "RUB",
- 27. "custom_fields" => ["order" => "74056"],
- 28. "comment" => "string",
- 29. "fail_url" => "https://mivion.io/fail",
- 30. "success_url" => "https://mivion.io/success",
- 31. "hook_url" => "https://mivion.io/hook",
- 32. "shop_id" => "da7a9fd4-2115-48c4-9e35-f2258bc8ec1f",
- 33. "expire" => 300,
- 34. "include_service" => ["card"],
- 35. "exclude_service" => ["qiwi"]
- 36.];
- 37.
- 38.# Response full info
- 39.$invoice = createInvoice($apiKey, $invoiceData);
- 40.
- 41.# Response status
- 42.$invoice['status'];
- 43.
- 44.# Invoice data
- 45.$invoice['data'];