e-Arşiv Fatura

Örnekler

Request Örnekleri

Normal satış, internet satışı, ÖKC, tevkifat ve iptal/itiraz senaryoları için kullanılabilir JSON örnekleri.

Senaryo Kapsamı

Aşağıdaki örnekler AddOutgoingInvoice (OutgoingInvoiceRequestModel : InvoiceRequestModel) gövdesine dayanır ve Core/Vbt.Core.Ubl/DocumentRequestModel/ altındaki gerçek model sınıflarından (PartyRequestModel, InvoiceLineRequestModel, QuantityRequestModel, ItemRequestModel vb.) doğrulanmıştır. Her örnek eksiksiz bir gövdedir; alan adları ve iç içe yapı birebir kod tabanındaki property adlarını kullanır.

Alan tipi uyarısı: InvoicedQuantity ve LegalMonetaryTotal içindeki tutarlar dışında, miktar alanı ham bir sayı değil { "UnitCode": "...", "Value": ... } şeklinde bir nesnedir (QuantityRequestModel). Bu, ilk sürümde hatalı gösterilmişti; aşağıdaki örnekler düzeltilmiş halidir.

Örnek 1 — Normal Satış

Ek alan gerektirmeyen temel e-Arşiv Fatura akışı; alıcı GİB e-Fatura mükellefi değildir.

JSON örneğini görüntüle

Tek kalemli, KDV'li standart bir satış.

{
  "ProfileId": "EARSIVFATURA",
  "InvoiceExternalId": "ERP-2026-000145",
  "IssueDate": "2026-03-15T14:30:00",
  "DocumentCurrencyCode": "TRY",
  "AccountingSupplierParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "VKN",
          "Value": "1234567890"
        }
      ],
      "PartyName": "Satıcı Ticaret A.Ş."
    }
  },
  "AccountingCustomerParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "TCKN",
          "Value": "12345678901"
        }
      ],
      "PartyName": "Alıcı Adı Soyadı"
    }
  },
  "InvoiceLine": [
    {
      "Id": "1",
      "InvoicedQuantity": {
        "UnitCode": "C62",
        "Value": 2
      },
      "Price": 50,
      "LineExtensionAmount": 100,
      "Item": {
        "Name": "Kırtasiye Malzemesi"
      }
    }
  ],
  "TaxTotal": [
    {
      "TaxAmount": 18,
      "TaxSubtotal": [
        {
          "TaxableAmount": 100,
          "TaxAmount": 18,
          "Percent": 18,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "KDV",
              "TaxTypeCode": "0015"
            }
          }
        }
      ]
    }
  ],
  "LegalMonetaryTotal": {
    "LineExtensionAmount": 100,
    "TaxExclusiveAmount": 100,
    "TaxInclusiveAmount": 118,
    "PayableAmount": 118
  }
}

Örnek 2 — İnternet Satışı

Ortak alanlara (taraflar, satırlar, toplamlar — Örnek 1'deki gibi) ek olarak InternetPayment ve zorunlu Note ibaresi eklenir.

JSON örneğini görüntüle

Mal ve hizmetlerin sipariş/satın alma sürecinin tamamı internet üzerinden yapıldığı satış.

{
  "ProfileId": "EARSIVFATURA",
  "InvoiceExternalId": "ERP-2026-000146",
  "IssueDate": "2026-03-15T10:00:00",
  "DocumentCurrencyCode": "TRY",
  "AccountingSupplierParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "VKN",
          "Value": "1234567890"
        }
      ],
      "PartyName": "Satıcı Ticaret A.Ş."
    }
  },
  "AccountingCustomerParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "TCKN",
          "Value": "12345678901"
        }
      ],
      "PartyName": "Alıcı Adı Soyadı"
    }
  },
  "InvoiceLine": [
    {
      "Id": "1",
      "InvoicedQuantity": {
        "UnitCode": "C62",
        "Value": 2
      },
      "Price": 50,
      "LineExtensionAmount": 100,
      "Item": {
        "Name": "Kırtasiye Malzemesi"
      }
    }
  ],
  "TaxTotal": [
    {
      "TaxAmount": 18,
      "TaxSubtotal": [
        {
          "TaxableAmount": 100,
          "TaxAmount": 18,
          "Percent": 18,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "KDV",
              "TaxTypeCode": "0015"
            }
          }
        }
      ]
    }
  ],
  "LegalMonetaryTotal": {
    "LineExtensionAmount": 100,
    "TaxExclusiveAmount": 100,
    "TaxInclusiveAmount": 118,
    "PayableAmount": 118
  },
  "Note": [
    "Bu satış internet üzerinden yapılmıştır."
  ],
  "InternetPayment": {
    "WebAdresi": "https://magaza.example.com",
    "OdemeSekli": "KREDIKARTI",
    "OdemeTarihi": "2026-03-14T00:00:00",
    "GonderiTasiyanVknTckn": "1234567890",
    "GonderiTasiyanUnvan": "Kargo Firması A.Ş.",
    "GonderimTarihi": "2026-03-16T00:00:00",
    "Gonderilen": "Alıcı Adı Soyadı"
  }
}
Koşullu alanlar: OdemeSekli=ODEMEARACISI ise OdemeAracisiAdi, OdemeSekli=DIGER ise OdemeSekliAciklama ayrıca zorunlu hâle gelir (INV0036/INV0037). OdemeSekli değeri GİB kod listesinde tanımlı olmalıdır (INV0168).

Örnek 3 — ÖKC ile Birlikte

ÖKC doğrulaması DocumentTypeCode=OKCBF ile tetiklenir; bu durumda aşağıdaki tüm alt alanlar zorunludur (bkz. Teknik Referans — Validasyon Referansları).

JSON örneğini görüntüle

Yeni nesil ÖKC'den düzenlenen fiş bilgisinin fatura ile birlikte gönderilmesi.

{
  "ProfileId": "EARSIVFATURA",
  "InvoiceExternalId": "ERP-2026-000147",
  "IssueDate": "2026-03-15T00:00:00",
  "DocumentCurrencyCode": "TRY",
  "AccountingSupplierParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "VKN",
          "Value": "1234567890"
        }
      ],
      "PartyName": "Satıcı Ticaret A.Ş."
    }
  },
  "AccountingCustomerParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "TCKN",
          "Value": "12345678901"
        }
      ],
      "PartyName": "Alıcı Adı Soyadı"
    }
  },
  "InvoiceLine": [
    {
      "Id": "1",
      "InvoicedQuantity": {
        "UnitCode": "C62",
        "Value": 2
      },
      "Price": 50,
      "LineExtensionAmount": 100,
      "Item": {
        "Name": "Kırtasiye Malzemesi"
      }
    }
  ],
  "TaxTotal": [
    {
      "TaxAmount": 18,
      "TaxSubtotal": [
        {
          "TaxableAmount": 100,
          "TaxAmount": 18,
          "Percent": 18,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "KDV",
              "TaxTypeCode": "0015"
            }
          }
        }
      ]
    }
  ],
  "LegalMonetaryTotal": {
    "LineExtensionAmount": 100,
    "TaxExclusiveAmount": 100,
    "TaxInclusiveAmount": 118,
    "PayableAmount": 118
  },
  "BillingReference": [
    {
      "AdditionalDocumentReference": {
        "Id": "OKC0000123",
        "DocumentTypeCode": "OKCBF",
        "DocumentType": "OKCBilgiFisi",
        "IssueDate": "2026-03-15T00:00:00",
        "DocumentDescription": [
          "Yeni nesil ÖKC fiş bilgisi"
        ],
        "Attachment": {
          "ExternalReference": "https://okc.example.com/fis/OKC0000123"
        },
        "IssuerParty": {
          "EndpointId": "1234567890"
        },
        "ValidityPeriod": {
          "StartDate": "2026-03-15T00:00:00"
        }
      }
    }
  ]
}
Sık hata: DocumentType alanı literal olarak OKCBilgiFisi olmalıdır; ayrıca ValidityPeriod.StartDate, IssueDate ile aynı takvim gününde olmalıdır — aksi hâlde "SCHEME" koduyla reddedilir (bkz. Teknik Referans — Katman A).

Örnek 4 — Tevkifatlı

WithholdingTaxTotal yalnızca InvoiceTypeCode TEVKIFAT/YTBTEVKIFAT/IADE/YTBIADE/SGK/SARJ/SARJANLIK olduğunda kabul edilir.

JSON örneğini görüntüle

GV stopajı tevkifatı içeren bir fatura.

{
  "ProfileId": "EARSIVFATURA",
  "InvoiceExternalId": "ERP-2026-000148",
  "IssueDate": "2026-03-15T00:00:00",
  "DocumentCurrencyCode": "TRY",
  "AccountingSupplierParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "VKN",
          "Value": "1234567890"
        }
      ],
      "PartyName": "Satıcı Ticaret A.Ş."
    }
  },
  "AccountingCustomerParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "TCKN",
          "Value": "12345678901"
        }
      ],
      "PartyName": "Alıcı Adı Soyadı"
    }
  },
  "InvoiceLine": [
    {
      "Id": "1",
      "InvoicedQuantity": {
        "UnitCode": "C62",
        "Value": 2
      },
      "Price": 50,
      "LineExtensionAmount": 100,
      "Item": {
        "Name": "Kırtasiye Malzemesi"
      }
    }
  ],
  "TaxTotal": [
    {
      "TaxAmount": 18,
      "TaxSubtotal": [
        {
          "TaxableAmount": 100,
          "TaxAmount": 18,
          "Percent": 18,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "KDV",
              "TaxTypeCode": "0015"
            }
          }
        }
      ]
    }
  ],
  "LegalMonetaryTotal": {
    "LineExtensionAmount": 100,
    "TaxExclusiveAmount": 100,
    "TaxInclusiveAmount": 118,
    "PayableAmount": 118
  },
  "InvoiceTypeCode": "TEVKIFAT",
  "WithholdingTaxTotal": [
    {
      "TaxAmount": 20,
      "TaxSubtotal": [
        {
          "TaxableAmount": 200,
          "TaxAmount": 20,
          "Percent": 10,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "GV STOPAJI",
              "TaxTypeCode": "0003"
            }
          }
        }
      ]
    }
  ]
}
Sık hata: TaxSubtotal.TaxCategory.TaxScheme.TaxTypeCode ve Percent ikilisi platformun (parametre tablosundan gelen) tanımlı tevkifat kod/oran eşleşmelerinden biri olmalıdır; eşleşmeyen bir kombinasyon "Uyumsuz vergi tipi yüzdesi" mesajıyla reddedilir.

Örnek 5 — Mükerrer/İade Referanslı

InvoiceTypeCode=IADE olduğunda referans verilen orijinal faturanın numarası tam 16 karakter olmalıdır.

JSON örneğini görüntüle

Önceki bir faturaya iade referansı veren belge.

{
  "ProfileId": "EARSIVFATURA",
  "InvoiceExternalId": "ERP-2026-000149",
  "IssueDate": "2026-03-20T00:00:00",
  "DocumentCurrencyCode": "TRY",
  "AccountingSupplierParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "VKN",
          "Value": "1234567890"
        }
      ],
      "PartyName": "Satıcı Ticaret A.Ş."
    }
  },
  "AccountingCustomerParty": {
    "Party": {
      "PartyIdentifications": [
        {
          "SchemeId": "TCKN",
          "Value": "12345678901"
        }
      ],
      "PartyName": "Alıcı Adı Soyadı"
    }
  },
  "InvoiceLine": [
    {
      "Id": "1",
      "InvoicedQuantity": {
        "UnitCode": "C62",
        "Value": 2
      },
      "Price": 50,
      "LineExtensionAmount": 100,
      "Item": {
        "Name": "Kırtasiye Malzemesi"
      }
    }
  ],
  "TaxTotal": [
    {
      "TaxAmount": 18,
      "TaxSubtotal": [
        {
          "TaxableAmount": 100,
          "TaxAmount": 18,
          "Percent": 18,
          "TaxCategory": {
            "TaxScheme": {
              "Name": "KDV",
              "TaxTypeCode": "0015"
            }
          }
        }
      ]
    }
  ],
  "LegalMonetaryTotal": {
    "LineExtensionAmount": 100,
    "TaxExclusiveAmount": 100,
    "TaxInclusiveAmount": 118,
    "PayableAmount": 118
  },
  "InvoiceTypeCode": "IADE",
  "BillingReference": [
    {
      "InvoiceDocumentReference": {
        "Id": "FGH2026000000001",
        "DocumentTypeCode": "IADE",
        "IssueDate": "2026-03-10T00:00:00"
      }
    }
  ]
}
Sık hata: Id alanı tam olarak 16 karakter olmalıdır (örn. FGH2026000000001); aksi hâlde "16 haneli olmalıdır" mesajıyla reddedilir. Aynı istekte birden fazla satır aynı Id'yi referans veriyorsa "mükerrer" hatası döner.

Örnek 6 — İptal

CancelOutgoingEArchiveInvoice (EArchiveCancelRequestModel) gövdesi.

JSON örneğini görüntüle

Mükerrer belge nedeniyle iptal.

{
  "Ettn": "7DC52246-5750-496E-8BF2-BD27BC0764DC",
  "InvoiceNumber": "FGH2026000000001",
  "EArchiveStatus": 2,
  "EArchiveCancelDescription": "Mükerrer belge"
}

Örnek 7 — İtiraz Bildirimi

ObjectOutgoingEArchiveInvoice (DocumentObjectionRequestModel) gövdesi — alıcının TTK md. 18/3 kapsamında zaten yaptığı itirazın kayda geçirilmesi.

JSON örneğini görüntüle

KEP yoluyla yapılan itirazın bildirimi.

{
  "UUId": "7DC52246-5750-496E-8BF2-BD27BC0764DC",
  "ObjectingType": "KEP",
  "ObjectingDocumentNumber": "itirazBelgeNo0",
  "ObjectingDocumentDate": "2026-03-22",
  "ObjectingDescription": "Mal iade edildi"
}
Not: Yukarıdaki alan adları örnek amaçlıdır; kesin sözleşme için Entegratör API Endpoint Referansı sayfasındaki model referanslarını kullanın.