E-Fatura Taslağı Oluşturma
Mevcut bir faturanın eksik e-belge taslağını oluşturur.
Fatura oluşturulduğu sırada şirketin e-fatura entegrasyonu bağlı değilse, fatura için e-belge taslağı oluşturulmaz. Entegrasyon tamamlandıktan sonra bu uç nokta ile mevcut faturanın taslağı oluşturulur; ardından invoices/e-document/create ile gönderilebilir.
Endpoint
POST /kolaybi/v1/invoices/draft
Parametreler
document_id dışındaki tüm alanlar opsiyoneldir ve yalnızca aşağıdaki taslak (e-belge) alanları gönderilebilir.
Temel Alanlar
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
document_id | integer | Evet | Taslağı oluşturulacak fatura ID |
document_scenario | string | Hayır | Gönderilmezse alıcıya göre otomatik belirlenir. TEMELFATURA, TICARIFATURA, ILAC_TIBBICIHAZ vb. |
document_type | string | Hayır | Varsayılan SATIS. |
receiver_email | string | Hayır | E-fatura/e-arşiv alıcısı |
shipment_include | boolean | Hayır | true -> açıklamalara “İrsaliye yerine geçer” eklenir. |
İnternet Satışı Alanları
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
internet_sale[url] | string | Hayır | Satışın yapıldığı web adresi |
internet_sale[payment_type] | string | Hayır | credit-card, bank-transfer, pay-at-door, payment-platform |
internet_sale[payment_platform] | string | Hayır | Kullanılan ödeme platformu |
internet_sale[payment_date] | date | Hayır | Ödeme tarihi |
internet_sale_shipment[carrier_company] | string | Hayır | Taşıyıcı firma |
internet_sale_shipment[carrier_company_tax_number] | string | Hayır | Taşıyıcı VKN |
internet_sale_shipment[carrier_date] | date | Hayır | Sevk tarihi |
Örnekler
- cURL
- JavaScript
- PHP
- Python
- C#
curl -X POST "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices/draft" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Channel: YOUR_CHANNEL" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "document_id=1"
async function prepareEDocumentDraft(documentId) {
const formData = new URLSearchParams();
formData.append("document_id", documentId);
const response = await fetch(
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices/draft",
{
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
Channel: channel,
"Content-Type": "application/x-www-form-urlencoded",
},
body: formData,
}
);
return await response.json();
}
// Kullanım
const result = await prepareEDocumentDraft(1);
function prepareEDocumentDraft($documentId) {
$url = 'https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices/draft';
$postData = [
'document_id' => $documentId
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($postData),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken,
'Channel: ' . $channel,
'Content-Type: application/x-www-form-urlencoded'
],
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Kullanım
$result = prepareEDocumentDraft(1);
import requests
def prepare_e_document_draft(document_id):
url = "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices/draft"
headers = {
"Authorization": f"Bearer {access_token}",
"Channel": channel,
"Content-Type": "application/x-www-form-urlencoded"
}
data = {
"document_id": document_id
}
response = requests.post(url, headers=headers, data=data)
return response.json()
# Kullanım
result = prepare_e_document_draft(1)
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Newtonsoft.Json;
async Task<dynamic> PrepareEDocumentDraftAsync(int documentId)
{
using var client = new HttpClient();
var data = new Dictionary<string, string>
{
{ "document_id", documentId.ToString() }
};
var request = new HttpRequestMessage(HttpMethod.Post,
"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/invoices/draft")
{
Content = new FormUrlEncodedContent(data)
};
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
// Kullanım
var result = await PrepareEDocumentDraftAsync(1);
Yanıt Formatı
Taslak oluşturulduktan sonra faturanın güncel bilgileri döner. E-belge alanları (uuid, no) fatura gönderildikten sonra dolar.
{
"success": true,
"data": {
"document_id": 18,
"uuid": null,
"no": null,
"document_type": "SATIS",
"serial_no": null,
"associate_id": 1,
"currency": "try",
"issue_date": "2024-01-15 10:00:00",
"grand_total": 20,
"commercial_doc_type": "sale_invoice"
}
}