إنشاء تقويم استحقاق الفواتير المتكررة
حوّلوا قائمة أيام الاستحقاق الشهرية إلى تواريخ فعلية قادمة. أدخلوا التاريخ الحالي واسم كل فاتورة ويوم استحقاقها، فتحصلون على الموعد التالي لكل بند مع الحفاظ على ترتيب الإدخال. إذا كان الاستحقاق اليوم، يبقى التاريخ هو اليوم. وإذا كان يوم صحيح مثل 29 أو 30 أو 31 غير موجود في الشهر المعني، يُعتمد آخر يوم تقويمي لذلك الشهر، مع رفض أيام الاستحقاق غير الصالحة.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
أدخلوا التاريخ الحالي والفواتير المتكررة
ابدؤوا بتاريخ حالي مكتوب بالصيغة الواضحة YYYY-MM-DD. ثم أضيفوا صفاً لكل فاتورة شهرية، يتضمن اسماً يسهل تمييزه ويوم استحقاق صحيحاً من 1 إلى 31. يُنقل الاسم كما هو إلى النتيجة، ولذلك يمكن أن يكون اسم المورّد أو اسماً مختصراً للحساب أو فئة للمصروف. يعبّر اليوم عن تكرار شهري لا عن تاريخ كامل، وتُرفض القيم الأصغر من 1 أو الأكبر من 31. يُحافظ كذلك على ترتيب القائمة لتسهيل مقارنتها بالميزانية أو جدول البيانات أو قائمة المدفوعات لديكم. استخدموا صفاً مستقلاً لكل التزام حتى إذا تشاركت فواتير عدة يوم الاستحقاق نفسه. ويجب أن يكون تاريخ الإدخال موجوداً فعلاً في التقويم الميلادي؛ فلا تُعامل القيم المستحيلة، مثل 30 فبراير، بوصفها تواريخ تقريبية.
افهموا طريقة اختيار موعد الاستحقاق التالي
يفحص الحساب أولاً موعد كل فاتورة في الشهر الحالي. فإذا كان التاريخ اليوم أو بعده، أُعيد بوصفه الموعد التالي. تضمن هذه القاعدة الشاملة ألا تُرحّل فاتورة مستحقة اليوم إلى الشهر اللاحق. وإذا كان موعد الشهر الحالي قد مضى، ينتقل الحساب شهراً واحداً فقط. ولأن عدد أيام الأشهر يختلف، قد لا يظهر يوم صالح في كل شهر. عندئذ يُستخدم آخر يوم فعلي من الشهر المختار. فالفاتورة المستحقة في اليوم 31 تقع في 30 أبريل، وفي 28 أو 29 فبراير. وتنطبق القاعدة نفسها على اليومين 29 و30 في فبراير. تُحسب السنوات الكبيسة وفق قواعد التقويم الميلادي، بما فيها استثناء سنوات القرون. والنتيجة حتمية لا تعتمد على المنطقة الزمنية أو الساعة المحلية أو أسلوب بيئة التشغيل في تفسير التواريخ.
استخدموا التقويم ضمن إجراءات الدفع
تتضمن النتيجة التاريخ الحالي المدخل وصفاً لكل فاتورة، وفيه الاسم ويوم الاستحقاق المتكرر والتاريخ التالي بصيغة YYYY-MM-DD. يمكنكم ترتيب هذه التواريخ أو تجميعها في جدول البيانات الخاص بكم إذا أردتم عرضاً زمنياً للتدفق النقدي؛ أما الحساب فيحافظ عمداً على ترتيب الإدخال. شغّلوه مرة أخرى بتاريخ لاحق لتحديث التقويم. وتنتج المدخلات المتطابقة مخرجات متطابقة دائماً، مما يلائم عمليات التدقيق والاختبارات القابلة للتكرار. راجعوا نتائج نهاية الشهر إذا كان عقد الدائن يطبق سياسة أخرى، مثل النقل إلى يوم العمل التالي، لأن هذا الحساب يستخدم الأيام التقويمية فقط. وهو لا يراعي العطلات أو عطلات نهاية الأسبوع أو فترات السماح أو التأخير المصرفي أو المدفوعات المنجزة، ولا يخزن بيانات الحسابات. سعر التنفيذ الأساسي هو $0.002؛ وقد تعرض الخدمة المصاحبة تفاصيل الرسوم بصورة منفصلة.
حالات الاستخدام
ميزانية الأسرة الشهرية
حوّلوا الإيجار والمرافق والاشتراكات والتأمين والبطاقات إلى تواريخ قادمة لتخطيط التدفق النقدي.
قائمة الحسابات الدائنة
عيّنوا تاريخاً تالياً محدداً لكل مورّد متكرر مع الحفاظ على ترتيب قائمة الدفع الداخلية.
مراجعة جدول نهاية الشهر
تحققوا من كيفية ضبط استحقاقات الأيام 29 و30 و31 في فبراير وغيره من الأشهر القصيرة.
الأسئلة الشائعة
هل تظهر الفاتورة المستحقة اليوم في اليوم أم الشهر التالي؟
تظهر اليوم، لأن التاريخ الحالي مشمول عند اختيار موعد الاستحقاق التالي.
ماذا يحدث لليوم 31 في شهر أقصر؟
يوضع الاستحقاق في آخر يوم من الشهر، مثل 30 أبريل أو 28 فبراير في السنة غير الكبيسة.
هل تؤخذ العطلات ونهايات الأسبوع في الحسبان؟
لا، فالحساب يستخدم الأيام التقويمية ولا ينقل الموعد وفق العطلات أو الجداول المصرفية.
ما القيم المقبولة ليوم الاستحقاق؟
يجب أن يكون عدداً صحيحاً من 1 إلى 31، وتُرفض الصفر والقيم السالبة والكسور وما يزيد على 31.
هل تُخزن الفواتير أو معلومات الدفع؟
لا، تُحسب التواريخ بصورة حتمية من المدخلات، من دون اتصال بالشبكة أو تخزين دائم.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/final3/recurring-bill-due-date-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}'const res = await fetch("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/recurring-bill-due-date-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.recurring_bill_due_date_list",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |