SplitPay

Быстрый старт

Токен, привязка карты и первое списание

1. Получите ключ

В админке откройте Мой бизнес → Мерчанты → Выпустить ключ. Сохраните clientId и clientSecret: секрет показывается один раз.

2. Получите токен

TOKEN=$(curl -s -X POST https://splitpay-api.buzzi.uz/v1/auth/token \
  -H 'content-type: application/json' \
  -d '{"clientId":"sp_…","clientSecret":"sk_…"}' | jq -r .data.accessToken)

Токен живёт час. Получайте новый, когда API ответит 401, и не кладите clientSecret в код клиента.

3. Привяжите карту

curl -X POST https://splitpay-api.buzzi.uz/v1/cards \
  -H "authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' \
  -d '{
    "externalUserId": "user-42",
    "cardNumber": "8600123456789012",
    "expiryMonth": 9,
    "expiryYear": 29
  }'

# клиенту пришёл SMS-код, подтвердите привязку
curl -X POST https://splitpay-api.buzzi.uz/v1/cards/{cardId}/confirm \
  -H "authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' \
  -d '{"code":"123456"}'

Номер карты не сохраняйте у себя и не пишите в логи: после привязки используйте только id карты.

4. Спишите деньги

curl -X POST https://splitpay-api.buzzi.uz/v1/charges \
  -H "authorization: Bearer $TOKEN" \
  -H 'idempotency-key: order-777-charge' \
  -H 'content-type: application/json' \
  -d '{
    "externalId": "order-777",
    "cardId": "…",
    "amount": 25000000,
    "recipients": [
      { "recipientId": "01a0…b24b", "share": 7000 },
      { "recipientId": "01a0…7b8d", "share": 3000 }
    ]
  }'

amount указывается в тийинах, то есть 25 000 000 это 250 000 сум. Доли задаются в базисных пунктах и в сумме дают 10000: здесь 70% и 30%.

При комиссии 5% получатели получат 166 250 и 71 250 сум. Split и чек выполняются в фоне, проверьте их статус запросом GET /v1/charges/{chargeId}.

Заголовок idempotency-key обязателен для всех POST, создающих деньги или карты: повтор с тем же ключом вернёт первый результат, а не создаст второе списание.

На этой странице