В процессе платёжа пользователь совершает следующие действия:
В Амра Касса есть несколько сценариев проведения оплаты. Сценарии различаются в зависимости от того, где пользователь выбирает способ оплаты и вводит платёжные данные. В некоторых случаях пользователю нужно дополнительно подтвердить, что он согласен на оплату выбранным способом.
Каждый платёж проходит в одну стадию. Если пользователь внёс оплату, Амра Касса сразу списывает деньги и перечисляет их на ваш счёт.
Платёж — основная сущность API для приёма платёжей.
Чтобы создать платёж, вам нужно передать в запросе:
Также вы можете передать дополнительные данные, например номер заказа в вашей системе. API вернёт их без изменений. Данные необходимо передавать в объекте metadata в виде набора пар «ключ-значение».
Пример запроса на создание платёжа
curl https://kassa.amra-bank.com/api/v1/payments \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Content-Type: application/json' \
-d '{
"amount": {
"value": "100.00",
"currency": "RUB"
},
"returnUrl": "https://www.merchant-website.com/return_url",
"description": "Заказ №1",
"metadata": {
"order_id": "37"
}
}'
В ответ на запрос придёт созданный объект Платёжа.
Пример созданного объекта платёжа
{
"status": "canceled",
"capturedAt": null,
"canceledAt": null,
"cancelError": null,
"cardInfo": null,
"id": "947d8e55-f740-4058-b665-98360379d748",
"amount": {
"currency": "RUB",
"value": "100.00"
},
"createdAt": "2020-01-01T10:10:10.100Z",
"description": "Заказ №2020",
"confirmation": {
"type": "redirect",
"confirmationUrl": "https://kassa.amra-bank.com/pages/v1/payment-confirm/947d8e55-f740-4058-b665-98360379d748",
},
"metadata": {
"orderId": 2020
},
"recipient": "b94e0d8d-b107-44aa-b6ba-0cb8d2176bca"
}
Для большинства способов оплаты после создания платёжа вам нужно получить согласие от пользователя, что он готов заплатить. Для этого пользователю нужно дополнительно что-то сделать, например пройти 3-D Secure при оплате банковской картой, подтвердить оплату в платёжном сервисе партнёра или оплатить счёт в интернет-банке.
Если от пользователя нужно получить подтверждение, созданный платёж сначала перейдёт в статус pending. В следующие статусы (succeeded или waiting_for_capture) платёж перейдёт, только если пользователь согласится внёсти оплату.
Если подтверждение не требуется, платёж сразу перейдёт в статус succeeded или waiting_for_capture.
Если пользователь передумает платить или что-то пойдёт не так (например, на счёте не окажется нужной суммы), платёж отменится и перейдёт в статус canceled.
Пользователь может подтвердить платёж только за определённый срок. Если он не сделает этого, Амра Касса отменит платёж, указав причину expired_on_confirmation. Подробнее о причинах отмены платёжа