VALYUTAMOBILE B2B

Partner API belgeleri

ValyutaMobile Partner API için teknik başvuru: endpointler, kimlik doğrulama ve yanıt biçimleri.

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

OpenAPI 3.0 JSON

Kimlik doğrulama

Korunan istekler Bearer belirteci ve HMAC SHA-256 imzası gerektirir.

  1. Test için vm_test_ belirteci kullanın.
  2. Her istek için benzersiz nonce gönderin.
  3. Canlı belirteci yalnızca sunucuda saklayı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_ belirteci test ortamında çalışır ve gerçek bakiyeyi değiştirmez.

test_scenarioSonuç
completedBaşarılı test yanıtı
processingİşleniyor test yanıtı
failedBaşarısız test yanıtı
insufficient_balanceBakiye hatası testi

POST /sandbox/reset test bakiyesini sıfırlar.

Katalog

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

Ürün ve kategori verilerini API’den alın. Siparişlerde ürün id ve fields değerlerini kullanın. API v1 sabit tutarlı ürünleri destekler. Değişken tutarlı yüklemeler API üzerinden kullanılamaz; önceden eşitlenen ID’ler ücret alınmadan reddedilir.

Her alanın type değerini dikkate alın. dynamic_options=true ise siparişten önce GET /products/{id} ile güncel seçenekleri alın. select alanlarında options.label yerine options.value gönderin. unavailable alanlarda veya boş zorunlu listelerde sipariş kabul etmeyin. Sayıları da metin olarak gönderin; number_format integer veya decimal biçimini belirtir.

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

Sipariş oluştur

POST/orders

POST /orders isteğinde ürün verilerini ve benzersiz Idempotency-Key gönderin.

Örnekteki test_scenario yalnızca vm_test_ belirteci içindir; canlı siparişlerde göndermeyin.

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"
}

Sipariş durumu

GET/orders/{vm_order_id}

GET /orders/{id} güncel durumu ve mevcut teslimat verilerini döndürür.

HTTP
GET /orders/vm_order_8f2d1c

Bakiye

GET/balance

GET /balance mevcut belirteç ortamının bakiyesini döndürür.

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

Webhook

order.updated olayları imzalı webhook isteğiyle gönderilebilir. İmzayı doğrulayın ve 2xx yanıtı döndürün.

X-VM-Webhook-Signature

API konsolu

İstekleri test etmek için yalnızca vm_test_ belirteci kullanın.

Yanıt burada görünecek.

Hatalar ve sınırlar

HTTPAnlam
400/422Geçersiz istek veya veri
401/403Kimlik doğrulama veya erişim hatası
402Yetersiz bakiye
409Çakışma veya kullanılamayan kaynak
429İstek sınırı aşıldı
5xxGeçici sunucu hatası