Fatura Durumu ve Bildirimleri
Faturanın durumunu, müşteri bilgisini ve müşteriye giden bildirimleri yöneten beş uç.
Genel Bakış
Bu beş uç kesilmiş bir faturanın yaşamını yürütür: durumunu değiştirmek, müşteri bilgilerini düzeltmek, bildirim göndermek, resmileştirmek ve hatırlatmak.
Durum değişimi bu alandaki en ağır işlemdir. Ödenmiş yapmak gelir kaydı açar, ödenmiş fatura numarası verir ve bağlı hizmetleri harekete geçirir; iade etmek bunları geri sarar ve istenirse ödeme modülüne iade emri verir.
Üç uç müşteriye posta gönderir: bildirim, hatırlatma ve dosyası varken resmileştirme. Bir betikte bunları çağırırken gerçek insanlara ulaştığınızı unutmayın.
Referans
Durumu Değiştirme
Faturanın durumunu değiştirir ve durumun getirdiği işleri yürütür.
paid, unpaid, refund ya da cancelled.Balance orada ancak faturada bakiyeden alınmış bir ödeme satırı varsa kabul edilir. Tutar değişmez; ödeme satırı olmadan alınan tutarın kasa kaydı yeni yönteme geçer. Ödeme satırlarının kasa kayıtları kendi yönteminde kalır. Balance, açık faturayı paid yaparken kalan tutarı müşterinin hesap bakiyesinden düşer. Ödemesi olmayan açık fatura paid yapılırken bu yöntemin (gönderilmezse kayıtlı yöntemin) bugünkü komisyon oranıyla yeniden fiyatlanır; başka bir yöntemin komisyonu kalmaz. Gönderilmezse faturanın kayıtlı yöntemi geçerlidir; o da Balance ise tutar yine bakiyeden düşülür.gateway ile iade ödeme modülü üzerinden yapılır. credit ile iade tutarı müşterinin hesap bakiyesine, bakiyenin para biriminde eklenir; iade satırının yanına bir bakiye hareketi yazılır. Ödendi durumundan çıkış bakiyeden yalnız bakiye yükleme faturasında bir şey geri alır.Balance değerine çevrilmek isteniyor ve faturada bakiyeden alınmış ödeme satırı yok. O faturada hesap bakiyesinden tutar düşülmez. Ayrıntıda faturanın durumu döner; yöntem ve bakiye değişmez.Balance ve hesap bakiyesi kalan tutarı karşılamıyor. Ayrıntıda gereken ve mevcut tutar bakiyenin para biriminde döner; fatura ve bakiye değişmez.curl -X PUT 'https://panel.ornek.com/api/v1/admin/invoices/1212/status' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"paid","payment_method":"Balance","notify":true}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/invoices/${id}/status`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 'paid',
payment_method: 'Balance',
notify: true,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/invoices/' . $id . '/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'status' => 'paid',
'payment_method' => 'Balance',
'notify' => true,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Odenmis yapmak GELIR KAYDI acar, numara verir ve hizmetleri harekete gecirir.
Api::Invoices()->UpdateInvoiceStatus([
'id' => $id,
'status' => 'paid',
'notify' => true,
]);Müşteri Bilgilerini Düzeltme
Faturaya donmuş müşteri ve adres bilgilerini düzeltir. Gönderdiğiniz adres saklı adresle birleşir: göndermediğiniz anahtarlar korunur, belgenin okuduğu ülke, il, ilçe ve posta kodu adları yeniden kurulur.
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/invoices/1212/client-details' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"kind":"corporate","company_name":"Ornek A.S.","tax_number":"0000000000"}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/invoices/${id}/client-details`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
kind: 'corporate',
company_name: 'Example Inc.',
tax_number: '000000000',
address: { detail: '123 Market Street', country_id: 840, zipcode: '94105' },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/invoices/' . $id . '/client-details');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'kind' => 'corporate',
'company_name' => 'Example Inc.',
'tax_number' => '000000000',
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bu uc CANLI musteriye DOKUNMAZ; yalniz bu faturanin uzerindeki kopyayi duzeltir.
Api::Invoices()->UpdateInvoiceClientDetails([
'id' => $id,
'company_name' => 'Example Inc.',
]);Bildirim Gönderme
Fatura için seçtiğiniz bildirim şablonunu müşteriye gönderir.
curl -X POST 'https://panel.ornek.com/api/v1/admin/invoices/1231/notifications' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"template":"invoice-created"}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/invoices/${id}/notifications`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ template: 'invoice-created' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/invoices/' . $id . '/notifications');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['template' => 'invoice-created']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kapali bir sablon 422 verir; ekranda gorunen liste ETKIN olanlari gostermez.
Api::Invoices()->SendInvoiceNotification([
'id' => $id,
'template' => 'invoice-created',
]);Resmileştirme
Faturayı resmî faturaya çevirir.
curl -X POST 'https://panel.ornek.com/api/v1/admin/invoices/1231/formalize' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"notify":false}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/invoices/${id}/formalize`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ notify: false }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/invoices/' . $id . '/formalize');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['notify' => false]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Ikinci cagri 422 verir; toplu bir betikte once faturanin durumunu okuyun.
$inv = Api::Invoices()->GetInvoice(['id' => $id])['data'];
if (! $inv['formalized']) Api::Invoices()->FormalizeInvoice(['id' => $id]);Hatırlatma Gönderme
Ödenmemiş fatura için müşteriye hatırlatma gönderir. Müşteriye ulaşamazsa hiçbir şey kaydetmez ve durum kodu yine 200 olur.
invoice-reminder'dır ve bunu değiştirecek bir alan yoktur.true: sahip, ek iletişim adresi ya da alt kullanıcı, gönderildi ya da kuyrukta. Yalnız personele giden kopya sayılmaz.reminded false iken: disabled, blocked, opted_out, client_side_off, send_failed ya da no_recipients.reminded false iken: reason'ın İngilizce açıklaması.curl -X POST 'https://panel.ornek.com/api/v1/admin/invoices/1231/remind' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/invoices/${id}/remind`, {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/invoices/' . $id . '/remind');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Cagri KAC KEZ yapildigini saymaz; ayni faturaya arka arkaya hatirlatma gonderebilir.
Api::Invoices()->RemindInvoice(['id' => $id]);Tuzaklar
Ödenmiş yapmak gelir kaydı açar, ödenmiş fatura numarası verir ve faturaya bağlı hizmetleri harekete geçirir. İade etmek bunları geri sarar, metrik kayıtlarını çözer ve istenirse ödeme modülüne iade emri verir. Test ederken bunu gerçek bir müşteri faturası üzerinde denemeyin.
Fatura zaten o durumdaysa çağrı reddedilir. Tek istisna ödenmiş bir faturada ödeme yöntemini değiştirmektir; orada durum aynı kalır ve yalnız yöntem yazılır. Durumları eşitleyen bir betik yazıyorsanız önce mevcut durumu okuyun.
Bu uç faturanın üzerine donmuş kopyayı düzeltir; canlı müşteri kaydına dokunmaz. Bir adres yanlışsa iki yerde de düzeltilmesi gerekebilir: burada geçmiş belge için, müşteri kaydında gelecek belgeler için. Buradan yapılan düzeltme diğer faturalara da yansımaz.
Zaten resmî bir faturayı yeniden resmileştirmek hata verir. Toplu bir betikte bu, ilk hatada duran bir döngüye yol açar; her fatura için önce durumu okuyun. Bir kanca da resmileştirmeyi engelleyebilir, çünkü bazı kurulumlarda bunun muhasebe tarafında karşılığı vardır.
Hatırlatma ucu kaç kez çağrıldığını tutmaz ve arka arkaya çağrıldığında aynı müşteriye üst üste posta gider. Vadesi geçenleri gezen bir betik yazarken hangi faturaya ne zaman hatırlatma gittiğini kendi tarafınızda saklayın; yoksa her koşuda herkes yeniden uyarılır.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.