חשבונית ספק בעברית שנקראה ב-AI היא טיוטה. איך מתאימים אותה מול הזמנת רכש, תעודת משלוח או חשבונית קודמת, למה שם הספק אינו מפתח, ומי מאשר בסוף.
עיקרי הדברים
- שם הספק אינו מפתח התאמה בעברית. אותיות שימוש מוצמדות, כתיב מלא וחסר, וריאנטים של בע"מ וסמיכות מייצרים חמישה איותים תקינים לאותו גוף, ואף אחד מהם אינו שגוי.
- מפתח ההתאמה הוא מספר ח"פ או ע.מ בן תשע הספרות. Amazon Textract אף מגדיר לו שדה תקני נפרד בשם TAX_PAYER_ID, במקביל ל-VENDOR_NAME ול-PO_NUMBER.
- לכל טיוטה יש בדיוק מקור התאמה אחד מוצהר. חשבונית שהותאמה מול "משהו" אינה מותאמת, כי אי אפשר לשחזר מול מה.
- סטייה מותרת מוגדרת מראש לכל שדה בנפרד: אחוז לסכומים, יחידות לכמויות, ימים לתאריכים. בלי סטייה מותרת כל אגורת עיגול הופכת לחריגה.
- טיוטה אינה נמחקת כשהיא נדחית. היא נשארת עם סיבת הדחייה, מפני שספק ששלח חשבונית שגויה ישלח אותה שוב בעוד שבוע.
חשבונית ספק שנקראה על ידי מודל היא טיוטה, ולא רשומה. הטיוטה הופכת לרשומה רק אחרי שהיא הותאמה מול משהו שכבר קיים אצלכם - הזמנת רכש, תעודת משלוח או חשבונית קודמת מאותו ספק - והאדם שאישר אותה ראה במה בדיוק היא נבדלה ממנו.
למה שם הספק אינו מפתח התאמה בעברית
באנגלית התאמת שם ספק היא בעיה פתירה ברובה: מנרמלים רישיות, מורידים Ltd ו-Inc, מתעלמים מנקודות, ונשארים עם מחרוזת יציבה. בעברית כל אחד מהשלבים האלה נשבר מסיבה אחרת.
- אין אותיות רישיות. הרמז שמסמן באנגלית שמילה היא שם פרטי אינו קיים, ולכן אי אפשר להפריד את שם הגוף מהטקסט שסביבו לפי צורת הכתיב.
- אותיות שימוש נדבקות. ו, ה, ב, ל, מ, כ ו-ש מתחברות למילה שאחריהן. אותה חברה תופיע כשם עצמאי בכותרת החשבונית וכצורה מוטה בגוף המשפט, ושתי הצורות תקינות.
- כתיב מלא וחסר. יוד ווו נכפלות או נעלמות. אותו שם ייכתב בשתי צורות שגם מנוע חיפוש טוב יתקשה לגשר עליהן בהתאמה מדויקת.
- בע"מ. לפעמים כתוב, לפעמים לא, ולפעמים עם גרשיים שהומרו למרכאה כפולה, לשני גרשים או לטילדה. ההשוואה נשברת על תו אחד.
- סמיכות. צירוף עברי משנה את צורת המילה הראשונה, ואותו רכיב בשם מופיע אחרת בכל הקשר.
המסקנה המעשית פשוטה: השם הוא תווית תצוגה, לא מפתח. המפתח הוא מספר בן תשע ספרות. Amazon Textract, בתיאור טקסונומיית השדות התקנית של ניתוח הוצאות, מפריד בין VENDOR_NAME לבין TAX_PAYER_ID ולבין PO_NUMBER בדיוק מהסיבה הזו, ומציין שכל שדה שאינו נופל לטקסונומיה מסווג כ-OTHER. בחשבוניות עבריות רבות זה בדיוק מה שקורה לשורות כמו "אסמכתא" או "מספר דרישה", והן נשארות טקסט חופשי שאסור להתאים עליו.
מול מה בדיוק מתאימים את הטיוטה?
מול מסמך אחד מוצהר, שנבחר לפי מה שקיים במערכת, ולפי סדר עדיפויות קבוע:
- הזמנת רכש. ההתאמה החזקה ביותר, מפני שהיא נכתבה לפני שהחשבונית הגיעה. משווים ספק, מק"ט, כמות, מחיר יחידה ומטבע.
- תעודת משלוח. מתאימה כשההזמנה הייתה פתוחה או טלפונית. משווים כמות בפועל ותאריך אספקה, ולא מחיר - תעודת משלוח בישראל פעמים רבות אינה נושאת מחירים כלל.
- חשבונית קודמת מאותו ספק. מתאימה לשירות חוזר בסכום קבוע. משווים סכום מול הסכום החודשי האחרון ומול טווח שנים עשר החודשים, ומחפשים קפיצה.
- הסכם או מחירון. אחרון בסדר, מפני שהוא מגדיר מה מותר ולא מה נמסר בפועל.
הכלל הוא מקור אחד לכל טיוטה, מוצהר בשדה נפרד. טיוטה שמותאמת בו זמנית מול הזמנה ומול חשבונית קודמת מייצרת שתי תשובות שונות ואף החלטה, וזה בדיוק המצב שבו אדם מאשר משהו מבלי לדעת מה הוא אישר.
טבלת התאמה: מפתח, סטייה מותרת ופעולה
| מה משווים | המפתח בפועל | מקור ההתאמה | סטייה מותרת לדוגמה | פעולה בחריגה |
|---|---|---|---|---|
| זהות הספק | ח"פ או ע.מ, תשע ספרות | כרטיס ספק | אפס: זהה או לא | עצירה, ללא יצירת ספק חדש |
| מסמך מקושר | מספר הזמנת רכש | הזמנת רכש | אפס | תור התאמה ידנית |
| פריט | מק"ט קטלוגי | הזמנת רכש | אפס | תור התאמת פריטים |
| כמות | מספר, אחרי פירוק יחידת מידה | תעודת משלוח | לפי הסכם אספקה | תור רכש |
| מחיר יחידה | מספר בסדר לוגי | מחירון או הזמנה | אחוז שהוגדר מראש | תור תמחור, לעולם לא זרימה |
| סכום ומע"מ | ברוטו פחות נטו | החשבונית עצמה | אגורות עיגול בלבד | דחייה: המסמך אינו עקבי |
| חיוב חודשי קבוע | סכום מול חודש קודם | חשבונית קודמת | אחוז שהוגדר מראש | תור, עם ההיסטוריה מוצגת |
שתי שורות בטבלה עושות את רוב העבודה. שורת הספק, מפני שיצירת ספק חדש בטעות היא הדרך הנפוצה לשלם לגורם שאינו הגורם שסיפק. ושורת הסכום מול מע"מ, מפני שהיא בדיקה אריתמטית שאינה עולה דבר: שיעור המס המודפס על המסמך הוא הקובע לבדיקה, ולא קבוע שנכתב בקוד לפני שנתיים.
חשבונית שאין לה הזמנת רכש: איך מתאימים אז?
לפי אישור נושא במקום לפי מסמך. חלק גדול מההוצאה בעסק קטן בישראל אינו מגיע דרך הזמנת רכש: תקשורת, ארנונה, יועצים, מנויי תוכנה. במקרה הזה שלושת המקורות הם היסטוריה, אישור אדם מוגדר, וסיווג הוצאה.
- מול ההיסטוריה. אותו ספק, אותו סעיף, אותו טווח סכום מהחודשים הקודמים. שינוי מעל האחוז שהוגדר מייצר פריט בתור עם הצגת שנים עשר החודשים האחרונים.
- מול בעלים. לכל סעיף הוצאה מוגדר אדם אחד שמאשר, ולא רשימה. רשימה משמעה שאיש אינו מאשר בפועל.
- מול הסיווג. חשבונית שנפלה לסיווג חדש אינה שגיאה, אבל היא סיבה לעצירה, מפני שסיווג חדש משנה דוחות בהמשך.
- מול כפילות. אותו מספר חשבונית מאותו ספק בתוך חלון זמן קבוע. זו הבדיקה שתופסת תשלום כפול, ולא השוואת קבצים.
קשור: מספר הקצאה לחשבונית - מבט למפתחים, מאישור חשבונית ספק ועד קובץ מס"ב, ציון ביטחון ומקור במסמכים בעברית.
מצבי הטיוטה, ומי רשאי להזיז אותה
לטיוטה ארבעה מצבים בלבד, וכל מעבר נשמר עם מבצע ושעה:
- נקלטה. נוצרה מהקובץ, בלי התאמה, בלי בעלים, ובלי השפעה על שום דוח.
- הותאמה. מקור התאמה מוצהר, כל ההפרשים חושבו, וכל הפרש שחורג מהסטייה המותרת מסומן לפי שדה.
- אושרה. אדם ראה את ההפרשים ולחץ. רק כאן נוצרת רשומה בהנהלת החשבונות.
- נדחתה. עם סיבה מתוך רשימה סגורה: ספק לא מזוהה, כמות אינה תואמת, מחיר אינו תואם, כפילות, מסמך לא קריא.
המצב שאסור שיהיה קיים הוא "אושרה אוטומטית". גם ספק קבוע עם חשבונית זהה לחלוטין מדי חודש עובר דרך לחיצה, מפני שהחשבונית שתשנה סכום היא בדיוק זו שתגיע כשאף אחד לא מסתכל. מה שכן ניתן לצמצם הוא כמות הנתונים שהאדם צריך לקרוא: מסך אישור טוב מציג את ההפרשים בלבד, ולא את המסמך במלואו.
מה נכשל בשקט, ואיך מגלים
כשלים בקליטת חשבוניות אינם מייצרים שגיאה. הם מייצרים רשומה תקינה למראה:
- ספק כפול. אותו ח"פ נכנס פעמיים תחת שני איותים של השם, והיתרה מתפצלת בין שני כרטיסים. הבדיקה היא ייחודיות על המספר, לא על השם.
- חשבונית זיכוי שנקלטה כחיוב. בעברית ההבדל בין השתיים הוא מילה בכותרת, ולעיתים סימן מינוס שנעלם בהיפוך כיוון. הבדיקה היא סוג המסמך כשדה נפרד ומפורש.
- סכום בסדר תצוגה. מספר שנשמר לפי מה שצויר ולא לפי מה שנקרא עובר את בדיקת המע"מ במקרה ונכשל בהתאמה מול ההזמנה. חיפוש הפרשים חוזרים מול הזמנות הוא מה שמגלה אותו.
- חשבונית לחודש שכבר נסגר. תאריך שהתפרש כחודש-יום במקום יום-חודש נוחת בתקופה שגויה. בדיקת טווח תאריכים מול חלון פתוח תופסת זאת מיד.
מדד אחד שווה מעקב שבועי: כמה מהטיוטות שאושרו נדרשו לתיקון אחרי האישור. זה המספר שמעיד אם ההתאמה עובדת, ולא אחוז ההצלחה של החילוץ.
מקורות
שאלות נפוצות
האם אפשר להתאים לפי שם הספק אם אין מספר ח"פ על החשבונית?
אפשר, אבל רק לתור אנושי ולא לזרימה אוטומטית. התאמה על שם עברי מחזירה מועמדים, לא תשובה. הפתרון הנכון הוא להשלים את המספר בכרטיס הספק פעם אחת, ומאותו רגע כל חשבונית ממנו מתאימה על מפתח יציב.
מה עושים כשהמק"ט של הספק שונה מהמק"ט שלנו?
מנהלים טבלת מיפוי בין מק"ט ספק למק"ט פנימי, ומעדכנים אותה בפעם הראשונה שאדם מתאים פריט ידנית. הטעות הנפוצה היא להתאים על תיאור הפריט בעברית, שמשתנה בין ספקים ובין חשבוניות של אותו ספק.
כמה סטייה מותרת להגדיר בסכומים?
זה ערך עסקי ולא טכני, והוא נגזר מהשאלה כמה שווה זמן אדם לעומת גודל ההפרש. מה שכן נכון תמיד: הסטייה מוגדרת לכל שדה בנפרד, ולא כאחוז אחד גורף, מפני שהפרש של אגורה בסכום והפרש של יחידה בכמות אינם אותו סוג אירוע.
האם חשבונית שנדחתה צריכה להימחק?
לא. היא נשמרת עם סיבת הדחייה והקובץ המקורי, מפני שספק ששלח מסמך שגוי ישלח אותו שוב, ולעיתים זהה. בלי היסטוריית דחיות אין דרך לזהות שאותה חשבונית כבר נבדקה ונפסלה, והבדיקה נעשית שוב מאפס.
להמשך קריאה
שירות רלוונטי
אוטומציה לעסקים
אני בונה אוטומציות מותאמות שמורידות עבודה חוזרת מקצה לקצה.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
