Abacus Web API
Acenta ve operatör uygulamalarınızdan Abacus'e alış/satış faturalarını ve fişlerini aktarmak için kullanılan REST servisi. Token ile korunur, JSON ve XML gövdeleri destekler.
Nasıl çalışır?
Abacus Web API; acenta ve operatör yazılımlarının muhasebe hesap tanımlarını okumasını ve alış/satış faturalarını, tahsilat/ödeme fişlerini Abacus'e aktarmasını sağlar. Tüm istekler bir Bearer token ile yetkilendirilir.
| Temel adres | {{baseUrl}} — kurulumunuza özel adres |
|---|---|
| Kimlik doğrulama | OAuth (Microsoft.Owin) — Bearer token |
| Veri biçimi | JSON veya XML (fatura aktarımı ikisini de kabul eder) |
| Karakter seti | UTF-8 |
Entegrasyona başlamadan önce Abacus ekibinden kullanıcı adı, parola ve bağlantı (connection) bilgilerinizi ve temel adresinizi edinin.
Token alma
/token uç noktasına kullanıcı bilgilerinizle POST göndererek erişim token'ı alırsınız. Dönen access_token'ı sonraki tüm isteklerin Authorization başlığında kullanın.
# İstek — gövde (form)
POST {{baseUrl}}/token
username=PRGRUSER&password=PRGPASWORD&grant_type=password&connection=PRGCONNECTION
// Yanıt { "access_token": "4ZVKa96Egt0Ep1MkQUXVKb9NrDsvMfAtS245AN4dL1hi...", "token_type": "bearer", "expires_in": 86399 }
Sonraki isteklerde:
GET {{baseUrl}}/api/values/getintaccounts
Authorization: Bearer ACCESS_TOKEN
Token süre sınırlıdır (expires_in saniye ≈ 1 gün). Süre dolduğunda /token üzerinden yeniden token alın.
Muhasebe Tanımları
Fatura aktarmadan önce hesap kodu, kullanıcı, döviz ve masraf merkezi tanımlarını okuyup eşleştirme (çaprazlama) yapın. Eşleştirmede genellikle Code alanı kullanılır.
| Metot | Uç Nokta | Açıklama |
|---|---|---|
| GET | /api/values/getintaccounts | Muhasebe hesap kodları (çaprazlama için Code). |
| GET | /api/values/Geinttusers | Muhasebe kullanıcıları. |
| GET | /api/values/getintcurrencies | Döviz cinsleri (USD, EUR, TRY…). |
| GET | /api/values/getcostaccounts | Masraf merkezleri. |
| GET | /api/values/InsertCard?code1=&code2=&code3=&accountname= | Yeni hesap kodu açar; yanıttaki Code yeni açılan koddur. |
| POST | /api/values/UpdateAccCard | Detaylı cari/hesap kartı oluşturma (adres, vergi, e-fatura bilgileri). |
// GET /api/values/getintaccounts — örnek yanıt [ { "Id": 338, "Code": "120.08.235", "Name": "YAZ TUR" }, { "Id": 689, "Code": "100.01.001", "Name": "MUHASEBE TL KASA" } ]
Fatura / Fiş Aktarımı
Tüm alış/satış faturaları ve tahsilat/ödeme fişleri tek uç noktaya gönderilir. İşlem türü, gövdedeki DocType ve IsSlip alanlarıyla belirlenir. Gövde JSON ya da XML olabilir.
| Metot | Uç Nokta | Açıklama |
|---|---|---|
| POST | /api/values/updateintegration | Fatura/fiş aktarır. Yanıttaki id muhasebe fiş numarasıdır — saklayın. |
| GET | /api/values/integrationreturn?SlipNo=900 | Aktarılan fişi geri alır (SlipNo = önceki id). |
Örnek — Satış faturası (JSON)
POST {{baseUrl}}/api/values/updateintegration
Authorization: Bearer ACCESS_TOKEN
{
"Tarih": "2025-01-17",
"CariKod": "120.01.024",
"EvrakNo": "123456789",
"Kur": 3.45,
"DovizCinsiString": "USD",
"DocType": 1,
"IsSlip": 0,
"Kaynak": "Sejour",
"KayitEdenString": "Sejour",
"EACustName": "Zeytindalı yazılım",
"EAEmail": "ornek@firma.com",
"EAIdNo": "9300199600",
"Detay": [
{
"HesapKod": "600.01.002",
"DovizCinsiString": "USD",
"DovizTutar": 109.8,
"Kdv": 10,
"Kur": 29.5481,
"ResNo": "PX061022",
"ResServiceName": "ADORA GOLF HOTEL",
"ResGuestName": "ALİ VELİ",
"GirisTarihi": "2017-01-11",
"CikisTarihi": "2017-01-12"
}
]
}
Örnek — Satış faturası (XML)
<?xml version="1.0" encoding="UTF-8"?>
<Icmal>
<Tarih>2017-01-17</Tarih>
<CariKod>120.01.024</CariKod>
<EvrakNo>SGB2017000000066</EvrakNo>
<Kur>3,45</Kur>
<DovizCinsiString>USD</DovizCinsiString>
<DocType>1</DocType>
<IsSlip>0</IsSlip>
<Kaynak>Sejour</Kaynak>
<KayitEdenString>Sejour</KayitEdenString>
<Detay>
<HesapKod>600.01.002</HesapKod>
<DovizCinsiString>USD</DovizCinsiString>
<DovizTutar>109,8</DovizTutar>
<Kdv>0</Kdv>
<Kur>3,45</Kur>
</Detay>
</Icmal>
Yanıt
{
"id": 2500,
"error": "",
"GuidId": "05b34756-cbf2-472f-b223-a379c56f5059"
}
id: Muhasebe fiş numarasıdır; geri alma işlemi için saklayın. error: Boş/null ise aktarım başarılı, dolu ise hata mesajıdır.
DocType & IsSlip
Gönderdiğiniz belgenin türü bu iki alanla belirlenir:
| İşlem | DocType | IsSlip |
|---|---|---|
| Satış Faturası | 1 | 0 |
| Satış İade Faturası | 2 | 0 |
| Alış Faturası | 3 | 0 |
| Alış İade Faturası | 4 | 0 |
| Tahsilat Fişi | 3 | 1 |
| Ödeme Fişi | 1 | 1 |
Sorgulama & Önizleme
| Metot | Uç Nokta | Açıklama |
|---|---|---|
| POST | /api/values/GetInvoiceReportX | Gönderilmiş faturaların raporu (tarih ve evrak no aralığı). |
| PUT | /api/values/GetSlipListX | Fiş listesi (GuidId + voucher aralığı). |
| GET | /api/default/GetInvoiceHtml?eguideid= | Faturanın HTML önizlemesi. |
| GET | /api/default/GetInvoiceByte?eguideid= | Faturanın PDF (byte) önizlemesi. |
// POST /api/values/GetInvoiceReportX — gövde { "DateBegin": "2024-01-01T00:00:00", "DateEnd": "2024-12-31T00:00:00", "VoucherNoBegin": 1, "VoucherNoEnd": 100 }
Icmal & Detay alanları
Fatura aktarımında kullanılan Icmal (fatura başlığı) ve Detay (satırlar) modellerinin alanları. ✅ zorunlu alanları gösterir.
Icmal (fatura başlığı) alanları
| Alan | Açıklama | Tip | Zorunlu |
|---|---|---|---|
Tarih | Fatura tarihi | DateTime | ✅ |
CariKod | Finans üst hesap kodu | string | ✅ |
Kur | Döviz kuru (örn. 36.5544 veya 0) | decimal | ✅ |
DovizCinsiString | Döviz cinsi (USD, EUR…) | string | ✅ |
DocType | 1:Satış, 2:Satış iade, 3:Alış, 4:Alış iade | byte | ✅ |
IsSlip | 1:Fiş, 0:Fatura | byte | ✅ |
Kaynak | Kaynak (Sejour, biziclick, tourvisio) | string | ✅ |
KayitEdenString | Kaydeden kullanıcı adı | string | ✅ |
Detay | Fatura detay satırları | List | ✅ |
EvrakNo / EvrakSeri | Evrak numarası / seri | string | ❌ |
Aciklama | Fatura açıklaması | string | ❌ |
IsEInv | E-Fatura mı? | bool? | ❌ |
EACustName | Alıcı unvanı | string | ❌ |
EAAddress | Alıcı adresi | string | ❌ |
EAEmail | Alıcı e-posta | string | ❌ |
EAIdNo | Alıcı VKN/TCKN | string | ❌ |
EATaxOffice | Alıcı vergi dairesi | string | ❌ |
TicketNo | Bilet numarası | string | ❌ |
Attachments | Ekli dosya adı/yolu | string | ❌ |
Detay (satır) alanları
| Alan | Açıklama | Tip | Zorunlu |
|---|---|---|---|
HesapKod | Finans hesap kodu | string | ✅ |
DovizTutar | Döviz tutarı (satır toplamı) | decimal | ✅ |
Kdv | KDV oranı | int | ✅ |
Kur | Döviz kuru | decimal | ✅ |
Aciklama1 / Aciklama2 | Satır açıklaması | string | ❌ |
GirisTarihi / CikisTarihi | Rezervasyon giriş/çıkış tarihi | DateTime? | ❌ |
ResNo | Rezervasyon numarası | string | ❌ |
ResInfo | Rezervasyon pax bilgisi | string | ❌ |
ResServiceName | Servis adı (örn. otel adı) | string | ❌ |
ResGuestName | Misafir adı | string | ❌ |
ResCountry | Misafir ülkesi | string | ❌ |
MasrafMerkezi / MasrafMerkeziId | Masraf merkezi | string / int? | ❌ |
TLTutar | TL cinsinden tutar | decimal? | ❌ |
F1…F6 | Özel alanlar (müşteri adı, voucher, oda tipi…) | string | ❌ |
Entegrasyona başlayalım
Kullanıcı, parola ve bağlantı bilgilerinizi alın; koleksiyondaki hazır isteklerle uç noktaları hemen deneyin.