Solk ERP API
Carileri gönder
ERP carilerini gönderir; Solk her cariyi CRM firmasıyla eşleştirir — önce vergi numarası, sonra unvan (Türkçe harf ve şirket türü farkı yok). Bağlantıda CRM'de olmayan carileri firma olarak aç seçiliyse eşleşmeyenler aday / aktif firma olarak açılır (created). Kayıtta balance, overdue, credit_limit varsa bakiye de yazılır. ext_id carinin ERP'deki değişmez kimliğidir (yoksa code); aynı ext_id yeniden gelince güncellenir. Tek istekte en çok 2.000 kayıt.
Yetkilendirme
AuthorizationheaderzorunluSolk ERP API anahtarı (erp_…): Ayarlar → Muhasebe ve ERP → Solk ERP API bağlantısı açılınca bir kez gösterilir.
X-Solk-Erp-Key başlığıyla da gönderilebilir.Gövde application/json
itemsarrayzorunluCariler:
ext_id, code, name, tax_no, tax_office, email, phone, city, currency, (isteğe bağlı) balance, overdue, credit_limit.Hatalar
| HTTP | error | Anlamı |
|---|---|---|
401 | unauthorized | Belirteç yok, geçersiz, süresi dolmuş ya da iptal edilmiş. |
400 | invalid | Eksik ya da geçersiz alan (`message` ayrıntıyı verir). |
413 | too_many | Tek istekte en çok 2.000 kayıt. |
429 | rate_limited | Dakikalık istek sınırı aşıldı (`Retry-After`). |
İstek
curl -X POST https://ornek.solk.app/api/erp/v1/customers \
-H "Authorization: Bearer $SOLK_ERP_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"ext_id": "120.01.045",
"code": "120.01.045",
"name": "Kumsal Plastik Ambalaj San. ve Tic. A.Ş.",
"tax_no": "4810123456",
"tax_office": "Kozyatağı",
"city": "İstanbul",
"currency": "TRY"
},
{
"ext_id": "120.01.051",
"code": "120.01.051",
"name": "Deniz Ambalaj San. ve Tic. A.Ş.",
"tax_no": "2950312874",
"tax_office": "Gebze",
"city": "Kocaeli",
"currency": "TRY"
}
]
}'const res = await fetch("https://ornek.solk.app/api/erp/v1/customers", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_ERP_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"items": [
{
"ext_id": "120.01.045",
"code": "120.01.045",
"name": "Kumsal Plastik Ambalaj San. ve Tic. A.Ş.",
"tax_no": "4810123456",
"tax_office": "Kozyatağı",
"city": "İstanbul",
"currency": "TRY"
},
{
"ext_id": "120.01.051",
"code": "120.01.051",
"name": "Deniz Ambalaj San. ve Tic. A.Ş.",
"tax_no": "2950312874",
"tax_office": "Gebze",
"city": "Kocaeli",
"currency": "TRY"
}
]
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/erp/v1/customers",
headers={"Authorization": f"Bearer {os.environ['SOLK_ERP_KEY']}"},
json={
"items": [
{
"ext_id": "120.01.045",
"code": "120.01.045",
"name": "Kumsal Plastik Ambalaj San. ve Tic. A.Ş.",
"tax_no": "4810123456",
"tax_office": "Kozyatağı",
"city": "İstanbul",
"currency": "TRY"
},
{
"ext_id": "120.01.051",
"code": "120.01.051",
"name": "Deniz Ambalaj San. ve Tic. A.Ş.",
"tax_no": "2950312874",
"tax_office": "Gebze",
"city": "Kocaeli",
"currency": "TRY"
}
]
},
)
print(r.json())Yanıt
{
"created": 0,
"matched": 1,
"new": 2,
"ok": true,
"received": 2,
"unmatched_total": 1
}Örnek yanıt örnek veriyle çalışan bir v54 kurulumundan alındı; listeler en çok iki öğeyle kısaltıldı.