API приложения Мобильный кассир (1.0.0)

Download OpenAPI specification:Download

Описание API произведено в формате OpenAPI 3.0.0.

Общая информация

Взаимодействие с сервисом осуществляется по схеме запрос-ответ. Запросы отправляются в формате JSON методом POST. В качестве безопасного доступа к сервису во всех методах используется JWT-токен, он генерируется GET-запросом /public/login, параметр accessToken

Статусы заказов

Статус Описание Финальный
CREATED Заказ создан Да
DECLINED Заказ отклонен Да
EXPIRED Время актуальности заказа истекло Да
IN_PROCESS Статус заказа не определен, неoбходимо запросить уточнение Нет
IPS_ACCEPTED Успешная оплата по СБП Да
QRCDATA_CREATED Получение QR кода прошло успешно Нет
PAID Выплата произведена Да
REFUNDED Заказ возмещен Да

Сервис уведомлений

Уведомления (webhook, callback) предствляют собой POST запросы, отправляемые системой по факту изменения статуса заказа на адрес, указанный в параметре CallbackUrl метода order. Формат уведомлений соответствует ответу на запрос статуса. Система будеет осуществлять повторные попытки отправки уведомлений до получения http-кода 200 или истечения тайм-лимита. В заголовке http запроса передается параметр payment-sign - подпись, результат подписи исходного тела нотификации (Body из http запроса) приватным ключом, в кодировке base64. Для валидации подписи необходимо использовать публичный ключ:

-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtlD5ORxXDUgnnD9Ri2IB
UcT2Ru1fMi9kub8errQdLaXdFRDZJ1mNHlMJx+CHkhM5GNkMmidAhPcYRs4h/yIb
YLiRSsR+Zl6krjcrEvrTIZ1BySNAxEuCzWGFM27Ef01xNOSPEgtptAmop6vRuaiS
ha2vB5rHN1hSks1td/7xDcFG+C4cnDsTYp39rUvSSMtkW6FCbBoxNPrNOSlZGykx
OFBhOYd/uOK4z/zFSy07f4rA32KNn3zJE5eb6tzNMRNa6lOL96x0OYzw/P6oaS5b
sugVehAM1TGBCzm4Xmz1VZVBhxd3V7VoJuf/0C0W2Yfer+E/G0s3DDWmjzqhbvrc
Eb0y1kOZn4Z39jswv5Bkk8NyqHfNe0dE4pX+dSnfhC/9J5xFZy/CknclEM/0waY8
36iYIy+MaRsQdWXjbvP1AVk/yq2RlXCaOnK7GPvxAP1qjcgt56cGUOks9H9X6lba
PcJd+KDWde1aZZJLUpxu7JDIVTruDy/KrxDtJYi7Mz40Y6pnsKXzPHzVr0km9LI9
zK1j24OS1RIbO2fMM9D2zNQnSUV//aR+/xb7W2UgL2L0GRl7nDzqQL2dLvStHG9O
yUtnH5R/hPuIZqIDZx1N52F1JwArfDY0j9t5suAqN0VXJe2N77cYJ0x2LDeg+rLl
KsdjLKRDtKpXormCUTs/V+0CAwEAAQ==
-----END PUBLIC KEY-----

Пример для проверки подписи при интеграции средствами openssl. В командной строке выполняем команду:

Декодируем base64:

 certutil -decode catsign.txt sign.txt.dec

Проверяем подпись:

openssl dgst -sha1 -verify PublicStage.key -signature sign.txt.dec callback.txt

Где catsign.txt - подпись из заголовка Payment-Sign, PublicStage.key - публичный ключ, callback.txt - тело коллбека.

В случае успешной проверки будет сообщение Verified OK.

Проверка статуса заказа get обязательна по истечении срока жизни заказа. Через 30 мин после создания заказа отправка уведомления не гарантирована.

Authorization

Получение доступа к системе

Request Body schema: application/json
login
string

Логин (email) кассира в системе

password
string

пароль кассира в системе

Responses

Request samples

Content type
application/json
{
  • "login": "mail@email.com",
  • "password": "Password123"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "login success",
  • "accessToken": "string",
  • "expiresAccess": "string",
  • "refreshToken": "string",
  • "expiresRefresh": "string"
}

Orders

получение списка заказов

Authorizations:
Authorization
query Parameters
tspId
integer <unit64>

Id ТСП по которому проходит оплата

dateFrom
string <date-time>

дата начала периода отслеживания заказов

dateTo
string <date-time>

дата окончания периода отслеживания заказов

status
string

текущий статус заказа

limit
number

Limit count orders. Default 30

offset
number

Offset of orders. Default 0

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "orders": [
    ],
  • "meta": {
    }
}

Создание заказа

Создать заказ можно двумя способами. В первом случае в orderAmount передается сумма заказа в валюте, после создания заказа сумма будет переконвертирована в рубли и платеж будет принят в рублях, все комиссии будут включены в итоговую сумму оплаты. Во втором случе сумма передается в поле paymentAmount, сумма к оплате останется в рублях, но система сконвертирует ее в валюту и вычтет комиссии. Сумма должна передаваться в копейках (центах, евроцентах etc.). Пример если передать в orderAmount значение 100, сумма к оплате будет составлять 100+комиссия. Если передать в paymentAmount 100, сумма к оплате будет 100, также в OrderAmount будет зафиксирована сумма за вычетом комиссий. Для создания заказа на выплату обязательно должен быть передан type PayOut, без указанного типа продолжить создание выплаты не получится. При создании заказа на прием тип можно не передавать, по умолчанию type PayIn.

Authorizations:
Authorization
Request Body schema: application/json
One of
merchantOrderId
string

идентификатор заказа продавца, может был заполнен номером заказа из системы продавца

paymentAmount
required
integer

сумма, которую оплатит покупатель, передается в копейках

orderCurrency
required
string

изначальная валюта заказа, доступные валюты USD, EUR, AED, THB, RUB, TRY

paymentCurrency
string

итоговая валюта заказа, в которой будет произведена оплата

tspId
required
integer

Id ТСП по которому проходит оплата

description
string

описание заказа, поле для заметки по заказу

callbackUrl
string

адрес, на который будет отправлен коллбек

Responses

Request samples

Content type
application/json
Example
{
  • "merchantOrderId": "merchantOrderId",
  • "orderAmount": 100,
  • "orderCurrency": "EUR",
  • "tspId": 1,
  • "description": "comment",
  • "callbackUrl": "callback.com"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "description": "",
  • "order": {
    }
}

оплата заказа

Authorizations:
Authorization
path Parameters
id
required
integer

Идентификатор заказа в системе

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "order": {
    }
}

получение данных заказа

Authorizations:
Authorization
path Parameters
id
required
integer

Идентификатор заказа в системе

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "order": {
    }
}

выплата на карту

для создания выплаты order обязательно должен быть создан с параметром type PayOut. При получении статуса IN_PROCESS неoбходимо запросить уточнение

Authorizations:
Authorization
path Parameters
id
required
integer
Request Body schema: application/json
pan
required
string

номер карты получателя

holder
string

Имя и Фамилия получателя

phone
string

номер телефона получателя

Responses

Request samples

Content type
application/json
{
  • "pan": 4189732800687140,
  • "holder": "Ivan Ivanov",
  • "phone": 79998887766
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "description": "",
  • "order": {
    }
}

возврат заказа

Authorizations:
Authorization
path Parameters
id
required
integer

Идентификатор заказа в системе

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "order": {
    }
}

Status

статус заказа

Получение текущего статуса заказа

path Parameters
id
required
integer <unit64>

Идентификатор заказа в системе

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "order": {
    }
}

Currency

список валют

path Parameters
tspId
required
integer <unit64>

Id ТСП по которому будет производиться оплата

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "description": "string",
  • "currencies": {
    }
}