Yeni siparis olustur + bakiyeden OTOMATIK odeme dene
POST/orders
3 sonuclu akis:
StockService::isAvailable(pid)= false ise 409product_unavailable. 1b.extra.configoptionsicinde bayi satisi KAPALI bir alt-secenek (orn. stogu biten lokasyon) secilmisse 409config_option_out_of_stock(Rabisu Mastermod_rabisu_master_configoption_stock.in_stock=0). Bayi modulu bunlari zaten gizler; bu sunucu tarafi ikinci savunma hattidir.periodwhitelist disi ise 422invalid_period.- WHMCS
AddOrder-> order + unpaid invoice uretilir. - Bayinin
auto_apply_credittoggle'i (GET /auth/me) kontrol edilir:- false ->
ApplyCreditATLANIR;status=pending_payment,payment_applied=false,notice=auto_apply_credit_disabled. Bayi faturayi kendi tercihine gore (panelden/havaleden) manuel oder. Toggle admin CLI ile acilir:php bin/api-key-update.php <id> --auto-apply-credit=1. - true (default) -> WHMCS
ApplyCredit(TEK cagri) sonuca gore:- success ->
status=pending_provision,payment_applied=true; WHMCS InvoicePaid hook'u virtualizor queue cron'unu tetikler. - insufficient funds ->
status=pending_payment,notice=insufficient_credit; bayi manuel odeyebilir. - HTTP 5xx / timeout ->
status=payment_failed, RequestLogger'aalarmflag'i ile kayit acilir.
- success ->
- false ->
ÇAĞRILMAYAN aksiyonlar: AcceptOrder (WHMCS InvoicePaid hook zaten
devreye girer), VirtualizorClient (WHMCS cron VPS'i kurar), bakiye
pre-check, DeleteOrder (insufficient edge case'inde bile).
Idempotency-Key header ZORUNLUDUR (aksi halde 400
missing_idempotency_key). Ayni key+body replay icin 202 cached
response doner.
Request
Responses
- 202
- 400
- 401
- 409
- 422
- 429
- 500
Siparis DB'ye yazildi. status ApplyCredit sonucunu yansitir;
bayi VPS'in kurulmasini GET /orders/{id} ile polla.
Response Headers
Cache'den donen tekrarli istekte "true" olur.
Idempotency-Key header eksik
Kimlik dogrulama basarisiz — eksik header, hatali credential, IP whitelist disi veya revoke edilmis key. Detay sizdirilmaz; tum durumlar tek mesaj.
Response Headers
RFC 7617 Basic Auth challenge
Urun stokta degil (product_unavailable) VEYA secilen config alt-secenegi
bayi satisina kapali (config_option_out_of_stock).
period whitelist disi veya body validasyon hatasi
Dakika basina limit asildi
Response Headers
429 sonrasi tekrar denemeden once beklenmesi gereken saniye (RFC 7231 §7.1.3)
Bu key icin tanimli dakika basi limit
Sonraki window basinin Unix epoch'u (UTC saniye)
WHMCS AddOrder upstream hatasi (order yaratilmadi)