Geliştiriciler/Entegrasyon
Ürünler ve siparişler
Bu rehber satın alma sürecinin tamamını adım adım anlatır: bakiyenizi kontrol edin, bir ürün bulun, fiyatını öğrenin, siparişi verin ve kodları alın.
İlgili: Kimlik doğrulama · Genel kurallar · Webhook'lar
#Hesap ve bakiye
#Hesap
GET/api/v1/account, şirket bilgilerinizi ve API erişiminizin açık olup olmadığını gösterir.
{
"merchant_id": "M00000001",
"name": "Acme Shop",
"legal_name": "Acme Shop Ltd",
"billing_email": "[email protected]",
"status": "active",
"kyb_status": "approved",
"api_access_enabled": true,
"default_currency": "USD",
"purchase_limits": {
"currency": "USD",
"verified": true,
"max_order_amount": "1000.00",
"daily_order_amount_limit": "10000.00",
"daily_order_count_limit": 1000,
"used_today_amount": "120.50",
"used_today_count": 3,
"day_resets_at": "2026-10-01T00:00:00+00:00"
}
}default_currency, cüzdanınızın para birimidir. Ödediğiniz tüm fiyatlar bu para birimindedir.api_access_enabled, CardV işletmenizi onayladığındatrueolur.
#Bakiye
GET/api/v1/balance, harcayabileceğiniz tutarı gösterir.
{
"currency": "USD",
"balance": "1520.40",
"reserved_amount": "0.00",
"available_balance": "1520.40",
"low_balance_threshold": "200.00",
"low_balance_notified_at": null,
"is_active": true
}available_balance, şu anda harcayabileceğiniz tutardır:balanceeksireserved_amount.- Tutarı
available_balancedeğerini aşan bir sipariş reddedilir ve hiçbir ücret alınmaz. low_balance_threshold, düşük bakiye e-postasının gönderileceği seviyedir. Bu değeri Portal'dan ayarlarsınız.- Bakiye yüklemek için Portal'ı kullanın.
#Döviz kuru
GET/api/v1/fx-rates?quote=EUR, USD'den başka bir para birimine kuru verir.
Mağazanız USD dışında bir para birimiyle satış yapıyorsa bunu kullanın. CardV cüzdanınızdan her zaman USD olarak tahsil eder. Kur yalnızca kendi fiyatlarınızı belirlemenize yardımcı olur.
{
"base": "USD",
"quote": "EUR",
"rate": "0.9234",
"as_of": "2026-10-11T07:05:00Z"
}quotebir ISO 4217 para birimi kodudur; örneğinEUR,GBPveyaJPY.baseisteğe bağlıdır. YalnızcaUSDdesteklenir.rate, 1 USD karşılığında kaç birimquotealdığınızı gösterir. Ondalık bir metindir; float olarak okumayın.as_of, CardV'nin bu kuru en son güncellediği zamandır. Kurlar her saat güncellenir.quote=USD,"rate": "1"döndürür.- Kuru kendi tarafınızda saklayın. Günde birkaç sorgu yeterlidir.
| Durum | Anlamı | Ne yapmalı |
|---|---|---|
| 400 | quote yok ya da 3 harfli bir kod değil veya base USD değil | İsteği düzeltin |
| 404 | No exchange rate for this currency. | Bu para biriminde fiyatları kendiniz belirleyin |
| 503 | Exchange rate temporarily unavailable. | Son kaydettiğiniz kuru kullanmaya devam edin ve daha sonra tekrar deneyin |
Bu isteği de diğerleri gibi imzalayın. İmzalanan yol sorgu dizesini içerir; örneğin /api/v1/fx-rates?quote=EUR.
#Ürünler (SKU'lar)
SKU, satın alabileceğiniz tek bir üründür, örneğin "Steam Wallet 10 USD".
Numarası S000456 gibi görünür. Fiyat sorgusu ve sipariş SKU üzerinden yapılır.
#Ürün modelleri
Her SKU bu modellerden birine aittir. Ayırt etmek için denomination_type ve product_type alanlarına bakın.
| Model | Nasıl anlaşılır | Fiyat | Sipariş | Ne alırsınız |
|---|---|---|---|---|
| Sabit tutar | denomination_type: "fixed" | merchant_price bir adedin fiyatıdır. | quantity gönderin. | deliveries içinde kodlar. |
| Aralıklı tutar | denomination_type: "range" | merchant_price_min ile merchant_price_max arası. Gerçek fiyat tutara bağlıdır: fiyat teklifi alın. | quantity ve amount gönderin. | deliveries içinde kodlar. |
| Doğrudan yükleme | product_type: "direct_charge" | Sabit tutarla aynı. | Ayrıca inputs gönderin (bkz. doğrudan yüklemeler). | Genellikle kod yoktur. succeeded, hesaba yükleme yapıldığı anlamına gelir. |
| Mobil hat yükleme | Bu katalogda yok | Kendi fiyat teklifi | Kendi API'si | Bkz. Mobil hat yükleme. |
verticalürün grubudur, model değildir. Doğrudan yüklemeler devertical: "gift_card"olabilir.- Sabit veya aralıklı tutarlı her SKU, kod yerine CardV kullanım bağlantısı olarak teslim edilebilir. Bu durumda SKU'da
delivery_mode: "voucher"bulunur. Bir bağlantı alırsınız (delivery_type: "link", bağlantıredeem_urliçindedir). Müşteriniz bağlantıyı açarak kodu alır. Bağlantıyı müşterinize bir kod gibi gönderin.
GET/api/v1/skus, satın alabileceğiniz SKU'ları listeler. Örnek:
GET /api/v1/skus?search=steam®ion=US&limit=50&offset=0Filtreler (hepsi isteğe bağlı):
| Filtre | Örnek | Neyle eşleşir |
|---|---|---|
search | steam | SKU numarası, ürün adı veya marka |
brand | Steam | Marka adı (büyük/küçük harf fark etmez) |
region | US | Ülke kodu veya ülke adı. GLC = küresel, EU = Avrupa |
category | Travel | İş kategorisi, örneğin Travel, Digital Wallets & Payment, Game Credits |
vertical | gift_card | Ürün grubu |
product_type | pin_code | Teslimat şekli |
Sayfalama: limit (varsayılan 100, en fazla 500) ve offset gönderin.
offset değerini artırarak, count değerine ulaşana kadar sorgulamaya devam edin.
{
"count": 7,
"limit": 2,
"results": [
{
"sku_id": "S000456",
"product_id": "P000123",
"name": "Steam Wallet 10 USD",
"product_name": "Steam Wallet US",
"brand": "Steam",
"region": "US",
"vertical": "gift_card",
"product_type": "pin_code",
"denomination_type": "fixed",
"denomination_value": "10",
"face_currency": "USD",
"merchant_price": "9.25",
"merchant_price_min": "9.25",
"merchant_price_max": "9.25",
"settlement_currency": "USD",
"availability": "available",
"min_quantity": 1,
"max_quantity": 100,
"required_input_schema": [],
"...": "more fields"
},
{
"sku_id": "S006126",
"product_id": "P002210",
"name": "Apple ES",
"product_name": "Apple ES",
"brand": "Apple",
"region": "ES",
"vertical": "gift_card",
"product_type": "pin_code",
"denomination_type": "range",
"denomination_value": "0",
"min_face_value": "2",
"max_face_value": "250",
"amount_step": null,
"face_currency": "EUR",
"merchant_price": "2.28",
"merchant_price_min": "2.28",
"merchant_price_max": "284.15",
"price_label": "From 2.28 USD",
"settlement_currency": "USD",
"availability": "available",
"...": "more fields"
}
],
"filter_options": {"brands": [], "regions": [], "categories": [], "verticals": []}
}GET/api/v1/skus/{sku_id}, aynı alanlarla tek bir SKU döner.
En çok işinize yarayacak alanlar:
| Alan | Anlamı |
|---|---|
sku_id | Fiyat sorgusu ve sipariş için kullandığınız numara. |
merchant_price | settlement_currency cinsinden adet fiyatınız. range SKU'larda bu yalnızca min_face_value tutarının fiyatıdır, yani başlangıç fiyatıdır. Başka tutarlar için kullanmayın: amount ile fiyat teklifi alın. |
availability | available veya unavailable. Yalnızca available olan SKU'ları sipariş edin. |
denomination_type | fixed veya range. Bkz. sabit ve aralıklı tutarlar. |
denomination_value | fixed SKU'nun nominal değeri. range SKU'da "0". |
min_face_value, max_face_value | range SKU'lar: müşterinizin seçebileceği en düşük ve en yüksek tutar, face_currency cinsinden. |
merchant_price_min, merchant_price_max | En düşük ve en yüksek tutarın fiyatı. fixed SKU'larda merchant_price ile aynıdır. Fiyat aralığı göstermek için kullanın; sipariş vermeden önce tam tutar için her zaman fiyat teklifi alın. Şu anda fiyatlandırılamıyorsa merchant_price_max değeri "" olur. |
price_label | Görüntülenecek metin olarak merchant_price. range SKU'larda From ile başlar, örneğin From 2.28 USD. |
face_value_label | Görüntülenecek metin olarak nominal değer, örneğin 10 USD veya 50 - 1000 GBP. |
discount | Nominal değer üzerinden indirim, örneğin 7.50% off face value. Yalnızca kart para birimi cüzdan para biriminizle aynı olan fixed SKU'larda; diğer durumlarda "". |
amount_step | Yalnızca aralıklı SKU'larda. Tutar bu değerin katı olmalıdır; örneğin "1" yalnızca tam sayılar demektir. null adım olmadığı anlamına gelir. |
face_currency | Kartın üzerinde yazan para birimi. Cüzdanınızınkinden farklı olabilir. |
min_quantity, max_quantity | Bir sipariş satırında en az ve en fazla kaç adet olabileceği. |
product_type | pin_code (size bir kod verilir) veya direct_charge (hesaba doğrudan yükleme yapılır). |
delivery_type | Tedarikçinin teslim ettiği şey: code, code_pin, code_serial, url veya direct_charge. delivery_mode değeri voucher ise bunun yerine bir bağlantı alırsınız. |
delivery_mode | code (kodun kendisini alırsınız) veya voucher (CardV kullanım bağlantısı alırsınız). |
voucher_instructions | voucher SKU'lar için: müşterinize bağlantıyı nasıl kullanacağını anlatan metin. Diğer durumlarda "". |
vertical, category | Filtreleme ve görüntüleme için ürün grubu ve iş kategorisi. |
region, region_name, region_label | Ülke veya bölge kodu, adı ve görüntülenecek etiketi. |
required_input_schema | Doğrudan yüklemeler için göndermeniz gereken bilgiler. |
brand_logo_url, image_url | CardV'de barındırılan görseller ya da "". |
description, redemption_instructions, terms, disclaimer | Müşterilerinize gösterebileceğiniz metinler. |
İpuçları:
- Yalnızca aktif olan ve hesabınıza açık SKU'ları görürsünüz. Diğer SKU'lar 404 döner.
- SKU listesini 5–15 dakikada bir güncelleyin. Sipariş vermeden hemen önce mutlaka güncel fiyatı sorgulayın.
- Müşterilerinize senkronize ettiğiniz listedeki fiyatları gösterin. Her sayfa görüntülemesinde veya her ziyaretçi için fiyat sorgusu uç noktasını çağırmayın.
- Aralıklı tutarlı SKU fiyatları tedarikçi maliyetini izler ve gün içinde birkaç kez değişebilir.
merchant_price_minvemerchant_price_maxdeğerlerini SKU senkronizasyonunuzla birlikte yenileyin. filter_options, filtrelemede kullanabileceğiniz markaları, bölgeleri ve ürün gruplarını listeler.
#Ürün bazında senkronizasyon
Mağazanız her ürün için tutar seçicili tek bir sayfa gösteriyorsa SKU yerine ürünleri senkronize edin.
GET/api/v1/products ürünleri listeler. Her ürün, içinde satın alabileceğiniz tüm SKU'ları taşır.
GET /api/v1/products?brand=Steam®ion=GB&limit=50&offset=0GET/api/v1/skus ile aynı filtreleri ve sayfalamayı kullanır. count ürün sayısını, sku_count bu ürünlerin SKU sayısını verir.
{
"count": 1,
"sku_count": 4,
"limit": 50,
"results": [
{
"product_id": "P000123",
"product_name": "Steam Wallet UK",
"brand": "Steam",
"category": "Gaming",
"region": "GB",
"product_type": "pin_code",
"image_url": "https://b2b.cardv.net/api/v1/catalog-assets/steam.png",
"required_input_schema": [],
"skus": [
{
"sku_id": "S000456",
"name": "Steam Wallet 5 GBP",
"label": "5 GBP",
"denomination_type": "fixed",
"denomination_value": "5",
"face_currency": "GBP",
"merchant_price": "7.61",
"settlement_currency": "USD",
"availability": "available",
"min_quantity": 1,
"max_quantity": 100,
"...": "more fields"
}
]
}
],
"filter_options": {"brands": [], "regions": [], "categories": [], "verticals": []}
}GET/api/v1/products/{product_id} tek bir ürünü SKU'larıyla birlikte, ayrıca description, redemption_instructions, terms ve disclaimer alanlarıyla döndürür.
skusiçindeki her SKU,GET/api/v1/skusile aynı alanlara ve değerlere sahiptir. Fiyat teklifi ve sipariş her zamanki gibisku_idile yapılır.- Seçenek metni olarak
labelkullanın, örneğin5 GBPveyaTinder Plus 1 Month. Bazı ürünler tutar değil, pakettir. - Bir ürünün tek bir nominal para birimi ve tek bir tutar türü vardır. Aralıklı tutarlı SKU her zaman ayrı bir üründür.
- Liste uzun metinleri içermez. Bunları her ürün için bir kez
GET/api/v1/products/{product_id}ile okuyun.
#Sabit ve aralıklı tutarlar
SKU'ların çoğunun sabit bir yüz değeri vardır, örneğin 10 USD. Bazı SKU'lar ise aralıklıdır: tutarı müşteriniz seçer, örneğin 5 ile 500 USD arası.
| Tür | Fiyat sorgusunda | Siparişte |
|---|---|---|
fixed | quantity gönderin | amount göndermeyin |
range | quantity ve amount gönderin | amount gönderin |
Aralıklı bir SKU'da amount, min_face_value ile max_face_value arasında olmalıdır.
Tutar face_currency para birimindedir.
Aralıklı tutarlı SKU fiyatı. SKU ve ürün listelerinde merchant_price ve price_label yalnızca min_face_value tutarının fiyatıdır. merchant_price_min ve merchant_price_max en düşük ve en yüksek tutarın fiyatını verir. Aradaki bir tutarın fiyatı bunların hiçbirinin basit bir katı değildir. Satış fiyatınızı belirlemeden veya sipariş vermeden önce tam amount ile fiyat teklifi alın ve o teklifin merchant_price değerini expected_unit_price olarak gönderin.
Bazı aralıklı SKU'larda ayrıca amount_step bulunur. null değilse amount bunun katı olmalıdır.
Örneğin "amount_step": "1" ile 25 gönderebilirsiniz ama 25.50 gönderemezsiniz.
Adıma uymayan bir tutarla yapılan fiyat teklifi veya sipariş HTTP 400 döner ve hiçbir ücret alınmaz.
#Doğrudan yüklemeler
Bazı ürünler, müşterinizin hesabına (örneğin bir oyun hesabına) doğrudan yükleme yapar. Bunun için CardV'nin hesap bilgilerine ihtiyacı vardır. Gereken bilgiler SKU'da listelenir:
"required_input_schema": [
{"key": "player_id", "label": "Player ID", "type": "text", "required": true},
{"key": "server", "label": "Server", "type": "text", "required": false}
]Değerleri, her birinin key adını kullanarak sipariş satırının inputs alanında gönderin:
"inputs": {"player_id": "123456789", "server": "EU"}"required": falseyazmıyorsa alan zorunludur.type, form alanınız için bir ipucudur, örneğintext.- Zorunlu bir değer eksikse sipariş
itemshatasıyla reddedilir. - Bu değerler müşterinizin kişisel verileridir. Onları koruyun (bkz. Güvenlik).
#Fiyat sorgusu
Fiyat sorgusu, belirli bir adet için güncel fiyatı söyler.
GET /api/v1/skus/S000456/quote?quantity=2
GET /api/v1/skus/S000789/quote?quantity=1&amount=25.00{
"sku_id": "S000456",
"settlement_currency": "USD",
"merchant_price": "9.25",
"quantity": 2,
"total_price": "18.50",
"min_quantity": 1,
"max_quantity": 100,
"availability": "available"
}- Fiyat sorgusu fiyatı sabitlemez. Fiyatlar her an değişebilir.
- Fiyatı yalnızca bir kez, müşteriniz ödeme adımına geçtiğinde, örneğin 5 saniye gibi kısa bir zaman aşımıyla sorgulayın. Sorgu zaman aşımına uğrarsa senkronize fiyatınızı göstermeye devam edin ve yeniden deneyin; bir sorgu yavaş kaldı diye asla hata sayfası göstermeyin.
- Kendinizi korumak için sipariş verirken
merchant_pricedeğeriniexpected_unit_priceolarak gönderin. Kendi hesapladığınız bir fiyatı değil, fiyat sorgusundan gelen fiyatı gönderin: kuruşu kuruşuna tam olarak eşleşmelidir. Fiyat değiştiyse CardV siparişi reddeder ve hiçbir ücret almaz. - Aralık dışındaki bir adet veya tutar ya da
amount_stepdeğerinin katı olmayan bir tutar,quantityya daamounthatasıyla HTTP 400 döner.
#Sipariş verme
POST/api/v1/orders, bir veya daha fazla SKU satın alır ve ödemeyi cüzdanınızdan yapar.
Her istek gibi bu istek de imzalı olmalıdır.
{
"external_order_id": "SHOP-20260929-10001",
"items": [
{"sku_id": "S000456", "quantity": 2, "expected_unit_price": "9.25"},
{"sku_id": "S000789", "amount": "25.00", "expected_unit_price": "23.75"},
{
"sku_id": "S000900",
"expected_unit_price": "4.90",
"inputs": {"player_id": "123456789"}
}
]
}| Alan | Zorunlu mu | Anlamı |
|---|---|---|
external_order_id | Evet | Kendi sipariş numaranız, 1–120 karakter. Benzersiz olmalıdır. |
items | Evet | Bir veya daha fazla sipariş satırı. |
items[].sku_id | Evet | Satın alınacak SKU. |
items[].quantity | Hayır | Adet. Varsayılan 1. |
items[].amount | Aralıklı SKU'larda | Satın alınacak yüz değeri. min_face_value, max_face_value ve amount_step ile uyumlu olmalıdır. |
items[].expected_unit_price | Önerilir | Sorguda aldığınız merchant_price. Her zaman gönderin. |
items[].inputs | Doğrudan yüklemelerde | Doğrudan yüklemeler için hesap bilgileri. |
CardV siparişi kabul ettiği anda toplam tutarın tamamını cüzdanınızdan düşer. Teslimat ardından arka planda başlar.
Yanıt HTTP 201 olur:
{
"idempotent_replay": false,
"order": {
"order_id": "O-00001234",
"external_order_id": "SHOP-20260929-10001",
"status": "accepted",
"total_amount": "46.20",
"...": "more fields"
}
}order.order_id değerini saklayın. Bu yanıtta hiçbir zaman kod bulunmaz. Kodları daha sonra alırsınız (Siparişi okuma).
#Reddedilen siparişler
Reddedilen bir sipariş HTTP 400 döner ve hiçbir ücret alınmaz. Nedeni hata anahtarından anlaşılır:
| Anahtar | Neden | Ne yapmalı |
|---|---|---|
items | Fiyat değişmiş, SKU satışta değil, tutar hatalı veya bir bilgi eksik | Fiyatı yeniden sorgulayın, sorunu düzeltip tekrar gönderin |
balance | Cüzdanınızda yeterli para yok | Portal'dan bakiye yükleyin |
risk | Sipariş tutarı veya günlük limitiniz aşıldı | CardV ile iletişime geçin |
external_order_id | Sipariş numaranız başka bir siparişte zaten kullanılmış | Bkz. Güvenli yeniden deneme |
Fiyat değişikliği örneği:
{
"items": "SKU S000456 price changed from 9.25 to 9.41 USD; refresh quote and confirm again."
}Hesabınızın tek bir sipariş tutarı, günlük harcama ve günlük sipariş sayısı için limitleri vardır.
GET/api/v1/account bunları, bugün kullandığınız miktarla birlikte purchase_limits içinde gösterir.
0 limit olmadığı anlamına gelir. Günlük limitler 00:00 UTC'de sıfırlanır.
#Güvenli yeniden deneme
Kendi sipariş numaranız (external_order_id), aynı şeyi iki kez satın almanızı önler.
Aynı siparişi aynı sipariş numarasıyla tekrar gönderirseniz CardV sizden tekrar ücret almaz.
Bunun yerine mevcut siparişi döner.
| Gönderdiğiniz | Aldığınız |
|---|---|
| Yeni bir sipariş numarası | HTTP 201. Yeni bir sipariş. Cüzdanınızdan ödeme alınır. |
| Aynı sipariş numarası ve aynı sipariş | HTTP 200 ve "idempotent_replay": true. Mevcut sipariş. Ücret alınmaz. |
| Aynı sipariş numarası ama farklı bir sipariş | external_order_id için HTTP 400. Hiçbir işlem yapılmaz. |
"Aynı sipariş", aynı satırların aynı sırayla ve aynı SKU, adet, tutar ve hesap bilgileriyle gönderilmesi demektir.
expected_unit_price gönderiyorsanız ilk siparişteki fiyatla aynı olmalıdır.
Tekrarlanan sipariş, bakiye ve fiyat kontrollerinden önce tanınır. Bu yüzden fiyat o arada değişmiş olsa bile her zaman ilk sipariş döner.
#Güvenli yeniden deneme akışı
Net bir yanıt alamazsanız aynı siparişi yeniden göndermeniz yeterlidir.
R sipariş numarasıyla POST /orders
├─ 201 veya 200 → order_id'yi saklayın. İşlem tamam.
├─ 400 items / balance / risk → sipariş oluşmadı.
│ Nedeni düzeltip tekrar gönderin. R'yi yeniden kullanabilirsiniz.
├─ 400 external_order_id → R başka bir siparişe ait. Durun ve kontrol edin.
├─ 403 imza hatası → yeniden imzalayıp aynı gövdeyi gönderin.
├─ 429 → Retry-After kadar bekleyin, yeniden imzalayıp aynı gövdeyi gönderin.
└─ zaman aşımı, 5xx veya kopan bağlantı
→ aynı gövdeyi aynı R ile tekrar gönderin.
201 alırsanız ilk istek ulaşmamıştır, 200 alırsanız ulaşmıştır.Kurallar:
- Yanıt kayboldu diye asla yeni sipariş numarası üretmeyin. İlk istek aslında ulaştıysa, yeni numara her şeyi iki kez satın almanıza yol açar.
- Her yeniden gönderimde yeni zaman damgası, nonce ve imza gerekir. Gövde aynı kalır.
#Siparişi okuma
GET/api/v1/orders/{order_id}, siparişi, durumunu ve kodlarını döner.
{
"order_id": "O-00001234",
"external_order_id": "SHOP-20260929-10001",
"status": "succeeded",
"currency": "USD",
"total_amount": "18.50",
"created_at": "2026-09-29T08:15:30.123456Z",
"updated_at": "2026-09-29T08:15:41.004211Z",
"items": [
{
"sku_id": "S000456",
"product_name": "Steam Wallet US",
"quantity": 2,
"unit_price": "9.25",
"total_price": "18.50",
"delivery_count": 2,
"deliveries": [{"...": "see Codes below"}]
}
],
"...": "more fields"
}total_amount, sipariş kabul edildiğinde sizden alınan tutardır.items[].unit_price, bu sipariş için sabitlenen fiyattır.items[].deliveries, kodların tamamını içerir. Bu yanıtı gizli bilgi gibi koruyun.invoice_urlvedelivery_file_url, faturanın ve kodları içeren CSV dosyasının yollarıdır. İkisi de yalnızca Portal'da çalışır. API anahtarıyla çağrıldığında HTTP 403 döner.- Yanıtta ayrıca şunlar da bulunur:
id(eski bir numara, kullanmayın),events(yalnızca görüntüleme amaçlı geçmiş) ve satır bazında teslimat ilerlemesi. Bunları yok sayabilirsiniz. - Bilinmeyen bir sipariş numarası HTTP 404 döner.
#Sipariş durumu ve kodlar
#Durum
accepted ──► processing ──► succeeded
│
├──► partially_succeeded (bazı satırlar teslim edildi, bazıları edilmedi)
│
└──► failed ──► refunded (para cüzdanınıza iade edildi)| Durum | Tamamlandı mı? | Ne yapmalı |
|---|---|---|
accepted | Hayır | Bekleyin. Ödeme cüzdandan alındı, teslimat henüz başlamadı. |
processing | Hayır | Bekleyin. Siparişi tekrar vermeyin. |
succeeded | Evet | Kodları okuyun ve müşterinize iletin. |
partially_succeeded | Evet | Gelenleri teslim edin. Kalan tutar daha sonra iade edilir. |
failed | Henüz değil | refunded durumunu bekleyin. Başarısız olması iade yapıldığı anlamına gelmez. |
refunded | Evet | Para cüzdanınıza geri döndü. |
Webhook kullanmıyorsanız siparişi şu aralıklarla sorgulayın: 5 saniye sonra, ardından 10 sn, 30 sn, 60 sn, sonra 5 dakikada bir. İstek limitini aşmayın. Siparişlerin çoğu birkaç saniyede tamamlanır. Bazıları elle kontrol gerektirir ve saatler sürebilir.
#Kodlar
Teslim edilen her adet, items[].deliveries içinde bir nesnedir:
{
"status": "stored",
"delivery_type": "card_pin",
"card_number": "X1234",
"pin_code": "9876",
"redeem_url": "",
"expiry_date": "2027-09-29",
"instructions": "Redeem at ..."
}| Alan | Nedir |
|---|---|
card_number | Ana kod: kart numarası, kupon kodu veya PIN. |
pin_code | İkinci kod; örneğin PIN veya güvenlik kodu. Yoksa boştur. |
redeem_url | Kullanım bağlantısı. link teslimatlarında bağlantının kendisi koddur. |
expiry_date | Kodun kullanılabileceği son gün, YYYY-MM-DD biçiminde. "", tedarikçinin son kullanma tarihi vermediği anlamına gelir. Kodun süresinin dolduğu anlamına gelmez. |
- Boş olmayan her alanı müşterinize verin:
card_number,pin_code,redeem_url,expiry_dateveinstructions. delivery_typene aldığınızı söyler:code,card_pin,link,code_linkveyaqr.redeem_urldeğerini bir kod gibi gizli tutun.expiry_dateboş olduğu için bir kodu asla silmeyin, gizlemeyin veya geçersiz kılmayın. Son kullanma tarihini müşterinize yalnızca boş değilse gösterin.statusdeğerivoidedolan bir adedi müşterinize asla vermeyin.- Doğrudan yükleme ürünlerinde genellikle teslimat nesnesi olmaz.
succeeded, hesaba yüklemenin yapıldığı anlamına gelir. - Webhook'lar hiçbir zaman kod içermez. Webhook geldikten sonra siparişi okuyun.
Entegrasyonla ilgili sorunuz mu var? Merchant ID’nizi ve sipariş ya da istek kimliğini ekleyerek [email protected] adresine yazın.