Paket Güncelle — POST /plugin-api/packets/update ✓ Canlı

Bir paketin sınırlı alanlarını güncelleyen yazma ucudur (allowlist). Yalnız izinli alanlar değişir; tanımsız alan gönderirsen reddedilir (success:false — kütle-atama engeli). Tutar/kalem/ödeme bu uçla DEĞİL — packets/update-orders ve packets/update-payments ile değişir.

← API Uçları · Yazma ailesi: create · update-orders · update-payments.

Genel

Method / yolPOST /plugin-api/packets/update
Scopeorders:write
ModelAllowlist alan güncelleme — tanımsız alan → reddedilir (success:false)
POST {RESTOMENUM_BASE}/plugin-api/packets/update
Authorization: Bearer <apiKey>
Content-Type: application/json
İstek gövdesi
{
  "packetId": "a72d70cd-...",                    // ZORUNLU
  "status": "OnDelivery",                         // ops — yalnız LABEL (aşağı ⚠️)
  "note": "Kapıda nakit",                         // ops — "" gönderirsen TEMİZLER
  "paymentNote": "...",                           // ops — "" temizler
  "invoiceUrl": "https://.../fatura.pdf",         // ops — https; "" temizler
  "invoiceNumber": "FT-2026-000123",              // ops — "" temizler
  "customer": { "address": "Yeni adres", "phone": "0532..." }  // ops — KISMİ (yalnız bu alt-alanlar)
}

Güncellenebilir alanlar (allowlist)

AlanTipNot
statusenumnone · Approved · Ready · OnDelivery · Delivered · Rejectedyalnız label (⚠️ aşağı)
notestring ≤1000"" temizler
paymentNotestring ≤500"" temizler
invoiceUrlhttps ≤1000"" temizler
invoiceNumberstring ≤100"" temizler
customer.addressstring ≤500{ customer: { address } } — kısmi
customer.phonestring ≤40kısmi; diğer customer alanları korunur

Yanıt data.updated = gerçekten değişen alanların listesi.

Başarılı yanıt
{ "success": true, "data": { "packetId": "a72d70cd-...", "updated": ["status","note","customer"] } }

⚠️ status = LABEL — kapanış/iptal yapmaz

Bu uç status'ü yalnız yazar; paket yaşam döngüsünü tetiklemez.
  • none/Approved/Ready/OnDelivery/Delivered: sadece etiketi set eder. Delivered teslim statüsüdür, finansal kapanış DEĞİL → paket "açık" kalır (kapanış ödeme tamamlanınca işletme akışında yapılır).
  • Rejected: yalnız label yazar. (Sistemin entegrasyon-Rejected akışı paketi closedTables'a taşıyıp iptalle işaretler — bu uç bunu yapmaz.)

Bu uçla GÜNCELLENEMEZ

Tutarlılık-kritik alanlar — total · paid · orders · payments · docNo · uuid · pluginStatusCallback — bu uçla değiştirilemez. Kalem için update-orders, ödeme için update-payments kullan.

Hatalar

Doğrulama/iş-kuralı hataları HTTP 200 + { success:false, message } döner (auth 401, rate limit 429 hariç). Gerçek mesajlar (teyitli):

messageAnlam
"<alan>" is not allowedAllowlist dışı/tanımsız alan (kütle-atama engeli) — örn. "total" is not allowed
Packet not foundPaket bulunamadı (geçersiz packetId)
plugin.scope.deniedorders:write onaylı değil (HTTP 401/403'e yakın — auth hattı)
plugin.rateLimitedWrite kovası aşıldı (HTTP 429)