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

פורמט ה WebHooks

ה-webhooks נשלחים מתוך iCount בפורמט JSON והם כוללים את כל המידע שיש על המסמך. אין הגבלה על גודל תוכן ה webhook אז יש לקחת בחשבון שהוא יכול להיות מרוד גדול במקרה ומדובר במסמכים שמכילים הרבה מידע.

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

<?php
$data = json_decode(file_get_contents(“php://input”), true);
?>

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

דוגמה ל-WebHooks מלא

להלן דוגמה לתוכן ה-webhook של המסמך הזה:

array (
‘doctype’ => ‘invrec’,
‘docnum’ => 3006,
‘timeissued’ => ‘2018-06-24 13:18:41’,
‘clientname’ => ‘ישראל ישראלי’,
‘clientaddress’ => ‘טשרניחובסקי 6
תל אביב
ישראל’,
‘safety_issue_field’ => ”,
‘inv_rec_number’ => ‘3006’,
‘dateissued’ => ‘2018-06-24’,
‘comment’ => ”,
‘totalsum’ => ‘8656.07’,
‘totalvat’ => ‘1471.53’,
‘vat_percent’ => ’17’,
‘totalwithvat’ => ‘10127.60’,
‘ammountb4nicui’ => ‘10127.6’,
‘nicui’ => ”,
‘totalwithnicui’ => ‘10127.6’,
’roundup’ => ”,
‘afterdiscount’ => ‘8656.07’,
‘income_type’ => ‘1’,
‘tax_exempt’ => ‘0’,
‘based_on_order’ => ”,
‘salesman_id’ => ‘0’,
‘invoice_po_number’ => ‘PO45635’,
‘orig_printed’ => ‘0’,
‘imported’ => ‘0’,
‘lawyer_fees_ov’ => ‘0.00’,
‘lawyer_fees_nov’ => ‘0.00’,
‘lawyer_expenses_ov’ => ‘0.00’,
‘lawyer_expenses_nov’ => ‘0.00’,
‘lawyer_deposits_ov’ => ‘0.00’,
‘lawyer_deposits_nov’ => ‘0.00’,
‘has_cash’ => ‘1’,
‘has_cheques’ => ‘1’,
‘has_cc’ => ‘1’,
‘has_bt’ => ‘1’,
‘has_hk’ => ‘0’,
‘has_pp’ => ‘1’,
‘has_barter’ => ‘1’,
‘maampercent’ => ’17’,
‘user_id’ => ‘1’,
‘currency’ => ‘דולר’,
‘rate’ => ‘3.6170’,
‘hwc’ => ‘<div>בלה בלה בלה</div>
<div>בלו בלו בלו</div>’,
‘discount’ => ‘0’,
‘docnum_base’ => NULL,
‘doctype_base’ => NULL,
‘cash.sum’ => ‘100’,
‘banktransfer.depositedTO’ => ‘1’,
‘banktransfer.totalPayment’ => ‘400’,
‘banktransfer.peraonDate’ => ‘2018-06-24’,
‘banktransfer.bank’ => ”,
‘banktransfer.snif’ => ”,
‘banktransfer.account’ => ”,
‘issuer’ => ‘יואב פרידמן’,
‘items’ =>
array (
0 =>
array (
‘item_id’ => ’66’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה ראשונה’,
‘long_description’ => ”,
‘unitprice’ => ‘85.47008547’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
1 =>
array (
‘item_id’ => ’67’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה שניה’,
‘long_description’ => ”,
‘unitprice’ => ‘170.94017094’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
2 =>
array (
‘item_id’ => ’68’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה שלישית’,
‘long_description’ => ”,
‘unitprice’ => ‘256.41025641’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
3 =>
array (
‘item_id’ => ’69’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה רביעית’,
‘long_description’ => ”,
‘unitprice’ => ‘341.88034188’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
4 =>
array (
‘item_id’ => ’70’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה חמישית’,
‘long_description’ => ”,
‘unitprice’ => ‘427.35042735’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
5 =>
array (
‘item_id’ => ’71’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה שישית’,
‘long_description’ => ”,
‘unitprice’ => ‘512.82051282’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
6 =>
array (
‘item_id’ => ’72’,
‘doctype’ => ‘invrec’,
‘docnum’ => ‘3006’,
‘inventory_item_id’ => ‘0’,
‘inventory_item_makat’ => ”,
‘serial’ => ”,
‘description’ => ‘שורה שביעית’,
‘long_description’ => ”,
‘unitprice’ => ‘598.29059829’,
‘quantity’ => ‘1’,
‘currency’ => ‘5’,
‘rate’ => ‘1’,
‘vat_exempt’ => ‘0’,
‘income_type_id’ => ‘0’,
‘sku’ => ”,
),
),
‘cc_payments’ =>
array (
0 =>
array (
‘id’ => ‘1’,
‘doctype’ => ‘invrec’,
‘docnumber’ => ‘3006’,
‘cc_cardtype’ => ‘ויזה’,
‘cc_paymenttype’ => ‘1’,
‘cctotal’ => ‘500’,
‘ccfirstpayment’ => ‘500’,
‘cc_numofpayments’ => ‘1’,
‘cc_peraondate’ => ‘2018-06-24’,
‘cc_shovar’ => ‘12345’,
‘cc_cardnumber’ => ‘4580’,
‘cc_holdername’ => ”,
‘cc_month’ => ’12’,
‘cc_year’ => ‘2999’,
‘refunded’ => ‘0’,
),
),
‘custom’ =>
array (
‘department_id’ => ”,
‘partner’ => ”,
),
‘client_id’ => ‘4’,
‘vat_id’ => ‘999888777’,
‘doc_link’ => ‘https://staging.icount.co.il/hash/p_print.php?code=<sone_code_here>’,
‘pdf_link’ => ‘https://s3.amazonaws.com/icount-pdfs/<some-string-here>.pdf’,
)


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