Your Logo
# СБП Сервис оплаты при помощи QR-кода на сайте мерчанта ![Бизнес процесс](https://emoney-tools-docs-public.hb.kz-ast.vkcs.cloud/flow.jpg) # Authorization Авторизация для создания платежной страницы ```shell curl --request GET \ --url https://api.sbp.emoney.tools/core/v1/auth \ --header 'Authorization: Basic base64(m_id:secret)' ``` Успешный ответ: ``` { "user_id": 2, "token": "eyJhbGciOiJIUzI1NiJ9" } ``` user_id - id мерчанта, token - зашифрованный токен Возможные ошибки: Если мерчант не авторизован: ```json { "errorCode": 4005, "name": "UNAUTHORIZED", "description": "User is not registered" } ``` # Create Payment Создание страницы платежа(Qr) на сайте мерчанта для физического лица. Пример запроса на CURL ```shell curl --request POST \ --url http://api.sbp.emoney.tools/core/v1/payment \ --header 'Authorization: Bearer ***' \ --header 'Content-Type: application/json' \ --data '{ "order_id": "150", "payment_purpose": "Тестовый платеж", "amount": 1000, "redirect_url": "https://www.mtsbank.ru/", "expiration_date": 1, "callback_url": "dsjkfnjhvbfj" }' ``` ## Данные | Параметр | Значение| Обязательное|Тип |Описание| |:-------------|:---------------|:---------------|:---------------:|:-------------| | order_id| 150| Нет |string |Айди платежа мерчанта| | payment_purpose| Тестовый платеж | Да |string |Цель и описание платежа физического лица| | amount| 1000| Да |int |Сумма транзакции, в копейках | |redirect_url|https://qr.nspk.ru/BD100016LEQESRF99U1BT85N87PBGI8L?type=02&bank=100000000017&sum=100&cur=RUB&crc=249A |Да|string |Ссылка для оплаты| | expiration_date| 1 | Да|int | Срок ссылки для оплаты (в минутах) | | callback_url| dsjkfnjhvbfj | Нет| string | Урл мерчанта для колбека| Успешный ответ: ```json { "id": 7, "created_at": "2023-10-31T06:46:29.550462Z", "amount": 1000, "payment_purpose": "Тестовый платеж", "expiration_date": 5, "redirect_url": "https://qr.nspk.ru/AD10005FOC6DLQ568KD9T3F8MHTMJMC9?type=02&bank=100000000017&sum=1000&cur=RUB&crc=F34C", "status_code": 400 } ``` ## Данные | Параметр | Значение| Тип |Описание| |:-------------|:---------------|:---------------:|:-------------| | id| 7 | int |id платежа| | created_at|2023-10-11T11:32:43.585359744Z| string |Дата и время создания платежа| | amount| 1000 | int |Сумма платежа| | payment_purpose| Тестовый платеж |string |Цель и описание платежа физического лица| | expiration_date| 5 | int | Срок ссылки для оплаты (в минутах) | |redirect_url|https://qr.nspk.ru/BD100016LEQESRF99U1BT85N87PBGI8L?type=02&bank=100000000017&sum=100&cur=RUB&crc=249A |string |Ссылка для оплаты| |status_code| 100 | int |Код статуса платежа| Возможные ошибки: 1) При истечении времени токена или токен неверный: ```json { "message": "Forbidden" } ``` 2) Платеж не найден или айди платежа неверное ```json { "errorCode": 4007, "name": "NOT_FOUND", "description": "Payment not found" } ``` # Get Payment Status Запрос статуса платежа по транзакции. Пример запроса на CURL ```shell curl --request GET \ --url'http://api.sbp.emoney.tools/core/v1/payment?id=7' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9' ``` Успешный ответ: ```json { "id": 7, "created_at": "2023-10-11T11:32:43.58536Z", "amount": 1000, "payment_purpose": "Тестовый платеж", "expiration_date": 50, "redirect_url": "https://qr.nspk.ru/AD10004JGN3P2PT98AHOU69VMOO0RIL4?type=02&bank=100000000017&sum=500000&cur=RUB&crc=C232", "status_code": 100 } ``` ## Данные | Параметр | Значение| Тип |Описание| |:-------------|:---------------|:---------------:|:-------------| | id| 7 | int |id транзакции| | created_at|2023-10-11T11:32:43.585359744Z| string |Дата и время создания транзакции| | amount| 500000| int |Сумма транзакции | | payment_purpose| Тестовый платеж | string |Цель платежа физического лица| | expiration_date| 5 | int | Срок ссылки для оплаты (в минутах) | |payment_method | 2 | int |Метод платежа | |redirect_url|https://qr.nspk.ru/BD100016LEQESRF99U1BT85N87PBGI8L?type=02&bank=100000000017&sum=100&cur=RUB&crc=249A |string |Ссылка для оплаты| |status_code| 100 |int |Код статуса платежа| Возможные ошибки, id платежа неверный или не существует ```json { "error": "NullPointerException" } ``` # Get Last 100 Payments Запрос статусов по 100 последним платежам(Реестр) Пример запроса на CURL ```shell curl --request GET \ --url'http://api.sbp.emoney.tools/core/v1/payment' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9' ``` Успешный ответ: ```json { "id": 7, "created_at": "2023-10-11T11:32:43.58536Z", "amount": 1000, "payment_purpose": "Тестовый платеж", "expiration_date": 50, "redirect_url": "https://qr.nspk.ru/AD10004JGN3P2PT98AHOU69VMOO0RIL4?type=02&bank=100000000017&sum=500000&cur=RUB&crc=C232", "status_code": 100 }, { "id": 128976, "created_at": "2023-10-18T10:53:37.727728Z", "amount": 500, "payment_purpose": "Тестовый платеж", "expiration_date": 50, "redirect_url": "https://qr.nspk.ru/BD100054E42AJNJE8S2P4AJ0R1F215F9?type=02&bank=100000000017&sum=500&cur=RUB&crc=8F42", "status_code": 600 -/-/-/-/- 98 айди платежей и их статусы } ``` ## Данные | Параметр | Значение| Тип |Описание| |:-------------|:---------------|:---------------:|:-------------| | id| 7 | int |id транзакции| | created_at|2023-10-11T11:32:43.585359744Z| string |Дата и время создания транзакции| | amount| 1000| int |Сумма транзакции | | payment_purpose| Тестовый платеж | string |Цель платежа физического лица| | expiration_date| 5 | int | Срок ссылки для оплаты (в минутах) | |payment_method | 2 | int |Метод платежа | |redirect_url|https://qr.nspk.ru/BD100016LEQESRF99U1BT85N87PBGI8L?type=02&bank=100000000017&sum=100&cur=RUB&crc=249A |string |Ссылка для оплаты| |status_code| 100 |int |Код статуса платежа| Возможные ошибки, время токена истекло или токен неверный ```json { "message": "Forbidden" } ``` #### Коды и статусы транзакции: | Параметр | Значение| Описание|Категория статуса| |:-------------|:---------------|:-------------|:-------------| | 400 | Final status - Fail|Не успех/Отказ|Финальный| | 600 |Final status - Success|Успешной завершение операции|Финальный| | Any other statuses | In progress|Ожидание|Информационный| #### Коды ошибок, НЕ являются статусами транзакций |error_code|name|description |Описание | |:-------------|:---------------|:-------------|:-------------| | 4000|SUCCESS |Success | Успех | | 4001|BAD_REQUEST |Query parameter not set correctly |Параметр запроса установлен неправильно| | 4002|PAYMENT_ERROR |Payment failed | Платеж не прошел| | 4003|NOT_FOUND |No terminal found for MID |Терминал проекта не найден | | 4004|NOT_FOUND |Terminal not found |Терминал не найден | | 4005|UNAUTHORIZED |User is not registered |Пользователь не зарегистрирован| | 4006|INSERT_ERROR |Error when saving data to database |Ошибка при сохранении данных в базу данных| | 4007|NOT_FOUND |Payment not found |Платеж не найден | | 4008|FORBIDDEN |Problems saving data |Проблемы с сохранением данных | | 4009|FORBIDDEN |Out of limits | Лимит на транзакцию превышен| | 4011|PRECONDITION FAILED|Payment amount precondition failed |Не удалось выполнить предварительное условие суммы платежа| | 4012|ACCESS_DENIED |The user does not have the necessary access rights to retrieve this payment |Пользователь не имеет необходимых прав доступа для получения этого платежа| | 4013|NOT_FOUND |Merchant terminal not found |Терминал мерчанта не найден| #### Коды причин отказа |error_code|name|описание | |:-------------|:---------------|:-------------| | 0|NO_ERRORS |нет ошибок | | 10|PAYMENT_CREATION_ERROR | Параметр запроса установлен неправильно| | 20|IGNORED_BY_PAYER |Клиентом(физ. лицом) брошена страница оплаты | | 30|REJECTED_BY_NSPK |Отказ от НСПК | | 40|REJECTED_BY_GATEWAY | Отказ шлюза |