Xəbərlər
🔥
Standoff 2 Gold paketlərində endirimləri qaçırma!
🚀
Məhsulunu ValyutaMobile-da sat!
💬
Suallar üçün WhatsApp Dəstək Xidməti aktivdir
⚡
Limitli oyun məhsulları hər gün yenilənir
Технический справочник ValyutaMobile Partner API: эндпоинты, аутентификация и форматы ответов.
https://valyutamobile.com/wp-json/valyutamobile/v1Защищённые запросы требуют Bearer-токен и подпись HMAC SHA-256.
TOKEN='vm_test_YOUR_TOKEN'
TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
METHOD='GET'
TARGET='/wp-json/valyutamobile/v1/catalog?page=1&per_page=20'
BODY=''
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | awk '{print $2}')
CANONICAL=$(printf '%s\n%s\n%s\n%s' "$TS" "$METHOD" "$TARGET" "$BODY_HASH")
SIGNATURE=$(printf '%s' "$CANONICAL" | openssl dgst -sha256 -hmac "$TOKEN" | awk '{print $2}')
curl "https://valyutamobile.com$TARGET" \
-H "Authorization: Bearer $TOKEN" \
-H "X-VM-Timestamp: $TS" \
-H "X-VM-Nonce: $NONCE" \
-H "X-VM-Signature: $SIGNATURE"{
"success": true,
"data": {
"items": [],
"page": 1,
"per_page": 20,
"total": 0,
"total_pages": 0
}
}Токен vm_test_ работает в тестовой среде и не изменяет реальный баланс.
test_scenario | Результат |
|---|---|
completed | Успешный тестовый ответ |
processing | Тестовый ответ в обработке |
failed | Неуспешный тестовый ответ |
insufficient_balance | Тест ошибки баланса |
POST /sandbox/reset сбрасывает тестовый баланс.
/catalog?page=1&per_page=100&search=&category=Получайте товары и категории из API. Для заказа используйте id и fields товара. API v1 поддерживает товары с фиксированным номиналом. Пополнения с произвольной суммой через API недоступны; их прежние ID отклоняются до списания.
Учитывайте type каждого поля. Если dynamic_options=true, перед оформлением получите актуальные варианты через GET /products/{id}. Для select передавайте options.value, а не options.label. Не принимайте заказ при unavailable или пустом обязательном списке. Числовые значения также передавайте строками; number_format задаёт формат integer или decimal.
GET /catalog?page=1&per_page=100
GET /categories
GET /products/{vm_prod_id}{
"success": true,
"data": {
"items": [{
"id": "vm_prod_a1b2c3",
"name": "Example product",
"price": 9.50,
"currency": "AZN",
"stock_status": "in_stock",
"fields": [{"key":"user_id","label":"User ID","type":"text","required":true}]
}],
"page": 1,
"total": 1
}
}/ordersВ POST /orders передавайте данные товара и уникальный Idempotency-Key.
Поле test_scenario в примере предназначено только для токена vm_test_; в рабочих заказах его не отправляйте.
{
"external_order_id": "shop-1058-line-1",
"product_id": "vm_prod_a1b2c3",
"quantity": 1,
"fields": {"user_id": "123456", "server_id": "EU"},
"test_scenario": "completed"
}{
"success": true,
"data": {
"id": "vm_order_8f2d1c",
"external_order_id": "shop-1058-line-1",
"status": "completed",
"amount": 9.50,
"currency": "AZN",
"environment": "sandbox",
"delivery": {"text": "TEST-CODE-1234", "images": []}
}
}/orders/{vm_order_id}GET /orders/{id} возвращает текущий статус и доступные данные выдачи.
GET /orders/vm_order_8f2d1c{
"success": true,
"data": {"id":"vm_order_8f2d1c","status":"completed","refunded":false}
}/balanceGET /balance возвращает баланс текущей среды токена.
GET /balance
GET /wallet/transactions?page=1&per_page=50{
"success": true,
"data": {"balance":1000.00,"currency":"AZN","environment":"sandbox"}
}События order.updated могут отправляться подписанным webhook-запросом. Проверяйте подпись и отвечайте 2xx.
X-VM-Webhook-SignatureДля проверки запросов используйте только vm_test_ токен.
Ответ появится здесь.
| HTTP | Значение |
|---|---|
400/422 | Неверный запрос или данные |
401/403 | Ошибка аутентификации или доступа |
402 | Недостаточно средств |
409 | Конфликт или недоступный ресурс |
429 | Превышен лимит запросов |
5xx | Временная ошибка сервера |