כספית תומכת בקבלת מספר הקצאה לחשבוניות

 

רשות המיסים פרסמה לאחרונה (20/8/2023) שבכוונתה להתחיל ולחייב לקוחות לקבל מספר חשבונית ממשלתי. המספר מכונה "מספר הקצאה". הוא נראה כך: 20230820121532645232010068 18 הספרות הראשונות הן למעשה מועד ההקצאה ו-9 הספרות הימניות הן "המספר" עצמו.המודול מכונה גם OpenAPI וגם "מודל חשבוניות ישראל".

רק חשבונית שתקבל מספר הקצאה תוכל לשמש את העסק להתקזז על המע"מ. חשבונית ללא מספר הקצאה לא תחשב כחשבונית תקינה ולא תאפשר קיזוז של המע"מ.

לוח הזמנים הוא זה:

סכום החשבונית לפני מע"מ גבוה מ:
o פיילוט בשנת 2024 – הסכום לפני מע"מ גבוה מ- 25,000 ₪.
יתכן שהפיילוט ימשך גם לתוך שנת 2025.

אם הפיילוט יסתיים בהצלחה, אז המשך הלו"ז הוא:

o בשנת 2025 – הסכום לפני מע"מ גבוה מ- 20,000 ₪.
o בשנת 2026 – הסכום לפני מע"מ גבוה מ- 15,000 ₪.
o בשנת 2027 – הסכום לפני מע"מ גבוה מ- 10,000 ₪.
o בשנת 2028 – הסכום לפני מע"מ גבוה מ- 5,000 ₪.

יש גם שינויים במודול PCN874 (הדיווח המקוון של המע"מ). לדוגמה, תהיה חובה לדווח הקובץ גם את "מספר ההקצאה" של החשבונית (ולא רק את מספר החשבונית שנתן הספק).

אנחנו בכספית נערכים לשינוי. נרשמנו למערכת החדשה, התחלנו לבצע את השינויים הנדרשים בכספית. גם הקמנו אתר הדגמה חדש שבו ניתן לנסות את ה-API החדשים של רשות המיסים.

שאלה

היכן נמצא האתר שבו אפשר לקבל מספר הקצאה ידנית?

תשובה

לא ידוע. נראה לנו שעדיין לא בנו אותו.

שאלה

מה צריכים הלקוחות לבצע בכדי לקבל מספר הקצאה?

תשובה

לא ברור. כרגע המערכת של הרשות מאפשרת לקבל מספר הקצאה רק למספר ע"מ פיקטיביים. עדיין לא ברור כיצד יתבצע הרישום של הלקוחות של כספית.

Invalid data: The field Address1 must be a string with a maximum length of 100

שלתי את ה-JSON הבא לכספית וקיבלתי הודעת שגיאה:

{"ContactId":"2-14167","ContactType":null,"Number":null,"BusinessName":"Alexander Manchinum","OsekMorshe":null,"Name":"Somwang Manpimonchai","Address1":"1st floor Waang Sewang Town Center no.43 moo6 Phibun Torasum road Bangsue Subdistrict Pandong District Chu Poqui 15540","Address2":"","City":"","PostalCode":"","Country":"-","Phone":null,"Mobile":"","Fax":null,"Email":"potashu8253@gmail.com","TrxCodeNumber":null,"TrxCode":null,"OpenBalance":null,"Balance":null,"BalanceInvoiceIska":null,"PriceListNum":null,"Comments1":null,"Comments2":null,"Comments3":null,"InvoiceComment":"rebates-uid:19877-pid:1532249","BankAcctNumber":null,"BankAcctBranch":null,"BankAcctBankId":null,"ChargeVAT":true,"IsIsraeli":true,"IsOccasional":false,"AffiliateId":null,"CCNumberToken":null,"CCHolderTZ":null,"CCExpDate":null,"CVV":null,"DateCreated":null,"UserCreated":null,"DateUpdated":null,"UserUpdated":null}

כספית החזירה:
Invalid data: The field Address1 must be a string with a maximum length of 100

מקור השגיאה בשדה Address1. שם לב כמה אינפורמציה יש בו. חלק אותו למספר שדות: כתובת, עיר, מיקוד כך שאורך השדה יהיה קטן מ-100 תווים.

הלקוח 78 לא נמצא בכספית או שהוא לא פעיל

שלחתי את ה-JSON הבא לכספית וקיבלתי שגיאה:

{"DocumentId":"doc_id-3e0c665d-c1c4-4ee3-9de2-34fffe055636", "TrxTypeId":1, Date":"\/Date(1677902269140)\/", "CustomerId":"78", "CustomerBusinessName":"יקירה וייס-שמידט","CustomerEmail":"schmidt.53536@gmail.com", "MobilePhone":"912-555-0189", "Vat":0, "VatRate":17.0000, "ReceiptCurrencySymbol":"₪", "ReceiptRate":null, "TaxDeductionNIS":null, "PaymentNIS":null, "TotalPaymentNIS":null,
"DocumentLines":[{"Number":1,"ProductId":null,"ProductCatalogNumber":null,"ProductName":"דמי ניהול השכרה 01/06/2019 – 30/06/2019" ,"Details":null, "UnitPrice":198.90,"Qty":1.0,"CurrencySymbol":"₪", "Rate":1.0, "Rebate":0, "ExtendedPrice":198.9000,"ChargeVAT":true, "VATRate":null, "VAT":null}], "TrxCodeNumber":3}

כספית החזירה שגיאה: הלקוח 78 לא נמצא בכספית או שהוא לא פעיל

מקור השגיאה הוא בזה שציינת ID לקוח, 78, אבל אין בכספית לקוח עם ה-ID הזה.

סדר הפעולות הנכון הוא:

  1. יצירת לקוח, וקבלת ה-ID שלו חזרה מכספית.
  2. יצירת החשבונית עם ה-ID שקיבלת בצעד 1

בעת יצירת חשבונית במט"ח, מהיכן נלקח שער החליפין בשורת החשבונית?

שער החליפין של שורת החשבונית מועבר כך:

{ …

{
"Number": 1,
"ProductId": null,
"ProductCatalogNumber": null,
"ProductName": "1",
"Details": "שירותי ייעוץ",
"UnitPrice": 150,
"Qty": 1.0000,
"CurrencySymbol": "$",
"Rate": 3.5300,
"ExtendedPrice": 1282.051300000000,
}

 

..}

יש דוגמאות מלאות ליצירת חשבונית כאן: יצירת חשבונית

אתה יכול לשלוח את שער החליפין הרצוי לך, או לשלוח null ואז כספית תשלוף את שער החליפין העדכני מטבלת המטבעות.

התיעוד של שורת חשבונית נמצא כאן:  CaspitDocumentLine

איזו גרסה של כספית מתאימה לי?

אם אתה עורך דין  אז הגרסה המתאימה לך היא כספית השולחנית (כספית אקסס).

תוכל להוריד התקנה ולבדוק אותה מכאן.


אם אתה לא עורך דין  אז הגרסה המתאימה לך היא כספית בענן.

לכספית בענן, שעובדת באינטרנט, יש מספר גרסאות:

כספית הרגילה, כספית+ שבה הוספנו יכולת לנהל רשימת פריטים, כספית+מלאי, כספית+עמותות, כספית+יועצים, וכספית פטור.

יש הסבר על כל אחת מהגרסאות האלה כאן.

קיבלתי תשלום עבור חשבונית ששלחתי ללקוח. התשלום הגיע בהעברה בנקאית. כיצד מפיקים קבלה?

  1. היכנס לכספית בענן, אתר את החשבונית והיכנס אליה.
  2. הקלק על כפתוק קבלה וכספית תיצור קבלה חדשה ובה כל הפרטים מהחשבונית.
  3. ועתה לשאלה הקשה: אילו פרטים לרשום בשורת הקבלה. אז ככה:
    1. אם ידועים לך פרטי ח-ן הבנק של הלקוח, כלומר הח-ן ממנו הגיעה ההעברה הכנס את הפרטים האלה.
    2. פעמים רבות הבנק מקמץ בפרטים ולא מפרט את פרטי הח-ן ממנו הגיעה ההעברה.
      במקרה זה הכנס את ח-ן הבנק שלך, כלומר, הח-ן שבו התקבלה ההעברה.

כיצד מפיקים עותק נאמן למקור?

לפי הוראות ניהול ספרים יש מקור ויש העתק.

המשמעות של מקור היא גדולה מאד – זה כמו שיק לטובת הלקוח (שיק שאת נתת בשם מדינת ישראל. כי הלקוח מזדכה על המעמ מול רשות המיסים ומקבל אותו מהם) לכן אסור להקל ראש בעניין.

המחוקק בחר להקטין ראש ולא התמודד בכל הבעיות של החיים: אין נייר במדפסת, נשפך על החשבונית קפה או שהיא פשוט אבדה בדואר.

כלומר אין כלל הגדרה של "עותק נאמן למקור".

זהו נוהג שהתפתח מעצמו ללא סימוכין. לכן כספית לא יכולה להדפיס לך עותק נאמן למקור אלא עותק בלבד. אם היא הייתה מדפיסה עותק נאמן למקור אז למעשה היינו יוצרים שני מקורות – אסור לחלוטין!

מכיוון שהחיים דורשים פיתרון, נולד הנוהג שהופכים העתק למקור על-ידי שרושמים עליו: "העתק נאמן למקור" בבכתב יד או בחותמת (שאפשר להזמין בכל חנות לצרכי משרד) + חתימה של בעל העסק.

 

דוגמה לחשבונית העתק נאמן למקור

איפה אני יכול לבדוק את האינטגרציה שלי?

בכדי לבדוק את האינטגרציה שלך אתה יכול להשתמש באחד מהחשבונות הבאים:

  1. ליצור לעצמך חשבון בדיקה – החשבון יהיה פתוח לחודש אחד. אתה יכול לפנות אלינו ונאריך לך את הרישיון לכמה זמן שתצטרך.
  2. להשתמש בחשבון הדמו של כספית. החשבון זמין לכניסה מדף הכניסה של כספית, חפש בצד שמאל. פרטי המשתמש הם:
    username = demo, password = demodemo,
    מספר העוסק מורשה תלוי בגרסה שאתה רוצה להשתמש:
    כספית רגילה = 222222222
    כספית+ = 444444444
    כספית+מלאי = 123456789
    כספית+יועצים = 555555555
    כספית+עמותות = 777777777

בעת יצירה של קבלה עבור תשלום במט"ח, מהיכן נשלף שער החליפין?

המטבע ושער החליפין נלקחים מהנתונים (ReceiptRate, ReceiptCurrencySymbol) שאתה שולח ל-API. ברירת המחדל היא ש"ח ו-1.00.

אם תשלח null בשדה ReceiptRate אז כספית תשלוף את שער החליפין העדכני מטבלת המטבעות.

בכדי להקל עליך אתה יכול לשלוף את שער החליפין מכספית לפני יצירת הקבלה.

המבנה של מסמך של כספית מתועד כאן: CaspitDocument

 

 

בעת יצירה של חשבונית ובה שורות חשבונית במט"ח, מהיכן נשלף שער החליפין?

שער החליפין של שורת החשבונית מועבר כך:

{ …

{
"Number": 1,
"ProductId": null,
"ProductCatalogNumber": null,
"ProductName": "שירותי יעוץ",
"Details": "יעוץ עסקי בפרויקט מרגליות",
"UnitPrice": 150,
"Qty": 3.5000,
"CurrencySymbol": "$",
"Rate": 3.5300,
}

 

..}

יש דוגמאות מלאות ליצירת חשבונית כאן: יצירת חשבונית

אתה יכול לשלוח את שער החליפין הרצוי לך, או לשלוח null ואז כספית תשלוף את שער החליפין העדכני מטבלת המטבעות.

התיעוד של שורת חשבונית נמצא כאן:  CaspitDocumentLine

כיצד כספית מאפשרת מסמכים במט"ח

בכספית יש גישה מעורבת בתמיכה במט"ח. היא נובעת מההיסטוריה שבה פותחה התמיכה הזו:
חשבוניות — כל שורת חשבונית יכולה להכיל מטבע שונה ושער חליפין שונה.
קבלות — יש רק מטבע אחד ושער חליפין אחד משותפים לכל שורות הקבלה.
חשבוניות/קבלה — בחלק שורות החשבונית אפשר לתת מטבע שונה ושער חליפין שונה לכל שורה. בחלק הקבלה יש רק מטבע אחד ושער חליפין אחד זהה לכל שורות הקבלה. אין חובה ששער החליפין והמטבע יהיו זהים בין חלק החשבונית לחלק הקבלה. אבל חובה שהסכום הכללי בש"ח יהיה זהה בין חלק החשבונית לחלק הקבלה.

אני מייצר מסמך חדש (לדוגמה, חשבונית מס) דרך ה API. מה צריך לרשום בשדה "*מפתח של המסמך"?

ה-API של כספית עובד כך:
אתה שולח לו נתונים של הישות (מסמך, לקוח) ואופציונאלית גם את המפתח שאתה רוצה להשתמש בו בכדי לשלוף את הישות שנוצרה'.

לכן ישנן שתי אפשרויות:

אם אתה רוצה שכספית תייצר מפתח עבורך –
השאר את השדה NULL. כספית תייצר מפתח שהוא GUID, לדוגמה: f3a6f8e6-1933-48ca-af1d-8c4aaa033545
אם אתה רוצה לעדכן את המסמך בעתיד, אז שמור את המפתח שתקבל בתשובה של כספית.

אם אתה רוצה להשתמש במפתח שלך (לדוגמה, מפתח ממערכת קיימת שבה ישנם הנתונים של המכירה) – שלח אותו בשדה.
המפתח חייב להיות יחודי. אם תשלח חשבונית חדשה עם מפתח של חשבונית שכבר קיימת אז כספית תעדכן את החשבונית הקיימת (ולא תיצור חדשה).

מה ההבדל בין TrxTypeId לבין TrxCodeNumber? מה הערכים שצריך לשלוח בסוגי המסמכים השונים?

TtrxTypeId הוא סוג המסמך: חשבונית מס, חש/קבלה, קבלה וכו'.
TrxCodeNumber הוא סיווג התנועה של המסמך. כספית מגיעה עם מספר סיווגי תנועה מוכנים. נציין שניים חשובים: 3-מכירות/הכנסות, 2-קבלות.
המשתמש יכול להוסיף סיווגים משלו על מנת להבחין בין חשבוניות מסוגים שונים של הכנסות.

הטבלה הבאה מציגה את הערכים שיש לשלוח לכספית בהנחה שהמשתמש לא הוסיף סיווגי תנועה משלו.

שם המסמך TrxTypeId TrxCodeNumber
חשבונית מס 1 3
חשבונית/קבלה 7 3
חשבונית עסקה 6 3
חשבונית זיכוי 9 3
תעודת משלוח 15 3
קבלה 2 2
קבלה לתרומה 19 2
תעודת החזר 13 2

כיצד אפשר לעדכן את ה-id של לקוח בכספית?

אתה לא יכול לעדכן את ה-ID של ה-Contact.
כאשר הוא נוצר, לדוגמה מפעולה ידנית של המשתמש בתוך כספית, כספית נתנה לו ID יחודי.
לאחר שתשלוף אותו באמצעות מספר ע"מ שלו,
תוכל לעדכן במערכת שלך את ה-ID שכספית נתנה ל-contact ונכאן והלאה תוכל להשתמש בו לעדכון הפרטים של הלקוח בכספית.

אני רוצה לשלוף לקוח אבל אין לי ה-id שלו, אלא רק מספר עוסק מורשה

שלוף את הלקוח באמצעות הע"מ שלו
https://app.caspitweb.biz/api/v1/Contacts/?osekmorshe=234567777&d=1&token=[TOKEN]

לפרמטר d אין משמעות, אבל חייבים לצרף אותו בכדי שהקריאה תעבוד נכון.
כספית תחזיר לך את כל הנתונים של הלקוח כולל ה-ID שלו.

יש המון דוגמאות כאן:
http://www.caspitweb.biz/Content/misc/Api%20Examples%201.txt

האם אפשר להדפיס מסמך דרך ה-API?

אין אפשרות "להדפיס" מסמך במובן של משלוח שלו למדפסת.
בכדי להדפיס אותו במדפסת מקומית של המשתמש תצטרך "להדפיס" אותו במובן של יצירת מסמך PDF, ואז לשלוח את ה-PDF למדפסת מקומית.
ה-API המתאים הוא:
POST api/v1/PrintDocument/{id}?token={token}&documentNumber={documentNumber}&trxTypeId={trxTypeId}&lan={lan}&createSignedPdf={createSignedPdf}
הקריאה תחזיר לך את ה-PDF שנוצר ב-body של התשובה. ה-body יכיל את הבתים של ה-PDF ועליך לשמור אותם לקובץ.
בנוסף הקריאה תחזיר לך URL להצגת מסמך ה-PDF בשדה location ב-header של התשובה.

יצרתי מסמך חדש דרך ה-API. מדוע המספר שלו לא ברצף למסמכים הקיימים בכספית?

כספית מאפשרת ליצור סדרות של מסמכים. כלומר אתה יכול ליצור סידרה 01 לסניף א' של העסק, וסידרה נפרדת 02 לסניף ב' של העסק. ואז במסמכים ימוספרו כך:
סניף א' — 01/2001, 01/2002
סניף ב' — 02/2001, 02/2002
מספר הסידרה של משתמש ה-API מאותחל לערך 98. אתה יכול לשלוח את מספר הסניף הרצוי לך דרך ה-API.
כלומר מסמכים שנוצרים כברירת מחדל מן ה-API הם תמיד מסידרה 98: 98/200001, 98/300001 וכו'
את מספר הסניף שלח בשדה DocumentNumberBranch של האוביקט CaspitDocument.

האם השדה RowVersion משמש רק עבור עדכון המסמך בכספית? מה אתה ממליץ להעביר בשדה זה?

השדה משמש את כספית לזהות האם הרשומה השתנתה מאז הפעם האחרונה ששלפת אותה.
כלומר, בכל פעם שמתבצע עדכון של הרשומה, בסיס הנתונים מחשב מחדש את הערך של השדה.
כשאתה שולח עדכון שלח את הערך של השדה שקיבלת מכספית כששלפת את הרשומה.
אם כספית תזהה שהשדה השתנה היא לא תעדכן את הרשומה ותחזיר לך הודעת שגיאה מתאימה.

האם זה תקין ליצור מסמך ללא הקישור ללקוח ספצפי בכספית?

מבחינה טכנית אין בזה בעיה. כספית מאפשרת ליצור מסמכים שלא משויכים ללקוח.
אלו הם לקוחות מזדמנים, שאין אחריהם מעקב בכספית.
אבל מבחינה עסקית שם לב שאם לא תקשר את המסמך ללקוח,
אז כספית לא תחשב נכון את יתרת הלקוח שלו.
כלומר, אם לא שלחת customerId כספית לא תמצא את הלקוח גם אם שלחת שם עסק או עוסק מורשה,
ולא תעדכן את יתרת הלקוח שלו.