הוצאות, קטגוריות ותשלומים
ניהול הוצאות וכל השדות, גרסאות, אישור, ביטול, קטגוריות והקצאות תשלום.
הרשאות ונתיבים
expenses:read לקריאה ו־expenses:write לכתיבה. כתיבה זמינה כאשר מנגנון ההוצאות מופעל במערכת.
| משאב | קריאה | יצירה | עדכון | מחיקה או ביטול |
|---|---|---|---|---|
| הוצאות | GET /expenses, GET /expenses/{id} | POST /expenses | PATCH /expenses/{id} | DELETE /expenses/{id} לטיוטה; POST /expenses/{id}/void לביטול |
| קטגוריות | GET /expense-categories, GET /expense-categories/{id} | POST /expense-categories | PATCH /expense-categories/{id} | DELETE /expense-categories/{id} |
| תשלומי הוצאות | GET /expense-payments, GET /expense-payments/{id} | POST /expense-payments | באמצעות היפוך ורישום מתוקן | POST /expense-payments/{id}/reverse |
POST /expenses/{id}/approve מאשר הוצאה ומחייב confirmed: true לצד expected_revision. ביטול ומחיקה מחייבים גם reason ו־confirmed: true. טיוטה שנמחקה מוסתרת מהרשימה; הוצאה שכבר אושרה נשמרת לעיון במצב מבוטל. POST /expenses/{id}/credit-allocations מקצה זיכוי מהוצאה אחרת.
כל הכתיבות מחייבות Idempotency-Key; עדכון, מחיקה, אישור והקצאה מחייבים את שדות הגרסה שבסכמה. מחיקת קטגוריה מקבלת גוף ExpenseCategoryDto, כולל הגרסה הנוכחית; אינה מוחקת הוצאות היסטוריות.
שדות מלאים
הסכמות CreateExpenseDto, UpdateExpenseDto, ExpenseLineDto, ExpenseCategoryDto, ExpensePaymentDto ו־ExpenseCreditDto ברפרנס כוללות את כל השדות הניתנים להזנה: ספק ופרטי זיהוי, מספר המסמך אצל הספק, סוג מסמך, תאריכים, מטבע, סכומים, מע״מ, הערות, קטגוריה, שורות וסיווג, יחסי שימוש עסקי, הכרה בהוצאה והחזר מע״מ.
התגובה כוללת גם revision, מצב הבדיקה, חישובים, בעיות המונעות אישור, יתרה לתשלום, זיכויים והקצאות תשלום. הסכומים מחושבים לפי השורות וכללי המערכת; שדות מחושבים אינם ניתנים להחלפה בגוף הבקשה.
יצירת טיוטת הוצאה
: "${DAILY_API_KEY:?נדרש מפתח API}"
operation_id="$(uuidgen)"
curl --fail-with-body --silent --show-error \
'https://api.godaily.co.il/v1/expenses' \
-H "Authorization: Bearer $DAILY_API_KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $operation_id" \
--data '{"supplier_name":"ספק מקומי","description":"רכישת ציוד","currency":"ILS","review_status":"DRAFT"}'לפני אישור יש להשלים את השדות שהוולידציה דורשת, לשלוף את revision ולהעביר אותו כ־expected_revision. תשלומים והקצאות נרשמים בטרנזקציה ומאמתים שכל ההוצאות והספקים שייכים לאותו עסק.
עימוד וסינון
הרשימות מחזירות data, page.has_more, page.next_cursor ו־request_id. ברירת המחדל היא 50 רשומות והמרב הוא 100. ההוצאות והקטגוריות מסודרות לפי updated_at ואז מזהה, בסדר יורד. תשלומים מסודרים לפי created_at ואז מזהה; אינם תומכים ב־updated_after או בחיפוש.
הוצאות תומכות ב־status=draft|needs_review|approved|voided ובחיפוש בשם ספק, תיאור או מספר מסמך ספק. אין לסנן בשדות שלא מופיעים בפעולה ברפרנס.
הוצאות שיובאו
הוצאות היסטוריות מ־Morning זמינות בנפרד תחת GET /imported-expenses/morning ו־GET /imported-expenses/morning/{id}, עם expenses:read. הרשימה תומכת בעימוד, סינון זמן ובחיפוש לפי שם ספק או מספר מסמך. התגובה כוללת סכומים, מע״מ, מטבע וערכים בשקלים כפי שיובאו; נתוני מקור היסטוריים זמינים לקריאה.
פעולות תשלום והיפוך מחזירות payment_id ומערך expenses עם הגרסאות המעודכנות. יצירת תשלום מחזירה גם unallocated_amount. הקצאת זיכוי מחזירה allocation_id ו־expenses. יש להשתמש בגרסאות המעודכנות לפעולה הבאה.

