Fatura İptal
POST /v1/invoicing/invoices/{id}/cancel
Scope: invoice:write. Gövde yok. {id} yerine belge UUID'si ya da ETTN
geçebilirsiniz — bkz. Eşleştirme.
curl -X POST "https://sandbox-api.finansfatura.com/v1/invoicing/invoices/05CF936E-D493-5010-A6C8-BDBE9FD619D3/cancel" \
-H "X-Api-Key: $FF_KEY"
Önkoşul
Belge durumu QUEUED, ISSUED ya da ACCEPTED olmalıdır. Uygun değilse:
{"message": "ERROR_INVOICE_NOT_CANCELLABLE", "status_code": 400}
e-Arşiv ve e-Fatura farklı davranır
| Belge tipi | İptal |
|---|---|
| e-Arşiv | İmzalandıktan (ACCEPTED) sonra da yasal süre içinde iptal edilebilir. |
| e-Fatura | ACCEPTED olduktan sonra iptal edilemez. Alıcıdan red/uygulama yanıtı gerekir ya da iade faturası kesersiniz. Denerseniz sağlayıcı reddeder, 503 döner. |
Yanıt
Başarılı istek 204 No Content döner. "Kabul edildi ama kesin iptal
olmadı" gibi bir ara durum yoktur: 204 aldıysanız sağlayıcı iptali kabul
etmiştir ve belge kaydı anında CANCELLED olur.
Teyit etmek isterseniz:
GET /v1/invoicing/invoices/{id}
→ { "status": "CANCELLED", "cancelled_at": "..." }
Tekrarlı iptal
Ayrı bir idempotency anahtarı yoktur. Zaten iptal edilmiş bir belgeyi tekrar
iptal etmeye çalışırsanız 400 ERROR_INVOICE_NOT_CANCELLABLE alırsınız —
bunu "başarılı, zaten iptal" olarak ele alın, hata olarak değil.
Kontör iadesi
İptal edilen belgenin kontörü tüketilmiş sayılır — kontör geri verilmez. Sebebi entegratör tarafında: kontörün tek kaynağı sağlayıcı (Taxten) ve orada "kontör geri ver" diye bir işlem yok. Bütçenizi buna göre planlayın; test amaçlı kesimlerinizi sandbox'ta yapın.
İade ile ilişkisi
İptal ve iade farklı araçlardır:
- İptal belgeyi ortadan kaldırır (e-Arşiv'de süre içinde, e-Fatura'da
ACCEPTEDöncesi). - İade,
ACCEPTEDolmuş bir e-Fatura'yı geri almanın tek yoludur — yeni bir belge (IADE) kesip asıl faturaya atıfla bağlarsınız. Bkz. İade Oluştur.