İçeriğe geç

Yazılımınızı
CariErp’e bağlayın.

Cari, ürün, fatura, e-Fatura ve e-Arşiv, tahsilat ve kasa-banka kayıtlarına REST API ile erişin; olaylardan webhook ile anında haberdar olun.

Adresapp.carierp.com/api/open/v1
KimlikAuthorization: Bearer dfk_…
BiçimJSON · snake_case · tutar "1250.00"
SınırAnahtar başına dakikada 120 istek

Kimlik doğrulama

Panelde Entegrasyonlar › API ve webhook ekranında API anahtarı üretin. Anahtar yalnız oluşturulduğu anda bir kez gösterilir, tek şirkete bağlıdır ve seçtiğiniz kapsamlarla (fatura:write, cari:read …) sınırlıdır. Her istekte gönderin:

Authorization: Bearer dfk_… (ya da X-Api-Key: dfk_…)

Anahtarı iptal ettiğinizde hemen geçersiz olur. Şirket X-Company-Id başlığı gerekmez; anahtar şirketi belirler.

Bağlantıyı deneyin
curl https://app.carierp.com/api/open/v1/me \
  -H "Authorization: Bearer $CARIERP_API_KEY"

Biçim

  • Alan adları snake_case. Tutarlar iki ondalıklı metindir: "1250.00". Miktar ve oranlar ondalık metindir: "1.5", "20".
  • Tarihler YYYY-AA-GG, zaman damgaları ISO 8601 (UTC).
  • Girdi tutarı metin ya da sayı olabilir ("1250.50" ya da 1250.5).

Sayfalama

Listeler page (1'den başlar) ve per_page (en çok 100, varsayılan 25) alır. Yanıt: { "data": [...], "meta": { "page", "per_page", "total", "total_pages" } }. Değişiklikleri çekmek için updated_since kullanın.

Liste yanıtı
{
  "data": [
    "…"
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 142,
    "total_pages": 6
  }
}

Hatalar

Bütün hatalar aynı biçimdedir: { "error": { "code", "message", "details" } }. code makinece okunur ve değişmez; message Türkçe ve kullanıcıya gösterilebilir. 4xx yanıtları yeniden denemeyin (429 hariç); 5xx'te üstel bekleyerek yeniden deneyin.

422 · İş kuralı hatası
{
  "error": {
    "code": "ZATEN_GONDERILDI",
    "message": "Fatura zaten gönderilmiş."
  }
}

İstek sınırı

Anahtar başına dakikada 120 istek. Her yanıtta x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset başlıkları döner; aşılırsa 429 ISTEK_SINIRI ve retry-after (saniye).

429 · Yanıt başlıkları
x-ratelimit-limit: 120
x-ratelimit-remaining: 0
x-ratelimit-reset: 41
retry-after: 41

Tekrar güvenliği

Belge oluşturan POST isteklerinde Idempotency-Key başlığı gönderin (ör. dış sistemdeki fatura no). Aynı anahtarla 24 saat içinde gelen tekrar istek yeni kayıt açmaz; ilk yanıt Idempotent-Replay: true başlığıyla döner.

e-Fatura ve e-Arşiv

Faturayı issue: true ile kesin, send: true ile GİB'e gönderin. Alıcı GİB'de kayıtlı e-Fatura kullanıcısıysa e-Fatura, değilse e-Arşiv olarak gider; hangisinin kullanılacağına CariErp karar verir. Gönderim jetonla ücretlendirilir. GİB durumu e_document.status alanındadır (gonderiliyor, iletildi, kabul, red, iptal, hata) ve her değişimde invoice.status_changed webhook'u gider.

POST /invoices · send: truee_document.status: gonderiliyoriletildikabul (e-Arşiv: raporlandı)

Webhook

Olaylara abone olmak için POST /webhooks. Her teslim POST + JSON gövde: { "id": "evt_…", "event": "invoice.paid", "created_at", "company_id", "data": { … } }. data kaydın teslim anındaki hâlidir (fatura olaylarında fatura nesnesi).

Başlıklar: X-CariErp-Olay, X-CariErp-Teslim (olay kimliği; aynı olay birden fazla gelebilir, bununla tekilleştirin), X-CariErp-Zaman (unix saniye), X-CariErp-Imza: sha256=<hex>.

İmza: HMAC-SHA256(imza_anahtari, X-CariErp-Zaman + "." + ham_gövde). İmza anahtarı (whsec_…) ilk uç noktayı eklerken bir kez döner. 5 dakikadan eski zaman damgalarını reddedin. 2xx dışındaki yanıtlar artan aralıklarla 6 kez yeniden denenir.

Olaylar: invoice.created (Fatura kesildi), invoice.sent (Fatura GİB'e iletildi), invoice.status_changed (Faturanın GİB durumu değişti), invoice.paid (Fatura tamamen ödendi), invoice.cancelled (Fatura iptal edildi), payment.received (Tahsilat kaydedildi), contact.updated (Cari eklendi ya da güncellendi), order.created (Pazaryeri/site siparişi geldi), stock.low (Kritik stok seviyesine inildi).

$govde = file_get_contents('php://input');
$zaman = $_SERVER['HTTP_X_CARIERP_ZAMAN'] ?? '';
$imza = $_SERVER['HTTP_X_CARIERP_IMZA'] ?? '';
$beklenen = 'sha256=' . hash_hmac('sha256', $zaman . '.' . $govde, getenv('CARIERP_WEBHOOK_SECRET'));
if (!hash_equals($beklenen, $imza) || abs(time() - (int) $zaman) > 300) {
    http_response_code(401);
    exit;
}
$olay = json_decode($govde, true); // $olay['event'], $olay['data']
http_response_code(200);

Hesap

Bağlantı denemesi ve anahtar bilgisi

Anahtarın bağlı olduğu şirket

GET/me

Bağlantı denemesi için kullanın: şirket, anahtarın kapsamları, istek sınırı ve jeton bakiyesi. Herhangi bir okuma kapsamı yeterlidir.

Kapsam cari:read

curl -X GET "https://app.carierp.com/api/open/v1/me" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "company": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "name": "Örnek Hosting A.Ş.",
    "tax_number": "1234567890",
    "e_document_enabled": true
  },
  "credential": {
    "type": "api_anahtari",
    "name": "WHMCS",
    "scopes": [
      "cari:write",
      "fatura:write",
      "ebelge:write",
      "kasa:write"
    ]
  },
  "rate_limit": {
    "per_minute": 120
  },
  "tokens": {
    "balance": "482"
  }
}

Cariler

Müşteri ve tedarikçi kartları

Carileri listele

GET/contacts

Müşteri ve tedarikçi kartları; en yeni önce.

Kapsam cari:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
qmetinAd, VKN/TCKN, e-posta, telefon ya da kodda arama
tax_numbermetinVKN/TCKN tam eşleşme
emailmetinE-posta tam eşleşme (büyük/küçük harf duyarsız)
codemetinKod (cari kodu ya da stok kodu); şirkette benzersiz
rolemetinCari türü: musteri | tedarikci | her_ikisimusteritedarikciher_ikisi
is_activemetinEtkin mi; false ise arşivlenmiştruefalse
updated_sincemetinBu zamandan sonra değişenler (ISO 8601)
curl -X GET "https://app.carierp.com/api/open/v1/contacts" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "object": "contact",
      "role": "musteri",
      "kind": "kurumsal",
      "name": "Örnek Bilişim Ltd. Şti.",
      "first_name": null,
      "last_name": null,
      "code": "M-0042",
      "tax_number": "1234567890",
      "tax_office": "Kadıköy",
      "email": "[email protected]",
      "phone": "+902161234567",
      "mobile": null,
      "website": null,
      "e_document_type": "efatura",
      "e_invoice_alias": "urn:mail:[email protected]",
      "currency": "TRY",
      "iban": null,
      "billing_address": {
        "line": "Caferağa Mah. Moda Cad. No: 10",
        "district": "Kadıköy",
        "city": "İstanbul",
        "postal_code": "34710",
        "country": "Türkiye"
      },
      "balance": "1440.00",
      "is_active": true,
      "created_at": "2026-11-06T09:30:00.000Z",
      "updated_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Cari oluştur

POST/contacts

VKN/TCKN kontrol hanesiyle doğrulanır. Idempotency-Key başlığı desteklenir.

Kapsam cari:write

İstek gövdesi (JSON)

rolemetinVarsayılan musterimusteritedarikciher_ikisi
kindmetinVarsayılan: 11 haneli TCKN verilirse bireysel, değilse kurumsalkurumsalbireysel
namemetinÜnvan; bireyselde boşsa ad soyaddan üretilir
first_namemetin | nullAd (bireysel)
last_namemetin | nullSoyad (bireysel)
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
tax_numbermetin | nullVKN (10 hane) ya da TCKN (11 hane)
tax_officemetin | nullVergi dairesi
emailmetin | nullE-posta adresi; e-Arşiv fatura bu adrese de gönderilir
phonemetin | nullTelefon (ör. +902161234567)
mobilemetin | nullCep telefonu
websitemetin | nullWeb sitesi
currencymetinPara birimiTRYUSDEURGBP
ibanmetin | nullIBAN (TR ile başlayan, doğrulanır)
billing_addressnesne | nullFatura adresi
linemetin | nullAçık adres
districtmetin | nullİlçe
citymetin | nullİl
postal_codemetin | nullPosta kodu
countrymetin | nullÜlke (varsayılan Türkiye)
notesmetin | nullNot
is_activemantıksalEtkin mi; false ise arşivlenmiş
curl -X POST "https://app.carierp.com/api/open/v1/contacts" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: siparis-10452" \
  -d '{
    "role": "musteri",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890",
    "tax_office": "Kadıköy",
    "email": "[email protected]",
    "phone": "+902161234567",
    "billing_address": {
      "line": "Caferağa Mah. Moda Cad. No: 10",
      "district": "Kadıköy",
      "city": "İstanbul",
      "postal_code": "34710"
    }
  }'
Yanıt · 201
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "contact",
  "role": "musteri",
  "kind": "kurumsal",
  "name": "Örnek Bilişim Ltd. Şti.",
  "first_name": null,
  "last_name": null,
  "code": "M-0042",
  "tax_number": "1234567890",
  "tax_office": "Kadıköy",
  "email": "[email protected]",
  "phone": "+902161234567",
  "mobile": null,
  "website": null,
  "e_document_type": "efatura",
  "e_invoice_alias": "urn:mail:[email protected]",
  "currency": "TRY",
  "iban": null,
  "billing_address": {
    "line": "Caferağa Mah. Moda Cad. No: 10",
    "district": "Kadıköy",
    "city": "İstanbul",
    "postal_code": "34710",
    "country": "Türkiye"
  },
  "balance": "1440.00",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Cari detayı

GET/contacts/{id}

Kapsam cari:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/contacts/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "contact",
  "role": "musteri",
  "kind": "kurumsal",
  "name": "Örnek Bilişim Ltd. Şti.",
  "first_name": null,
  "last_name": null,
  "code": "M-0042",
  "tax_number": "1234567890",
  "tax_office": "Kadıköy",
  "email": "[email protected]",
  "phone": "+902161234567",
  "mobile": null,
  "website": null,
  "e_document_type": "efatura",
  "e_invoice_alias": "urn:mail:[email protected]",
  "currency": "TRY",
  "iban": null,
  "billing_address": {
    "line": "Caferağa Mah. Moda Cad. No: 10",
    "district": "Kadıköy",
    "city": "İstanbul",
    "postal_code": "34710",
    "country": "Türkiye"
  },
  "balance": "1440.00",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Cariyi güncelle

PATCH/contacts/{id}

Yalnız gönderilen alanlar değişir.

Kapsam cari:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

rolemetinVarsayılan musterimusteritedarikciher_ikisi
kindmetinVarsayılan: 11 haneli TCKN verilirse bireysel, değilse kurumsalkurumsalbireysel
namemetinÜnvan; bireyselde boşsa ad soyaddan üretilir
first_namemetin | nullAd (bireysel)
last_namemetin | nullSoyad (bireysel)
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
tax_numbermetin | nullVKN (10 hane) ya da TCKN (11 hane)
tax_officemetin | nullVergi dairesi
emailmetin | nullE-posta adresi; e-Arşiv fatura bu adrese de gönderilir
phonemetin | nullTelefon (ör. +902161234567)
mobilemetin | nullCep telefonu
websitemetin | nullWeb sitesi
currencymetinPara birimiTRYUSDEURGBP
ibanmetin | nullIBAN (TR ile başlayan, doğrulanır)
billing_addressnesne | nullFatura adresi
linemetin | nullAçık adres
districtmetin | nullİlçe
citymetin | nullİl
postal_codemetin | nullPosta kodu
countrymetin | nullÜlke (varsayılan Türkiye)
notesmetin | nullNot
is_activemantıksalEtkin mi; false ise arşivlenmiş
curl -X PATCH "https://app.carierp.com/api/open/v1/contacts/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+902161234567",
    "email": "[email protected]"
  }'
Yanıt · 200
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "contact",
  "role": "musteri",
  "kind": "kurumsal",
  "name": "Örnek Bilişim Ltd. Şti.",
  "first_name": null,
  "last_name": null,
  "code": "M-0042",
  "tax_number": "1234567890",
  "tax_office": "Kadıköy",
  "email": "[email protected]",
  "phone": "+902161234567",
  "mobile": null,
  "website": null,
  "e_document_type": "efatura",
  "e_invoice_alias": "urn:mail:[email protected]",
  "currency": "TRY",
  "iban": null,
  "billing_address": {
    "line": "Caferağa Mah. Moda Cad. No: 10",
    "district": "Kadıköy",
    "city": "İstanbul",
    "postal_code": "34710",
    "country": "Türkiye"
  },
  "balance": "1440.00",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Cariyi arşivle

DELETE/contacts/{id}

Kayıt silinmez; pasife alınır (is_active: false). Hareketleri ve faturaları korunur.

Kapsam cari:delete

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X DELETE "https://app.carierp.com/api/open/v1/contacts/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "contact",
  "role": "musteri",
  "kind": "kurumsal",
  "name": "Örnek Bilişim Ltd. Şti.",
  "first_name": null,
  "last_name": null,
  "code": "M-0042",
  "tax_number": "1234567890",
  "tax_office": "Kadıköy",
  "email": "[email protected]",
  "phone": "+902161234567",
  "mobile": null,
  "website": null,
  "e_document_type": "efatura",
  "e_invoice_alias": "urn:mail:[email protected]",
  "currency": "TRY",
  "iban": null,
  "billing_address": {
    "line": "Caferağa Mah. Moda Cad. No: 10",
    "district": "Kadıköy",
    "city": "İstanbul",
    "postal_code": "34710",
    "country": "Türkiye"
  },
  "balance": "1440.00",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Ürünler ve stok

Ürün ve hizmet kartları, depo bazında stok

Ürün ve hizmetleri listele

GET/products

Kapsam stok:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
qmetinAd, stok kodu ya da barkodda arama
codemetinKod (cari kodu ya da stok kodu); şirkette benzersiz
barcodemetinBarkod (EAN/GTIN)
typemetinTürurunhizmet
is_activemetinEtkin mi; false ise arşivlenmiştruefalse
updated_sincemetinBu zamandan sonra değişen kayıtlar (ISO 8601)
curl -X GET "https://app.carierp.com/api/open/v1/products" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "object": "product",
      "type": "hizmet",
      "code": "HOST-PRO",
      "barcode": null,
      "name": "Profesyonel hosting (yıllık)",
      "description": null,
      "unit": "adet",
      "sale_price": "1200.00",
      "purchase_price": "0.00",
      "currency": "TRY",
      "vat_rate": "20",
      "track_stock": false,
      "stock_quantity": null,
      "critical_level": null,
      "is_active": true,
      "created_at": "2026-11-06T09:30:00.000Z",
      "updated_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Ürün ya da hizmet oluştur

POST/products

Stok kodu (code) şirkette benzersizdir; aynısı varsa 409 KAYIT_ZATEN_VAR.

Kapsam stok:write

İstek gövdesi (JSON)

typemetinVarsayılan urun; hizmette stok tutulmazurunhizmet
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
barcodemetin | nullBarkod (EAN/GTIN)
namezorunlumetinAd ya da ünvan
descriptionmetin | nullAçıklama
unitmetinBirim: adet, kg, g, lt, m, m2, m3, paket, kutu, koli, saat, gun, ayadetkggltmm2m3paketkutukolisaatgunay
sale_pricesayı | metinKDV hariç satış fiyatı
purchase_pricesayı | metinKDV hariç alış fiyatı
currencymetinPara birimiTRYUSDEURGBP
vat_ratemetinKDV oranı (varsayılan 20)011020
track_stockmantıksalStok takibi yapılsın mı (hizmette false)
critical_levelsayı | metin | nullKritik stok seviyesi: stok bu miktara inince uyarı verilir
is_activemantıksalEtkin mi; false ise arşivlenmiş
curl -X POST "https://app.carierp.com/api/open/v1/products" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "hizmet",
    "code": "HOST-PRO",
    "name": "Profesyonel hosting (yıllık)",
    "unit": "adet",
    "sale_price": "1200.00",
    "vat_rate": "20"
  }'
Yanıt · 201
{
  "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "object": "product",
  "type": "hizmet",
  "code": "HOST-PRO",
  "barcode": null,
  "name": "Profesyonel hosting (yıllık)",
  "description": null,
  "unit": "adet",
  "sale_price": "1200.00",
  "purchase_price": "0.00",
  "currency": "TRY",
  "vat_rate": "20",
  "track_stock": false,
  "stock_quantity": null,
  "critical_level": null,
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Ürün detayı

GET/products/{id}

Kapsam stok:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/products/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "object": "product",
  "type": "hizmet",
  "code": "HOST-PRO",
  "barcode": null,
  "name": "Profesyonel hosting (yıllık)",
  "description": null,
  "unit": "adet",
  "sale_price": "1200.00",
  "purchase_price": "0.00",
  "currency": "TRY",
  "vat_rate": "20",
  "track_stock": false,
  "stock_quantity": null,
  "critical_level": null,
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Ürünü güncelle

PATCH/products/{id}

Kapsam stok:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

typemetinVarsayılan urun; hizmette stok tutulmazurunhizmet
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
barcodemetin | nullBarkod (EAN/GTIN)
namemetinAd ya da ünvan
descriptionmetin | nullAçıklama
unitmetinBirim: adet, kg, g, lt, m, m2, m3, paket, kutu, koli, saat, gun, ayadetkggltmm2m3paketkutukolisaatgunay
sale_pricesayı | metinKDV hariç satış fiyatı
purchase_pricesayı | metinKDV hariç alış fiyatı
currencymetinPara birimiTRYUSDEURGBP
vat_ratemetinKDV oranı (varsayılan 20)011020
track_stockmantıksalStok takibi yapılsın mı (hizmette false)
critical_levelsayı | metin | nullKritik stok seviyesi: stok bu miktara inince uyarı verilir
is_activemantıksalEtkin mi; false ise arşivlenmiş
curl -X PATCH "https://app.carierp.com/api/open/v1/products/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sale_price": "1350.00",
    "is_active": true
  }'
Yanıt · 200
{
  "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "object": "product",
  "type": "hizmet",
  "code": "HOST-PRO",
  "barcode": null,
  "name": "Profesyonel hosting (yıllık)",
  "description": null,
  "unit": "adet",
  "sale_price": "1200.00",
  "purchase_price": "0.00",
  "currency": "TRY",
  "vat_rate": "20",
  "track_stock": false,
  "stock_quantity": null,
  "critical_level": null,
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Depo bazında stok

GET/products/{id}/stock

Kapsam stok:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/products/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/stock" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "product_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "total": "42",
  "warehouses": [
    {
      "warehouse_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "name": "Merkez depo",
      "quantity": "40"
    },
    {
      "warehouse_id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "name": "Mağaza",
      "quantity": "2"
    }
  ]
}

Stok düzelt (giriş/çıkış)

POST/products/{id}/stock-adjustments

Sayım farkı ya da dış sistemden gelen stok hareketi. Stok takipli olmayan üründe 422 STOK_TAKIBI_YOK.

Kapsam stok:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

quantityzorunlusayı | metinİşaretli miktar: giriş pozitif, çıkış negatif
warehouse_idkimlikBoşsa varsayılan depo
unit_costsayı | metinGirişte birim maliyet (KDV hariç)
datemetinTarih (YYYY-AA-GG); boşsa bugün
descriptionmetinAçıklama
curl -X POST "https://app.carierp.com/api/open/v1/products/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/stock-adjustments" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "quantity": "-2",
    "description": "Sayım farkı"
  }'
Yanıt · 201
{
  "product_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "total": "42",
  "warehouses": [
    {
      "warehouse_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "name": "Merkez depo",
      "quantity": "40"
    },
    {
      "warehouse_id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "name": "Mağaza",
      "quantity": "2"
    }
  ]
}

Faturalar

Satış ve alış faturaları: oluşturma, kesme, PDF, iptal

Faturaları listele

GET/invoices

Kalemler listede yer almaz; detay için GET /invoices/{id}. Arşivlenmiş faturalar listelenmez.

Kapsam fatura:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
qmetinNumara, cari adı ya da sipariş no
typemetinVirgülle çoklu: satis,toptan
statusmetinVirgülle çoklu: kesildi,odendi
contact_idkimlikCari kimliği
order_nometinSipariş no tam eşleşme
numbermetinFatura numarası tam eşleşme
e_document_typemetinBelge türü: efatura | earsiv | kagitefaturaearsivkagit
frommetinFatura tarihi başlangıcı
tometinFatura tarihi bitişi
updated_sincemetinBu zamandan sonra değişen kayıtlar (ISO 8601)
curl -X GET "https://app.carierp.com/api/open/v1/invoices" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "object": "invoice",
      "type": "satis",
      "status": "odendi",
      "number": "WHM2026000000123",
      "series": "WHM",
      "issue_date": "2026-11-06",
      "issue_time": "12:30:00",
      "due_date": "2026-11-06",
      "currency": "TRY",
      "exchange_rate": "1",
      "contact": {
        "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
        "name": "Örnek Bilişim Ltd. Şti.",
        "tax_number": "1234567890"
      },
      "order_no": "WHMCS-10452",
      "notes": null,
      "e_document_type": "earsiv",
      "scenario": "EARSIVFATURA",
      "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
      "totals": {
        "subtotal": "1200.00",
        "discount": "0.00",
        "net": "1200.00",
        "vat": "240.00",
        "withholding": "0.00",
        "total": "1440.00",
        "payable": "1440.00",
        "paid": "1440.00",
        "remaining": "0.00"
      },
      "e_document": {
        "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
        "type": "earsiv",
        "status": "kabul",
        "status_label": "Raporlandı",
        "provider_status": "kabul",
        "number": "WHM2026000000123",
        "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
        "scenario": "EARSIVFATURA",
        "response_deadline": null,
        "message": null,
        "sent_at": "2026-11-06T09:30:00.000Z",
        "updated_at": "2026-11-06T09:30:00.000Z"
      },
      "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
      "issued_at": "2026-11-06T09:30:00.000Z",
      "sent_at": "2026-11-06T09:30:00.000Z",
      "cancelled_at": null,
      "cancel_reason": null,
      "created_at": "2026-11-06T09:30:00.000Z",
      "updated_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Fatura oluştur (taslak, kes ya da kesip GİB’e gönder)

POST/invoices

Cari contact_id ile ya da contact nesnesiyle verilir (VKN/TCKN ya da e-postayla eşleşir, yoksa açılır).

issue: true faturayı keser; send: true kesip e-Fatura ya da e-Arşiv olarak gönderir. Hangisinin kullanılacağına alıcının GİB kaydına göre CariErp karar verir.

Aynı isteğin iki kez işlenmemesi için Idempotency-Key başlığı gönderin (24 saat geçerli; tekrar istekte ilk yanıt Idempotent-Replay: true ile döner).

Firmada onay kuralı varsa yanıt 202 ve status: onay_bekliyor olur.

Kapsam fatura:write

İstek gövdesi (JSON)

typemetinBelge türü; dış sistemlerden genellikle satissatistoptanperakendegeliralisgidersatis_iadealis_iade
contact_idkimlikCari kimliği; ya bu ya da contact verilir
contactnesneCari bilgileri: VKN/TCKN, yoksa e-posta ile eşleşir; bulunamazsa cari açılır
rolemetinVarsayılan musterimusteritedarikciher_ikisi
kindmetinVarsayılan: 11 haneli TCKN verilirse bireysel, değilse kurumsalkurumsalbireysel
namemetinÜnvan; bireyselde boşsa ad soyaddan üretilir
first_namemetin | nullAd (bireysel)
last_namemetin | nullSoyad (bireysel)
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
tax_numbermetin | nullVKN (10 hane) ya da TCKN (11 hane)
tax_officemetin | nullVergi dairesi
emailmetin | nullE-posta adresi; e-Arşiv fatura bu adrese de gönderilir
phonemetin | nullTelefon (ör. +902161234567)
mobilemetin | nullCep telefonu
websitemetin | nullWeb sitesi
currencymetinPara birimiTRYUSDEURGBP
ibanmetin | nullIBAN (TR ile başlayan, doğrulanır)
billing_addressnesne | nullFatura adresi
linemetin | nullAçık adres
districtmetin | nullİlçe
citymetin | nullİl
postal_codemetin | nullPosta kodu
countrymetin | nullÜlke (varsayılan Türkiye)
notesmetin | nullNot
is_activemantıksalEtkin mi; false ise arşivlenmiş
issue_datemetinFatura tarihi (varsayılan bugün; GİB kuralı gereği aynı seride geriye tarih atılamaz)
due_datemetin | nullVade tarihi (YYYY-AA-GG)
currencymetinPara birimiTRYUSDEURGBP
exchange_ratesayı | metinDövizli faturada kur (boşsa TCMB satış kuru)
seriesmetinFatura serisi (ör. WHM); boşsa şirketin varsayılan serisi
order_nometin | nullDış sistemdeki sipariş/fatura numarası; faturada görünür ve listede aranabilir
notesmetin | nullFaturadaki not
payment_methodmetin | nullÖdeme şekli (faturada görünür; ör. Kredi kartı)
scenariometine-Fatura alıcısında senaryo (varsayılan TEMELFATURA)TEMELFATURATICARIFATURA
prices_include_vatmantıksaltrue ise birim fiyatlar KDV dahildir; toplam kuruşu kuruşuna korunur
lineszorunlunesne dizisiFatura kalemleri (en az 1, en çok 500)
product_idkimlik | nullÜrün/hizmet kartı; verilirse ad, birim ve KDV karttan gelir
descriptionmetinKalem adı (ürün verilmezse zorunlu)
quantityzorunlusayı | metinMiktar (en çok 4 ondalık)
unitmetinBirim (adet, saat, ay…); varsayılan adet
unit_pricezorunlusayı | metinBirim fiyat; prices_include_vat true ise KDV dahil
vat_ratemetinKDV oranı; boşsa üründen, o da yoksa 20011020
discount_ratesayı | metinSatır iskontosu (%)
vat_exemption_codemetin | nullKDV %0 ise zorunlu GİB istisna kodu: 351 istisna dışı diğer, 301 mal ihracatı, 302 hizmet ihracatı, 350 diğer istisnalar (tam liste GİB kod listesinde). e-Belgedeki istisna sebebi metni (UBL TaxExemptionReason) koddan otomatik yazılır, ayrıca gönderilmez.
withholding_codemetin | nullKDV tevkifat kodu (ör. 601)
price_includes_vatmantıksalBu kalemde fiyat KDV dahil mi (verilmezse faturadaki prices_include_vat)
issuemantıksaltrue ise fatura kesilir (numara ve ETTN verilir); false ise taslak kalır
sendmantıksaltrue ise kesilip e-Fatura/e-Arşiv olarak GİB'e gönderilir (issue'yu içerir, ebelge:write kapsamı ister, jeton düşer)
paymentnesneKesimle birlikte tahsilat (ör. ödenmiş WHMCS faturası)
account_idzorunlukimlikKasa/banka hesabı (GET /accounts)
amountsayı | metinBoşsa kalan tutarın tamamı
datemetinTarih (YYYY-AA-GG); boşsa bugün
methodmetinÖdeme yönteminakithavalekredi_karticeksenetpos
curl -X POST "https://app.carierp.com/api/open/v1/invoices" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: siparis-10452" \
  -d '{
    "type": "satis",
    "contact": {
      "name": "Ayşe Yılmaz",
      "first_name": "Ayşe",
      "last_name": "Yılmaz",
      "tax_number": "11111111111",
      "email": "[email protected]",
      "billing_address": {
        "line": "Atatürk Cad. No: 5",
        "district": "Çankaya",
        "city": "Ankara"
      }
    },
    "series": "WHM",
    "order_no": "WHMCS-10452",
    "prices_include_vat": false,
    "lines": [
      {
        "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
        "quantity": "1",
        "unit_price": "1200.00",
        "vat_rate": "20"
      }
    ],
    "issue": true,
    "send": true,
    "payment": {
      "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "method": "kredi_karti"
    }
  }'
Yanıt · 201
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z",
  "send_error": null
}

Fatura detayı

GET/invoices/{id}

Kalemler, toplamlar, son e-belge durumu ve paylaşılabilir PDF bağlantısı.

Kapsam fatura:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Taslak faturayı kes

POST/invoices/{id}/issue

Numara ve ETTN verilir; cari, stok ve muhasebe kayıtları yazılır. e-Belge gönderimi için ardından POST /invoices/{id}/send.

Kapsam fatura:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

paymentnesneTahsilat: verilirse fatura kesilirken bu hesaba tahsilat işlenir
account_idzorunlukimlikKasa/banka hesabı (GET /accounts)
amountsayı | metinBoşsa kalan tutarın tamamı
datemetinTarih (YYYY-AA-GG); boşsa bugün
methodmetinÖdeme yönteminakithavalekredi_karticeksenetpos
curl -X POST "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/issue" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Faturanın PDF dosyası

GET/invoices/{id}/pdf

Yanıt application/pdf. Oturumsuz paylaşmak için faturadaki pdf_url alanını kullanın.

Kapsam fatura:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -o fatura.pdf
Yanıt · 200
%PDF-1.7 … (application/pdf)

Faturayı iptal et

POST/invoices/{id}/cancel

Cari, stok ve muhasebe kayıtları ters kayıtla geri alınır; e-Arşiv faturası entegratörde de iptal edilir (GİB süresi içinde). Tahsilatı olan fatura iptal edilemez (422 ODEMELI_FATURA). e-Fatura alıcı tarafından reddedilmeli ya da iade faturası kesilmelidir.

Kapsam fatura:delete

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

reasonzorunlumetinİptal gerekçesi (işlem kaydına ve e-Arşiv iptaline yazılır)
curl -X POST "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/cancel" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Müşteri siparişi iptal etti"
  }'
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Paylaşılabilir PDF (oturumsuz)

GET/public/invoices/{id}/pdf

Faturadaki pdf_url alanının adresi. İmza (s) fatura kimliğine bağlıdır; yanlış imzada 404.

Oturum gerekmez

Yol ve sorgu parametreleri

szorunlumetinBağlantı imzası (faturadaki pdf_url içinde gelir)
idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf" \
  -o fatura.pdf
Yanıt · 200
%PDF-1.7 … (application/pdf)

e-Fatura ve e-Arşiv

e-Fatura / e-Arşiv gönderimi ve GİB durumu

Faturayı e-Fatura / e-Arşiv olarak GİB'e gönder

POST/invoices/{id}/send

Kesilmiş satış faturası entegratör üzerinden gönderilir ve jeton düşer. Alıcı GİB’de kayıtlı e-Fatura mükellefiyse e-Fatura, değilse e-Arşiv olur. Durum değişiklikleri invoice.status_changed webhook’uyla bildirilir.

Kapsam ebelge:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X POST "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/send" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

e-Belge (GİB) durumu

GET/invoices/{id}/e-document

Faturanın son e-Fatura/e-Arşiv kaydı. CariErp gönderilen belgelerin durumunu 15 dakikada bir entegratörden sorgular; refresh=true ile hemen sorgulanır. Belge yoksa 404 EBELGE_YOK.

Kapsam ebelge:read

Yol ve sorgu parametreleri

refreshmetintrue ise durum entegratörden yeniden sorgulanırtruefalse
idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/e-document" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "type": "earsiv",
  "status": "kabul",
  "status_label": "Raporlandı",
  "provider_status": "kabul",
  "number": "WHM2026000000123",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "scenario": "EARSIVFATURA",
  "response_deadline": null,
  "message": null,
  "sent_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

VKN/TCKN e-Fatura mükellefi mi

GET/e-invoice-users/{tax_number}

GİB kayıtlı kullanıcı listesinden sorgular. Kayıtlıysa fatura e-Fatura, değilse e-Arşiv olarak gönderilir.

Kapsam ebelge:read

Yol ve sorgu parametreleri

tax_numberzorunlumetinVKN (10 hane) ya da TCKN (11 hane)
curl -X GET "https://app.carierp.com/api/open/v1/e-invoice-users/1234567890" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "tax_number": "1234567890",
  "e_invoice_user": true,
  "title": "ÖRNEK BİLİŞİM LİMİTED ŞİRKETİ",
  "aliases": [
    "urn:mail:[email protected]"
  ]
}

Tahsilat ve ödemeler

Fatura tahsilatları ve cari tahsilat/ödemeleri

Faturaya tahsilat/ödeme ekle

POST/invoices/{id}/payments

Satış faturasında tahsilat, alış faturasında ödeme olarak kaydedilir; kasa/banka hesabına hareket yazılır. Fatura tamamen ödenince invoice.paid webhook’u gider.

Kapsam fatura:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

account_idzorunlukimlikKasa/banka hesabı (GET /accounts)
amountsayı | metinBoşsa kalan tutarın tamamı
datemetinTarih (YYYY-AA-GG); boşsa bugün
methodmetinÖdeme yönteminakithavalekredi_karticeksenetpos
curl -X POST "https://app.carierp.com/api/open/v1/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/payments" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: siparis-10452" \
  -d '{
    "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "amount": "1440.00",
    "date": "2026-11-06",
    "method": "kredi_karti"
  }'
Yanıt · 201
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "payment",
  "type": "tahsilat",
  "status": "gecerli",
  "date": "2026-11-06",
  "amount": "1440.00",
  "currency": "TRY",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "method": "kart",
  "description": "Tahsilat: WHM2026000000123",
  "created_at": "2026-11-06T09:30:00.000Z"
}

Tahsilat ve ödemeleri listele

GET/payments

Fatura tahsilatları/ödemeleri ve faturasız cari tahsilat/ödemeleri. İptal edilenler status: iptal.

Kapsam kasa:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
account_idkimlikKasa/banka hesabı kimliği (GET /accounts)
contact_idkimlikCari kimliği
frommetinBaşlangıç tarihi (YYYY-AA-GG, dahil)
tometinBitiş tarihi (YYYY-AA-GG, dahil)
typemetinTürtahsilatodeme
invoice_idkimlikFatura kimliği
curl -X GET "https://app.carierp.com/api/open/v1/payments" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "object": "payment",
      "type": "tahsilat",
      "status": "gecerli",
      "date": "2026-11-06",
      "amount": "1440.00",
      "currency": "TRY",
      "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "method": "kart",
      "description": "Tahsilat: WHM2026000000123",
      "created_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Faturasız cari tahsilatı/ödemesi

POST/payments

Carinin bakiyesine işler (ön ödeme, hesaba ödeme). Belirli bir faturaya tahsilat için POST /invoices/{id}/payments kullanın.

Kapsam kasa:write

İstek gövdesi (JSON)

typezorunlumetintahsilat: cariden para girişi, odeme: cariye para çıkışıtahsilatodeme
contact_idzorunlukimlikCari kimliği
account_idzorunlukimlikKasa/banka hesabı
amountzorunlusayı | metinTutar: iki ondalıklı metin ya da sayı (ör. "1250.50")
datemetinTarih (YYYY-AA-GG); boşsa bugün
descriptionmetinAçıklama
curl -X POST "https://app.carierp.com/api/open/v1/payments" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: siparis-10452" \
  -d '{
    "type": "tahsilat",
    "contact_id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "amount": "500.00",
    "description": "Ön ödeme"
  }'
Yanıt · 201
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "payment",
  "type": "tahsilat",
  "status": "gecerli",
  "date": "2026-11-06",
  "amount": "1440.00",
  "currency": "TRY",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "method": "kart",
  "description": "Tahsilat: WHM2026000000123",
  "created_at": "2026-11-06T09:30:00.000Z"
}

Tahsilat/ödeme detayı

GET/payments/{id}

Kapsam kasa:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/payments/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "payment",
  "type": "tahsilat",
  "status": "gecerli",
  "date": "2026-11-06",
  "amount": "1440.00",
  "currency": "TRY",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "method": "kart",
  "description": "Tahsilat: WHM2026000000123",
  "created_at": "2026-11-06T09:30:00.000Z"
}

Tahsilatı/ödemeyi iptal et

DELETE/payments/{id}

Ters kayıtla iptal edilir (silinmez); faturanın ödenen tutarı geri alınır.

Kapsam kasa:delete

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X DELETE "https://app.carierp.com/api/open/v1/payments/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "payment",
  "type": "tahsilat",
  "status": "gecerli",
  "date": "2026-11-06",
  "amount": "1440.00",
  "currency": "TRY",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "method": "kart",
  "description": "Tahsilat: WHM2026000000123",
  "created_at": "2026-11-06T09:30:00.000Z"
}

Kasa ve banka

Kasa, banka, kredi kartı ve POS hesapları ile hareketleri

Kasa ve banka hesapları

GET/accounts

Bakiyeler hesabın para birimindedir. Tahsilat girerken account_id buradan alınır.

Kapsam kasa:read

Yol ve sorgu parametreleri

typemetinTürkasabankakredi_kartipos
is_activemetinEtkin mi; false ise arşivlenmiştruefalse
curl -X GET "https://app.carierp.com/api/open/v1/accounts" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "object": "account",
      "type": "banka",
      "name": "İş Bankası TL",
      "bank_name": "Türkiye İş Bankası",
      "iban": "TR330006100519786457841326",
      "currency": "TRY",
      "balance": "48250.75",
      "is_active": true,
      "created_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Hesap detayı ve bakiyesi

GET/accounts/{id}

Kapsam kasa:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/accounts/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "account",
  "type": "banka",
  "name": "İş Bankası TL",
  "bank_name": "Türkiye İş Bankası",
  "iban": "TR330006100519786457841326",
  "currency": "TRY",
  "balance": "48250.75",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z"
}

Kasa ve banka hareketleri

GET/transactions

Tüm hesapların hareketleri; en yeni önce. İptal edilen kayıtlar ters hareketle (reversal_of_id) görünür.

Kapsam kasa:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
account_idkimlikKasa/banka hesabı kimliği (GET /accounts)
contact_idkimlikCari kimliği
directionmetinYön: giris (para girişi) | cikis (para çıkışı)giriscikis
typemetinVirgülle çoklu: tahsilat,tediye
frommetinBaşlangıç tarihi (YYYY-AA-GG, dahil)
tometinBitiş tarihi (YYYY-AA-GG, dahil)
curl -X GET "https://app.carierp.com/api/open/v1/transactions" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "object": "transaction",
      "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "date": "2026-11-06",
      "direction": "giris",
      "type": "tahsilat",
      "amount": "1440.00",
      "currency": "TRY",
      "amount_try": "1440.00",
      "description": "Tahsilat: WHM2026000000123",
      "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "reconciled": false,
      "reversal_of_id": null,
      "created_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Hesabın hareketleri

GET/accounts/{id}/transactions

Kapsam kasa:read

Yol ve sorgu parametreleri

pagetam sayıSayfa (1’den başlar)
per_pagetam sayıSayfa başına kayıt (en çok 100)
contact_idkimlikCari kimliği
directionmetinYön: giris (para girişi) | cikis (para çıkışı)giriscikis
typemetinVirgülle çoklu: tahsilat,tediye
frommetinBaşlangıç tarihi (YYYY-AA-GG, dahil)
tometinBitiş tarihi (YYYY-AA-GG, dahil)
idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/accounts/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/transactions" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
      "object": "transaction",
      "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "date": "2026-11-06",
      "direction": "giris",
      "type": "tahsilat",
      "amount": "1440.00",
      "currency": "TRY",
      "amount_try": "1440.00",
      "description": "Tahsilat: WHM2026000000123",
      "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
      "reconciled": false,
      "reversal_of_id": null,
      "created_at": "2026-11-06T09:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Webhook

Olay bildirimleri

Abone olunabilen olaylar

GET/webhook-events

Kapsam api_anahtari:read

curl -X GET "https://app.carierp.com/api/open/v1/webhook-events" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "key": "invoice.status_changed",
      "label": "Faturanın GİB durumu değişti",
      "available": true
    }
  ]
}

Webhook uç noktaları

GET/webhooks

Kapsam api_anahtari:read

curl -X GET "https://app.carierp.com/api/open/v1/webhooks" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "data": [
    {
      "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
      "object": "webhook",
      "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
      "events": [
        "invoice.status_changed",
        "invoice.paid"
      ],
      "active": true,
      "description": "WHMCS",
      "status": "saglikli",
      "last_delivery": {
        "at": "2026-11-06T09:31:02.000Z",
        "event": "invoice.status_changed",
        "ok": true,
        "status": 200,
        "ms": 184,
        "error": null
      },
      "created_at": "2026-11-06T09:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total": 1,
    "total_pages": 1
  }
}

Webhook uç noktası ekle

POST/webhooks

Firma başına en çok 10 uç nokta. Bütün uçlar aynı imza anahtarıyla imzalanır.

Kapsam api_anahtari:write

İstek gövdesi (JSON)

urlzorunlumetinOlayların POST edileceği https adresi
eventszorunlumetin dizisiOlaylar: invoice.created, invoice.sent, invoice.status_changed, invoice.paid, invoice.cancelled, payment.received, contact.updated, order.created, stock.low, shipment.created, shipment.delivered
activemantıksalEtkin mi; false ise olay gönderilmez
descriptionmetin | nullAçıklama
curl -X POST "https://app.carierp.com/api/open/v1/webhooks" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
    "events": [
      "invoice.status_changed",
      "invoice.paid"
    ],
    "description": "WHMCS"
  }'
Yanıt · 201
{
  "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "object": "webhook",
  "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
  "events": [
    "invoice.status_changed",
    "invoice.paid"
  ],
  "active": true,
  "description": "WHMCS",
  "status": "saglikli",
  "last_delivery": {
    "at": "2026-11-06T09:31:02.000Z",
    "event": "invoice.status_changed",
    "ok": true,
    "status": 200,
    "ms": 184,
    "error": null
  },
  "created_at": "2026-11-06T09:00:00.000Z",
  "secret": "whsec_3c5e…"
}

Webhook uç noktası

GET/webhooks/{id}

Kapsam api_anahtari:read

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X GET "https://app.carierp.com/api/open/v1/webhooks/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "object": "webhook",
  "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
  "events": [
    "invoice.status_changed",
    "invoice.paid"
  ],
  "active": true,
  "description": "WHMCS",
  "status": "saglikli",
  "last_delivery": {
    "at": "2026-11-06T09:31:02.000Z",
    "event": "invoice.status_changed",
    "ok": true,
    "status": 200,
    "ms": 184,
    "error": null
  },
  "created_at": "2026-11-06T09:00:00.000Z"
}

Webhook uç noktasını güncelle

PATCH/webhooks/{id}

Kapsam api_anahtari:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)

İstek gövdesi (JSON)

urlmetinOlayların POST edileceği https adresi
eventsmetin dizisiOlaylar: invoice.created, invoice.sent, invoice.status_changed, invoice.paid, invoice.cancelled, payment.received, contact.updated, order.created, stock.low, shipment.created, shipment.delivered
activemantıksalEtkin mi; false ise olay gönderilmez
descriptionmetin | nullAçıklama
curl -X PATCH "https://app.carierp.com/api/open/v1/webhooks/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      "invoice.status_changed",
      "invoice.paid",
      "payment.received"
    ],
    "active": true
  }'
Yanıt · 200
{
  "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "object": "webhook",
  "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
  "events": [
    "invoice.status_changed",
    "invoice.paid"
  ],
  "active": true,
  "description": "WHMCS",
  "status": "saglikli",
  "last_delivery": {
    "at": "2026-11-06T09:31:02.000Z",
    "event": "invoice.status_changed",
    "ok": true,
    "status": 200,
    "ms": 184,
    "error": null
  },
  "created_at": "2026-11-06T09:00:00.000Z"
}

Webhook uç noktasını sil

DELETE/webhooks/{id}

Kapsam api_anahtari:delete

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X DELETE "https://app.carierp.com/api/open/v1/webhooks/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "deleted": true
}

Deneme olayı gönder (ping)

POST/webhooks/{id}/test

Uca imzalı ping olayı gönderir ve sonucu döner.

Kapsam api_anahtari:write

Yol ve sorgu parametreleri

idzorunlukimlikKaydın kimliği (UUID)
curl -X POST "https://app.carierp.com/api/open/v1/webhooks/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/test" \
  -H "Authorization: Bearer $CARIERP_API_KEY"
Yanıt · 200
{
  "ok": true,
  "status": 200,
  "ms": 184,
  "error": null
}

Nesneler

Yanıtlarda dönen kayıtların bütün alanları.

Fatura

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türüinvoice
typemetinsatis | toptan | perakende | gelir | alis | gider | satis_iade | alis_iade
statusmetintaslak | onay_bekliyor | kesildi | gonderildi | kismi_odendi | odendi | vadesi_gecti | iptal
numbermetin | nullFatura numarası (kesilince verilir; e-Belgede GİB numarası)
seriesmetin | nullFatura serisi (3 karakter)
issue_datemetinFatura tarihi
issue_timemetin | nullFatura saati
due_datemetin | nullVade tarihi (YYYY-AA-GG)
currencymetinPara birimi
exchange_ratemetinDöviz kuru (TL karşılığı)
contactnesneCari
idmetinKaydın kimliği (UUID)
namemetinAd ya da ünvan
tax_numbermetin | nullVKN (10 hane) ya da TCKN (11 hane)
order_nometin | nullSipariş ya da dış sistem numarası
notesmetin | nullNot
e_document_typemetin | nullefatura | earsiv | kagit (kesilince belirlenir)
scenariometin | nullGİB senaryosu
ettnmetin | nullETTN (fatura evrensel kimliği, UUID)
totalsnesneToplamlar (fatura para biriminde)
subtotalmetinİskonto öncesi KDV hariç toplam
discountmetinİskonto toplamı
netmetinKDV hariç net toplam
vatmetinKDV toplamı
withholdingmetinKDV tevkifatı toplamı
totalmetinKDV dahil genel toplam
payablemetinÖdenecek tutar (tevkifat düşülmüş)
paidmetinTahsil edilen ya da ödenen
remainingmetinKalan
linesnesne dizisiListede yer almaz; detayda gelir
idmetinKaydın kimliği (UUID)
line_notam sayıSatır no
product_idmetin | nullÜrün/hizmet kartı kimliği
descriptionmetinAçıklama
quantitymetinMiktar
unitmetinBirim
unit_pricemetinKDV hariç birim fiyat
discount_amountmetinİskonto tutarı
net_amountmetinİskonto sonrası KDV hariç tutar
vat_ratemetinKDV oranı (%)
vat_amountmetinKDV tutarı
vat_exemption_codemetin | nullKDV istisna kodu (ör. 351); istisna sebebi metni e-Belgeye koddan yazılır
withholding_codemetin | nullTevkifat kodu
withholding_amountmetinTevkifat tutarı
totalmetinToplam
e_documentnesne | nullSon e-Belge (GİB) kaydı; gönderilmediyse null
idmetinKaydın kimliği (UUID)
typemetinefatura | earsiv
statusmetingonderiliyor | iletildi | kabul | red | iptal | hata
status_labelmetinDurumun Türkçe açıklaması
provider_statusmetinEntegratörün ham durumu
numbermetin | nullGİB fatura numarası (16 hane)
ettnmetinETTN (fatura evrensel kimliği, UUID)
scenariometin | nullTEMELFATURA | TICARIFATURA | EARSIVFATURA …
response_deadlinemetin | nullTicari faturada alıcının kabul/red son günü
messagemetin | nullEntegratör ya da GİB açıklaması (red gerekçesi, hata)
sent_atmetinGİB’e gönderilme zamanı
updated_atmetin | nullSon değişiklik zamanı (ISO 8601)
pdf_urlmetin | nullOturum gerektirmeyen, paylaşılabilir PDF bağlantısı (kesilmiş faturada)
issued_atmetin | nullKesilme zamanı
sent_atmetin | nullGİB’e gönderilme zamanı
cancelled_atmetin | nullİptal zamanı
cancel_reasonmetin | nullİptal gerekçesi
created_atmetinOluşturulma zamanı (ISO 8601)
updated_atmetin | nullSon değişiklik zamanı (ISO 8601)
Örnek
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "invoice",
  "type": "satis",
  "status": "odendi",
  "number": "WHM2026000000123",
  "series": "WHM",
  "issue_date": "2026-11-06",
  "issue_time": "12:30:00",
  "due_date": "2026-11-06",
  "currency": "TRY",
  "exchange_rate": "1",
  "contact": {
    "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
    "name": "Örnek Bilişim Ltd. Şti.",
    "tax_number": "1234567890"
  },
  "order_no": "WHMCS-10452",
  "notes": null,
  "e_document_type": "earsiv",
  "scenario": "EARSIVFATURA",
  "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
  "totals": {
    "subtotal": "1200.00",
    "discount": "0.00",
    "net": "1200.00",
    "vat": "240.00",
    "withholding": "0.00",
    "total": "1440.00",
    "payable": "1440.00",
    "paid": "1440.00",
    "remaining": "0.00"
  },
  "lines": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "line_no": 1,
      "product_id": null,
      "description": "Profesyonel hosting (06.11.2026 - 05.11.2027)",
      "quantity": "1",
      "unit": "adet",
      "unit_price": "1200.00",
      "discount_amount": "0.00",
      "net_amount": "1200.00",
      "vat_rate": "20",
      "vat_amount": "240.00",
      "vat_exemption_code": null,
      "withholding_code": null,
      "withholding_amount": "0.00",
      "total": "1440.00"
    }
  ],
  "e_document": {
    "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
    "type": "earsiv",
    "status": "kabul",
    "status_label": "Raporlandı",
    "provider_status": "kabul",
    "number": "WHM2026000000123",
    "ettn": "0f8e7d6c-5b4a-4392-8170-6f5e4d3c2b1a",
    "scenario": "EARSIVFATURA",
    "response_deadline": null,
    "message": null,
    "sent_at": "2026-11-06T09:30:00.000Z",
    "updated_at": "2026-11-06T09:30:00.000Z"
  },
  "pdf_url": "https://app.carierp.com/api/open/v1/public/invoices/3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01/pdf?s=Qm9yYy1hbGFjYWstaGVwLWd1bmNlbA",
  "issued_at": "2026-11-06T09:30:00.000Z",
  "sent_at": "2026-11-06T09:30:00.000Z",
  "cancelled_at": null,
  "cancel_reason": null,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Cari

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türücontact
rolemetinmusteri | tedarikci | her_ikisi
kindmetinkurumsal | bireysel
namemetinAd ya da ünvan
first_namemetin | nullAd (bireysel)
last_namemetin | nullSoyad (bireysel)
codemetin | nullKod (cari kodu ya da stok kodu); şirkette benzersiz
tax_numbermetin | nullVKN (10) ya da TCKN (11)
tax_officemetin | nullVergi dairesi
emailmetin | nullE-posta adresi; e-Arşiv fatura bu adrese de gönderilir
phonemetin | nullTelefon (ör. +902161234567)
mobilemetin | nullCep telefonu
websitemetin | nullWeb sitesi
e_document_typemetinbelirlenmedi | efatura | earsiv — faturada kullanılacak belge; ilk faturada GİB listesinden belirlenir
e_invoice_aliasmetin | nulle-Fatura mükellefinin GİB posta kutusu etiketi
currencymetinPara birimi
ibanmetin | nullIBAN (TR ile başlayan, doğrulanır)
billing_addressnesne | nullFatura adresi
linemetin | nullAçık adres
districtmetin | nullİlçe
citymetin | nullİl
postal_codemetin | nullPosta kodu
countrymetin | nullÜlke (varsayılan Türkiye)
balancemetinBakiye (TL): pozitif = cari size borçlu
is_activemantıksalEtkin mi; false ise arşivlenmiş
created_atmetinOluşturulma zamanı (ISO 8601)
updated_atmetin | nullSon değişiklik zamanı (ISO 8601)
Örnek
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "contact",
  "role": "musteri",
  "kind": "kurumsal",
  "name": "Örnek Bilişim Ltd. Şti.",
  "first_name": null,
  "last_name": null,
  "code": "M-0042",
  "tax_number": "1234567890",
  "tax_office": "Kadıköy",
  "email": "[email protected]",
  "phone": "+902161234567",
  "mobile": null,
  "website": null,
  "e_document_type": "efatura",
  "e_invoice_alias": "urn:mail:[email protected]",
  "currency": "TRY",
  "iban": null,
  "billing_address": {
    "line": "Caferağa Mah. Moda Cad. No: 10",
    "district": "Kadıköy",
    "city": "İstanbul",
    "postal_code": "34710",
    "country": "Türkiye"
  },
  "balance": "1440.00",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Ürün

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türüproduct
typemetinurun | hizmet
codemetin | nullStok kodu (şirkette benzersiz)
barcodemetin | nullBarkod (EAN/GTIN)
namemetinAd ya da ünvan
descriptionmetin | nullAçıklama
unitmetinBirim: adet, kg, lt, m, saat, ay, yil…
sale_pricemetinKDV hariç satış fiyatı
purchase_pricemetinKDV hariç alış fiyatı
currencymetinPara birimi
vat_ratemetinKDV oranı (%)
track_stockmantıksalStok takibi yapılsın mı (hizmette false)
stock_quantitymetin | nullTüm depolardaki toplam stok (stok takipli değilse null)
critical_levelmetin | nullKritik stok seviyesi (bu miktara inince uyarı)
is_activemantıksalEtkin mi; false ise arşivlenmiş
created_atmetinOluşturulma zamanı (ISO 8601)
updated_atmetin | nullSon değişiklik zamanı (ISO 8601)
Örnek
{
  "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "object": "product",
  "type": "hizmet",
  "code": "HOST-PRO",
  "barcode": null,
  "name": "Profesyonel hosting (yıllık)",
  "description": null,
  "unit": "adet",
  "sale_price": "1200.00",
  "purchase_price": "0.00",
  "currency": "TRY",
  "vat_rate": "20",
  "track_stock": false,
  "stock_quantity": null,
  "critical_level": null,
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z",
  "updated_at": "2026-11-06T09:30:00.000Z"
}

Tahsilat

Alanlar

idmetinKasa/banka hareketinin kimliği
objectmetinNesne türüpayment
typemetintahsilat (müşteriden) | odeme (tedarikçiye)
statusmetingecerli | iptal
datemetinTarih (YYYY-AA-GG); boşsa bugün
amountmetinTutar
currencymetinPara birimi
account_idmetinKasa/banka hesabı kimliği (GET /accounts)
contact_idmetin | nullCari kimliği
invoice_idmetin | nullFatura kimliği
methodmetin | nullÖdeme yöntemi
descriptionmetin | nullAçıklama
created_atmetinOluşturulma zamanı (ISO 8601)
Örnek
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "payment",
  "type": "tahsilat",
  "status": "gecerli",
  "date": "2026-11-06",
  "amount": "1440.00",
  "currency": "TRY",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "method": "kart",
  "description": "Tahsilat: WHM2026000000123",
  "created_at": "2026-11-06T09:30:00.000Z"
}

Hareket

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türütransaction
account_idmetinKasa/banka hesabı kimliği (GET /accounts)
datemetinTarih (YYYY-AA-GG); boşsa bugün
directionmetingiris | cikis
typemetintahsilat | tediye | virman | acilis | gider | gelir | pos | ekstre | duzeltme …
amountmetinHesabın para biriminde tutar
currencymetinPara birimi
amount_trymetinTL karşılığı
descriptionmetin | nullAçıklama
contact_idmetin | nullCari kimliği
invoice_idmetin | nullFatura tahsilatı/ödemesiyse ilgili fatura
reconciledmantıksalBanka ekstresiyle eşleşti mi
reversal_of_idmetin | nullBu kayıt bir iptal (ters) kaydıysa iptal edilen hareket
created_atmetinOluşturulma zamanı (ISO 8601)
Örnek
{
  "id": "7b2e9c41-0d3a-4f5e-8b6c-1a2b3c4d5e6f",
  "object": "transaction",
  "account_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "date": "2026-11-06",
  "direction": "giris",
  "type": "tahsilat",
  "amount": "1440.00",
  "currency": "TRY",
  "amount_try": "1440.00",
  "description": "Tahsilat: WHM2026000000123",
  "contact_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "invoice_id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "reconciled": false,
  "reversal_of_id": null,
  "created_at": "2026-11-06T09:30:00.000Z"
}

Hesap

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türüaccount
typemetinkasa | banka | kredi_karti | pos
namemetinAd ya da ünvan
bank_namemetin | nullBanka adı
ibanmetin | nullIBAN (TR ile başlayan, doğrulanır)
currencymetinPara birimi
balancemetinBakiye
is_activemantıksalEtkin mi; false ise arşivlenmiş
created_atmetinOluşturulma zamanı (ISO 8601)
Örnek
{
  "id": "3f6c1d2e-8a4b-4c1d-9e2f-5a6b7c8d9e01",
  "object": "account",
  "type": "banka",
  "name": "İş Bankası TL",
  "bank_name": "Türkiye İş Bankası",
  "iban": "TR330006100519786457841326",
  "currency": "TRY",
  "balance": "48250.75",
  "is_active": true,
  "created_at": "2026-11-06T09:30:00.000Z"
}

Webhook

Alanlar

idmetinKaydın kimliği (UUID)
objectmetinNesne türüwebhook
urlmetinOlayların gönderileceği https adresi
eventsmetin dizisiAbone olunan olaylar
activemantıksalEtkin mi; false ise olay gönderilmez
descriptionmetin | nullAçıklama
statusmetinsaglikli | hata | pasif
last_deliverynesne | nullSon teslim denemesi
atmetinZaman (ISO 8601)
eventmetinOlay adı
okmantıksalBaşarılı mı (2xx)
statussayı | nullDurum
mssayı | nullYanıt süresi (milisaniye)
errormetin | nullHata açıklaması
created_atmetinOluşturulma zamanı (ISO 8601)
Örnek
{
  "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
  "object": "webhook",
  "url": "https://muhasebe.ornekhosting.com/modules/addons/carierp/webhook.php",
  "events": [
    "invoice.status_changed",
    "invoice.paid"
  ],
  "active": true,
  "description": "WHMCS",
  "status": "saglikli",
  "last_delivery": {
    "at": "2026-11-06T09:31:02.000Z",
    "event": "invoice.status_changed",
    "ok": true,
    "status": 200,
    "ms": 184,
    "error": null
  },
  "created_at": "2026-11-06T09:00:00.000Z"
}

Takıldığınız bir yer mi var?

Entegrasyonunuzla ilgili sorularınız için geliştirici desteğine yazın; hafta içi 09.00–18.00 yanıtlıyoruz.

[email protected]

Cariniz bugün
güncellensin.

14 gün ücretsiz deneyin. Kredi kartı istemiyoruz; kurulumda ve veri aktarımında ekibimiz yanınızda.