Skip to main content
Flextell’de satış (sale), bir veya birden fazla kalem (tedavi veya ürün) ve opsiyonel olarak bir randevu ile ilişkilendirilir. Ödeme kaydı ayrı bir aksiyondur; tek bir POST ile satış + ödeme birleştirilmez.
Gerekli scope’lar: sales:write, ödeme eklemek için yine sales:write. Satışı listelemek için sales:read.

1. Satış oluştur

Alan açıklamaları

integer
required
Satışın hangi hastaya olduğunu belirtir. Aynı tenant’ta olmalıdır.
integer
Satışı bir randevuya bağlamak opsiyoneldir ama raporlama için önerilir. Randevu aynı hastaya ait olmalıdır.
integer
required
Satış para birimi. GET /v1/account altındaki desteklenen listeden alın.
number
required
Satış anındaki kur. Ana para birimi cinsinden satış yapıyorsanız 1 gönderin.
enum
required
draft, completed, cancelled, invoiced, pending.
array
required
En az bir kalem zorunludur. itemable_type Treatment veya Product olabilir. tax_rate yalnızca 0, 1, 10, 20 değerlerinden biri olabilir.
sub_total, total_discount, total_tax, total_price alanlarını göndermeyin — sunucu quantity × unit_price üzerinden hesaplar. Gönderirseniz dikkatli olun; hesaplamanız yanlışsa rapor tutarlılığı bozulur.

2. Yanıt

3. Tahsilat ekle

Hasta ödeme yaptığında:
Kısmi ödemeyse birden fazla kez çağırabilirsiniz; her biri yeni bir customer_transaction kaydı yaratır ve satışın balance değerini düşürür.

Alan açıklamaları

number
required
Tahsilat tutarı. Para birimi varsayılan olarak satışın para birimidir.
enum
collection (tahsilat) veya payment (iade/geri ödeme). Varsayılan collection.
integer
Hangi kasa/hesap. Aynı tenant’ta olmalı.
integer
Satış para birimi dışında bir para biriminde ödeme alınıyorsa belirtilir; exchange_rate de gönderilmelidir.

4. Stok düşümü

Satıştaki bir kalem itemable_type=Product ise, satış oluşturduğunuzda stok düşümü otomatik yapılmaz. Manuel tetiklemek için:
Bu işlem, kalemdeki warehouse_id değerini esas alarak stock_movement kaydı oluşturur.
Aynı satış için stock-deduct birden fazla kez çalıştırılırsa tekrar tekrar stoktan düşer. Satış ile stok düşümü ayrı adım olduğu için bu çağrıyı mutlaka idempotent sargılayın (bkz. Idempotency).

5. Satışı güncelleme

Kalemlerde veya notlarda değişiklik yapmak için PUT /v1/sales/701 kullanabilirsiniz. Kalem listesini bütün halinde göndermeniz gerekir — eksik kalem silinmiş sayılır.

Yaygın hatalar

Sonraki adımlar

Randevu oluşturma

Satışı bir randevuya bağlamak için önce randevu açın.

Rate limiting

Toplu satış girişi yaparken limit yönetimi.