Gelen e-Faturayı İçeri Aktar (Alış Faturası Oluştur)
Gelen e-Faturayı İçeri Aktar (Alış Faturası Oluştur), Evobulut ön muhasebe / ERP yazılımının Gelen e-Fatura modülüne ait bir REST API servisidir. POST yöntemiyle https://ws.evobulut.com/api/FaturaUbl/base/ adresine JSON gönderilerek çağrılır; kimlik doğrulama için Login servisinden alınan Token UID değeri gereklidir.
Gelen e-faturayı alış faturasına aktarır. Web arayüzündeki “İçeri Aktar” işleminin karşılığıdır. Oluşan fatura ile gelen e-fatura arasındaki bağ kurulur ve aynı fatura ikinci kez aktarılamaz.
Ön koşullar: Faturanın carisi ve deposu belli olmalıdır. Cari boşsa aktarım yapılmaz; önce Gelen e-Fatura Güncelle servisi ile a_cari_id belirlenmelidir. Depo ise aşağıdaki sırayla çözülür, hiçbiri bulunamazsa aktarım yapılmaz.
| cmd | İlgili komut // iceri_aktar |
| UID | KULLANICI_UID |
| a_id | Kayit ID // Gelen e-fatura kimliği. Zorunludur. |
| a_depo_id | Depo ID // Stok hareketinin gireceği depo. Verilmezse sırasıyla gelen e-faturanın üzerindeki depo, o da boşsa kullanıcının varsayılan deposu (tbl_depo_user) kullanılır. GİB'den gelen faturalarda depo bilgisi bulunmadığı için bu alan çoğunlukla boştur; hiçbiri bulunamazsa “Depo boş olamaz.” hatası döner ve fatura oluşturulmaz. Çözülen depo gelen e-fatura kaydına da yazılır. |
| onay | Onay // 1 verilirse hem GELEN E-FATURA kaydı hem de oluşan alış faturası onaylanır; arayüzdeki “onayla + alış oluştur” akışının karşılığıdır. Kullanıcının alış faturası onay limiti denetlenir (varsayılan 0). |
| stok_yansit | Stok Yansitma // 1 verilirse stok hareketi oluşturulmaz (varsayılan 0). |
| uyari | Mukerrer Uyarisi // Varsayılan 1. Aynı belge no + cari daha önce girilmişse aktarım YAPILMAZ ve status = "UYARI" döner. İstemci onayladıktan sonra uyari = 0 ile tekrar çağırır. |
| eslesmeyen_atla | Eslesmeyen Satir Davranisi // Varsayılan 0: stok kartı ya da birimi eşleşmemiş satır varsa aktarım durur ve eksik satırlar veri.eslesmeyen_satirlar ile döner. 1 verilirse bu satırlar atlanarak aktarım yapılır; bu durumda oluşan faturanın tutarı gelen faturanın tutarından DÜŞÜK olur. |
Dönen veri
| veri.a_id | Oluşan alış faturasının kimliği. Fatura modülü servisleriyle kullanılır. |
| veri.ubl_id | Aktarılan gelen e-faturanın kimliği. |
| veri.eslesmeyen_satirlar | Aktarım eşleşme nedeniyle durduysa eksik satırların listesi. |
Önerilen akış
| 1 | Listele // Gelen e-Fatura Listesi, aktarildi = 0 |
| 2 | Detayı ve satırları al // Gelen e-Fatura Detayı ve Satırları |
| 3 | Cariyi ve eşleşmemiş satırları bağla // Gelen e-Fatura Güncelle (Satır Eşleştirme) |
| 4 | Aktar // Gelen e-Faturayı İçeri Aktar |
Yetki: “Gelen e-Faturalar” menü yetkisi gereklidir.
| X-ClientId | Login anında alınan kullanıcı Token UID bilgisi |
{
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}curl -X POST "https://ws.evobulut.com/api/FaturaUbl/base/" \
-H "Content-Type: application/json" \
-d '{
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}'const response = await fetch("https://ws.evobulut.com/api/FaturaUbl/base/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
})
});
const veri = await response.json();
console.log(veri);using System.Text;
using System.Text.Json;
using var client = new HttpClient();
var json = """
{
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}
""";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://ws.evobulut.com/api/FaturaUbl/base/", content);
var veri = await response.Content.ReadAsStringAsync();
Console.WriteLine(veri);import requests
url = "https://ws.evobulut.com/api/FaturaUbl/base/"
payload = {
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}
response = requests.post(url, json=payload)
print(response.json())<?php
$url = "https://ws.evobulut.com/api/FaturaUbl/base/";
$payload = '{
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
String json = """
{
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://ws.evobulut.com/api/FaturaUbl/base/"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://ws.evobulut.com/api/FaturaUbl/base/'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
"cmd": "iceri_aktar",
"UID": "KULLANICI_UID",
"a_id": 18245,
"a_depo_id": 1,
"onay": 1,
"stok_yansit": 0,
"uyari": 1
}),
);
print(jsonDecode(response.body));{
"status": "OK",
"veri": {
"mesaj": "Fatura aktarıldı.",
"a_id": 20117,
"ubl_id": 18245
}
}{
"status": "ERR",
"veri": {
"mesaj": "Stok kartı ya da birimi eşleşmemiş satırlar var; önce UPD ile eşleştiriniz.",
"eslesmeyen_satirlar": [
"55502 - TED-777 EŞLEŞMEMİŞ ÜRÜN"
]
}
}