C#
MIT License
.NET 9
PostgreSQL

Mükellef Sorgulama
Servisi

GİB e-Fatura ve e-İrsaliye mükellef listelerini senkronize eden ve sorgulatan mikroservis. VKN/TCKN ile mükellef doğrulama, düşük bellek kullanımı ve sıfır kesinti güncelleme.

Docker Compose ile Başlangıç
# Docker Compose ile Çalıştırma
cd docker
docker compose up -d

# PostgreSQL 17, API ve Worker başlar
# API: http://localhost:8080
# Scalar UI: http://localhost:8080/scalar/v1
API Endpoints
GET/api/v1/einvoice/{id}
GET/api/v1/einvoice/changes
GET/api/v1/edespatch/{id}
GET/api/v1/status

Özellikler

GİB mükellef listesi yönetimi için ihtiyacınız olan her şey

Düşük Bellek Kullanımı

Stream tabanlı XML parsing ile ~200 MB RAM'de milyonlarca kaydı işler

Sıfır Kesinti Güncelleme

PostgreSQL Materialized View ile güncelleme sırasında API kesintiye uğramaz

Veritabanı Bağımsız

Uygulamalarınız hangi DB'yi kullanırsa kullansın, HTTP API ile entegre olur

Delta Sync

/changes endpoint'i ile sadece değişiklikleri takip edin

HMAC Kimlik Doğrulama

Internal servis güvenliği için opsiyonel HMAC-SHA256 desteği

Webhook Bildirimleri

Slack ve HTTP webhook desteği ile sync durumu takibi

İstemci SDK

.NET için hazır NuGet paketi (MERSEL.Services.GibUserList.Client)

Observability

OpenTelemetry + Prometheus metrikleri, hazır Grafana dashboard

Kullanım Örnekleri

REST API veya .NET SDK ile mükellef sorgulayın

Mükellef Sorgulama
# VKN/TCKN ile e-Fatura Mükellef Sorgulama
curl http://localhost:8080/api/v1/einvoice/1234567890

# Ünvana göre arama
curl "http://localhost:8080/api/v1/einvoice?search=MERSEL&page=1&pageSize=20"

# e-İrsaliye mükellefi sorgula
curl http://localhost:8080/api/v1/edespatch/1234567890
Delta Sync
# Delta Sync — Sadece Değişiklikleri Al
curl "http://localhost:8080/api/v1/einvoice/changes?since=2026-01-01T00:00:00Z"

# Senkronizasyon Durumunu Kontrol Et
curl http://localhost:8080/api/v1/status

# Sağlık Kontrolü
curl http://localhost:8080/health
.NET İstemci SDK
// .NET İstemci SDK Kullanımı
public class MyService(IGibUserListClient gibuserClient)
{
    public async Task Example(CancellationToken ct)
    {
        // VKN/TCKN ile sorgula
        var user = await gibuserClient
            .GetEInvoiceGibUserAsync("1234567890", ct: ct);

        // Ünvana göre ara
        var results = await gibuserClient
            .SearchEInvoiceGibUsersAsync("MERSEL", ct: ct);

        // Toplu sorgulama (maks 100)
        var batch = await gibuserClient
            .BatchGetEInvoiceGibUsersAsync(
                ["1234567890", "9876543210"], ct);

        // Delta sync
        var changes = await gibuserClient
            .GetEInvoiceChangesAsync(
                since: DateTime.Now.AddHours(-1), ct: ct);
    }
}
Senkronizasyon Mimarisi

Akıllı Senkronizasyon

GİB'den indirilen mükellef listeleri stream tabanlı XML parsing ile işlenir. PostgreSQL Materialized View kullanılarak güncelleme sırasında API kesintiye uğramaz.

  • Stream tabanlı parsing: Milyonlarca kayıt ~200 MB RAM ile
  • Materialized View: Güncelleme sırasında kesintisiz API
  • Cron tabanlı otomatik senkronizasyon
  • Delta sync ile sadece değişiklikleri takip
  • Slack ve HTTP webhook ile sync bildirimleri

Performans

RAM Kullanımı~200 MB
Kayıt KapasitesiMilyonlarca
API Kesinti Süresi0 (Sıfır)
ÖlçeklemeKubernetes Ready

Gereksinimler

.NET
9.0+
PostgreSQL
14+
Docker
Önerilen

Hemen Başlayın

Docker Compose ile birkaç dakikada GİB mükellef sorgulama servisi kurun. .NET SDK ile uygulamalarınıza kolayca entegre edin.