Sipariş oluşturma
Kendi sisteminizdeki bir siparişi panele aktarmak için bu endpoint kullanılır. Sipariş bir satış kanalına bağlanır; panelde listelenir ve dilediğiniz anda (veya otomatik olarak) faturaya dönüştürülür.
İstek
POST /api/orders
Accept: application/json
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Siparişlerinizi bir JSON adresinde yayınlayıp platformun düzenli aralıklarla kendisinin çekmesini tercih ediyorsanız JSON Feed entegrasyonu sayfasına bakın. Bu endpoint, siparişi siz gönderdiğinizde (push) kullanılır.
Üst düzey alanlar
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
sale_channel_id | number | Evet | Siparişin bağlanacağı satış kanalı ID’si — bkz. satış kanalı listeleme. Hesabınıza ait olmayan bir kanal ID’si reddedilir. |
platform_id | string | Evet | Siparişin kendi sisteminizdeki benzersiz numarası. Faturalaşmada mükerrer kontrolü bu değerle yapılır. |
platform_d_id | string | Evet | Müşteriye gösterilen sipariş numarası (kısa numara). |
platform_url | string | Evet | Siparişin kendi panelinizdeki adresi. Faturaya dönüştürüldüğünde internet satışı web adresi olarak kullanılır. |
platform_status | string | Evet | Siparişin sizdeki durumu (serbest metin, örn. completed, Hazırlanıyor). |
platform_date | string | Evet | Sipariş tarihi (Y-m-d H:i:s veya ISO-8601). |
total | number | Evet | Sipariş genel toplamı. |
currency | string | Evet | Para birimi (örn. TRY) — bkz. Sabitler. |
payment_method | string | Evet | Ödeme yöntemi; enum ile doğrulanır — bkz. Sabitler. |
payment_platform | string | Evet | Ödeme altyapısı adı (örn. iyzico). |
payment_status | string | Evet | Ödeme durumu (örn. paid) — bkz. Sabitler. |
payment_date | string | Evet | Ödeme tarihi. |
platform_customer_id | string | Evet | Müşterinin sizdeki ID’si. Faturaya dönüşürken customer.id olarak kullanılır. |
platform_customer_email | string | Evet | Müşteri e-postası (geçerli format). |
customer_note | string | Hayır | Müşteri notu. |
invoice_url | string | Hayır | Siparişin faturası sizde zaten kesildiyse faturanın adresi. Dolu gönderilirse otomatik faturalama tetiklenmez. |
billingAddress | object | Evet | Fatura adresi — aşağıya bakın. |
shippingAddress | object | Hayır | Teslimat adresi — gönderilirse alanları zorunlu hâle gelir. |
lines | array | Evet | En az bir sipariş satırı. |
shipment | object | Hayır | Kargo bilgisi. |
Hesabınızda otomatik faturalama açıksa, sipariş kaydedildikten sonra ayarlarınızdaki gecikme süresi (gün/saat/dakika) kadar beklenip fatura otomatik oluşturulur. Bu davranışı tek bir sipariş için devre dışı bırakmak istiyorsanız invoice_url alanını dolu gönderin.
billingAddress alanları
Fatura bu adresteki bilgilerle kesilir; alıcının VKN/TCKN’si burada bulunur.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
type | string | Evet | person veya company — bkz. Sabitler. |
tax_number | string | Evet | VKN (10 hane) veya TCKN (11 hane). Nihai tüketici için 11111111111. |
tax_office | string | Hayır | Vergi dairesi. Tüzel kişilerde doldurulması önerilir. |
title | string | Koşullu | type: "company" ise zorunlu (ünvan). |
name | string | Koşullu | type: "person" ise zorunlu. |
surname | string | Koşullu | type: "person" ise zorunlu. |
address | string | Evet | Açık adres. |
city | string | Evet | İl. |
district | string | Evet | İlçe. |
country | string | Evet | Ülke. |
phone | string | Hayır | Telefon. |
shippingAddress alanları
Bu nesne isteğe bağlıdır; gönderirseniz name, surname, address, city, district, country alanları zorunlu olur (title ve phone isteğe bağlıdır).
lines[] satır alanları
Sipariş satırlarında exemption_code / exemption_reason alanları yoktur. Sipariş faturaya dönüştürülürken tax_rate: 0 olan satırlara panelinizdeki varsayılan ayarlarda tanımlı istisna kodu ve gerekçesi otomatik uygulanır (Ayarlar → Varsayılanlar). KDV’siz satış yapıyorsanız bu varsayılanı mutlaka tanımlayın; aksi hâlde fatura oluşturma adımı KDV oranı 0 olan ürünlerde istisna kodu zorunludur. hatası verir.
İstisna kodunu satır bazında kendiniz belirlemek istiyorsanız faturayı siparişten fatura oluşturma ile, lines[].exemption_code alanlarını doldurarak gönderin.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
platform_id | string | Evet | Satırın sizdeki benzersiz ID’si. |
name | string | Evet | Ürün/hizmet adı. |
quantity | number | Evet | Miktar. |
unit | string | Evet | Ölçü birimi (örn. C62) — bkz. Sabitler. |
unit_price | number | Evet | Birim fiyat ≥ 0. |
tax_rate | number | Evet | KDV oranı; enum ile doğrulanır (0, 1, 8, 10, 18, 20 …). |
sku | string | Hayır | Stok kodu. |
discount_type | string | Hayır | amount veya percentage. |
discount | number | Hayır | İndirim tutarı ya da oranı (≥ 0). |
description | string | Hayır | Satır açıklaması. |
shipment alanları
Kargo bilgisi isteğe bağlıdır ve serbest yapıdadır; kaydedilen alanlar şunlardır:
| Alan | Tip | Açıklama |
|---|---|---|
company_title | string | Kargo firması ünvanı. |
company_tax_number | string | Kargo firması VKN’si. |
courier_name | string | Kurye adı. |
courier_tax_number | string | Kurye VKN/TCKN’si. |
delivery_date | string | Teslim tarihi. |
Örnek istek gövdesi
{
"sale_channel_id": 5,
"platform_id": "ORD-2026-1001",
"platform_d_id": "1001",
"platform_url": "https://ornek-magaza.com/siparis/ORD-2026-1001",
"platform_status": "completed",
"platform_date": "2026-07-30 14:30:00",
"total": 1250.50,
"currency": "TRY",
"payment_method": "credit_or_debit",
"payment_platform": "iyzico",
"payment_status": "paid",
"payment_date": "2026-07-30 14:35:00",
"platform_customer_id": "CUST-555",
"platform_customer_email": "musteri@example.com",
"customer_note": "Lütfen kargoyu kapıya bırakın.",
"billingAddress": {
"type": "person",
"name": "Ahmet",
"surname": "Yılmaz",
"tax_number": "11111111111",
"tax_office": null,
"address": "Örnek Mah. Test Sok. No:1 D:2",
"district": "Kadıköy",
"city": "İstanbul",
"country": "TÜRKİYE",
"phone": "+905551234567"
},
"shippingAddress": {
"name": "Ahmet",
"surname": "Yılmaz",
"address": "Örnek Mah. Test Sok. No:1 D:2",
"district": "Kadıköy",
"city": "İstanbul",
"country": "TÜRKİYE",
"phone": "+905551234567"
},
"lines": [
{
"platform_id": "ITEM-001",
"sku": "SKU-001",
"name": "Kablosuz Kulaklık",
"quantity": 2,
"unit": "C62",
"unit_price": 500,
"discount_type": "amount",
"discount": 50,
"tax_rate": 20,
"description": "Mavi renk seçeneği"
},
{
"platform_id": "ITEM-002",
"sku": "SKU-002",
"name": "Kulaklık Kılıfı",
"quantity": 1,
"unit": "C62",
"unit_price": 300.50,
"discount_type": "percentage",
"discount": 0,
"tax_rate": 20
}
],
"shipment": {
"company_title": "Yurtiçi Kargo",
"company_tax_number": "9860008925",
"delivery_date": "2026-08-02"
}
}
Örnek istekler
- 💻 cURL
- 🐘 PHP
- 🟢 Node.js
- 🐍 Python
curl -X POST "https://app.faturaentegrator.com/api/orders" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @siparis.json
<?php
$body = [
'sale_channel_id' => 5,
'platform_id' => 'ORD-2026-1001',
'platform_d_id' => '1001',
'platform_url' => 'https://ornek-magaza.com/siparis/ORD-2026-1001',
'platform_status' => 'completed',
'platform_date' => '2026-07-30 14:30:00',
'total' => 1250.50,
'currency' => 'TRY',
'payment_method' => 'credit_or_debit',
'payment_platform' => 'iyzico',
'payment_status' => 'paid',
'payment_date' => '2026-07-30 14:35:00',
'platform_customer_id' => 'CUST-555',
'platform_customer_email' => 'musteri@example.com',
'billingAddress' => [
'type' => 'person',
'name' => 'Ahmet',
'surname' => 'Yılmaz',
'tax_number' => '11111111111',
'address' => 'Örnek Mah. Test Sok. No:1 D:2',
'district' => 'Kadıköy',
'city' => 'İstanbul',
'country' => 'TÜRKİYE',
'phone' => '+905551234567',
],
'lines' => [
[
'platform_id' => 'ITEM-001',
'sku' => 'SKU-001',
'name' => 'Kablosuz Kulaklık',
'quantity' => 2,
'unit' => 'C62',
'unit_price' => 500,
'tax_rate' => 20,
],
],
];
$ch = curl_init('https://app.faturaentegrator.com/api/orders');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($body),
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
const body = {
sale_channel_id: 5,
platform_id: 'ORD-2026-1001',
platform_d_id: '1001',
platform_url: 'https://ornek-magaza.com/siparis/ORD-2026-1001',
platform_status: 'completed',
platform_date: '2026-07-30 14:30:00',
total: 1250.5,
currency: 'TRY',
payment_method: 'credit_or_debit',
payment_platform: 'iyzico',
payment_status: 'paid',
payment_date: '2026-07-30 14:35:00',
platform_customer_id: 'CUST-555',
platform_customer_email: 'musteri@example.com',
billingAddress: {
type: 'person',
name: 'Ahmet',
surname: 'Yılmaz',
tax_number: '11111111111',
address: 'Örnek Mah. Test Sok. No:1 D:2',
district: 'Kadıköy',
city: 'İstanbul',
country: 'TÜRKİYE',
phone: '+905551234567',
},
lines: [
{
platform_id: 'ITEM-001',
sku: 'SKU-001',
name: 'Kablosuz Kulaklık',
quantity: 2,
unit: 'C62',
unit_price: 500,
tax_rate: 20,
},
],
};
const res = await fetch('https://app.faturaentegrator.com/api/orders', {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
});
const data = await res.json();
import requests
body = {
'sale_channel_id': 5,
'platform_id': 'ORD-2026-1001',
'platform_d_id': '1001',
'platform_url': 'https://ornek-magaza.com/siparis/ORD-2026-1001',
'platform_status': 'completed',
'platform_date': '2026-07-30 14:30:00',
'total': 1250.50,
'currency': 'TRY',
'payment_method': 'credit_or_debit',
'payment_platform': 'iyzico',
'payment_status': 'paid',
'payment_date': '2026-07-30 14:35:00',
'platform_customer_id': 'CUST-555',
'platform_customer_email': 'musteri@example.com',
'billingAddress': {
'type': 'person',
'name': 'Ahmet',
'surname': 'Yılmaz',
'tax_number': '11111111111',
'address': 'Örnek Mah. Test Sok. No:1 D:2',
'district': 'Kadıköy',
'city': 'İstanbul',
'country': 'TÜRKİYE',
'phone': '+905551234567',
},
'lines': [
{
'platform_id': 'ITEM-001',
'sku': 'SKU-001',
'name': 'Kablosuz Kulaklık',
'quantity': 2,
'unit': 'C62',
'unit_price': 500,
'tax_rate': 20,
}
],
}
r = requests.post(
'https://app.faturaentegrator.com/api/orders',
json=body,
headers={'Accept': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY'},
)
data = r.json()
Örnek yanıt
Oluşturulan sipariş, ilişkileriyle (satırlar, adresler, kargo, satış kanalı) birlikte data sarmalayıcısı içinde döner.
{
"data": {
"id": 30,
"sale_channel_id": 5,
"platform_id": "ORD-2026-1001",
"platform_d_id": "1001",
"platform_url": "https://ornek-magaza.com/siparis/ORD-2026-1001",
"platform_status": "completed",
"platform_date": "2026-07-30T14:30:00.000000Z",
"total": "1250.50",
"currency": "TRY",
"payment_method": "credit_or_debit",
"payment_platform": "iyzico",
"payment_status": "paid",
"payment_date": "2026-07-30T14:35:00.000000Z",
"platform_customer_id": "CUST-555",
"platform_customer_email": "musteri@example.com",
"customer_note": "Lütfen kargoyu kapıya bırakın.",
"invoice_id": null,
"invoice_url": null,
"last_updated_at": "2026-07-31T09:12:44.000000Z",
"billing_address": { "type": "person", "name": "Ahmet", "surname": "Yılmaz", "...": "..." },
"shipping_address": { "name": "Ahmet", "surname": "Yılmaz", "...": "..." },
"lines": [
{ "id": 91, "platform_id": "ITEM-001", "name": "Kablosuz Kulaklık", "quantity": 2, "unit_price": "500.00", "...": "..." }
],
"shipment": { "company_title": "Yurtiçi Kargo", "delivery_date": "2026-08-02", "...": "..." },
"sale_channel": { "id": 5, "title": "Kendi Mağazam", "...": "..." },
"invoice": null,
"created_at": "2026-07-31T09:12:44.000000Z",
"updated_at": "2026-07-31T09:12:44.000000Z"
}
}
| Alan | Açıklama |
|---|---|
id | Panel sipariş ID’si. Güncelleme, silme ve faturalama isteklerinde bu değer kullanılır. |
invoice_id | Sipariş faturalandığında dolar; siparişten fatura oluşturma sonrası güncellenir. |
invoice | Fatura oluşturulmuşsa workflow_status, formal_status ve pdf_url alanlarını içeren özet döner. |