Entegrasyon
Markdown dışa aktarHarici API V1 Dokümantasyonu
Faturaları kendi sistemlerinizden doğrulanmış e-faturalara dönüştürün: PDF, DOCX veya TXT belge – ya da yapılandırılmış ERP verisi – yükleyin ve doğrulama geçtikten sonra XRechnung, ZUGFeRD, EN 16931, UBL veya CII çıktısını indirin. Bu sayfa eksiksiz entegrasyon sözleşmesidir: erişim modeli, uç noktalar, hata kataloğu ve limitler.
Beş REST uç noktası PDF, DOCX veya TXT faturaları – ya da yapılandırılmış ERP verisini – doğrulanmış XRechnung, ZUGFeRD, EN 16931, UBL ve CII e-faturalarına dönüştürür. Etkin Enterprise aboneleri anahtarları doğrudan oluşturur; ayda 100 ortak E-posta/API dönüşümü dahildir, ardından her dönüşüm 0,40–0,50 € ön ödemeli kredi kullanır.
Genel görünüm
API multipart yüklemeleri kabul eder, JSON yanıtları döndürür ve Bearer kimlik doğrulamasıyla standart HTTP durum kodlarını kullanır. Her dönüşüm eşzamansız çalışır: belgeyi gönderin, task’i sorgulayın, sonucu indirin. Dosya yalnızca doğrulama geçtikten sonra teslim edilir; doğrulanmamış çıktı yoktur.
PDF, DOCX veya TXT fatura belgesi ya da yapılandırılmış fatura verisini bir dönüşüm uç noktasına gönderin. Invoice-Converter buradan çıkarma, doğrulama ve artefakt üretimi için asenkron bir task başlatır. Sonuç uç noktası yalnızca istenen artefakt doğrulanmış, kontrol edilmiş ve çıktıya hazır olduğunda dosya döndürür; işleme devam ederken 202 TASK_NOT_READY, engelleyici doğrulama hatalarında 422 VALIDATION_FAILED döndürür.
Durum: Enterprise erişimi
Temel yol: /api/v1. Son senkronizasyon 2026-09-08.
Temel yetenekler
- PDF faturalar ve yapılandırılmış fatura verileri için yükleme uç noktaları
- Kaynak alan kontrolüyle fatura verisi çıkarımı
- Otomatik EN 16931 ve KoSIT doğrulaması
- XRechnung, ZUGFeRD, EN16931, UBL ve CII çıktı biçimleri
- Polling ile eşzamansız işleme; küçük faturalar çoğu zaman yaklaşık 30 saniyede, daha büyük faturalar 1-2 dakikaya kadar tamamlanır
- Güvenli tekrar denemeler için idempotent yazma işlemleri
Enterprise API erişimini başlatın
Her etkin Enterprise abonesi üretim API anahtarlarını doğrudan profilden oluşturabilir.
- Bir hesap oluşturun ve fiyatlandırma sayfasından Enterprise’ı başlatın: yıllık faturalandırmada ayda 35 € (yılda 420 €); aylık faturalandırmada: ayda 50 €.
- Aylık dahil olan 100 ortak E-posta/API dönüşümünü kullanın; ek dönüşümler ön ödemeli kredilerle dönüşüm başına 0,40–0,50 €’dur.
- Profilinizin API erişimi bölümünden canlı bir API anahtarı oluşturun.
- İlk isteği sunucu tarafı kimlik bilgileriyle çalıştırın; ardından kullanımı izleyin ve anahtarları profilinizden döndürün.
Enterprise’ı başlatın
Hızlı başlangıç
Üç API çağrısı bir dönüşümü tamamlar. Yükleme uç noktası /api/v1 altında sunulur ve kimlik doğrulama gerektirir.
POST /api/v1/invoices:convert
CanlıFatura belgesini dönüştür
POST /api/v1/invoices:convert-structured
CanlıYapılandırılmış veriyi dönüştür
GET /api/v1/tasks/{task_id}
CanlıTask durumunu sorgula
curl ile hızlı başlangıç
$API_KEY değerini canlı anahtarınızla, $TASK_ID değerini ilk yanıttaki task_id ile değiştirin. Aynı üç çağrı her çıktı formatı için geçerlidir.
curl -X POST "https://www.invoice-converter.com/api/v1/invoices:convert" \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: inv-2026-0001" \
-F "file=@invoice.pdf" \
-F "format=XRECHNUNG"curl "https://www.invoice-converter.com/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY"curl -o invoice.xml \
"https://www.invoice-converter.com/api/v1/tasks/$TASK_ID/result?download=xml" \
-H "Authorization: Bearer $API_KEY"Base URL ve API anahtarları
- Üretim temel URL’si:
https://www.invoice-converter.com/api/v1. - Live anahtarlar üretim hostunu ve
icp_...önekini kullanır. - Üretim hacmi göndermeden önce onboarding ve doğrulama isteklerini canlı anahtarınızla çalıştırın.
- Anahtarları server-side secret olarak ele alın. Browser veya mobil istemcilere gömmeyin.
İlk başarılı istek
Bir API anahtarı oluşturduktan sonra bu akışı minimum başarılı yol olarak kullanın.
- Yükleme:
Authorization,Idempotency-Key,file=@invoice.pdf(veya.docx/.txt) veformat=XRECHNUNGilePOST /api/v1/invoices:convert. - Backoff ile sorgulayın:
202sonrası yaklaşık20 saniyebekleyin, ardından durumcompletedveyafailedolana kadarGET /api/v1/tasks/{task_id}çağrısını 20s, 30s, 45s, 60s ve 60s aralıklarıyla yapın.10/minve120/hourdurum kotası içinde kalın ve yaklaşık 16 dakika sonra vazgeçin. - İndirme:
GET /api/v1/tasks/{task_id}/result?download=xml; destek takibi içinX-Correlation-IDdeğerini saklayın. - ZUGFeRD PDF çıktısı için convert sırasında
format=ZUGFERD, result sırasındadownload=pdfisteyin; hibrit PDF çıktısı PDF kaynak yüklemesi gerektirir. - Yapılandırılmış giriş için
pdf_file=@invoice.pdf,data_file=@invoice-data.jsonve hedefformatilePOST /api/v1/invoices:convert-structuredçağırın. - ERP mutabakatı için isteğe bağlı olarak
client_referenceveyaexternal_invoice_idvesource_systemgönderin. - Tek faturaya ait bölünmüş ERP dışa aktarımları için
data_filealanını tekrarlayın; birden fazla fatura için her fatura adına kendi idempotency key’i olan ayrı bir task başlatın. - XML/PDF artefaktlarının doğrulanmış, önbelleğe alınmış veya bağımlılıklar nedeniyle henüz kullanılamaz olup olmadığını görmek için durum yanıtındaki
result_artifactsbilgisini saklayın.
Yaygın payload örnekleri
XRECHNUNG:format=XRECHNUNGgönderin.ZUGFERD:format=ZUGFERDgönderin; hibrit PDF/A-3 çıktısı için result üzerindedownload=pdfkullanın.Yapılandırılmış giriş:pdf_fileile bir veya daha fazladata_fileparçası gönderin; kabul edilen veri formatları CSV, JSON, XML, XLSX ve TXT’dir ve tüm desteklenen hedef formatlarla kullanılabilir. data_file parçaları tüm zorunlu verileri içermelidir; PDF eksik alanları tamamlamaz.Birden fazla fatura: ayrı convert istekleri gönderin ve dönen hertask_iddeğerini izleyin; tekrarlanandata_fileparçaları yalnızca aynı faturanın bölünmüş dışa aktarımları içindir.UBL:format=UBLgönderin; kabul edilen profillerXRECHNUNG,PEPPOLveEN16931, varsayılanEN16931.CII:format=CIIgönderin; kabul edilen profillerXRECHNUNG,EN16931,ZUGFERD_EN16931,ZUGFERD_FACTURX_EXTENDEDveZUGFERD_XRECHNUNG, varsayılanEN16931.formatxprofilekapalı bir tablodur:XRECHNUNG[XRECHNUNG]kabul eder (varsayılanXRECHNUNG),EN16931[EN16931]kabul eder (varsayılanEN16931),UBL[XRECHNUNG, PEPPOL, EN16931]kabul eder (varsayılanEN16931),CII[XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG]kabul eder (varsayılanEN16931) veZUGFERD[ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG]kabul eder (varsayılanZUGFERD_EN16931). Profiller büyük/küçük harf duyarsız eşleştirilir;ZUGFERD,FACTURX,FACTUR-XveFACTUR_X,ZUGFERD_EN16931için alias’tır,ZUGFERD-XRECHNUNGiseZUGFERD_XRECHNUNGiçin alias’tır.
Gerekli başlıklar
- Authorization: Bearer <api_key>
Kimlik doğrulama kuralları
Etkin Enterprise aboneleri profilden API anahtarları oluşturabilir ve bunları Bearer token olarak kullanabilir. Ortak E-posta/API kotası ayda 100 dönüşüm içerir; ek dönüşümler ön ödemeli kredilerle dönüşüm başına 0,40–0,50 €’dur.
- API anahtarları aktif Enterprise abonelikleri için tenant kapsamlı canlı kimlik bilgileridir. Mevcut üretim öneki
icp_.... - Enterprise aktifken anahtarları profilinizden oluşturun, döndürün ve iptal edin. Düz metin anahtarlar yalnızca bir kez gösterildiği için yeni anahtarları hemen kopyalayın.
- Eksik veya geçersiz API anahtarları
401döndürür. /api/v1çağrıları, eksikse otomatik olarakX-Correlation-IDalır.- Yazma çağrıları
Idempotency-Keygerektirir; bu değeri tekrar denemelerde sabit tutun. - Backend’inizden server-to-server entegrasyon kullanın. Browser-origin erişimi production’da kısıtlıdır.
İdempotency sözleşmesi
- Her yazma çağrısında
Idempotency-Keygönderin. - Idempotency key’leri
[A-Za-z0-9._:-]+ile eşleşmeli ve en fazla 200 karakter olmalıdır. - Kendi key’inizi sağlarsanız aynı key + aynı payload önbellekteki cevabı döndürür.
- Aynı key + farklı payload
409 IDEMPOTENCY_CONFLICTdöndürür; bu yeniden denenemez — yeni payload için yeni bir key kullanın. - İlk istek hâlâ işlenirken aynı key ile gönderilen ikinci istek
409 IDEMPOTENCY_IN_PROGRESSdöndürür; kısa bir bekleme sonrası aynı key ile yeniden deneyin. Takılı kalan bir in-progress talep15 dakikasonra serbest bırakılır. - Özgün task 24 saatlik saklama süresini aştıysa replay
409 IDEMPOTENCY_REPLAY_EXPIREDdöndürür; yeni bir key ile yeni bir dönüşüm başlatın. - Idempotency kayıtları
24 saatyaşar ve task saklama süresiyle eşleşir.
Uç nokta referansı
Tüm endpoint’ler /api/v1 altında kullanılabilir. Timeout’lar 504, diğer geçici bağlantı hataları 502 olarak görünür; korelasyon ID’leri support ekibinin istekleri uçtan uca izlemesine yardımcı olur.
POST /api/v1/invoices:convert
CanlıPDF, DOCX veya TXT fatura belgesi yükleyin ve asenkron dönüşümü başlatın. Polling için task_id döndürür. ZUGFeRD/Factur-X hibrit PDF indirmeleri PDF kaynak yüklemesi gerektirir; DOCX/TXT kaynakları XML sonuçları istemelidir. Gömülü fatura XML’i varsayılan olarak yok sayılır; use_embedded_xml=true değerini yalnızca entegrasyonunuz gömülü XML’i birincil çıkarma kaynağı olarak kabul ediyorsa ayarlayın. İstek: multipart/form-data; file (binary, zorunlu) — PDF, DOCX veya TXT fatura kaynak belgesi; eski DOC/RTF, görüntü ve diğer dosyalar reddedilir; format (string, zorunlu) — hedef çıktı formatı; aşağıdaki format matrisine bakın; profile (string, opsiyonel, deterministik entegrasyonlar için önerilir) — açık uyumluluk profili; büyük/küçük harf duyarsız eşleştirilir. Her formatın kapalı bir kabul listesi ve tek bir varsayılanı vardır: XRECHNUNG → [XRECHNUNG] (varsayılan XRECHNUNG); EN16931 → [EN16931] (varsayılan EN16931); UBL → [XRECHNUNG, PEPPOL, EN16931] (varsayılan EN16931); CII → [XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (varsayılan EN16931); ZUGFERD → [ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (varsayılan ZUGFERD_EN16931). ZUGFERD, FACTURX, FACTUR-X ve FACTUR_X, ZUGFERD_EN16931 için alias’tır; ZUGFERD-XRECHNUNG ise ZUGFERD_XRECHNUNG için alias’tır. Kabul listesi dışındaki bir değer 422 OUTPUT_PROFILE_CONFLICT, tanınmayan bir profil adı ise details.allowed_profiles ile 422 INVALID_PROFILE döndürür; jurisdiction (string, opsiyonel) — doğrulama/danışma kontrolleri için açık ISO 3166-1 alpha-2 yargı bağlamı; profili geçersiz kılmaz; transaction_scope (string, opsiyonel) — B2G gibi açık işlem kapsamı bağlamı; kuyruğa alınan task’a uygulanır; delivery_channel (string, opsiyonel) — PEPPOL, DIRECT_XML, PORTAL, EMAIL_PDF, UNKNOWN değerlerinden biri; kuyruğa alınan task’a uygulanır; client_reference veya external_invoice_id (string, opsiyonel) — kabul edilen yüklemelerde ve task durum yanıtlarında dönen müşteri tarafı fatura/iş referansı; source_system (string, opsiyonel) — kabul edilen yüklemelerde ve task durum yanıtlarında dönen üst sistem ERP veya faturalama etiketi; email_input (serbest metin, opsiyonel, yalnızca PDF kaynakları) — herhangi bir dilde, en fazla 10.000 karakter müşteri talimatı; e-posta blok işaretleri olmadan gönderilir; tüm yapay zekâ çıkarım ve düzeltme adımları bunu fatura kaynak metninden ayrı alır; use_embedded_xml=true ile birlikte kullanılamaz, idempotens için istek kimliğinin parçasıdır ve invoices:convert-structured tarafından desteklenmez; standart fatura doğrulaması geçerli kalır; use_seller_master_data (boolean, opsiyonel) — belirtilmezse tenant profil varsayılanı geçerlidir; false bu istek için kayıtlı satıcı varsayılanlarını yok sayar, true satıcı varsayılanlarını sağlar/kullanır; seller_master_data (JSON nesne dizesi, opsiyonel) — yalnızca use_seller_master_data=true olduğunda kullanılan satıcı varsayılanları; şirket, adres, vergi, iletişim ve ödeme alanlarını destekler (payment_means_code 30/42/58, payment_iban, payment_bic, payment_account_name, payment_terms_note); her profil değeri ilgili çıkarılan değerin yerini alır, profil olmayan alanlar değişmez ve farklar engelleyici olmayan uyarılar oluşturur; electronic_address ve electronic_address_scheme birlikte gönderilmeli veya ikisi de atlanmalıdır; use_embedded_xml (boolean, opsiyonel, varsayılan false) — gömülü Factur-X, ZUGFeRD veya XRechnung XML’i açıkça true ayarlanmadıkça yok sayılır; yalnızca entegrasyon gömülü XML’i birincil çıkarma kaynağı olarak kabul ediyorsa kullanın. Yanıt: 202 Accepted.
POST /api/v1/invoices:convert-structured
CanlıTaşıyıcı PDF ile CSV, JSON, XML, XLSX veya TXT fatura verisini yükleyin ve yapılandırılmış veriden asenkron dönüşümü başlatın. data_file parçaları tek semantik kaynaktır; PDF eksik fatura alanlarını tamamlamaz. ZUGFeRD/Factur-X için taşıyıcı PDF olarak kullanılır, XML odaklı çıktılarda ise gönderilen PDF artefaktı olarak saklanır. Her fatura için bir dönüşüm isteği kullanın; data_file alanını yalnızca aynı faturaya ait bölünmüş ERP dışa aktarımları için tekrarlayın. İstek: multipart/form-data; pdf_file (binary, zorunlu) — ZUGFeRD/Factur-X gömme için kullanılan ve XML odaklı çıktılarda saklanan taşıyıcı PDF; data_file (binary, zorunlu, tekrarlanabilir) — tek semantik kaynak olarak kullanılan CSV, JSON, XML, XLSX veya TXT fatura verisi; .xls, PDF ve görüntü dosyaları data_file olarak reddedilir; aynı faturanın bölünmüş başlık/satır dışa aktarımları için tekrarlayın; data_files ve data_files[] aliasları kabul edilir; yapılandırılmış veri toplam boyutu — tüm data_file parçaları genelinde en fazla 2 MB; format (string, zorunlu) — hedef çıktı formatı; XRECHNUNG, ZUGFERD, EN16931, UBL ve CII desteklenir; profile (string, opsiyonel, deterministik entegrasyonlar için önerilir) — açık uyumluluk profili; büyük/küçük harf duyarsız eşleştirilir. Her formatın kapalı bir kabul listesi ve tek bir varsayılanı vardır: XRECHNUNG → [XRECHNUNG] (varsayılan XRECHNUNG); EN16931 → [EN16931] (varsayılan EN16931); UBL → [XRECHNUNG, PEPPOL, EN16931] (varsayılan EN16931); CII → [XRECHNUNG, EN16931, ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (varsayılan EN16931); ZUGFERD → [ZUGFERD_EN16931, ZUGFERD_FACTURX_EXTENDED, ZUGFERD_XRECHNUNG] (varsayılan ZUGFERD_EN16931). Kabul listesi dışındaki bir değer 422 OUTPUT_PROFILE_CONFLICT, tanınmayan bir profil adı ise details.allowed_profiles ile 422 INVALID_PROFILE döndürür; jurisdiction (string, opsiyonel) — doğrulama/danışma kontrolleri için açık ISO 3166-1 alpha-2 yargı bağlamı; profili geçersiz kılmaz; transaction_scope (string, opsiyonel) — B2G gibi açık işlem kapsamı bağlamı; kuyruğa alınan task’a uygulanır; delivery_channel (string, opsiyonel) — PEPPOL, DIRECT_XML, PORTAL, EMAIL_PDF, UNKNOWN değerlerinden biri; kuyruğa alınan task’a uygulanır; client_reference veya external_invoice_id (string, opsiyonel) — kabul edilen yüklemelerde ve task durum yanıtlarında dönen müşteri tarafı fatura/iş referansı; source_system (string, opsiyonel) — kabul edilen yüklemelerde ve task durum yanıtlarında dönen üst sistem ERP veya faturalama etiketi; use_seller_master_data (boolean, opsiyonel) — belirtilmezse tenant profil varsayılanı geçerlidir; false bu istek için kayıtlı satıcı varsayılanlarını yok sayar, true satıcı varsayılanlarını sağlar/kullanır; seller_master_data (JSON nesne dizesi, opsiyonel) — yalnızca use_seller_master_data=true olduğunda kullanılan satıcı varsayılanları; şirket, adres, vergi, iletişim ve ödeme alanlarını destekler (payment_means_code 30/42/58, payment_iban, payment_bic, payment_account_name, payment_terms_note); her profil değeri ilgili çıkarılan değerin yerini alır, profil olmayan alanlar değişmez ve farklar engelleyici olmayan uyarılar oluşturur; electronic_address ve electronic_address_scheme birlikte gönderilmeli veya ikisi de atlanmalıdır. Yanıt: 202 Accepted.
GET /api/v1/tasks/{task_id}
CanlıBir dönüşüm task’ının mevcut durumunu sorgulayın. pending (kabul edilmiş ve kuyrukta, henüz başlamamış), processing, completed veya failed döndürür. Rate limit 10/min ve 120/hour; polling için bağlayıcı kısıt budur: kabul edilen 202 sonrası ilk çağrı için yaklaşık 20 saniye bekleyin, ardından aralıkları artırın (20s, 30s, 45s, 60s ve sonrasında 60s) ve completed veya failed durumunda durun. Tamamlanan task’lar, istemcilerin hangi XML/PDF artefaktlarının kullanılabilir, önbelleğe alınmış ve doğrulama kanıtlı olduğunu görebilmesi için result_artifacts tanılarını içerir. Tamamlanan task payload’ları, kaynak kanıt eksik, şüpheli veya kesilmiş olduğunda SOURCE_CONTEXT_* kural ID’leri içeren ek _processing_warnings ve _validation_warnings girdileri içerebilir; bunları hata değil inceleme sinyali olarak ele alın. failed olduğunda cevap, hata nedenini içeren bir error alanı içerir. İstek: yok (GET); task_id (path, zorunlu) — convert endpoint’inin döndürdüğü UUID; include_validation_report_html (query, opsiyonel) — true veya false (varsayılan false); true olduğunda durum yanıtı, mevcutsa geçerli katı artefaktın arındırılmış HTML doğrulama raporunu satır içi döndürür. Yanıt: 200 OK.
GET /api/v1/tasks/{task_id}/result
CanlıOluşturulan dosyayı indirin (XML veya PDF). Sonuç söz dizimi özgün task formatıyla eşleşir: XRECHNUNG/EN16931/UBL UBL XML, CII/ZUGFERD CII XML döndürür; ZUGFERD + download=pdf hibrit PDF/A-3 döndürür. Diğer formatlarda download=pdf render edilmiş bir PDF döndürebilir; tamamlanan bir task’ta download=xml beklenen-kullanılabilir artefakttır, garantili değildir. Doğrulama kanıtı hâlâ güncelse tekrarlı indirmeler önbelleğe alınmış artefaktlardan sunulabilir. İşleme devam ederken uç nokta standart hata zarfını taşıyan bir 202 döndürür ({"code":"TASK_NOT_READY","message":"Strict conversion is still processing. No validated artifact is available yet.","correlation_id":"<uuid>"}); engelleyici doğrulama hataları 422 VALIDATION_FAILED, yeniden denenebilir bağımlılık eksikleri 503, kalıcı dönüşüm hataları nedeni details.code içinde olacak şekilde 500 TASK_FAILED ve artefakt invariant hataları 500 INTERNAL_ARTIFACT_INVARIANT_FAILED döndürür; bu durumlarda dosya gövdesi yoktur. Başarılı indirmeler X-Correlation-ID, Content-Disposition, Cache-Control: no-store, X-Artifact-Sha256, X-Validation-Proof-Id, X-Artifact-Proof-Id, X-Artifact-State, X-Validation-State, X-Proof-Status ve X-Validator-Bundle-Id taşır; X-Task-Id bu uç noktada ayarlanmaz. Rate limit 10/min ve yaklaşık 134/hour. İstek: yok (GET); task_id (path, zorunlu) — convert endpoint’inin döndürdüğü UUID; download (query, zorunlu) — xml veya pdf. Yanıt: 200 OK.
GET /api/v1/tasks/{task_id}/validation-report
CanlıGeçerli doğrulanmış sonuç artefaktının raporunu indirin. Rapor, sıkı dönüşüm güncel kanıtlı bir artefaktı kaydettikten sonra kullanılabilir; aksi halde endpoint 202 veya 404 döndürür. Yanıt header’ları artefaktı ve rapor kanıtını tanımlar. X-Artifact-Sha256 rapor dosyasını değil, sonuç artefaktını tanımlar. Rate limit: 10/dakika ve 120/saat. İstek: yok (GET); task_id (path, zorunlu) — dönüşüm endpoint’inin döndürdüğü UUID; download (query, isteğe bağlı) — html veya xml. Yanıt: 200 OK.
Çıktı biçimi matrisi
| Biçim | Söz dizimi | Sürüm / Profil | Content-Type | Uzantı |
|---|---|---|---|---|
| XRECHNUNG | UBL 2.1 XML | XRechnung 3.0.2 | application/xml | .xml |
| ZUGFERD | CII XML (download=xml) / hibrit PDF/A-3 (download=pdf) | ZUGFeRD 2.5 / Factur-X 1.09 | application/xml veya application/pdf | .xml / .pdf |
| EN16931 | UBL 2.1 XML | EN 16931 | application/xml | .xml |
| UBL | UBL 2.1 XML | OASIS UBL 2.1 | application/xml | .xml |
| CII | UN/CEFACT CII XML | D16B | application/xml | .xml |
Hata sözleşmesi
| Kod | HTTP | Tekrar denenebilir | Notlar |
|---|---|---|---|
| AUTHENTICATION_REQUIRED | 401 | Hayır | Bearer token eksik/boş |
| INVALID_API_KEY | 401 | Hayır | API anahtarı bulunamadı, iptal edildi veya süresi doldu |
| API_NOT_ENABLED_FOR_TENANT | 403 | Hayır | Anahtar geçerli, ancak bu hesap için External API erişimi kapalı; destekle iletişime geçin |
| INSUFFICIENT_API_CREDITS | 402 | Hayır | Pakete dahil aylık kontenjan ile ön ödemeli API kredileri isteği karşılayamadı. İki details biçimi vardır: ön ödemeli (remaining, minimum_purchase 100) ve dahil kontenjan (included_remaining, credit_remaining, shortfall, minimum_purchase 100). code alanına göre ayrıştırın ve mevcut olan anahtarları okuyun |
| IDEMPOTENCY_KEY_REQUIRED | 400 | Hayır | Yazma endpoint’i Idempotency-Key olmadan çağrıldı |
| INVALID_IDEMPOTENCY_KEY | 400 | Hayır | Idempotency key [A-Za-z0-9._:-]+ ile eşleşmeli ve en fazla 200 karakter olmalıdır |
| IDEMPOTENCY_CONFLICT | 409 | Hayır | Key daha önce farklı bir payload ile kullanılmış ya da idempotent talep başlatılamamış; yeni payload için yeni bir key kullanın |
| IDEMPOTENCY_IN_PROGRESS | 409 | Evet | Bu key ile gönderilen ilk istek hâlâ işleniyor; kısa bir bekleme sonrası AYNI key ile yeniden deneyin. Takılı kalan bir in-progress talep 15 dakika sonra serbest bırakılır |
| IDEMPOTENCY_REPLAY_EXPIRED | 409 | Hayır | İlk task 24 saatlik saklama süresini geçti; yeni bir anahtarla yeni dönüşüm başlatın |
| FORMAT_REQUIRED | 400 | Hayır | Dönüşüm isteğinde zorunlu format eksik |
| INVALID_FORMAT | 422 | Hayır | Desteklenmeyen dönüşüm formatı |
| CLIENT_REFERENCE_CONFLICT | 400 | Hayır | client_reference ve external_invoice_id farklı |
| INVALID_CLIENT_METADATA | 400 | Hayır | client_reference, external_invoice_id veya source_system uzunluk limitini aşıyor ya da kontrol karakterleri içeriyor |
| INVALID_EMAIL_INPUT | 400 | Hayır | email_input birden fazla kez gönderildi, 10.000 karakteri aştı, PDF olmayan bir kaynakla veya use_embedded_xml=true ile birlikte kullanıldı ya da invoices:convert-structured adresine gönderildi |
| INVALID_EMBEDDED_XML_POLICY | 400 | Hayır | use_embedded_xml true veya false olmalıdır |
| INVALID_SELLER_MASTER_DATA | 400 | Hayır | use_seller_master_data veya seller_master_data ayrıştırılamıyor ya da alan doğrulamasından geçemiyor; electronic_address ve electronic_address_scheme birlikte gönderilmeli veya ikisi de atlanmalıdır |
| METHOD_NOT_ALLOWED | 405 | Hayır | Dönüşüm yolları yalnızca POST, task yolları yalnızca GET kabul eder; yanıt Allow: POST, OPTIONS (dönüşüm) veya Allow: GET, OPTIONS (task) içerir |
| DOWNLOAD_FORMAT_REQUIRED | 400 | Hayır | Task sonuç isteğinde zorunlu download sorgusu eksik |
| INVALID_DOWNLOAD_FORMAT | 400 | Hayır | download xml veya pdf olmalıdır |
| AUTH_SERVICE_UNAVAILABLE | 503 | Evet | Auth backend kullanılamıyor |
| RATE_LIMIT_SERVICE_UNAVAILABLE | 503 | Evet | Rate-limit servisine ulaşılamadı; backoff ile yeniden deneyin |
| PLAN_TIER_CHECK_FAILED | 503 | Evet | Plan veya API erişimi doğrulanamadı; artan bekleme ile yeniden deneyin |
| API_CREDIT_SERVICE_UNAVAILABLE | 503 | Evet | Ön ödemeli API kredisi veya kanal kontenjanı doğrulaması dönüşüm yüklemelerinde geçici olarak kullanılamıyor |
| RATE_LIMITED | 429 | Evet | Retry-After değerine uyun. Retry-After, X-RateLimit-Limit-Minute ve X-RateLimit-Limit-Hour yalnızca 429 yanıtlarında döner; gövde details.minute_count, details.hour_count, details.limit_minute ve details.limit_hour taşır |
| BAD_REQUEST | 400 | Hayır | Geçersiz JSON veya geçersiz UUID path parametresi |
| INVALID_QUERY_PARAMETER | 400 | Hayır | include_validation_report_html true veya false olmalıdır |
| PAYLOAD_TOO_LARGE | 413 | Hayır | Yükleme boyutu limitini aşıyor |
| INVALID_UPLOAD | 400 | Hayır | Yükleme okunamadı/ayrıştırılamadı |
| UPLOAD_FAILED | 422 | Hayır | Opsiyonel bir bağlam alanı (jurisdiction, transaction_scope, delivery_channel) tanınmayan bir değer içeriyordu; izin verilen değerler message alanında yer alır |
| INVALID_PROFILE | 422 | Hayır | Profil adı tanınmıyor; details.allowed_profiles kabul edilen değerleri listeler |
| TASK_NOT_READY | 202 | Evet | Asenkron tamamlama için tekrar poll edin |
| TASK_NOT_FOUND | 404 | Hayır | Task bilinmiyor, tenant’a ait değil ya da terminal duruma ulaştıktan sonra 24 saatlik saklama süresini aşmış |
| VALIDATION_FAILED | 422 | Hayır | Katı ZUGFeRD ön koşul hataları ve çözülmemiş blocking_source_conflict girdileri dahil engelleyici doğrulama sorunları devam ediyor; tekrar denemeden önce fatura verilerini düzeltin |
| AUTHORITATIVE_VALIDATION_UNAVAILABLE | 503 | Evet | Yetkili doğrulama, kanıt kaydı veya hibrit üretim bağımlılığı kullanılamıyor; daha sonra tekrar deneyin |
| TASK_STATUS_FAILED | 4xx/5xx | Koşullu | Geçici servis koşulu varsa yeniden deneyin |
| TASK_RESULT_FAILED | 4xx/5xx | Koşullu | Geçici servis koşulu varsa yeniden deneyin |
| TASK_FAILED | 500 | Koşullu | Sonuç uç noktasında bildirilen dönüşüm hatası. details.code ve details.retryable değerlerini okuyun: MULTIPLE_INVOICES_IN_DOCUMENT, NO_INVOICE_DETECTED, INSUFFICIENT_INVOICE_SIGNAL, SCHEMA_PARSE_FAILED ve ARTIFACT_PARITY_FAILED kalıcıdır; PROVIDER_ERROR ve tanınmayan her details.code, details.retryable değerine uyar ve details.retryable=true, aynı task’ı yeniden pollamak yerine yeni bir Idempotency-Key ile YENİ bir dönüşüm başlatmanız gerektiği anlamına gelir. Başarısız dönüşüm bir faturalandırma birimi tüketmez |
| MULTIPLE_INVOICES_IN_DOCUMENT | 500 (details code) | Hayır | Kalıcı: Kaynak birden fazla fatura içeriyor. Her faturayı ayrı dosyaya bölün ve ayrı dönüşümler başlatın |
| NO_INVOICE_DETECTED | 500 (details code) | Hayır | Kalıcı: Belge fatura gibi görünmüyor; insan incelemesine gönderin |
| INSUFFICIENT_INVOICE_SIGNAL | 500 (details code) | Hayır | Kalıcı: Kaynakta yeterli fatura verisi yok; daha iyi bir kaynak sağlayın veya yapılandırılmış dönüşüm kullanın |
| SCHEMA_PARSE_FAILED | 500 (details code) | Hayır | Bu girdi için kalıcı: Çıkarılan veri şemaya ayrıştırılamadı. Yeni dönüşüm başlatın; aynı belgede tekrarlanırsa eskale edin |
| PROVIDER_ERROR | 500 (details code) | Koşullu | Çıkarma sağlayıcısı başarısız oldu. details.retryable değerini izleyin; provider_context_too_large için daha küçük kaynak belge kullanın |
| XML_GENERATION_FAILED | 500 | Evet | Geçici XML üretim hatası veya zaman aşımı |
| PDF_GENERATION_FAILED | 500 | Evet | Geçici PDF üretim hatası veya zaman aşımı |
| ARTIFACT_GENERATION_RERUN_REQUIRED | 503 | Hayır | Katı artifact üretimi sunucu tarafı retry denemelerinden sonra başarısız oldu; bağımlılık düzeldikten sonra yeni bir dönüştürme başlatın |
| EXTRACTION_INCOMPLETE_GROUP_FAILURE | 503 | Hayır | Bir veya daha fazla çıkarma grubu başarısız oldu. Task düzelmez; yeni dönüşüm başlatın ve details.failed_groups alanını inceleyin |
| ARTIFACT_GENERATION_FAILED | 503 (details code) | Hayır | Yeniden denenebilir katı üretim hataları için başarısız task’lara kaydedilir; sonuç indirmeleri details içinde bu kodla 503 ARTIFACT_GENERATION_RERUN_REQUIRED döndürür |
| ARTIFACT_PARITY_FAILED | 500 (details code) | Hayır | Katı artefakt, nihai incelenmiş fatura verisiyle eşleşmediğinde 500 TASK_FAILED details içinde bildirilir; korelasyon ID’si ile destek ekibine iletin |
| INTERNAL_ARTIFACT_INVARIANT_FAILED | 500 | Hayır | Tamamlanan katı task’ın istenen indirme için güvenli kayıtlı artefaktı yok; korelasyon ID’si ile destek ekibine iletin |
| PROFILE_MISMATCH | 422 | Hayır | İstenen profil, sonuç indirmede kayıtlı sonucun CustomizationID değeriyle eşleşmiyor |
| ZUGFERD_SOURCE_PDF_INCOMPATIBLE | 422 | Hayır | Katı hibrit PDF üretimi XML verisini yüklenen kaynak PDF içine gömemiyor |
| ZUGFERD_SOURCE_PDF_REQUIRED | 422 | Hayır | ZUGFERD için download=pdf bir PDF kaynak yüklemesi gerektirir (DOCX/TXT kaynakları hibrit PDF taşıyamaz); bunun yerine download=xml isteyin |
| VALIDATION_REPORT_NOT_FOUND | 404 | Hayır | Geçerli teslim edilen artefakt kanıtına bağlı doğrulama raporu yok |
| VALIDATION_REPORT_FAILED | 4xx/5xx | Koşullu | Doğrulama raporu alınamadı; yalnızca geçici 5xx durumlarında yeniden deneyin |
| OUTPUT_PROFILE_REQUIRED | 422 | Hayır | Net bir varsayılan belirlenemediğinde genel çıktı sözleşmesi açık profil gerektirir |
| OUTPUT_PROFILE_CONFLICT | 422 | Hayır | Profil seçilen çıktı formatı veya açık varyantla çelişiyor |
| PROXY_ERROR | 502/504 | Evet | Dönüşüm sonucu değil, taşıma katmanı hatası: proxy/upstream hatası (timeout için 504). Backoff ve aynı idempotency key ile yeniden deneyin |
Yaygın hatalar ve yapılacaklar
- Backoff ile tekrar deneyin:
429,502,504, yeniden denenebilir kod taşıyan503veTASK_FAILEDya daINTERNAL_ARTIFACT_INVARIANT_FAILEDolmayan geçici500hataları.500 TASK_FAILEDyalnızcadetails.retryabletrueolduğunda ve yalnızca yeni bir dönüşüm olarak yeniden denenebilir. - Yeniden denemeyin:
400,401,402,403,404,405,413,422,409 IDEMPOTENCY_CONFLICT,409 IDEMPOTENCY_REPLAY_EXPIRED,details.retryabletrueolmadığında500 TASK_FAILEDve500 INTERNAL_ARTIFACT_INVARIANT_FAILED. - İstek veya kaynak veriyi düzeltin:
400,413,422. - Erişim veya kimlik bilgilerini düzeltin:
401 INVALID_API_KEY.403 API_NOT_ENABLED_FOR_TENANT, anahtarın geçerli olduğunu ancak hesap için External API erişiminin açık olmadığını gösterir — destek ekibine başvurun. - Pakete dahil aylık kontenjanı doğrulayın veya ön ödemeli API kredi paketi satın alın:
402 INSUFFICIENT_API_CREDITS. Mevcut olandetailsanahtarlarını okuyun (ön ödemeli hesaplardaremaining; dahil kontenjan uygulanıyorsaincluded_remaining/credit_remaining/shortfall). - Daha sonra polling yapmaya devam edin:
202 TASK_NOT_READY. 500 TASK_FAILEDiçindetails.codevedetails.retryabledeğerlerini okuyun.MULTIPLE_INVOICES_IN_DOCUMENT,NO_INVOICE_DETECTED,INSUFFICIENT_INVOICE_SIGNAL,SCHEMA_PARSE_FAILEDveARTIFACT_PARITY_FAILEDkalıcıdır;PROVIDER_ERRORve tanınmayan her koddetails.retryabledeğerine uyar;trueise aynı task’ı yeniden pollamak yerine YENİ bir dönüşüm başlatın. Başarısız dönüşüm bir faturalandırma birimi tüketmez.422 VALIDATION_FAILEDiçin alanı, kural ID’sini ve düzeltme önerisini insan inceleyiciye gösterin; düzeltilmiş fatura verisiyle sonra tekrar deneyin.503 AUTHORITATIVE_VALIDATION_UNAVAILABLEiçin aynı task sonucunu daha sonra yeniden alın; doğrulanmamış artefakt teslim edilmemiştir.503 ARTIFACT_GENERATION_RERUN_REQUIREDve503 EXTRACTION_INCOMPLETE_GROUP_FAILUREiçin bunun yerine yeni bir dönüşüm başlatın.502ve504 PROXY_ERRORdönüşüm sonucu değil taşıma katmanı hatasıdır; backoff ve aynı idempotency key ile yeniden deneyin.
Hız ve yük limitleri
API anahtarı bazlı rate limit’ler ve payload boyutu sınırları tüm API çağrıları için uygulanır. Reddedilen dönüşümler ön ödemeli API kredisi tüketmez; rate limit’ler uç nokta bazında ayrı hesaplanır.
- Uç nokta bazlı limitler maliyet ağırlıklıdır ve her uç noktanın kendi bucket’ı vardır; böylece polling dönüşüm kapasitesini tüketemez. API anahtarı başına varsayılanlar:
POST /invoices:convertvePOST /invoices:convert-structured30/minve500/hour;GET /tasks/{task_id}10/minve120/hour;GET /tasks/{task_id}/result10/minve yaklaşık134/hour;GET /tasks/{task_id}/validation-report10/minve120/hour. - Kota header’ları yalnızca
429 RATE_LIMITEDyanıtlarında döner. Başarılı yanıtlar kota header’ı taşımaz; bu nedenle yukarıdaki tabloyu geçerli sözleşme kabul edin ve tam etkin değerleri bir429yanıtından okuyun. - Polling için bağlayıcı kısıt durum bucket’ıdır: kabul edilen
202sonrası ilk durum çağrısı için yaklaşık20 saniyebekleyin, ardından aralıkları artırın (20s, 30s, 45s, 60s ve sonrasında 60s) vecompletedveyafaileddurumunda durun. Her 10 saniyede bir sorgulamayın; bu şekilde sorgulanan tek bir task saatlik bütçesinin tamamını 20 dakikada tüketir. - Kaynak belge yükleme maksimum boyutu: PDF, DOCX veya TXT dosyaları için
20 MB. - Maksimum yapılandırılmış veri yükleme boyutu: tüm
data_fileparçaları genelinde toplam2 MB. - Maksimum JSON payload boyutu:
1 MB 429yanıtlarıRetry-After,X-RateLimit-Limit-MinuteveX-RateLimit-Limit-Hourile birliktedetails.minute_count,details.hour_count,details.limit_minutevedetails.limit_houriçerir.
Yeniden deneme rehberi
- Jitter ile üstel backoff kullanın ve bir yazma isteğinin her yeniden denemesinde aynı
Idempotency-Keydeğerini kullanın. - Kararınızı makine tarafından okunabilir
codealanına —500 TASK_FAILEDiçin ayrıcadetails.codevedetails.retryablealanlarına — göre verin; asla yalnızca HTTP durumuna göre değil. Bu API’de500otomatik olarak yeniden denenebilir değildir. - Yeniden denenebilir:
429,502,504, yeniden denenebilir kod taşıyan503,TASK_FAILEDya daINTERNAL_ARTIFACT_INVARIANT_FAILEDOLMAYAN geçici500hataları vedetails.retryabletrueolduğunda500 TASK_FAILED(geçici sağlayıcı hataları: rate limit, timeout, taşıma hatası) — bu durumu aynı task’ı yeniden pollayarak değil, yeni birIdempotency-Keyile YENİ bir dönüşüm olarak tekrarlayın. - Asla yeniden denemeyin:
400,401,402,403,404,405,413,422,409 IDEMPOTENCY_CONFLICT,409 IDEMPOTENCY_REPLAY_EXPIRED,details.retryabletrueolmadığında500 TASK_FAILEDve500 INTERNAL_ARTIFACT_INVARIANT_FAILED. Kalıcı olarak başarısız olan bir dönüşüm faturalandırma birimi tüketmez. 409 IDEMPOTENCY_IN_PROGRESS, kısa bir bekleme sonrası AYNI key ile yeniden denenebilir; takılı kalan bir in-progress talep 15 dakika sonra serbest bırakılır.503 ARTIFACT_GENERATION_RERUN_REQUIREDve503 EXTRACTION_INCOMPLETE_GROUP_FAILURE, aynı task’ın yeniden denenmesini değil YENİ bir dönüşümü gerektirir.
Görev yaşam döngüsü ve saklama
- Bir task ve saklanan artefaktları, task terminal duruma (
completedveyafailed) ulaştıktan sonra24 saatsaklanır ve ardından silinir. Silme sonrası durum, sonuç ve doğrulama raporu istekleri404 TASK_NOT_FOUNDdöndürür. - Sabit bir dönüşüm zaman aşımı yoktur. Bir task, aşama veya ilerleme güncellemesi olmadan
5 dakikaduraklama penceresi dolduğunda ya da toplam işleme süresi mutlak15 dakikaüst sınırını aştığında başarısız olur. - İstemci tarafı zaman aşımınızı, kabul edilen
202anından itibaren yaklaşık16 dakikaolarak ayarlayın. Dönüşümlerin çoğu iki dakikanın çok altında tamamlanır. - Idempotency kayıtları
24 saatyaşar ve task saklama süresiyle eşleşir. Takılı kalan bir istek15 dakikasonra serbest bırakılır. - Rate-limit sayaçları kayan pencereye göre sıfırlanır.
Destek modeli
- Mesai saatlerinde ticari olarak makul çaba temelinde destek.
- Order form içinde kararlaştırılmadıkça resmi SLA, servis kredisi veya yanıt süresi taahhüdü yoktur.
Değişiklik günlüğü
Dışa açık son API değişiklikleri.
2026-09-08
seller_master_data artık electronic_address ve electronic_address_scheme alanlarını isteğe bağlı tek bir çift olarak işler. Her iki alanı da gönderin veya ikisini de atlayın; eksik bir çift 400 INVALID_SELLER_MASTER_DATA döndürür.
2026-09-07
Fiyat belgesi düzeltmesi: 1.000 ön ödemeli kredi 400 EUR tutarındadır (kredi başına 0,40 EUR). 100, 200 ve 500 kredilik paketler 50, 100 ve 250 EUR olarak kalır. Uygulanan fiyatlar ve mevcut satın alımlar değişmez.
2026-08-24
Belge dönüşümü artık gömülü fatura XML’ini varsayılan olarak yok sayar. use_embedded_xml=true değerini yalnızca entegrasyon gömülü XML’i birincil çıkarma kaynağı olarak açıkça kabul ediyorsa ayarlayın. E-posta İçe Aktarma gömülü fatura XML’ini her zaman yok sayar. use_embedded_xml değişikliği idempotency istek karmasını değiştirir; bu seçeneği değiştirdiğinizde yeni bir Idempotency-Key kullanın.
2026-08-20
Satıcı ana verileri bir alanı doldurduğunda, o alandaki kalan çıkarma bayrakları görünür kalır ancak sıkı E-posta İçe Aktarma veya External API’yi engellemez. Alıcı, satırlar, vergi, teslimat, vade, erken ödeme, havale referansı, doldurulmayan profil alanları ve geçersiz profil değerleri engelleyici kalır.
2026-08-07
Enterprise, aylık 50 EUR veya yıllık 420 EUR ile doğrudan satın almaya açıldı. Enterprise ayda 100 ortak E-posta/API dönüşümü içerir; ek dönüşümler 0,40–0,50 EUR ön ödemeli kredi kullanır. API anahtarları artık manuel onay gerektirmez.
2026-07-29
Güncel hata kataloğu ve koda özgü yeniden deneme kuralları yayımlandı. 500 yanıtı otomatik olarak yeniden denenmez; code, details.code ve details.retryable alanlarını inceleyin. 402 INSUFFICIENT_API_CREDITS için iki details biçimi ve farklı 409 idempotency kurtarma yolları belgelendi. Doğrulama raporu kanıt header’ları, 24 saatlik saklama, task timeout’ları ve endpoint bazlı rate limit’ler yayımlandı. Kapalı format/profil tablosu yayımlandı; indirme, METHOD_NOT_ALLOWED ve PROFILE_MISMATCH yönlendirmeleri düzeltildi.
2026-07-28
API dönüşümü, birden fazla fatura içerdiği doğrulanan kaynağı artık kalıcı MULTIPLE_INVOICES_IN_DOCUMENT ile reddeder. Doğrulanmış çoklu faturaları ayırın. Belirsiz sinyal ise inceleme için 422 VALIDATION_FAILED döndürür.
2026-07-26
Etkin satıcı ana verileri artık eşleşen çıkarılmış satıcı veya ödeme değerlerini değiştirir. Profilde olmayan alanlar çıkarılmış değerleri korur; farklar engellemeyen inceleme uyarıları olarak kalır.
2026-07-25
2026-07-26 ile geçersiz kılındı: Satıcı ana verileri artık yalnızca eksikleri doldurmak yerine eşleşen çıkarılmış değerleri değiştirir.
2026-07-10
Dokümantasyon tamamlaması; çalışma zamanı davranışında değişiklik yok. Hata kataloğu artık daha önce belgelenmemiş çalışma zamanı hata kodlarını belgeliyor: API_CREDIT_SERVICE_UNAVAILABLE, TASK_NOT_FOUND, INVALID_CLIENT_METADATA, INVALID_SELLER_MASTER_DATA, PROFILE_MISMATCH, ZUGFERD_SOURCE_PDF_REQUIRED, VALIDATION_REPORT_NOT_FOUND, VALIDATION_REPORT_FAILED, INVALID_QUERY_PARAMETER ve METHOD_NOT_ALLOWED dahil. Hata yanıtlarını makine tarafından okunabilir code alanıyla ayrıştıran istemciler için değişiklik gerekmez; sabit kod listesine göre çalışan istemciler yeni belgelenen değerleri eklemelidir. Changelog tarihleri düzeltildi: DOCX/TXT kaynak desteği 2026-07-06 değil 2026-06-30 tarihinde yayınlandı.
2026-07-06
Tamamlanan task payload’ları, kaynak kanıt çıkarımdan önce eksik, şüpheli veya kesilmiş olduğunda SOURCE_CONTEXT_* kural ID’leri içeren ek _processing_warnings ve _validation_warnings girdileri içerebilir. SOURCE_CONTEXT_* girdilerini müşteri tarafı istisna yönetimi için inceleme sinyali olarak ele alın; katı artefakt indirmeleri doğrulama kanıtı ve artefakt kontrolleriyle korunmaya devam eder.
2026-07-03
Katı ZUGFeRD ön koşul hataları (hibrit üretim için zorunlu alan eksikleri) artık yeniden denenebilir 503 yerine engelleyici kural ID’leriyle 422 VALIDATION_FAILED olarak başarısız olur; bunları retry döngüsüne değil veri düzeltme akışına yönlendirin. Yalnızca XML üreten formatlarda (XRECHNUNG, EN16931, UBL, CII) PDF görüntüsü artık en iyi çaba esaslı bir kolaylık artefaktıdır: tamamlanan task’larda download=xml belirleyici ve erişilebilir kalır, XML üretiminden sonra render başarısız olursa download=pdf kullanılamayabilir. Çözülmemiş engelleyici kaynak çatışmaları olan dönüşümler artık artefakt üretmek yerine blocking_source_conflict girdileriyle 422 VALIDATION_FAILED olarak başarısız olur.
2026-06-30
POST /api/v1/invoices:convert artık file alanında PDF, DOCX ve TXT fatura kaynak belgelerini kabul eder. Eski DOC, RTF, görüntü ve desteklenmeyen diğer kaynak dosyalar dönüşüm başlamadan önce reddedilir. ZUGFeRD/Factur-X hibrit PDF indirmeleri hâlâ PDF kaynak yüklemesi gerektirir; DOCX/TXT kaynak dönüşümleri için XML indirmelerini kullanın. GET /api/v1/tasks/{task_id} üzerinde, mevcut olduğunda arındırılmış HTML doğrulama raporunu satır içi döndüren opsiyonel include_validation_report_html=true eklendi. Dönüşüm yüklemeleri artık her iki endpoint’te opsiyonel use_seller_master_data ve seller_master_data alanlarını kabul eder; onaylı tenant’lar kayıtlı veya istek kapsamlı satıcı varsayılanlarını etkinleştirebilir.
2026-06-29
Geçerli katı sonuç artefaktı kanıtına bağlı doğrulama raporunu almak için GET /api/v1/tasks/{task_id}/validation-report?download=html|xml eklendi. Doğrulama raporu yanıtları task ID, artefakt SHA-256, doğrulama kanıtı ID, rapor kanıtı ID, rapor içerik türü ve korelasyon ID header’larını içerir.
2026-06-10
Gönderilen fatura verisi artık hibrit ZUGFeRD çıktısının veri kaynağıdır; deterministik temizleme ve vergi normalleştirmesi sürer. Task’lar sabit beş dakikalık timeout yerine ilerleme durduğunda veya 15 dakikalık üst sınırda başarısız olur.
2026-06-09
Kullanım kaydı hataları hazır doğrulanmış yanıtı engellemez veya ek kredi tüketmez; başarısız olaylar mutabakat için sıraya alınır.
2026-06-02
External API erişimi artık sınırsız anahtar oluşturma yerine onaylı erişim olarak belgelenir. Order form içinde kararlaştırılmadıkça resmi SLA, servis kredisi veya sözleşmesel ceza olmadığı netleştirildi. format artık iki dönüşüm endpoint’inde de zorunludur; eksik değerler 400 FORMAT_REQUIRED, desteklenmeyen değerler 422 INVALID_FORMAT döndürür. download artık task-result isteklerinde zorunludur; eksik değerler 400 DOWNLOAD_FORMAT_REQUIRED, desteklenmeyen değerler 400 INVALID_DOWNLOAD_FORMAT döndürür. Dönüşüm yüklemeleri artık müşteri tarafı mutabakat için client_reference/external_invoice_id ve source_system kabul eder. Kabul edilen dönüşüm ve task durum yanıtları artık status_url, primary_result_format, primary_result_url ve gönderilen mutabakat alanlarını içerir.
2026-06-01
Yapılandırılmış dönüşüm artık tüm herkese açık çıktı formatlarını kabul eder: XRECHNUNG, ZUGFeRD, EN16931, UBL ve CII. Yapılandırılmış dönüşüm artık bölünmüş ERP dışa aktarımları için tekrarlanabilir data_file parçalarını ve data_files ile data_files[] aliaslarını kabul eder. Yapılandırılmış çok dosyalı paketler tam olarak tek bir faturayı tanımlamalıdır; çelişkili veya eksik paket fatura ID’lerinde erken hata verir. Birden fazla fatura belgesinin her biri kendi idempotency key’ine sahip ayrı dönüşüm task’ları olarak gönderilmesi gerektiği netleştirildi.
2026-05-27
Desteklenen çıktı formatlarında taşıyıcı PDF ve CSV/JSON/XML/XLSX/TXT yapılandırılmış veri dönüşümü için POST /api/v1/invoices:convert-structured eklendi. Bu endpoint’te yapılandırılmış verinin tek semantik kaynak olduğu; PDF’nin hibrit gömme için kullanıldığı belgelendi. Yapılandırılmış dönüşüm için OpenAPI ve Postman artefaktları güncellendi.
2026-05-26
Sıkı XML ve hibrit PDF artefaktlarına iç parite verisi eklendi; hazır olma ve doğrulama durumu için result_artifacts kullanın. Belgelenen üretim base URL’si https://www.invoice-converter.com/api/v1 olarak değişti.
2026-05-19
GET /api/v1/tasks/{task_id}/result yalnızca indirme yapar; dosya üretmez, onarmaz veya doğrulamaz. Sıkı task’lar yalnızca doğrulanmış artefakt kaydedildikten sonra tamamlanır; güncel kanıt yoksa sistem kapalı biçimde hata verir. External API dönüşümü taslak veya uyarı geçersiz kılma olmadan sıkı üretime sabitlendi. Task durumuna result_artifacts tanıları ve belgelenmiş delivery_channel değerleri eklendi.
2026-05-08
Enterprise olmayan tenant’lar için ön ödemeli External API kredileri eklendi. Enterprise order form faturalandırması veya ön ödemeli kredisi olmayan onaylı tenant’lar için 402 INSUFFICIENT_API_CREDITS belgelendi. İdempotent replay’lerin ek API kredisi tüketmediği doğrulandı. External API V1 model yönlendirmesinin sunucu tarafında yönetildiği, profil ve teslimat bağlamının ise çağıran tarafından kontrol edildiği netleştirildi.
2026-03-28
Task durumuna XML/PDF artefakt hazır olma tanıları eklendi. Sıkı sonuç indirmeleri yalnızca sunucu tarafı artefakt kontrollerinden sonra dosya döndürür.
2026-03-26
Başarılı sonuç indirmelerine dönen artefakt için sunucu tarafı doğrulama kanıtı eklendi. Eksik doğrulama veya kanıt bağımlılıkları 503 AUTHORITATIVE_VALIDATION_UNAVAILABLE döndürür. Önbellekteki indirmeler yalnızca kayıtlı doğrulama kanıtı güncelse yeniden kullanılır.
2026-03-06
Task-result indirmeleri CII ve ZUGFERD çıktıları için formata sadık hale getirildi. Aynı task’ın tekrarlı XML/PDF indirmeleri için önbelleğe alınmış sonuç artefaktlarının yeniden kullanımı eklendi. Polling kotaları endpoint kapsamlı ağırlıklı rate-limit bucket’ları ile hizalandı.
2026-02-23
Tüm endpoint’lerde daha açık ve tutarlı API hata cevapları eklendi. Convert seçenekleri genişletildi ve task sonuçları için XML/PDF indirme davranışı belgelendi. Daha sıkı idempotency gereksinimleri ve doğrulama ile retry güvenliği iyileştirildi. OpenAPI/Postman artefaktları güncel API davranışıyla hizalandı.
Teslimat çıktıları
Developer API için makine tarafından okunabilir entegrasyon çıktıları indirin.
Postman ve OpenAPI kullanımı
- Postman koleksiyonunu içe aktarın ve
base_url,api_keyveidempotency_keykoleksiyon değişkenlerini ayarlayın. - Koleksiyonu sırayla çalıştırın: convert, durum sorgulama, ardından sonucu alma.
- OpenAPI JSON ile typed client üretin; dosya yükleme, polling ve binary result işleme için entegrasyon testleri tutun.
- Support’un istekleri uçtan uca izleyebilmesi için
X-Correlation-IDdeğerini loglarda saklayın.
Teknik geri bildirim gönderin
Uygulama sorularınızı, riskleri ve gerekli sözleşme değişikliklerini ekibimizle paylaşın.