SmartPay API (1.02)
Скачать OpenAPI-спецификацию:Скачать
Независимо от способа создания смартапа (через Code, Graph, webhook и т. д.), для подключения приема платежей вы можете использовать методы SmartPay API.
В заголовке каждого запроса необходимо передавать токен в следующем формате:
- Имя заголовка:
Authorization
- Тип токена:
Bearer
- Токен: <платежный токен>
Подробнее о получении параметров авторизации — в разделе Получение токена.
Получить список счетов клиента
Получить список счетов
QUERY-ПАРАМЕТРЫ
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) Идентификатор пользователя, заполняется только если передается токен партнера, для фильтрации по пользователю. Если передается токен клиента, то данные автоматически фильтруются по пользователю | |
date_from | string <date> Example: date_from=2020-04-29 Начальная дата создания счета |
date_to | string <date> Example: date_to=2020-08-31 Конечная дата создания счета |
invoice_status | string Example: invoice_status=created,executed Список статусов счетов, которые нужно отдать в выборке. Если отсутствует, то отдаются только счета со статусом confirmed и paid. Возможные значения all,created,executed,cancelled,paid,confirmed,reversed,refunded |
amount_from | integer Example: amount_from=12345 Сумма счета с, в копейках |
amount_to | integer Example: amount_to=112345 Сумма счета по, в копейках |
masked_pan | string Example: masked_pan=0429 4 последних цифры номера карты |
order_num | string Example: order_num=AGR-445611 Номер заказа в системе магазина, для клиента |
page | integer Example: page=1 Results page you want to retrieve (0..N) |
size | integer Example: size=20 Number of records per page. |
Ответы
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}, - "invoices": [
- {
- "invoice_id": 1234567890,
- "invoice_date": "2020-04-29T08:18:03+03",
- "invoice_status": "created",
- "amount_create": {
- "amount": 11836
}, - "amount_confirm": {
- "amount": 11836
}, - "amount_current": {
- "amount": 11836
}, - "order_number": 1234567,
- "currency": "RUB",
- "description": "Покупка внутриигрового контента в игре Маша и Медведь, салон красоты Чародейка.",
- "language": "ru-RU",
- "org_name": "ООО Ромашка",
- "org_inn": "1234567890",
- "trademarks": "Ромашка;Romashka;Romashka street",
- "trade_name": "Romashka",
- "visual_name": "Покупка/продление подписки",
- "visual_amount": "1 500,45 ₽",
- "payment_info": {
- "payment_date": "2019-08-24T14:15:22Z",
- "payment_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
- "device_info": {
- "device_platform_type": "iOS",
- "device_platform_version": "13.6.1",
- "device_model": "iPhone 7",
- "device_manufacturer": "Apple",
- "device_id": "83c3f257-46d8-41fe-951b-f79d04e288c2",
- "surface": "SBOL",
- "surface_version": "11.5.0"
}, - "loyalty_info": {
- "service_code": "sbrf_spasibo",
- "service_name": "Сбербанк Спасибо",
- "change_rate": 1,
- "payment_bonus": 19800,
- "award_bonus": 21850,
}, - "masked_pan": "**1111",
- "expiry_date": "201912",
- "cardholder": "Ivan Petrov",
- "payment_system": "Visa",
- "paysys": "Эквайринг Сбербанка",
- "payment_way": "Sber Pay",
- "payment_way_code": "SberPay",
- "bank_info": {
- "bank_name": "ПАО Сбербанк",
- "bank_country_code": "RU",
- "bank_country_name": "Россия",
}
},
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}
Создание счета на оплату
Создайте счет на оплату.
Схема запроса: application/json
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) | |
ptype | integer Enum: 0 1 Тип оплаты счета:
Если параметр не указан, формируется одностадийная оплата. |
object Информация о создаваемом счете |
Ответы
Пример запроса
- Payload
{- "user_id": {
- "partner_client_id": "43u111539f0q"
}, - "ptype": 0,
- "invoice": {
- "purchaser": {
- "email": "qq@dd.eof",
- "phone": 9123456789,
- "contact": "email"
}, - "delivery_info": {
- "address": {
- "country": "RU",
- "city": "Москва",
- "address": "ул. Вавилова, 19, офис 1"
}, - "delivery_type": "courier",
- "description": "Перезвонить за 1,5 часа"
}, - "invoice_params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "order": {
- "order_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
- "order_number": 145,
- "order_date": "2020-04-29T08:17:03+03",
- "service_id": 223,
- "amount": 11836,
- "currency": "RUB",
- "purpose": "Покупка в игре «Маша и Медведь, салон красоты Чародейка».",
- "description": "Покупка внутриигрового контента в игре «Маша и Медведь, салон красоты Чародейка».",
- "language": "ru-RU",
- "expiration_date": "2019-08-24T14:15:22Z",
- "tax_system": 0,
- "order_bundle": [
- {
- "position_id": 1,
- "name": "Кучка из 100 кристаллов для использования при нырянии",
- "item_params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "quantity": {
- "value": 1.05,
- "measure": "кг."
}, - "item_amount": 11836,
- "currency": "RUB",
- "item_code": "com.MashaAndTheBear.HairSalon.crystal100",
- "item_price": 11836,
- "discount_type": "percent",
- "discount_value": 5.25,
- "interest_type": "agentPercent",
- "interest_value": 15.105,
- "tax_type": 6,
- "tax_sum": 2367,
}
]
}
}
}
Пример ответа
- 200
- 400
- default
{- "invoice_id": 1234567890,
- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}
}
Получение данных по счету
Получите данные по invoice_id. Возможен поиск счета по паре service_id+order_id, если invoice_id неизвестен. Для этого нужно указать invoice_id = 0, а в запросе — service_id и order_id.
PATH-ПАРАМЕТРЫ
invoice_id required | string Example: 1234567890 ID счета |
QUERY-ПАРАМЕТРЫ
service_id | string Example: service_id=1234 ID сервиса для поиска. Обычно используется в паре с параметром order_id |
order_id | string Example: order_id=d290f1ee-6c54-4b01-90e6-d701748f0852 Идентификатор заказа, переданный при создании счета |
inv_status | string Example: inv_status=executed Статус счета для начала отслеживания изменений. Если при вызове запроса счет найден, статус равен значению этого параметра, то ответ отдается только при смене статуса или по таймауту. Используется в "long polling" запросах для отслеживания факта проведения оплаты |
wait | integer Example: wait=50 Время в секундах, которое источник запроса будет ожидать до смены статуса счета. Используется в "long polling" запросах для отслеживания факта проведения оплаты. |
device_platform_type | string Example: device_platform_type=iOS Наименование операционной системы устройства |
device_platform_version | string Example: device_platform_version=13.6.1 Версия операционной системы устройства |
device_model | string Example: device_model=iPhone 7 Модель устройства |
device_manufacturer | string Example: device_manufacturer=Apple Производитель устройства |
device_id | string Example: device_id=83c3f257-46d8-41fe-951b-f79d04e288c2 Серийный номер устройства |
surface | string Example: surface=SBOL Поверхность |
surface_version | string Example: surface_version=11.5.0 Версия ПО |
Ответы
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}, - "invoice_id": 1234567890,
- "invoice_date": "2020-04-29T08:18:03+03",
- "invoice_status": "created",
- "invoice": {
- "purchaser": {
- "email": "qq@dd.eof",
- "phone": 9123456789,
- "contact": "email"
}, - "delivery_info": {
- "address": {
- "country": "RU",
- "city": "Москва",
- "address": "ул. Вавилова, 19, офис 1"
}, - "delivery_type": "courier",
- "description": "Перезвонить за 1,5 часа"
}, - "invoice_params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "order": {
- "order_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
- "order_number": 145,
- "order_date": "2020-04-29T08:17:03+03",
- "service_id": 223,
- "amount": 11836,
- "currency": "RUB",
- "purpose": "Покупка в игре «Маша и Медведь, салон красоты Чародейка».",
- "description": "Покупка внутриигрового контента в игре «Маша и Медведь, салон красоты Чародейка».",
- "language": "ru-RU",
- "expiration_date": "2019-08-24T14:15:22Z",
- "tax_system": 0,
- "trade_name": "Romashka",
- "visual_name": "Покупка/продление подписки",
- "org_name": "ООО Ромашка",
- "org_inn": "1234567890",
- "visual_amount": "1 500,45 ₽",
- "order_bundle": [
- {
- "position_id": 1,
- "name": "Кучка из 100 кристаллов для использования при нырянии",
- "item_params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "quantity": {
- "value": 1.05,
- "measure": "кг."
}, - "item_amount": 11836,
- "currency": "RUB",
- "item_code": "com.MashaAndTheBear.HairSalon.crystal100",
- "item_price": 11836,
- "discount_type": "percent",
- "discount_value": 5.25,
- "interest_type": "agentPercent",
- "interest_value": 15.105,
- "tax_type": 6,
- "tax_sum": 2367,
}
]
}
}, - "payment_info": {
- "payment_date": "2019-08-24T14:15:22Z",
- "payment_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
- "payment_params": {
- "key": "googlePurchaseToken",
- "value": "ameinkbophchljaejnocadib.AO-J1Oyrh3GSPGrLocZlW4UXiilTv_fMDz8Wpjadky8-26BhzBPMiwtoKql706e3ntW2BQNdl9WSiBjsjLebCcz3BhFyM7FVxDnOB1TFeeA0SHnco9j8G_OZVxghv7bwXWLgWsaUUGfw"
}, - "device_info": {
- "device_platform_type": "iOS",
- "device_platform_version": "13.6.1",
- "device_model": "iPhone 7",
- "device_manufacturer": "Apple",
- "device_id": "83c3f257-46d8-41fe-951b-f79d04e288c2",
- "surface": "SBOL",
- "surface_version": "11.5.0"
}, - "loyalty_info": {
- "service_code": "sbrf_spasibo",
- "service_name": "Сбербанк Спасибо",
- "change_rate": 1,
- "payment_bonus": 19800,
- "award_bonus": 21850,
}, - "card_id": "ad454ffg-6c54-4b01-90e6-d701748f0851",
- "name": "Главная",
- "paysys_code": "RBS-shortname",
- "masked_pan": "**1111",
- "expiry_date": "201912",
- "cardholder": "Ivan Petrov",
- "payment_system": "Visa",
- "paysys": "Эквайринг Сбербанка",
- "payment_way": "Sber Pay",
- "payment_way_code": "SberPay",
- "bank_info": {
- "bank_name": "ПАО Сбербанк",
- "bank_country_code": "RU",
- "bank_country_name": "Россия",
}
}, - "payment_methods": {
- "user_message": "Для подключения подписки сохраните банковскую карту в мобильном приложении СалютАпп",
- "methods": [
- {
- "method": "QR",
- "action": "Оплатить по QR-коду"
}
]
}
}
Запуск оплаты счета
Запустите оплату счета, указав платежный инструмент и дополнительные данные для оплаты.
PATH-ПАРАМЕТРЫ
invoice_id required | string Example: 1234567890 ID счета |
Схема запроса: application/json
Информация о платежном инструменте
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) | |
Array of objects (operation) [ items ] | |
object (device) Информация об устройстве | |
return_url | string URL, на который требуется переадресовать пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, |
fail_url | string URL, на который требуется переадресовать пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, |
return_deeplink | string Deeplink, на который требуется переадресовать пользователя после успешной оплаты через мобильное приложение. Указывается либо |
Ответы
Пример запроса
- Payload
{- "user_id": {
- "partner_client_id": "43u111539f0q"
}, - "operations": [
- {
- "operation": "payment",
- "code": "sbrf_spasibo",
- "value": 19800
}
], - "device_info": {
- "device_platform_type": "iOS",
- "device_platform_version": "13.6.1",
- "device_model": "iPhone 7",
- "device_manufacturer": "Apple",
- "device_id": "83c3f257-46d8-41fe-951b-f79d04e288c2",
- "surface": "SBOL",
- "surface_version": "11.5.0"
}, - "return_url": "string",
- "fail_url": "string",
- "return_deeplink": "string"
}
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}, - "deeplink": "sberbankonline://connect?addcard",
- "product": {
- "provider": "applestore",
- "product_code": "d290f1ee-6c54-4b01-90e6-d701748f0851",
- "quantity": 1.5,
- "user_uid": {
- "user_uid": "d43f2eb6-f299-439b-8a3b-43b114531f0d"
}, - "params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "inapp_type": "consumable"
}
}
Подтверждение оплаты счета для двустадийного платежа
Инициатор присылает полное или частичное подтверждение для завершения оплаты счета при двухстадийной оплате. Счет должен находиться в состоянии 3 «Деньги временно заблокированы». По завершении счет переходит в состояние 0 «Оплачен»
PATH-ПАРАМЕТРЫ
invoice_id required | string Example: 1234567890 ID счета |
Заголовки
author | string Пользователь, который производит изменения |
Схема запроса: application/json
Инфо о подтверждении/отмене счета
object Информация о созданном счете | |||||||||||
|
Ответы
Пример запроса
- Payload
{- "invoice": {
- "order": {
- "amount": 11836,
- "currency": "RUB",
- "order_bundle": [
- {
- "position_id": 1,
- "name": "Кучка из 100 кристаллов для использования при нырянии",
- "item_params": [
- {
- "key": "packageName",
- "value": "com.MashaAndTheBear.HairSalon"
}
], - "quantity": {
- "value": 1.05,
- "measure": "кг."
}, - "item_amount": 11836,
- "currency": "RUB",
- "item_code": "com.MashaAndTheBear.HairSalon.crystal100",
- "item_price": 11836,
- "discount_type": "percent",
- "discount_value": 5.25,
- "interest_type": "agentPercent",
- "interest_value": 15.105,
- "tax_type": 6,
- "tax_sum": 2367,
}
]
}
}
}
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}
}
Отмена оплаты счета при двустадийном платеже
Инициатор присылает запрос на отмену оплаты счета при двухстадийной оплате. Счет должен находиться в состоянии 3 «Деньги временно заблокированы». По завершении счет переходит в состояние 6 «Отменен»
PATH-ПАРАМЕТРЫ
invoice_id required | string Example: 1234567890 ID счета |
Заголовки
author | string Пользователь, который производит изменения |
Ответы
Пример ответа
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}
}
Полный или частичный возврат
Инициатор присылает запрос на возврат, полный или частичный. Счет должен находиться в состоянии 0 «Оплачен». Запрос можно выполнять несколько раз, вплоть до полного возврата. Если произведен полный возврат, то счет переходит в состояние 7 «Возвращен»
PATH-ПАРАМЕТРЫ
invoice_id required | string Example: 1234567890 ID счета |
Заголовки
author | string Пользователь, который производит изменения |
Схема запроса: application/json
Инфо об отмене счета. В частности, отменяемая сумма и корзина возврата
object Корзина возврата | |||||||||||||
|
Ответы
Пример запроса
- Payload
{- "invoice": {
- "order": {
- "current_amount": 20038,
- "refund_amount": 11836,
- "currency": "RUB",
- "order_bundle": [
- {
- "position_id": 1,
- "name": "Кучка из 100 кристаллов для использования при нырянии",
- "quantity": {
- "value": 1.05,
- "measure": "кг."
}, - "item_amount": 11836,
- "item_code": "com.MashaAndTheBear.HairSalon.crystal100"
}
]
}
}
}
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}
}
Получить список карт клиента
Получить список связок для клиента.
QUERY-ПАРАМЕТРЫ
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) Идентификатор пользователя, заполняется только если передается токен партнера, для фильтрации по пользователю. Если передается токен клиента, то данные автоматически фильтруются по пользователю |
Ответы
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}, - "cards": [
- {
- "card_id": "ad454ffg-6c54-4b01-90e6-d701748f0851",
- "name": "Главная",
- "paysys_code": "RBS-shortname",
- "masked_pan": "**1111",
- "expiry_date": "201912",
- "cardholder": "Ivan Petrov",
- "payment_system": "Visa",
- "paysys": "Эквайринг Сбербанка",
- "payment_way": "Sber Pay",
- "payment_way_code": "SberPay",
- "bank_info": {
- "bank_name": "ПАО Сбербанк",
- "bank_country_code": "RU",
- "bank_country_name": "Россия",
}
}
]
}
Добавить банковскую карту клиента
Добавить связку для банковской карты. Затем эту связку можно использовать для безакцептной оплаты. По факту это создание счета на оплату, например, 1 руб. для проверки валидности карты, после подтверждения оплаты счет автоматически удаляется.
Схема запроса: application/json
return_urls
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) | |
object (device) Информация об устройстве | |
required | object (order_id) |
code | string Enum: "new" "app2sbol" Код инструмента |
return_url | string URL, на который требуется переадресовать пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, |
fail_url | string URL, на который требуется переадресовать пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, |
return_deeplink | string Deeplink, на который требуется переадресовать пользователя после успешной оплаты через мобильное приложение. Указывается либо |
Ответы
Пример запроса
- Payload
{- "user_id": {
- "partner_client_id": "43u111539f0q"
}, - "device_info": {
- "device_platform_type": "iOS",
- "device_platform_version": "13.6.1",
- "device_model": "iPhone 7",
- "device_manufacturer": "Apple",
- "device_id": "83c3f257-46d8-41fe-951b-f79d04e288c2",
- "surface": "SBOL",
- "surface_version": "11.5.0"
}, - "order_id": {
- "order_id": "d290f1ee-6c54-4b01-90e6-d701748f0851"
}, - "code": "app2sbol",
- "return_url": "string",
- "fail_url": "string",
- "return_deeplink": "string"
}
Пример ответа
- 200
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}, - "deeplink": "sberbankonline://connect?addcard"
}
Удалить банковскую карту
Удалить карту.
PATH-ПАРАМЕТРЫ
card_id required | string Example: ad454ffg-6c54-4b01-90e6-d701748f0851 ID карты |
QUERY-ПАРАМЕТРЫ
partner_client_id (object) or user_uid (object) or encrypted_sub_id (object) or partner_client_sub_id (object) Идентификатор пользователя, заполняется только если передается токен партнера, для фильтрации по пользователю. Если передается токен клиента, то данные автоматически фильтруются по пользователю |
Ответы
Пример ответа
- 400
- default
{- "error": {
- "user_message": "",
- "error_description": "",
- "error_code": "0"
}
}