API Referansı
Aşağıdaki her uç nokta JSON konuşur, https://api.infraio.xyz (prod) veya
https://api-dev.infraio.xyz (test) altında yaşar ve HMAC-SHA256 ile
kimlik doğrulanır — istek imzalama için
Kimlik doğrulama ve hata zarf şekli
için Hatalar sayfasına bakın.
Bu sayfa, satıcı entegrasyonları için uç noktaları listeler. Kendi sayfası olmayan bir uç nokta, ilgili kavram sayfasında açıklanır.
/b2b/v1/* altındaki uç noktalar secret anahtarınızla (sk_…)
HMAC-imzalıdır. Backend’inizin çağırdığı yüzey budur. Satıcı paneli ve
barındırılan checkout kendi uç noktalarını kullanır; bunlar entegrasyon
API’sinin parçası değildir.
Checkout
| Method | Path | Amaç | Notlar |
|---|---|---|---|
POST | /b2b/v1/checkout-sessions/quick | Tek çağrıda bir oturum oluştur — order + checkout-session birlikte üretilir. | İstek gövdesi ve örnek için bkz. Hızlı başlangıç. |
POST | /b2b/v1/checkout-sessions | Mevcut bir siparişe karşı oturum oluştur. Platformunuzun zaten kendi sipariş modeli olduğunda ve deneme başına bir oturum istediğinizde kullanın. | İki adımlı akış. |
GET | /b2b/v1/checkout-sessions/by-order/{order_id} | Bir sipariş için üretilmiş tüm oturumları listele. | Bir alıcı bir oturumu terk ettiğinde ve önceki denemeleri panelinizde göstermek istediğinizde kullanışlı. |
Siparişler
Siparişler zamansız faturalanabilir varlıktır. Tek bir sipariş birden fazla checkout oturumunu destekleyebilir (örn. alıcı terk eder, yeniden dener).
| Method | Path | Amaç | Notlar |
|---|---|---|---|
POST | /b2b/v1/orders | Oturumsuz bir sipariş oluştur. | Alıcıyı hemen yönlendirmek yerine daha sonra bir ödeme bağlantısı göndermek istediğinizde kullanın. |
GET | /b2b/v1/orders/{id} | Line item’lar + durum ile tek bir siparişi oku. | Durum: PENDING → PAID | PARTIAL_PAID | CANCELED. İade sonrası: PARTIALLY_REFUNDED | REFUNDED. |
GET | /b2b/v1/orders/by-merchant/{merchant_id} | Siparişlerinizi listele, cursor-pagination ile. | Cursor protokolü için bkz. Cursor pagination. |
PATCH | /b2b/v1/orders/{id}/cancel | Ödenmemiş bir siparişi iptal edildi olarak işaretle. order.canceled yayar. | Sipariş zaten ödenmişse başarısız olur. |
PATCH | /b2b/v1/orders/{id}/reopen | Bir otomatik-iptali tersine çevir (canceled_reason=payment_timeout). | TTL süresi dolduktan sonra alıcı geri gelirse kullanışlı. |
İadeler
Saga akışı ve token yaşam döngüsü için İadeler kavram sayfasına bakın.
Satıcı tarafından başlatılan
| Method | Path | Amaç | Notlar |
|---|---|---|---|
POST | /b2b/v1/merchants/{merchant_id}/refunds | Satıcı tarafından başlatılan iade. Otomatik onaylanır (PENDING atlanır). | Hemen payment.refund.approved yayar. |
Müşteri tarafından başlatılan — iade-talep token’ları
Alıcı iade formunu bizim barındırılan sayfamızda doldurur; siz yalnızca token’ı üretir ve URL’yi iletirsiniz. Token’ları backend’inizden (aşağıda) veya satıcı panelinden üretebilirsiniz. Yenilemeler ve iptaller panelde yönetilir.
| Method | Path | Auth | Amaç |
|---|---|---|---|
POST | /b2b/v1/merchants/{merchant_id}/refund-requests | HMAC (sk_…) | Backend’inizden bir token üret. Gövde: {ref_type, ref_value, amount, ttl_seconds?, metadata?, hide_summary?, hide_header?}. ref_type order_id / order_number / session_id / session_key’den biridir; ref_value eşleşen tanımlayıcıdır. amount gereklidir ve alıcının gönderebileceği maksimumu kilitler. Varsayılan TTL 30 dk. refund_request.created yayar (source: b2b). |
İade yaşam döngüsü (oluşturma-sonrası)
Her iki akış için de geçerlidir. Aşağıdaki uç noktalar, talep token’ı
üzerinde değil, iadenin kendisi üzerinde işlem yapar (id rfn_… ile başlar).
| Method | Path | Amaç | Notlar |
|---|---|---|---|
GET | /b2b/v1/refunds/{id} | Bir iadeyi oku. | Durum: PENDING → APPROVED → EXECUTED | REJECTED. |
GET | /b2b/v1/refunds/by-merchant/{merchant_id} | İadelerinizi listele, cursor-paginated. | — |
POST | /b2b/v1/refunds/{id}/approve | PENDING bir iadeyi onayla (yalnızca müşteri tarafından başlatılan — satıcı tarafından başlatılan zaten APPROVED ile gelir). | Kripto: APPROVED’a iner, sonrasında /submit-tx çağırırsınız. |
POST | /b2b/v1/refunds/{id}/reject | PENDING bir iadeyi reddet. | payment.refund.rejected yayar. |
POST | /b2b/v1/refunds/{id}/submit-tx | Yalnızca kripto — yaydığınız zincir üstü tx hash’i damgala. | Gövde: {tx_hash, network, token_address} — üçü de gereklidir. |
Katalog (yalnızca-okuma)
| Method | Path | Amaç |
|---|---|---|
GET | /v1/supported/networks | InfraIO Pay’nun tahsilat yapabileceği tüm zincirler (mainnet + testnet, env tarafından filtrelenmiş). |
GET | /v1/supported/tokens | Bu zincirler üzerindeki tüm stablecoinler. |
GET | /v1/supported/currencies | order.currency için kabul edilen para birimleri. |
Sağlık
| Method | Path | Auth | Amaç |
|---|---|---|---|
GET | /health | Yok (public) | Canlılık kontrolü. {"status":"ok"} döndürür. Uptime monitörlerinizi buraya yönlendirin. |
Cursor pagination
Her liste uç noktası aynı query parametrelerini kabul eder, aynı zarfı döndürür. Cursor’lar opaktır ve offset yerine kullanılır; böylece sayfalama sırasında yeni bir satır geldiğinde bir sayfa asla kaymaz.
| Query param | Tip | Varsayılan | Notlar |
|---|---|---|---|
cursor | string | — | Opak — önceki yanıtın next_cursor’ını kelimesi kelimesine kopyalayın. |
limit | int | 20 | 1..100. |
sort_dir | 'asc' | 'desc' | desc | (created_at, id) ile sırala. |
from / to | RFC3339 | — | Opsiyonel zaman penceresi filtresi. |
search | string | — | Desteklenen yerlerde serbest metin filtresi. |
Yanıt zarfı:
{
"orders": [ /* sayfa satırları */ ],
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNS0...",
"has_next": true
}has_next her zaman mevcuttur. has_next false olduğunda next_cursor
atlanır. Cursor’ı opak bir string olarak ele alın.
Bu sayfada eksik olan
Bu sayfa, satıcı entegrasyonları için tasarlanmış uç noktaları kapsar. Listelenmeyen bir uç noktaya veya bir OpenAPI spec’ine ihtiyacınız varsa, destek ekibiyle iletişime geçin.