İçeriğe atlayın

API

Bu sayfada

Getir

Kimliğiyle tek bir faturayı getirin, ödeme ve onay durumunu inceleyin, yanıtı kendi harici sipariş referansınızla mutabık kılın.

GET/v1/invoices/:invoice_id

API anahtarı: Payment

Bir faturanın güncel durumunu döndürür. Fatura oluşturma ile aynı yanıt sözleşmesini kullanır; payment nesnesi token ve ağ seçildikten sonra görünür.

Yanıt (200 OK)

{
  "invoice_id": "inv_5CcyDYmMUGtzYL10q0Iimr",
  "project_id": "prj_xFukZuAJZR06pLVBh3uwzv",
  "status": "paid",
  "is_final": true,
  "is_test": false,
  "payment_url": "https://checkout.paymos.io/invoice/inv_5CcyDYmMUGtzYL10q0Iimr",
  "order": {
    "external_id": "order-12345",
    "client_id": "customer-67890",
    "amount": "50.00",
    "currency": "USDT",
    "network": "TRC20"
  },
  "payment": {
    "currency": "USDT",
    "network": "TRC20",
    "chain_id": 728126428,
    "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
    "expected": "50.00",
    "address": "TLfGqSVPbET2KFczh3xb12Ja2RKfMCBPgp",
    "exchange_rate": "1.000000",
    "paid": "50.00",
    "remaining": "0",
    "fee": "0.50",
    "net": "49.50",
    "transfers": [
      {
        "tx_hash": "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
        "amount": "50.00",
        "status": "confirmed",
        "created_at": 1739280712,
        "confirmed_at": 1739280912,
        "required_confirmations": 19,
        "estimated_confirmation_at": 1739280772,
        "explorer_url": "https://tronscan.org/#/transaction/abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
      }
    ]
  },
  "created_at": 1739280600,
  "updated_at": 1739280912,
  "expires_at": 1739284200,
  "completed_at": 1739280912
}

Ödeme alanları

payment mevcut olduğunda şunları içerir:

Alan Tip Açıklama
payment.currency string Ödeme için seçilen kripto varlık sembolü (ör. USDT, USDC)
payment.network string Blockchain ağ kodu (ör. ERC20, TRC20, BEP20, POLYGON, BASE, TON, SOL)
payment.chain_id integer EIP-155 / TRON / TON kurallarına uyan sayısal zincir kimliği (ör. Ethereum mainnet için 1, Tron için 728126428)
payment.contract_address string? Token'ın zincir üzerindeki kimliği — EVM ve Tron'da kontrat adresi, TON'da jetton master, Solana'da SPL mint. Şemada isteğe bağlıdır, çünkü yerel bir coin'in böyle bir kimliği olmaz; kabul edilen varlıklar arasında yerel coin bulunmadığından gerçek bir faturada alan her zaman doludur. Kendi contract_address alanı için aynı kuralı GET /v1/payment-channel-deposits/:id belirtir
payment.expected string Müşterinin göndermesi gereken beklenen kripto tutarı
payment.address string? Müşterinin ödeme yaptığı yatırma adresi. Fatura awaiting_client durumundayken payment nesnesinin tamamı yanıtta bulunmadığından, bu alan bekleyen bir faturada asla null olarak görünmez — henüz okunacak bir payment yoktur
payment.exchange_rate string? expected değerini üreten fiat-kripto döviz kuru
payment.paid string? Onaylanan gelen transferlerin toplamı
payment.remaining string? Müşterinin hâlâ göndermesi gereken kalan tutar (expected - paid, asla negatif değil). Yalnızca en az bir transfer onaylandıktan sonra mevcuttur
payment.fee string? paid üzerinden alınan platform komisyonu tutarı
payment.net string? Satıcının alacağı tutar (paid - fee)
payment.transfers array? Transfer bazında ayrıntılar — en az bir zincir üstü transfer algılandıktan sonra mevcuttur. Aşağıya bakın.

Transfer Alanları

payment.transfers[] içindeki her kayıt:

Alan Tip Açıklama
tx_hash string Zincir üstü işlem hash'i (ağa özgü biçim)
amount string Transfer edilen kripto tutarı
status string confirming (onaylar bekleniyor) veya confirmed
created_at unix timestamp Pipeline'ımızın transferi işlenen bir blokta ilk gözlemlediği an. Sunucumuzun duvar saati, zincir üstü blok zaman damgası değil — pipeline geride kaldıysa farklılık gösterir. Aşağıdaki "kalan saniye" formülü için bunu kullanın (üst düzey fatura created_at değerini değil).
confirmed_at unix timestamp? Transferin gerekli onay sayısına ulaştığı an. Beklemedeyken null
required_confirmations integer? Bu transferin USD değer kademesi için confirmed durumuna ulaşmakta gereken onay sayısı. Blok sayısı yerine zincirin kendi finalized commitment'ı ile kapanan her ağda null — bugün BNB Smart Chain, Polygon, Solana, Avalanche ve Plasma. Ağ listesine değil null değerine dallanın: hangi zincirlerin kesinlikle onayladığı operasyoneldir ve değişebilir
estimated_confirmation_at unix timestamp? Transferin tahsile ulaşmasının beklendiği an. Blok sayan ağlarda gözlem anında transfer.created_at + required_confirmations × network_block_time olarak hesaplanır; blok sayısı olmayan kesinlik ağlarında ise transfer.created_at üzerine o zincirin tipik kesinlik süresi eklenir, böylece bekleme yine gösterilebilir. Statiktir — istekler arasında değişmez; transfer onaylanana (veya USD kademesi değişene) kadar her sorguda aynı değeri verir. "Kalan saniye" için istemcide hesaplayın: max(0, estimated_confirmation_at − now).
explorer_url string? Bu işlemin ağın blok gezginindeki doğrudan bağlantısı (Tronscan / Etherscan / Tonviewer vb.). Ağın yapılandırılmış herkese açık bir gezgini yoksa null. Olduğu gibi tıklanabilir bağlantı olarak göstermek güvenlidir — dönüşüm gerekmez.

Fatura durumları

Her fatura bir status dizesi bildirir. Aynı değer; satıcı API yanıtını, SSE ödeme akışını ve webhook yükünü yönetir — tek bir doğruluk kaynağı vardır. Aşağıdaki tablo durum bazlı referanstır: değerin ne zaman göründüğü, nihai olup olmadığı ve arkasındaki kesin koşul. Geçiş diyagramı ve iki oluşturma akışı için bkz. Ödeme akışı.

Nihai bir durum kesindir: fatura orada sonuçlanır ve bir daha asla hareket etmez. Beş durum nihai'dir — paid, paid_over, underpaid, expired, cancelled.

Durum Nihai Ne zaman geçerli
awaiting_client Hayır Her faturanın açılış durumu. Henüz token veya ağ seçilmediği için yatırma adresi yoktur. İptal yalnızca burada mümkündür
awaiting_payment Hayır Token, ağ ve yatırma adresi sabitlendi. Paymos, gelen transfer için adresi izliyor
confirming Hayır Bir transfer zincire düştü ve tutar kademesinin gerektirdiği onayları biriktiriyor
underpaid_waiting Hayır Beklenenden az tutar onaylandı ve fatura kalan için açık kalıyor. Yalnızca allow_multiple_payments true olduğunda ulaşılır
underpaid Evet Fatura eksik kapandı — ya beklenen tutarın altında süresi doldu ya da allow_multiple_payments false iken tek ödeme eksik kaldı
expired Evet Hiçbir şey alınmadan süre doldu veya fiat akışında token seçim penceresi token seçilmeden kapandı
cancelled Evet Satıcı, fatura hâlâ awaiting_client durumundayken iptal etti

Hatalar

Tam katalog için bkz. Hata Kodları. Her hata yanıtındaki type URI'si ilgili satıra doğrudan bağlanır.