İade Faturası Oluştur API
Bu servis, bir firmadan aldığınız mal veya hizmeti iade ettiğinizde, o firmaya düzenlemeniz gereken iade faturasını oluşturur.
İstek gövdesi create-invoice ile aynıdır; tek fark iade edilen faturaları taşıyan references dizisidir.
İade faturasını iade eden alıcı (siz) düzenlersiniz ve fatura asıl satıcıya, yani size fatura kesen firmaya kesilir.
Bu yüzden gövdedeki customer alanı, faturayı size kesen firmadır.
Asıl satış faturası sizin sisteminizde değil satıcının sisteminde olduğu için, faturanın numarasını ve düzenlenme tarihini
references içinde siz yazarsınız.
Seçim hesabınıza göre yapılır: e-Fatura mükellefiyseniz entegratör üzerinden e-Fatura (IADE), değilseniz GİB e-Arşiv portalında
e-Arşiv (IADE) iade faturası oluşturulur. Alıcının (satıcının) e-Fatura mükellefi olup olmadığı kontrolü
create-invoice ile aynıdır. Gövde iki durumda da aynıdır.
- • references en az 1, en fazla 20 öğe içermelidir. Her öğede
documentNumberveissueDatezorunludur. - • Fatura numarası kalıbı: İade düzenlenecek faturanın geçerli ve resmi fatura numarası olmalıdır. İlk 3 karakter harf, devamı rakam olmalıdır. Aynı fatura bir istekte iki kez verilemez.
- • Tarih alanlarında
gg/aa/yyyyveyyyy-aa-ggyazımlarının ikisi de kabul edilir. Gelecek tarih ve olmayan günler (31 Şubat gibi) reddedilir. - •
detail.invoiceType,detail.orderNumber,detail.orderDatevedetail.internetSalebu uçta yok sayılır: tür her zaman IADE'dir, iade faturasına sipariş bilgisi yazılmaz. - • Müşteri, kalem, KDV ve fiyat kuralları
create-invoiceile aynıdır. Fiyatlar KDV Dahil gönderilir. - • API anahtarınız canlı moddaysa sağdaki SEND düğmesi gerçek bir iade faturası keser.
https://www.eafatura.com/api/v2/create-return-invoice
Header Parametreleri
Body Parametreleri (İade Edilen Faturalar, Satıcı & Kalemler)
| references (İade Edilen Faturalar — Array) | |
|
references[0].documentNumber
Zorunlu
string (16 karakter)
|
İade ettiğiniz asıl faturanın numarası (size fatura kesen firmanın faturası). Biçim: 3 harf/rakam + yıl ( |
|
references[0].issueDate
Zorunlu
string (gg/aa/yyyy veya yyyy-aa-gg)
|
Asıl faturanın düzenlenme tarihi. Asıl fatura sizin sisteminizde değil satıcının sisteminde olduğu için tarihi siz yazarsınız. Bugünden ileri bir tarih olamaz. |
| customer (İade Faturasının Düzenlendiği Taraf = Asıl Faturayı Size Kesen Firma) | |
|
customer.taxOrIdentityNumber
string (10 veya 11 hane)
|
Satıcının VKN/TCKN'si. Yurt dışı bir satıcı için boş bırakın ve |
|
customer.name
Zorunlu
string
|
Firma için unvan, şahıs (11 hane) için ad soyad tek alanda. |
|
customer.city / district
Zorunlu
string
|
|
|
customer.address
Zorunlu
string
|
Açık adres. |
|
customer.country
string
|
Varsayılan |
| items (İade Edilen Kalemler — Array) | |
|
items[0].name
Zorunlu
string
|
|
|
items[0].quantity / unitCode
Zorunlu
float / string
|
|
|
items[0].unitPriceIncludingVat / vatRate
Zorunlu
float / int
|
Birim fiyat KDV Dahil gönderilmelidir; iade ettiğiniz tutar pozitif yazılır. |
| detail ve notes (Opsiyonel) | |
|
detail.invoiceDate
string (gg/aa/yyyy)
|
İade faturasının tarihi (opsiyonel, varsayılan: bugünkü tarih). Asıl faturanın tarihi değildir, o |
|
notes[0]
string
|
Fatura notu. İade edilen faturalar notun sonuna otomatik eklenir. |
Güvenli Tekrar Deneme: Idempotency-Key
Ağ hatası ya da zaman aşımında aynı isteği tekrar gönderdiğinizde iade faturasının iki kez kesilmesini önlemek için isteğe
Idempotency-Key başlığı ekleyin. Başlık opsiyoneldir; göndermezseniz istek her seferinde yeni bir iade faturası keser.
Anahtar 1-64 karakter olmalı ve yalnızca harf, rakam ve _ . : - içermelidir. Her farklı iade için yeni bir anahtar kullanın (örn. kendi iade numaranız).
curl --request POST \
--url https://www.eafatura.com/api/v2/create-return-invoice \
--header 'Authorization: Basic ...' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: IADE-2026-0001' \
--data '{ ... }'
| Durum | Ne olur? |
|---|---|
| Aynı anahtar, aynı içerik (önceki istek bitti) | İlk cevap aynen tekrarlanır (aynı HTTP kodu ve gövde), yanıtta Idempotent-Replayed: true başlığı bulunur. Yeni fatura kesilmez. Saklama süresi 24 saattir. |
| Aynı anahtar, farklı içerik | 422: anahtar başka bir istek için kullanılmış. Alan sırasının farkı içerik farkı sayılmaz. |
| İstek hâlâ işleniyor | 409 ve Retry-After: 2. Birkaç saniye sonra aynı anahtarla tekrar deneyin. |
| Sonuç belirsiz (belge kesilmiş olabilir; zaman aşımı, bağlantı kopması) | 409: aynı anahtarla kör tekrar yapılmaz. Önce fatura listenizi kontrol edin; iade faturası kesilmediyse yeni bir anahtarla tekrar deneyin. |
| Doğrulama hatası (400) | Hata saklanır: aynı içerik aynı hatayı alır. Düzeltilmiş istek için yeni bir anahtar kullanın. |
| Geçici hata (örn. GİB oturumu alınamadı) | Anahtar serbest bırakılır, aynı anahtarla yeniden deneyebilirsiniz. |
| Anahtar doğrulanamıyor | 503: koruma sağlanamadığı için fatura kesilmez. Biraz sonra tekrar deneyin. |
Kod Örnekleri
Yanıt Örnekleri