Geliştiriciler/Başlarken

CardV Merchant API

CardV, işletmelere hediye kartı, oyun yüklemesi ve eSIM gibi ön ödemeli dijital ürünler satar. Merchant API sayesinde sunucunuz bu ürünleri otomatik olarak satın alabilir. Bakiyenizi görür, ürünü bulur, fiyatını öğrenir, siparişi verir ve kodları alırsınız. Siparişlerin ödemesi, CardV'deki ön ödemeli cüzdanınızdan yapılır. Bakiye yükleme ve sipariş geçmişi gibi diğer her şey Merchant Portal'dan yapılır.

#Dokümanlar

Dokümanİçerik
Kimlik doğrulamaBaşlıklar, sipariş imzalama, anahtar kurulumu
Ürünler ve siparişlerBakiye, ürünler, fiyatlar, siparişler, kodlar
Genel kurallarTutarlar, tarihler, numaralar, istek limiti, hatalar
Webhook'larSunucunuza gönderilen sipariş bildirimleri
SandboxTest ve canlıya geçiş kontrol listesi
GüvenlikAnahtarları ve kodları korumak

#Ortamlar

LiveSandbox
API adresihttps://b2b.cardv.net/api/v1https://sandbox.cardv.net/api/v1
Merchant Portalhttps://b2b.cardv.net/portal/Aynı Portal, Sandbox'a geçin

Sandbox, CardV'nin test parasıyla çalışan ayrı bir test kopyasıdır. API anahtarları, bakiyeler, siparişler ve ürün numaraları iki ortamda birbirinden farklıdır.

#Hızlı başlangıç

  1. Başvurun. Portal'dan üye işyeri hesabı için başvurun ve e-posta adresinizi doğrulayın.

  2. Onayı bekleyin. CardV işletmenizi inceler. Ardından size bir Merchant ID (üye işyeri numarası) verilir, örneğin M00000001.

  3. Sandbox'ı açın. Portal'a giriş yapın ve üst menüden Sandbox'ı seçin. Hesabınıza 1.000 USD test parası tanımlanır.

  4. API anahtarı oluşturun. Portal'da Integrations → API keys bölümüne gidin. Bir anahtar oluşturun, ardından CardV'nin e-postayla gönderdiği kodla anahtarı görüntüleyin. Anahtarı gizli bilgi deponuza kaydedin.

  5. Bakiyenizi kontrol edin:

    Shell
    export CARDV_BASE=https://sandbox.cardv.net
    export CARDV_MERCHANT_ID=M00000001     # yours
    export CARDV_API_KEY=cvb2b_...         # from your secret store
    AUTH=(-H "X-Merchant-Id: $CARDV_MERCHANT_ID" -H "X-Api-Key: $CARDV_API_KEY")
    
    curl -sS "$CARDV_BASE/api/v1/balance" "${AUTH[@]}"
  6. Bir ürün bulun:

    Shell
    curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"

    "availability": "available" olan bir ürün seçin ve sku_id değerini not edin.

  7. Fiyatı öğrenin:

    Shell
    curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"

    merchant_price değerini not edin. Bu, adet başına ödeyeceğiniz tutardır.

  8. Siparişi verin. Bu istek imzalı olmalıdır. Kimlik doğrulama sayfasındaki örneklerden birini şu gövdeyle kullanın:

    JSON
    {
      "external_order_id": "TEST-0001",
      "items": [
        {"sku_id": "S000001", "quantity": 1, "expected_unit_price": "9.2500"}
      ]
    }

    Yanıt olarak HTTP 201 ve O-00001234 gibi bir CardV sipariş numarası alırsınız.

  9. Kodları alın. Durum succeeded olana kadar GET/api/v1/orders/O-00001234 isteğini tekrarlayın. Kodlar items[].deliveries[].display_fields alanındadır. Sipariş tamamlandığında bir Webhook bildirimi de alabilirsiniz.

  10. Canlıya geçin. Önce Sandbox kontrol listesini tamamlayın.

Yukarıdaki numaralar ve fiyatlar örnektir. Kendi kataloğunuzda dönen değerleri kullanın.

#Kısaca API

Toplam yedi uç nokta vardır. Tüm yollar /api/v1 ile başlar.

Uç noktaNe işe yararİmza
GET/accountŞirket bilgileriniz ve API durumuHayır
GET/balanceHarcayabileceğiniz tutarHayır
GET/skusSatın alabileceğiniz ürünler ve size özel fiyatlarıHayır
GET/skus/{sku_id}Tek bir ürünHayır
GET/skus/{sku_id}/quoteBelirli bir adet için güncel fiyatHayır
POST/ordersCüzdanınızdan ödenen sipariş vermeEvet
GET/orders/{order_id}Sipariş durumu ve kodlarHayır

Başka bir uç noktayı API anahtarıyla çağırırsanız HTTP 403 alırsınız:

JSON
{"detail": "This operation is only available in the Merchant Portal."}

Mobil hat yüklemesi (kontör yükleme) API üzerinden yapılamaz.

#Numaralar

NeÖrnekNot
Merchant IDM00000001Size aittir. Hiç değişmez.
SKU (satın alabileceğiniz bir ürün)S000456Fiyat sorgusu ve sipariş için kullanılır.
CardV sipariş numarasıO-00001234Kendi siparişinizle birlikte saklayın.
Kendi sipariş numaranızSHOP-10001Siz belirlersiniz (external_order_id).

Numaraları metin olarak saklayın. İçlerini ayrıştırmaya çalışmayın. Bkz. Genel kurallar.

#Portal'dan yapılanlar

  • Cüzdana bakiye yükleme ve düşük bakiye e-posta uyarısı
  • Sipariş geçmişi, arama ve CSV dışa aktarma
  • Sipariş faturaları
  • Cüzdan hareketleri ve mutabakat
  • Webhook kurulumu, gönderim geçmişi ve yeniden gönderme
  • API anahtarları
  • IP izin listesi
  • Ekip üyeleri ve roller
  • Denetim kaydı
  • İki adımlı doğrulama (2FA)
  • Live ile Sandbox arasında geçiş

#Uyumluluk ve destek

Yanıtlara önceden haber vermeden yeni alanlar ve yeni durum değerleri ekleyebiliriz. Tanımadığınız alanları yok sayın. Bilinmeyen bir sipariş durumunu "henüz tamamlanmadı" olarak değerlendirin. Hata mesajlarının metnine güvenmeyin.

Destek için [email protected] adresine yazın. Merchant ID'nizi, ortamı, sipariş numaralarını, saati (UTC) ve HTTP durum kodunu ekleyin. API anahtarlarını, imzaları, Webhook sırlarını veya kart kodlarını asla göndermeyin.

Entegrasyonla ilgili sorunuz mu var? Merchant ID’nizi ve sipariş ya da istek kimliğini ekleyerek [email protected] adresine yazın.