VALYUTAMOBILE B2B

Partner API sənədləri

ValyutaMobile Partner API üçün texniki istinad: endpointlər, autentifikasiya və cavab formatları.

Baza URLhttps://valyutamobile.com/wp-json/valyutamobile/v1

OpenAPI 3.0 JSON

Autentifikasiya

Qorunan sorğular Bearer token və HMAC SHA-256 imzası tələb edir.

  1. Test üçün vm_test_ tokenindən istifadə edin.
  2. Hər sorğu üçün unikal nonce göndərin.
  3. Canlı tokeni yalnız server tərəfində saxlayın.
cURL
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"

Sandbox

vm_test_ tokeni test mühitində işləyir və real balansı dəyişmir.

test_scenarioNəticə
completedUğurlu test cavabı
processingEmal vəziyyətində test cavabı
failedUğursuz test cavabı
insufficient_balanceBalans xətası testi

POST /sandbox/reset test balansını sıfırlayır.

Kataloq

GET/catalog?page=1&per_page=100&search=&category=

Məhsul və kateqoriya məlumatlarını API-dən alın. Sifariş üçün məhsul id və fields dəyərlərindən istifadə edin. API v1 sabit nominallı məhsulları dəstəkləyir. Sərbəst məbləğli balans artırma API vasitəsilə mövcud deyil; əvvəl sinxronlaşdırılmış ID-lər vəsait çıxılmadan rədd edilir.

fields daxilində type sahəsini nəzərə alın. dynamic_options=true olduqda sifarişdən əvvəl GET /products/{id} vasitəsilə aktual seçimləri alın. select üçün options.value göndərin, options.label yox. unavailable olduqda və ya tələb olunan seçim siyahısı boş olduqda sifarişi qəbul etməyin. number dəyərlərini də mətn kimi göndərin; number_format integer və ya decimal formatını göstərir.

HTTP
GET /catalog?page=1&per_page=100
GET /categories
GET /products/{vm_prod_id}

Sifariş yarat

POST/orders

POST /orders sorğusunda məhsul məlumatlarını və unikal Idempotency-Key göndərin.

Nümunədəki test_scenario yalnız vm_test_ tokeni üçündür; real sifarişlərdə bu sahəni göndərməyin.

JSON
{
  "external_order_id": "shop-1058-line-1",
  "product_id": "vm_prod_a1b2c3",
  "quantity": 1,
  "fields": {"user_id": "123456", "server_id": "EU"},
  "test_scenario": "completed"
}

Sifariş statusu

GET/orders/{vm_order_id}

GET /orders/{id} cari statusu və mövcud çatdırılma məlumatını qaytarır.

HTTP
GET /orders/vm_order_8f2d1c

Balans

GET/balance

GET /balance cari token mühitinin balansını qaytarır.

HTTP
GET /balance
GET /wallet/transactions?page=1&per_page=50

Webhook

order.updated hadisələri imzalanmış webhook sorğuları ilə göndərilə bilər. İmzanı yoxlayın və 2xx cavabı qaytarın.

X-VM-Webhook-Signature

API konsolu

Sorğuları yoxlamaq üçün yalnız vm_test_ tokenindən istifadə edin.

Cavab burada görünəcək.

Xətalar və limitlər

HTTPMəna
400/422Yanlış sorğu və ya məlumat
401/403Autentifikasiya və ya icazə xətası
402Balans kifayət deyil
409Konflikt və ya əlçatmaz resurs
429Sorğu limiti aşılıb
5xxMüvəqqəti server xətası