Pay-In
Pay-In — создание
POST /payments — создать входящий платёж от вашего клиента. Тип перевода задаётся полем method: c2c (карта), sbp (СБП), sim, deeplink_ru.
| Поле | Тип | Описание | |||
|---|---|---|---|---|---|
method | string | c2c \ | sbp \ | sim \ | deeplink_ru |
amount | integer | Сумма в рублях (10000 = 10 000 ₽) | |||
bank | string? | Код банка. Список — GET /public/banks | |||
ext_id | string | Ваш ID заказа. Защита от дублей при ретраях | |||
client_id | string? | Идентификатор вашего клиента | |||
notify_url | string? | URL вебхука по этой сделке. Если пусто — webhook сайта |
cURL
curl -X POST https://HOST/api/v1/payments \
-H "X-API-Key: vp_live_…" \
-H "Content-Type: application/json" \
-d '{
"method": "sbp",
"amount": 10000,
"bank": "sberbank",
"ext_id": "order_8841",
"notify_url": "https://shop.example/webhooks/velpay"
}'Node.js
const resp = await fetch(`${BASE}/payments`, {
method: "POST",
headers: { "X-API-Key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({
method: "sbp",
amount: 10000,
ext_id: "order_8841",
notify_url: "https://shop.example/webhooks/velpay",
}),
});
const payment = await resp.json();
// payment.requisites — показать клиенту
// или redirect(payment.payment_url)Python
import requests
r = requests.post(
f"{BASE}/payments",
headers={"X-API-Key": KEY},
json={"method": "sbp", "amount": 10000, "ext_id": "order_8841",
"notify_url": "https://shop.example/webhooks/velpay"},
)
payment = r.json()
print(payment["id"], payment["status"], payment.get("requisites"))PHP
$ch = curl_init($base . '/payments');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: '.$key, 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'method' => 'sbp', 'amount' => 10000, 'ext_id' => 'order_8841',
'notify_url' => 'https://shop.example/webhooks/velpay',
]),
]);
$payment = json_decode(curl_exec($ch), true);Ответ 201 — объект Payment с реквизитами уже внутри. Каскад подбирает канал синхронно (до 4 с на шаг). Покажите requisites клиенту сразу.
{
"id": "pay_ab12cd",
"ext_id": "order_8841",
"status": "awaiting_payment",
"method": "sbp",
"amount": 10000,
"payment_url": "https://HOST/pay/pay_ab12cd",
"requisites": {
"type": "sbp",
"value": "+79191234567",
"holder": "Иванов Иван И",
"bank": "Сбербанк"
},
"valid_until": "2026-09-17T12:20:00Z"
}Для c2c в requisites.value — номер карты, для sbp / sim — телефон. Если ни один канал не ответил — 402 с кодом no_requisites. Повторите через 15–30 секунд.