CrocoPay
Вход Регистрация

Разработчику

Host-to-Host интеграция — прямое взаимодействие сервера с сервером. Вы создаёте счёт через API, получаете реквизиты и показываете их плательщику на своей стороне, без редиректа на CrocoPay.

3 эндпоинта 7 валют Header-аутентификация HMAC-подпись callback

Вы создаёте счёт через API, получаете реквизиты (карту, номер телефона или QR) и показываете их плательщику на своей стороне — без редиректа на CrocoPay.

Аутентификация

Все запросы требуют заголовки Client-Id и Client-Secret. Ключи доступны в разделе «Кассы» → иконка шестерни рядом с нужным мерчантом.

Client-Id: GnHqauRCUVtB8sECR7m
Client-Secret: vpBpXo7REyApkDnLIOpMR3lk1ndaLmY2qoZptV9cHOtjJLUDsW26GBSe2kda1IVQIMR758Z

1. Создать счёт

POST /api/v2/h2h/invoices

Создаёт новый счёт на оплату. В ответ возвращает ID счёта и платёжные реквизиты.

POST /api/v2/h2h/invoices HTTP/1.1
Host: crocopay.tech
Client-Id: GnHqauRCUVtB8sECR7m
Client-Secret: vpBpXo7REyApkDnLIOpMR3lk1ndaLmY2qoZptV9cHOtjJLUDsW26GBSe2kda1IVQIMR758Z
Content-Type: application/json

{
    "amount": 5000,
    "currency": "RUB",
    "payment_option": "TO_CARD",
    "callback_url": "https://example.com/payment?user_id=42"
}
Ответ — реквизиты карты (TO_CARD)
HTTP/1.1 200 OK

{
    "id": "911c2823-f55b-43b5-9881-d5653107f7dc",
    "status": "Pending",
    "amount": 5000,
    "currency": "RUB",
    "payment_option": "TO_CARD",
    "card": "4276 1234 5678 9012",
    "bank_receiver": "Сбербанк",
    "card_owner": "IVAN PETROV",
    "expires_at": "2026-09-15T12:30:00Z"
}
Ответ — реквизиты телефона (SBP / TRANSGRAN_SBER)
HTTP/1.1 200 OK

{
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "Pending",
    "amount": 5000,
    "currency": "RUB",
    "payment_option": "SBP",
    "card": "+79001234567",
    "bank_receiver": "Альфа-Банк",
    "card_owner": "ANNA SIDOROVA",
    "expires_at": "2026-09-15T12:30:00Z"
}
Ответ — ошибка
HTTP/1.1 422 Unprocessable Entity

{
    "status": "error",
    "message": "payment_option TO_CARD is not enabled for currency UZS"
}

2. Получить счёт

GET /api/v2/h2h/invoices/{id}

Возвращает текущий статус и реквизиты счёта по его UUID — используйте для polling'а до момента оплаты.

Pending
Ожидает оплаты
Success
Оплачен
Expired
Истёк срок оплаты
Cancelled
Отменён
Failed
Ошибка при оплате

3. Доступные методы оплаты

GET /api/v2/h2h/payment-method/available

Возвращает список методов, доступных для вашей кассы — используйте перед созданием счёта.

HTTP/1.1 200 OK

{
    "methods": [
        { "currency": "RUB", "payment_option": "TO_CARD",       "name": "Карта (любой банк РФ)" },
        { "currency": "RUB", "payment_option": "SBP",            "name": "СБП (любой банк РФ)" },
        { "currency": "RUB", "payment_option": "SBP_ALFA",       "name": "СБП Альфа-Банк" },
        { "currency": "RUB", "payment_option": "QR_NSPK",        "name": "QR НСПК" },
        { "currency": "RUB", "payment_option": "TRANSGRAN_SBER", "name": "Трансгран · SberPay" },
        { "currency": "UAH", "payment_option": "TO_CARD",        "name": "Карта (Украина)" },
        { "currency": "UZS", "payment_option": "TO_CARD",        "name": "Карта (Узбекистан)" },
        { "currency": "TJS", "payment_option": "TO_CARD",        "name": "Карта (Таджикистан)" },
        { "currency": "AZN", "payment_option": "TO_CARD",        "name": "Карта (Азербайджан)" },
        { "currency": "KZT", "payment_option": "TO_CARD",        "name": "Карта (Казахстан)" },
        { "currency": "KGS", "payment_option": "TO_CARD",        "name": "Карта (Кыргызстан)" }
    ]
}

payment_option по валютам

Значение payment_option зависит от валюты. Доступность конкретного метода для вашей кассы уточняйте у менеджера.

RUB Россия
TO_CARD Перевод на банковскую карту (любой банк РФ) Номер карты
SBP Перевод по СБП — любой банк РФ Номер телефона
SBP_ALFA Перевод по СБП — Альфа-Банк Номер телефона
SBP_TBANK Перевод по СБП — Т-Банк Номер телефона
QR_NSPK Оплата по QR-коду НСПК QR-код
MOBILE_PHONE Пополнение мобильного телефона Номер телефона
TO_CARD_TRANSGRAN Трансграничный перевод на карту (любой банк) Номер карты
SBP_TRANSGRAN Трансграничный перевод по СБП (любой банк) Номер телефона
TRANSGRAN_ALFA Трансграничный — Альфа-Банк Карта / телефон
TRANSGRAN_VTB Трансграничный — ВТБ Карта / телефон
TRANSGRAN_SBER Трансграничный — SberPay Номер телефона
TRANSGRAN_TPAY Трансграничный — T-Pay (Т-Банк) Карта / телефон
UAH Украина
TO_CARD Перевод на банковскую карту (Украина) Номер карты
UZS Узбекистан
UZCARD Перевод на карту UzCard Номер карты
HUMO Перевод на карту Humo Номер карты
PAYME Перевод через Payme Карта / телефон
CLICK Перевод через Click Карта / телефон
KZT Казахстан
BANK_TRANSFER Банковский перевод (Казахстан) Номер карты
AZN Азербайджан
BANK_TRANSFER Банковский перевод (Азербайджан) Номер карты
TJS Таджикистан
KORTI_MILLI Перевод — Корти Милли Номер карты
DUSHANBE_CITY Перевод — Душанбе Сити Банк Номер карты
KGS Кыргызстан
TO_CARD Перевод на банковскую карту (Кыргызстан) Номер карты

Webhook (Callback)

После успешной оплаты CrocoPay отправляет POST на ваш callback_url.

POST /payment?user_id=42 HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "timestamp": 1753282096,
    "subtotal": 500000,
    "percentage": 0,
    "charge_percentage": 0,
    "charge_fixed": 0,
    "total": 500000,
    "sign": "ef5954715c663e3f96194a03981a0b04dd0772bfa5164afcdb507470c9c5078d"
}
Проверка подписи (PHP)
$expected = hash_hmac('sha256',
    "{$_POST['timestamp']}|{$_POST['subtotal']}|{$_POST['percentage']}|" .
    "{$_POST['charge_percentage']}|{$_POST['charge_fixed']}|{$_POST['total']}",
    $yourClientSecret
);

if (!hash_equals($expected, $_POST['sign'])) {
    http_response_code(403);
    exit('Invalid signature');
}
// платёж подтверждён
Нужны ключи доступа?
Зарегистрируйтесь — Client-Id и Client-Secret выдаются в разделе «Кассы».
Зарегистрироваться