أنشئ إشعارًا دائنًا من فاتورة
أنشئ سجلًا متسقًا لإشعار دائن بالاستناد إلى مرجع الفاتورة الأصلية وسبب واضح والبنود المطلوب عكسها بدقة.
شغّل الأداة مجانًا
تحسب الأداة المجموع الفرعي والضريبة لكل بند، ثم تجمع الرصيد النهائي وتتحقق من أنه لا يتجاوز إجمالي الفاتورة الأصلية. وتأتي النتيجة بصيغة JSON منظمة، لتناسب المراجعة والحفظ ومسارات العمل المحاسبية أو التحويل عبر نظامكم إلى مستند قابل للطباعة يحمل هوية مؤسستكم.
ابدؤوا بالفاتورة الأصلية وسبب محدد
يجب أن يرتبط الإشعار الدائن المفيد بالمعاملة التي يصححها ارتباطًا لا لبس فيه. أدخلوا مرجع الفاتورة الأصلية كما يظهر تمامًا في نظام الفوترة أو المحاسبة لديكم، ثم قدموا إجماليها شاملًا للضريبة ورمز العملة المؤلف من ثلاثة أحرف. وينبغي أن يشرح السبب الواقعة التجارية بدل الاكتفاء بتكرار أن رصيدًا دائنًا سيصدر. ومن الأمثلة البضائع المعادة، أو تخفيض خدمة متفق عليه، أو مخزون تالف، أو تصحيح سعر، أو مبلغ محصل بالزيادة. يمنح السبب المحدد جهات الاعتماد والعملاء والمحاسبين والمدققين السياق اللازم لفهم سبب عكس الإيراد والضريبة. تحفظ الأداة هذا النص داخل المستند المنظم، لكنها لا تختلق رقم إشعار دائن أو تاريخ إصدار أو هوية عميل أو صياغة قانونية أو حالة اعتماد. تعتمد هذه الحقول على مؤسستكم والولاية القانونية المعمول بها، ولذلك يجب أن يضيفها النظام المسؤول عن الترقيم والإصدار. إن فصل حقائق المصدر عن المعرفات المنشأة يجعل الحساب حتميًا، ويمنع إنشاء مستند يبدو صادرًا رسميًا قبل اجتياز إجراءات الاعتماد المعتادة لديكم.
صفوا كل بند دائن ودعوا الأداة تحسب مجموعه
أضيفوا صفًا لكل منتج أو خدمة أو رسم أو تسوية مطلوب إدراجها في الرصيد الدائن. يحتاج كل صف إلى وصف وكمية موجبة وسعر وحدة غير سالب قبل الضريبة. معدل الضريبة الاختياري نسبة مئوية، وتكون قيمته صفرًا عند حذفه. تضرب الأداة في كل صف الكمية في سعر الوحدة، وتقرب المجموع الفرعي الناتج إلى منزلتين عشريتين، وتحسب الضريبة على هذا المجموع المقرب، ثم تحسب إجمالي الصف. وبعد ذلك تجمع المجاميع الفرعية ومبالغ الضرائب لكل الصفوف لإنتاج إجمالي الرصيد الدائن. التقريب على مستوى الصف مقصود، لأنه يطابق طريقة عرض المستندات المفصلة وترحيلها في كثير من أنظمة الفوترة، ويضمن في الوقت نفسه مطابقة كل صف ظاهر للملخص. استخدموا قيمًا موجبة؛ فنوع المستند يوضح أصلًا أن هذه المبالغ تعكس جزءًا من الفاتورة، أما الكميات أو الأسعار السالبة فتنشئ نفيًا مزدوجًا مربكًا. وإذا تضمنت الفاتورة الأصلية خصومات أو تقريبًا خاصًا، فمثلوا المبلغ الذي يعكس فعليًا في صف تسوية مستقل وواضح حتى يمكن مطابقة الإجمالي المنشأ مع الفاتورة المصدر.
تحققوا من النتيجة قبل إصدار المستند النهائي
تتضمن الاستجابة المكتملة نوع المستند ومرجع الفاتورة الأصلية والسبب والعملة وصفوف البنود المرقمة وقسم الإجماليات. يعرض هذا القسم المجموع الفرعي الدائن والضريبة الدائنة وإجمالي الرصيد الدائن وإجمالي الفاتورة الأصلية والمبلغ المتبقي بعد الرصيد. ترفض الأداة الطلب عندما يتجاوز إجمالي الرصيد المحسوب إجمالي الفاتورة الأصلية المدخل. يمنع هذا الضابط خطأ شائعًا في إدخال البيانات، لكنه لا يغني عن مراجعة الإشعارات الدائنة السابقة المرتبطة بالفاتورة نفسها. ولأن الأداة لا تستقبل سوى الطلب الحالي ولا تستخدم شبكة أو سجلًا محفوظًا، يجب على نظام الفوترة لديكم التحقق من المبلغ التراكمي عند إصدار عدة أرصدة بمرور الوقت. قبل الاعتماد، قارنوا الأوصاف والكميات والأسعار والمعالجة الضريبية والعملة وبيانات العميل بالفاتورة الأصلية. ثم عينوا رقم الإشعار الدائن الرسمي وتاريخ الإصدار وفق ضوابطكم المحاسبية والمتطلبات المحلية. ويمكن تمرير الاستجابة المنظمة إلى قالب أو مسار دفتر أستاذ أو قائمة اعتماد أو مولد PDF من دون فرض خيارات العرض والامتثال على مرحلة الحساب.
حالات الاستخدام
قيد رصيد للبضائع المعادة
حولوا الكميات المعادة والأسعار الأصلية ومعدلات الضريبة إلى إشعار دائن مفصل وجاهز للاعتماد.
تصحيح مبلغ محصل بالزيادة
وثقوا تسوية السعر أو الرسم واحسبوا المبلغ الدقيق المطلوب عكسه.
إعداد بيانات مسار المحاسبة
أنشئوا إجماليات منظمة ومتسقة قابلة للحفظ أو المراجعة أو الإرسال إلى مولد مستندات يحمل هوية المؤسسة.
الأسئلة الشائعة
ما كلفة الطلب الواحد؟
تبلغ كلفة كل طلب API $0.002. تعمل نسخة المتصفح محليًا من دون تنفيذ طلب API مدفوع.
هل تصدر الأداة رقمًا رسميًا للإشعار الدائن؟
لا. فهي تجمع بيانات المستند المحسوبة، لكنها تترك الترقيم الرسمي وتواريخ الإصدار لمسار الفوترة الخاضع للرقابة لديكم.
كيف تحسب الضريبة؟
تحسب الضريبة لكل صف من مجموعه الفرعي المقرب ومعدل الضريبة، ثم تجمع مبالغ الضرائب في جميع الصفوف.
ماذا يحدث إذا تجاوز الرصيد قيمة الفاتورة؟
يفشل الطلب بخطأ إدخال غير صالح عندما يتجاوز إجمالي الرصيد المحسوب إجمالي الفاتورة الأصلية المدخل.
هل يمكن اكتشاف أرصدة سابقة للفاتورة نفسها؟
لا. لا تستخدم الأداة شبكة أو سجلًا محفوظًا، ولذلك يجب على نظام الفوترة لديكم مراجعة الأرصدة التراكمية قبل الإصدار.
هل يمكن استخدام معدل ضريبة صفري؟
نعم. احذفوا tax_rate أو اضبطوه على صفر في أي صف لا ينبغي أن يضيف ضريبة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/doc/credit-note-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"original_invoice_reference":"INV-2026-0042","original_invoice_total":250,"currency":"USD","reason":"Two items were returned unopened.","items":[{"description":"Wireless keyboard","quantity":2,"unit_price":45,"tax_rate":10},{"description":"Shipping adjustment","quantity":1,"unit_price":5}]}'const res = await fetch("https://api.kit.forhosting.com/doc/credit-note-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"original_invoice_reference": "INV-2026-0042",
"original_invoice_total": 250,
"currency": "USD",
"reason": "Two items were returned unopened.",
"items": [
{
"description": "Wireless keyboard",
"quantity": 2,
"unit_price": 45,
"tax_rate": 10
},
{
"description": "Shipping adjustment",
"quantity": 1,
"unit_price": 5
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/credit-note-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"original_invoice_reference": "INV-2026-0042",
"original_invoice_total": 250,
"currency": "USD",
"reason": "Two items were returned unopened.",
"items": [
{
"description": "Wireless keyboard",
"quantity": 2,
"unit_price": 45,
"tax_rate": 10
},
{
"description": "Shipping adjustment",
"quantity": 1,
"unit_price": 5
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/credit-note-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"original_invoice_reference":"INV-2026-0042","original_invoice_total":250,"currency":"USD","reason":"Two items were returned unopened.","items":[{"description":"Wireless keyboard","quantity":2,"unit_price":45,"tax_rate":10},{"description":"Shipping adjustment","quantity":1,"unit_price":5}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"original_invoice_reference":"INV-2026-0042","original_invoice_total":250,"currency":"USD","reason":"Two items were returned unopened.","items":[{"description":"Wireless keyboard","quantity":2,"unit_price":45,"tax_rate":10},{"description":"Shipping adjustment","quantity":1,"unit_price":5}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/credit-note-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"original_invoice_reference": "INV-2026-0042",
"original_invoice_total": 250,
"currency": "USD",
"reason": "Two items were returned unopened.",
"items": [
{
"description": "Wireless keyboard",
"quantity": 2,
"unit_price": 45,
"tax_rate": 10
},
{
"description": "Shipping adjustment",
"quantity": 1,
"unit_price": 5
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.credit_note_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 200 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |