payment-methods/create · update · delete ✓ CanlıÖdeme yöntemi tanımlarını yazar (oluştur/güncelle/sil). Alan adları payment-methods/list okuma şekliyle simetriktir. Sahiplik/idempotency/hata/echo kuralları katalog yazma ile ortaktır.
← API Uçları · Scope: payment_methods:write.
POST /plugin-api/payment-methods/create
{
"title": "Multinet", // ZORUNLU (2..100)
"description": "Yemek kartı", // ops (<=500)
"cash": false, // ops — nakit yöntemi mi (default false)
"noreport": false, // ops — rapor dışı mı (default false)
"idempotencyKey": "pm-1" // ops
}Yöntemi kullanabilecek personel listesi API'den yazılamaz — yeni yöntem kısıtsız oluşur, atama panelden.
POST /plugin-api/payment-methods/update
{ "id": "ab-12", "description": "Yemek kartı (POS)" } // {id} + title/description/cash/noreport'tan en az biri{ id } + title/description/cash/noreport'tan en az biri. Sahiplik kontrollü (notOwned).
POST /plugin-api/payment-methods/delete
{ "id": "ab-12" }
// 200 → { "success": true, "data": { "id": "ab-12", "deleted": true } }Sahiplik kontrollü.
payment-methods/list ile aynı şekil: { id, title, description, cash, noreport }.
create ile oluşturduğunuz her kayıt eklentinize damgalanır (sahiplik).update ve delete yalnız KENDİ oluşturduğunuz kayıtlarda çalışır — işletmenin veya başka eklentinin kaydını düzenleyemez/silemezsiniz → plugin.catalog.notOwned. (Slack chat.delete deseni.)id ile kendi tarafınızda takip edin; okuma uçları sahiplik bilgisi döndürmez.Tüm create uçları: idempotencyKey (≤128 char, önerilir) → retry'da duplicate yazmaz, ilk başarılı yanıtı aynen döner (24sa pencere; eklenti+tenant+entity başına). Eşzamanlı 2. istek işlenirken → plugin.catalog.duplicateInProgress (kısa bekle, aynı key ile tekrar dene). update/delete doğal idempotenttir (silinmiş kayda tekrar delete → plugin.catalog.notFound).
Hatalar HTTP 200 + { success:false, message } (rate limit 429 hariç).
| message | Anlam |
|---|---|
| joi doğrulama mesajı | Eksik/yanlış tip alan veya tanımsız alan (kütle-atama engeli) |
| plugin.scope.denied | Gerekli yazma scope'u (payment_methods:write) onaylı değil |
| plugin.catalog.notFound | id ile kayıt bulunamadı |
| plugin.catalog.notOwned | Kayıt sizin eklentinizce oluşturulmamış (update/delete reddi) |
| plugin.catalog.duplicateInProgress | Aynı idempotencyKey ile eşzamanlı 2. istek |
| plugin.rateLimited | Ortak write kovası aşıldı (HTTP 429; varsayılan 20/dk — Limitler) |
Her başarılı yazma ilgili kanonik event'i tetikler (payment_method.*).
id'yi saklayıp event data.id ile eşleyin. Event data'sı bu uçların yanıt data'sıyla aynı şekildedir.