Public API · v1

İDİS işlemlerini kendi yazılımınızdan başlatın.

ERP, muhasebe veya depo programınızdan e-İrsaliyeyi gönderin; mal kabul, bağ yükleme ve sevk Reflex İdis üzerinden, sizin resmi İDİS hesabınızla yapılsın. REST, JSON, API anahtarı. Ek kurulum yok.

Başlangıç

  1. 01

    Anahtar alın

    Panelde Ayarlar → API Anahtarları sayfasından bir anahtar oluşturun. Anahtar yalnızca bir kez gösterilir.

  2. 02

    İDİS hesabını bağlayın

    Ayarlar → İDİS Sistemi Bağla adımı tamamlanmadan API işlem başlatamaz (412 döner).

  3. 03

    İlk isteği atın

    GET /me ile anahtarı ve bağlantıyı doğrulayın, sonra belge yükleyin.

Temel adres

https://reflexbilisim.tr/api/v1

Tüm istekler HTTPS ve JSON'dur. Yanıtlarda code: 0 başarıyı gösterir; hata durumunda HTTP durum kodu ve Türkçe message döner.

Kimlik doğrulama

Authorization: Bearer rfx_live_XXXXXXXX...
# veya
X-Api-Key: rfx_live_XXXXXXXX...

Anahtar hesabınızın tüm yetkisine sahiptir. Sunucu tarafında saklayın, tarayıcıya veya mobil uygulamaya gömmeyin. Sınır: anahtar başına dakikada 120 istek.

Tipik akış

1. POST /documents ile irsaliyeyi yükleyin (mal kabul otomatik başlar). 2. GET /documents/{id} ile operations.goodsReceipt.status alanını birkaç saniye arayla sorgulayın. 3. Sonuç success olunca POST /documents/{id}/shipment ile bağ yüklemeyi başlatın. 4. Reddedilen etiket varsa ignore-label ile işlem dışı bırakıp kalanlarla devam edin. Alternatif olarak operationMode=direct_shipment üç adımı tek istekte çalıştırır.

Uç noktalar

GET/me

Hesap ve İDİS bağlantı durumu

Anahtarın bağlı olduğu hesabı, resmi İDİS hesabının bağlı olup olmadığını ve erişim süresini döndürür. Entegrasyonu test etmek için ilk çağrılacak uç.

Yanıt

{
  "code": 0,
  "data": {
    "email": "[email protected]",
    "companyName": "ÖRNEK DEMİR A.Ş.",
    "idisConnected": true,
    "idisUsername": "[email protected]",
    "access": { "type": "trial", "endsAt": "2026-09-27T10:00:00.000Z", "remainingDays": 2 }
  }
}
POST/documents

e-İrsaliye yükle ve işlemi başlat

PDF veya UBL XML belgesi yükler. Etiketler ve plaka belgeden otomatik okunur, seçilen işlem hemen kuyruğa alınır. Gövde multipart/form-data olmalıdır.

İstek

curl -X POST https://reflexbilisim.tr/api/v1/documents \
  -H "Authorization: Bearer rfx_live_..." \
  -F "[email protected]" \
  -F "operationMode=goods_receipt"

Yanıt

{
  "code": 0,
  "message": "Belge alındı, mal kabul başlatıldı.",
  "data": {
    "id": "0b4c5fd9-9244-4489-8d6a-330827e8a931",
    "trackingStatus": "intake_pending",
    "labelCount": 20,
    "plateNumber": "31BCY157",
    "documentNumber": "IRS2026000000123",
    "operations": { "goodsReceipt": { "id": "…", "status": "pending" } }
  }
}
  • operationMode: goods_receipt (varsayılan), shipment veya direct_shipment.
  • shipment ve direct_shipment için belgede plaka olmalıdır.
  • Aynı içerikli belge ikinci kez yüklenemez; 422 döner.
  • Dosya sınırı 15 MB.
POST/transfers

Etiket listesiyle manuel aktarım

Belge olmadan, etiket numaraları ve plaka ile işlem başlatır. Etiketleri okuyan kendi sisteminiz varsa bu ucu kullanın.

İstek

curl -X POST https://reflexbilisim.tr/api/v1/transfers \
  -H "Authorization: Bearer rfx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "labels": ["VX0004281", "VX0004282", "VX0004283"],
    "plateNumber": "34ABC123",
    "operationMode": "goods_receipt"
  }'
  • labels: dizi ya da virgül/noktalı virgül/boşlukla ayrılmış metin.
  • Etiket biçimi: 2 büyük harf + 7 rakam. Geçersiz etiket varsa istek 422 ile reddedilir.
  • Plaka her modda zorunludur; mal kabul kaydı sonradan bağ yüklemede kullanılır.
GET/documents

Belgeleri listele

Hesaptaki belgeleri sayfalı döndürür. Belge numarası, plaka, gönderici veya etiketle arama yapılabilir.

İstek

curl "https://reflexbilisim.tr/api/v1/documents?page=1&pageSize=20&search=34ABC123" \
  -H "Authorization: Bearer rfx_live_..."

Yanıt

{
  "code": 0,
  "data": [ { "id": "…", "trackingStatus": "intake_submitted", "labelCount": 20, "plateNumber": "34ABC123", "…": "…" } ],
  "meta": { "total": 137, "page": 1, "pageSize": 20, "hasMore": true }
}
GET/documents/{id}

Belge detayı

Etiket listesi, işlem dışı bırakılan etiketler, mal kabul ve bağ yükleme işlemlerinin durumu ve işlem günlüğü. İşlem sonuçlarını izlemek için bu ucu kullanın.

İstek

curl https://reflexbilisim.tr/api/v1/documents/0b4c5fd9-9244-4489-8d6a-330827e8a931 \
  -H "Authorization: Bearer rfx_live_..."
  • operations.goodsReceipt.status ve operations.bundleLoading.status: pending, success, partial_success, error.
  • partial_success: bazı etiketler İDİS tarafından reddedildi; errorDetail alanında gerekçe bulunur.
POST/documents/{id}/goods-receipt

Mal kabul başlat

Belgedeki etiketlerle mal kabul gönderir. Yanıt hemen döner; işlem arka planda sürer.

İstek

curl -X POST https://reflexbilisim.tr/api/v1/documents/{id}/goods-receipt \
  -H "Authorization: Bearer rfx_live_..."
POST/documents/{id}/shipment

Bağ yükleme başlat

İşlem dışı bırakılan etiketler hariç, belgedeki etiketlerle bağ yükleme gönderir. Belgede plaka yoksa gövdede plateNumber verin.

İstek

curl -X POST https://reflexbilisim.tr/api/v1/documents/{id}/shipment \
  -H "Authorization: Bearer rfx_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "plateNumber": "34ABC123" }'
POST/documents/{id}/ignore-label

Sorunlu etiketi işlem dışı bırak

İDİS'in reddettiği bir etiketi sonraki gönderimlerden çıkarır; kalan etiketlerle devam edilebilir.

İstek

curl -X POST https://reflexbilisim.tr/api/v1/documents/{id}/ignore-label \
  -H "Authorization: Bearer rfx_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "label": "AK0411969" }'
DELETE/documents/{id}

Belgeyi sil

Belgeyi ve kayıtlı işlem geçmişini siler. İDİS'e iletilmiş işlemler geri alınmaz.

Hata kodları

401API anahtarı eksik, geçersiz veya iptal edilmiş.
403Hesap onaysız, deneme süresi dolmuş ya da lisans geçersiz.
404Belge bulunamadı veya bu hesaba ait değil.
409Aynı işlem zaten sürüyor (örneğin mal kabul devam ederken tekrar istek).
412Resmi İDİS hesabı panelden bağlanmamış. Ayarlar → İDİS Sistemi Bağla.
422Eksik veya hatalı alan: geçersiz etiket, plaka yok, aynı belge, desteklenmeyen dosya.
429Dakikada 120 istek sınırı aşıldı. Yanıttaki retryAfter (saniye) kadar bekleyin.
{ "statusCode": 422, "message": "Bağ yükleme için plaka bilgisi zorunlu.", "error": "Unprocessable Entity" }

Örnek: Node.js

const API = "https://reflexbilisim.tr/api/v1";
const headers = { Authorization: "Bearer " + process.env.REFLEX_API_KEY };

// 1) İrsaliyeyi yükle
const form = new FormData();
form.append("file", new Blob([xmlBuffer], { type: "application/xml" }), "irsaliye.xml");
form.append("operationMode", "goods_receipt");
const uploaded = await fetch(API + "/documents", { method: "POST", headers, body: form }).then(r => r.json());
const id = uploaded.data.id;

// 2) Mal kabul sonucunu bekle
let status = "pending";
while (status === "pending") {
  await new Promise(r => setTimeout(r, 5000));
  const detail = await fetch(API + "/documents/" + id, { headers }).then(r => r.json());
  status = detail.data.operations?.goodsReceipt?.status ?? "pending";
}

// 3) Bağ yüklemeyi başlat
if (status === "success" || status === "partial_success") {
  await fetch(API + "/documents/" + id + "/shipment", {
    method: "POST",
    headers: { ...headers, "Content-Type": "application/json" },
    body: JSON.stringify({}),
  });
}

Örnek: C# (.NET)

using var http = new HttpClient { BaseAddress = new Uri("https://reflexbilisim.tr/api/v1/") };
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);

using var form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(File.ReadAllBytes("irsaliye.xml")), "file", "irsaliye.xml");
form.Add(new StringContent("goods_receipt"), "operationMode");

var response = await http.PostAsync("documents", form);
var json = await response.Content.ReadAsStringAsync();
// json.data.id ile GET documents/{id} sorgulanır

Reflex İdis, T.C. Darphane ve Damga Matbaası Genel Müdürlüğü veya resmi İDİS platformuyla bağı bulunmayan bağımsız bir yazılımdır. API üzerinden yapılan tüm işlemler, panelde bağladığınız kendi resmi İDİS hesabınız adına İDİS'e iletilir. Sorularınız için [email protected].

Önce panelde deneyin.

3 gün ücretsiz. Anahtarınızı oluşturup ilk isteği dakikalar içinde atın.