POST /api/v2/server-side-api/vc/transactions/

Sanal para birimi işlemi oluştur

Tek bir atomik işlemde bir profil için bir veya daha fazla sanal para birimini alacaklandırır veya borçlandırır. Alacaklandırmak (vermek) için pozitif amount, borçlandırmak (harcamak) için negatif amount kullanın. Tüm öğeler birlikte uygulanır — herhangi bir öğe başarısız olursa hiçbiri uygulanmaz.

Her para birimi kodu istek başına yalnızca bir kez görünebilir. Bu uç nokta aracılığıyla yapılan bir alacak her zaman süresi dolmayan bir bakiye oluşturur.

Header parameters

adapty-customer-user-idstring

Sisteminizdeki müşterinin benzersiz kimliği. adapty-customer-user-id veya adapty-profile-id alanlarından biri zorunludur.

adapty-profile-idstring

Sisteminizdeki profilin benzersiz kimliği. Anonim profillerle çalışıyorsanız en iyi seçeneğinizdir. adapty-customer-user-id veya adapty-profile-id alanlarından biri zorunludur.

Idempotency-Keystring · uuid

İsteği idempotent yapan bir UUID v4 değeri. Aynı anahtarla bir isteği yeniden denerseniz Adapty, bakiyeleri tekrar değiştirmeden orijinal işlemin sonucunu döndürür. Geçerli bir UUID v4 olmalıdır.

Anahtarlar tek bir profil kapsamında en fazla bir saat boyunca hatırlanır. Bu süre geçtikten sonra aynı anahtarla yapılan bir istek yeni bir işlem olarak uygulanır — dolayısıyla anahtarı uzun vadede tekrarlı bir vermeyi önlemek için değil, bir çağrıyı güvenli şekilde yeniden denemek için kullanın.

Request body

Sanal para birimi işlemi oluşturmak için istek gövdesi.

itemsarray of objectrequired

Atomik olarak uygulanacak bakiye ayarlamaları. Her para birimi kodu yalnızca bir kez görünebilir.

currency_codestringrequired

Düzenlenecek sanal para birimi kodu.

amountintegerrequired

Uygulanacak miktar. Pozitif bir değer para birimini alacaklandırır (ekler); negatif bir değer ise borçlandırır (harcar). Sıfır olamaz.

metadataobject

İşlemle birlikte depolanan isteğe bağlı anahtar-değer çiftleri. En fazla 5 anahtar. Her anahtar ^[a-z0-9_]{1,30}$ ile eşleşmeli, her değer en fazla 200 karakter olmalıdır.

Responses

İşlem başarıyla uygulandı

Schema

Sanal para birimi işleminin sonucu.

transaction_idstringrequired

Oluşturulan işlemin benzersiz kimliği.

balancesarray of objectrequired

Bu istek tarafından etkilenen her para birimi için işlem sonrası bakiye (items içindeki her öğe için bir giriş). Profil için tam bakiye listesini okumak üzere GET /api/v2/server-side-api/vc/balances/ kullanın.

codestringrequired

Sanal para birimi kodu.

namestringrequired

Sanal para biriminin görünen adı.

balanceintegerrequired

Şu anda beklemede tutulan miktarlar dahil toplam bakiye.

heldintegerrequired

Tüm aktif beklemelerin toplamı (rezerve edilmiş miktarlar). Şu anda her zaman 0'dır.

availableintegerrequired

Harcanabilir bakiye; balance - held olarak hesaplanır.

Example
{
  "transaction_id": "0190e8a4-1c2b-7def-8abc-2c1a4b6d8e90",
  "balances": [
    {
      "code": "COINS",
      "name": "Gold Coins",
      "balance": 12950,
      "held": 0,
      "available": 12950
    }
  ]
}

Hatalı istek. error_code alanı nedeni belirtir: insufficient_balance, unknown_currency, duplicate_currency, amount_zero, balance_overflow, empty_items veya idempotency_key_invalid.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Example
{
  "errors": [
    {
      "source": "currency_code",
      "errors": [
        "Insufficient balance for currency COINS"
      ]
    }
  ],
  "error_code": "insufficient_balance",
  "status_code": 400
}

Yetkisiz. API anahtarı eksik veya geçersiz.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Erişim reddedildi. Bu uygulama için sanal para birimleri Sunucu API'si etkin değil. Erişim talep etmek için Adapty destek ekibiyle iletişime geçin.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Example
{
  "errors": [
    {
      "source": null,
      "errors": [
        "Server API for virtual currencies is not enabled for this app. Contact Adapty support to request access."
      ]
    }
  ],
  "error_code": "feature_not_enabled",
  "status_code": 403
}

Profil bulunamadı.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Çakışma. error_code alanı nedeni belirtir:

  • idempotency_in_flight — aynı Idempotency-Key değerine sahip bir istek hâlâ işleniyor. Retry-After yanıt başlığındaki aralıktan sonra yeniden deneyin.
  • duplicate_source_transaction — temel mağaza işlemi zaten alacaklandırıldığından tekrar uygulanmaz.
Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Example
{
  "errors": [
    {
      "source": null,
      "errors": [
        "A similar request is being processed."
      ]
    }
  ],
  "error_code": "idempotency_in_flight",
  "status_code": 409
}

İşlenemeyen varlık. İstek gövdesi şema doğrulamasından geçemedi — örneğin items 20'den fazla giriş içeriyor ya da bir metadata anahtarı veya değeri kısıtlamalarını ihlal ediyor.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Çok fazla istek. Uygulama başına veya global hız sınırı aşıldı (error_code değeri rate_limited). Varsayılan sınırlar uygulama başına dakikada 600 istek ve global olarak dakikada 6000 istektir.

Schema
errorsarray of objectrequired
sourcestring

Hatanın kaynağı

errorsarray of string

Hata mesajları dizisi

error_codestringrequired

Kısa hata adı

status_codeintegerrequired

HTTP durum kodu

Dahili sunucu hatası