Быстрый старт
Токен, привязка карты и первое списание
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, создающих деньги или карты: повтор с тем же
ключом вернёт первый результат, а не создаст второе списание.