Сценарии подключения
Сервис рассчитан на постоянный приём платежей на сайте или в приложении: платёж создаёт ваш сервер, покупатель платит на защищённой странице, результат приходит вебхуком. Ниже три типовых сценария; запросы и поля — в разделах Платежи и Объекты API.
Интернет-магазин
- Оформление заказа. Ваш сервер создаёт платёж POST /payments с суммой, номером заказа в order_id, позициями чека и return_url страницы заказа. В заголовке Idempotency-Key передайте номер заказа: повтор запроса при обрыве связи вернёт тот же платёж, а не создаст второй.
- Оплата. Покажите виджет с id платежа на странице оформления или перенаправьте покупателя на payment_url. Если способ оплаты выбран у вас на сайте, передайте method — виджет сразу откроет форму карты или QR СБП. Email и телефон для чека берём из customer.
- Результат. Примите вебхук payment.succeeded, найдите заказ по data.order_id, сверьте data.amount и выдайте заказ. Покупателя после оплаты мы вернём на return_url с параметром payment_id, но возврат — не подтверждение оплаты: покупатель может закрыть вкладку раньше.
- Отмена неоплаченного заказа. Если заказ отменён до оплаты, закройте платёж запросом POST /payments/{id}/cancel, иначе ссылка на оплату действует до expires_at.
- Возврат. POST /refunds на всю сумму или часть; результат — событие refund.succeeded или refund.failed.
curl -X POST https://platezhka.online/api/v1/payments \
-H "Authorization: Bearer sk_test_XXXX" \
-H "Idempotency-Key: order-1001" \
-H "Content-Type: application/json" \
-d '{
"amount": 100000,
"order_id": "1001",
"description": "Заказ 1001",
"return_url": "https://shop.example/orders/1001",
"customer": {
"id": "user-42",
"email": "buyer@example.com"
},
"items": [
{
"text": "Товар",
"price": 100000,
"quantity": 1
}
]
}'
<?php
$ch = curl_init('https://platezhka.online/api/v1/payments');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer sk_test_XXXX',
'Idempotency-Key: order-1001',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'amount' => 100000,
'order_id' => '1001',
'description' => 'Заказ 1001',
'return_url' => 'https://shop.example/orders/1001',
'customer' => [
'id' => 'user-42',
'email' => 'buyer@example.com',
],
'items' => [
[
'text' => 'Товар',
'price' => 100000,
'quantity' => 1,
],
],
]),
]);
$payment = json_decode(curl_exec($ch), true);
// Сохраните $payment['id'] в заказе: его получит виджет на странице оформления
// (или отправьте покупателя на $payment['payment_url'])
import requests
response = requests.post(
"https://platezhka.online/api/v1/payments",
headers={"Authorization": "Bearer sk_test_XXXX", "Idempotency-Key": "order-1001"},
json={
"amount": 100000,
"order_id": "1001",
"description": "Заказ 1001",
"return_url": "https://shop.example/orders/1001",
"customer": {
"id": "user-42",
"email": "buyer@example.com",
},
"items": [
{
"text": "Товар",
"price": 100000,
"quantity": 1,
},
],
},
)
payment = response.json()
# Сохраните payment["id"] в заказе: его получит виджет на странице оформления (или отправьте на payment["payment_url"])
const response = await fetch("https://platezhka.online/api/v1/payments", {
method: "POST",
headers: {
Authorization: "Bearer sk_test_XXXX",
"Idempotency-Key": "order-1001",
"Content-Type": "application/json",
},
body: JSON.stringify({
amount: 100000,
order_id: "1001",
description: "Заказ 1001",
return_url: "https://shop.example/orders/1001",
customer: {
id: "user-42",
email: "buyer@example.com",
},
items: [
{
text: "Товар",
price: 100000,
quantity: 1,
},
],
}),
})
const payment = await response.json()
// Сохраните payment.id в заказе: его получит виджет на странице оформления (или отправьте на payment.payment_url)
Сервис с личным кабинетом или записью
Сервис онлайн-записи, SaaS, приложение: покупатель известен, а услуга может потребовать подтверждения (свободен ли корт, принял ли мастер запись).
- Создайте платёж с customer.id (идентификатор клиента у вас) и order_id (номер брони или счёта). По customer_id и order_id платежи находятся запросом GET /payments и в кабинете.
- Если услугу нужно подтвердить, передайте capture: "manual": деньги блокируются на карте (событие payment.authorized), но не списываются.
- Слот подтверждён — POST /payments/{id}/capture; не подтверждён — POST /payments/{id}/cancel, деньги разблокируются.
curl -X POST https://platezhka.online/api/v1/payments \\
-H "Authorization: Bearer sk_test_XXXX" -H "Idempotency-Key: booking-7781" -H "Content-Type: application/json" \\
-d '{"amount": 250000, "order_id": "booking-7781", "description": "Корт №2, 12 октября 19:00",
"capture": "manual", "method": "card", "customer": {"id": "client-305", "email": "player@example.com"},
"return_url": "https://booking.example/bookings/7781"}'
Холд доступен только для карты. Абонементы и подписки — в разделе Автосписания.
Сверка
Раз в сутки сверяйте заказы с платежами: GET /payments?created_from=2026-10-01T00:00:00+03:00&created_to=2026-10-02T00:00:00+03:00&status=succeeded. Платёж конкретного заказа — GET /payments?order_id=1001.
Без сайта
Счёт покупателю на email и многоразовая ссылка с QR-кодом создаются в кабинете (раздел «Счета и ссылки») или запросами POST /invoices и POST /payment_links: Ссылки на оплату.