מרכז הידע / ממשקים - ישן לפני שנת 2020

הוראת קבע ב API - יצירת הוראת קבע במערכת קארדקום - Direct Debit Api

יצירה והוספת הוראת קבע ב API

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

1.מתי כדאי להשתמש בממשקים במערכת הוראת קבע ב API :

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

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

 

2.מתי כדאי במקום להשתמש ב אסימונים + פרופיל נמוך : (נפוץ)
 

  1. גיוס הלקוחות מתבצע באופן אוטומטי.
  2. מחירון והמוצרים הם קבועים וקשיחים מראש.
  3. אין התערבות אנושית בלקוחות חייבים - לא שילם נסגר המוצר הנמכר אוטומטי.
  4. מערכת גמישה מאוד לשינוים -> מנוהל ומתוחזק על-ידי המפתח שלכם , המתכנת יוצר אסימון ומחליט בצד שלו מתי לחייב ומה לעשות דברים נוספים בהתאם .
    ממשקים API קוד פתוח לפתיחת דף תשלום (פרופיל נמוך)
    __________________________________________________________________________________________________________

    אם הוחלט לעבוד עם הוראת קבע ב API של קארדקום ראה שלבים אלה :

שלב 1 :

יש לבצע עסקת פרופיל נמוך(redirect / iframe ) של יצירת אסימון בלבד או חיוב ויצירת אסימון בכדי שפרטי האשראי ישמרו במערכת לפי מאמר : (Operation: ChargeAndCreateToken / CreateTokenOnly)

שלב 2:

יש לשלוח בקשה לביצוע חיוב מחזורי לעסקה שבוצעה. שם לב !

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

 

ממשק Web Service

https://secure.cardcom.solutions/Interface/BillGoldService.asmx

פעולה. (להוספת הוראת קבע חדשה) :

https://secure.cardcom.solutions/Interface/BillGoldService.asmx?op=AddUpdateRecurringOrder

 

ממשק Name to Value (נפוץ)

https://secure.cardcom.solutions/interface/RecurringPayment.aspx

* התשובה המתקבלת היא במבנה :Name=Value&Name2=Value2&Name3=Value3.
* לצורך בדיקות בלבד אפשר לפנות ב GET.
*בפרודקשיין יש לפנות במתודת POST . 
(יותר מאובטח , ניתן לחפש יותר טוב בלוגים קריאות , ניתן לשלוח סטרינג ארוך לעומת GET שיכול להישבר באמצע) 

 

מקרא:
פרמטר אדום - חובה
פרמטר מודגש - מומלץ
פרמטר לא אדום ולא מודגש - אופציונלי

 

פרטי מסוף טסטים:
שם משתמש: Cardcomtest26
סיסמה: TerminalTest26
מספר מסוף : 1000

 

טבלת פרמטרים :

מס פרמטר ערכים אפשריים לדוגמא תיאור
1 TerminalNumber 1000 מספר הטרמינל הפנימי (לא שבא) שבו נוצר האסימון או מסוף שעליו נוצר הקוד פרופיל נמוך של עסקה ראשונית
2 RecurringPayments.ChargeInTerminal 1001 מספר מסוף המחייב בהוראת קבע (ללא CVV) כאשר לא מועבר פרמטר זה, המסוף המחייב להו"ק יקבע לפי הגדרה בתפריט המערכת: [ הגדרות > 6. הוראת קבע > 1. הגדרות כלליות ].
3 UserName test2025 שם משתמש ממשקים API user name
4 codepage (חובה) 65001 קידוד עברית - unicode
5 Operation NewAndUpdate - הוסף חדש אם קיים עדכן.
Update - עדכן בלבד

NewAndUpdate  -

הוסף לקוח ואו/ הוראה לחיוב חדשה.  אם לקוח לא נמצא ייוצר לקוח חדש. למשתמש גם להוספה של הוראה חדשה ללקוח קיים על ידי העברה מזהה יחודי לקוח AccountId

Update - עדכון בלבד. אם לקוח / הוראה לחיוב לא נמצא תוחזר שגיאה.

 

**בעדכון הוראה ללקוח קיים יש להעביר את פרמטר מס' 27 בטבלה כאשר ה VALUE הוא מס' ההוראה שרוצים לעדכן

6 LowProfileDealGuid   72183f28-75fa-404e-b5de-5a1a5287f094

קוד הפרופיל נמוך של עסקת החיוב הראשונה של הלקוח החדש שחוייב בפרופיל נמוך (דרך פרמטר זה נלקח הפרטי אשראי של הלקוח)

*במקרה של יצירת הו"ק מ-0 צריך להעביר פרמטר CreditCard.Token או CreditCard.Number במקום הפרמטר הזה. פרטים מופיעים בהמשך המדריך בטבלה של "פרטי כרטיס אשראי"*

7 Account.AccountId 1000 מזהה יחודי של הלקוח בקארדקום- יש להעביר בעדכון או בהוספת הו"ק ללקוח קיים.
(ללקוחות שיש להם אנשי קשר מוקמים כבר בתוך המערכת של קארדרום ניתן להעביר רק את פרמטר זה והוא ידע להצליב בין הלקוח)
8 Account.CompanyName test company שם הלקוח / שם החברה שעליה תצא החשבונית
9 Account.RegisteredBusinessNumber 040617649

מספר ח.פ / עוסק מורשה / ת.ז לקוח  (מומלץ להעביר)
המערכת עושה איחוד כרטיסי לקוח ברשימת לקוחות לפי סדר איחודים הזה :

1 - Account.AccountId
2 - Account.RegisteredBusinessNumber
3 - Account.Email
4 - Account.SiteUniqueId

 

10 Account.SiteUniqueId 120 מספר לקוח ייחודי במערכת שלכם.
אם לא בשימוש אין להעביר פרמטר זה בכלל , גם לא NULL .
11 Account.ForeignAccountNumber 12avx11 מספר לקוח למערכת הנהלת חשבונית חיצונית
12 Account.FirstName eli שם פרטי.
אין צורך להעביר אם מעבירים
Account.CompanyName כשם מלא זה מספיק.
13 Account.City holon מקום / עיר
14 Account.Street1 street כתובת שורה 1 (רחוב)
15 Account.Street2 street 2 כתובת שורה 2 (רחוב)
16 Account.ZipCode 1234567 מיקוד
17 Account.PhLine 034723456 טלפון נייח
18 Account.PhMobile 0521122334 טלפון נייד
19 Account.Email DemoEmail@Site.co.il כתובת דואר אלקטרוני - Email
לשים לב - אם לא מועבר ח.פ המערכת מבצעת איחוד לקוח לפי המייל !  יש לתת מייל חד חד ערכי ללקוח .
20 Account.VatFree true/false הקמת לקוח ללא מע"מ (ללקוחות חו"ל/ אילת)
21 Account.IsDocumentLangEnglish true/false שפת מסמך שיופק ללקוח באנגלית (ללקוחות חו"ל)
22 Account.Comments "לקוח שילם במזומן בסוף" הערות לחשבון הלקוח
23 Account.ContactName avi שם איש קשר
24 Account.DontCheckForDuplicate

true/fasle -

במידה ב "true" תמיד יתוסף לקוח חדש ולא יבוצע בדיקת כפילויות

האם לא לבצע בדיקה של כפילויות לקוח ותמיד לפתוח כרטיס לקוח חדש בעת הוספת הוראת קבע.
25 RecurringPayments.DepartmentId

1

מספר מחלקה להוראת קבע

https://secure.cardcom.solutions/Accounts/Tables/DepartmentsList.aspx

הגדרות > 6 >1

26 RecurringPayments.TimeIntervalId

1

מספר מחזור החיוב :
ברירת המחדל -חודשי 1
לפי טבלה בממשק ניהול (הגדרות > 6>4)
במקרים שרוצים לבצע מרווחי חיוב שנתי/רבעוני משנים בהתאם.
(אופציונלי - לא חובה להעביר )
27 RecurringPayments.RecurringId 2000 מספר ההוראה לחיוב שרוצים לעדכן (במצב עידכון בלבד)
28 RecurringPayments.InternalDecription ׳׳קורס השתלמות׳׳ תאור שם ההוראה לחיוב 
29 RecurringPayments.NextDateToBill

פורמט : dd/MM/yyyy

לדוגמא : 01/12/2019

תאריך הבא לתחילת החיוב בהוראת קבע
30 RecurringPayments.TotalNumOfBills 999999 > ללא סוף (מנוי)
12 > 12 תשלומים של שנה

מספר החיובים בהוראת הקבע, 

כמה חודשים המערכת תחייב .

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

31 RecurringPayments.FinalDebitCoinId 1 - שקל
2 - דולר
ועוד (ראה סוגי מטבעות)
מטבע לחיוב בהוראת קבע
32 RecurringPayments.ReturnValue 1234 ערך החזרה שנשלח (מתאים למס' הזמנה במערכת צד ג' )
33 RecurringPayments.IsActive false - לא יבוצע חיוב
true - יבוצע חיוב
במצב עידכון בלבד : להפוך את ההוראת למצב לא פעיל
34 RecurringPayments.DocTypeToCreate 1 - חשבונית מס קבלה
3 - קבלה מלכ"ר
101 - אישור הזמנה - מאתר

סוג המסמך להפקה. - אם לא מעבירים סוג המסמך נקבע ע"י הגדרות המסוף בבריית מחדל.

לרשימת קודי מסמכים מלאה לחץ כאן

35 RecurringPayments.FlexItem.InvoiceDescription "קורס א תשלומים בהוראת קבע " תאור לחשבונית שתופק
36 RecurringPayments.FlexItem.Price 100

המחיר לחיוב בהוראת הקבע *חודשי* (כמה הלקוח ישלם כל חודש)

37 RecurringPayments.FlexItem.IsPriceIncludeVat true / false

מחיר פריט עם/בלי מע"מ

true - הלקוח יחויב את הסכום המעובר והמע"מ יחולץ מהמסכם.( 100 יהיה 100 כולל מע"מ)
false - יתווסף מע"מ על הסכום המועבר (100 יהיה 100 + מע"מ לדוגמה 117 )

38 RecurringPayments.FlexItem.ProductId  

מקט לפריט

39 RecurringPayments.FlexItem.LinkToId 5

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

בשימוש בהצמדה למדד מותאם אישית יש להעביר את קוד המדד שיצרתם במערכת.

(הטבלה אשר מכילה את הקוד נמצא במערכת קארדקום -

הגדרות -> 6. הוראות קבע -> 7. מדד / מט"ח )

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

40

RecurringPayments.FlexItem.IsLinkTo

true / false

האם ההו"ק מוצמד למדד או לא.

41

RecurringPayments.FlexItem.OpenRateForLinkTo

30

שער מדד פתיחה, אם לא מועבר (מוגדר)

המערכת תשתמש במדד בסיס ברירת מחדל

42

RecurringPayments.IsPrintNumOfPayments

true / false

האם להדפיס את מספר התשלומים בחשבונית - כמו בסמך ידני.

43

RecurringPayments.IsPrintBillMonth

true / false

האם להדפיס את חודש החיוב - כמו במסך ידני.

44

RecurringPayments.IsInvoiceCreate

true / false

מומלץ לא להעביר , יקבע ידני על ידי המערכת והגדרות משתמש

האם ליצור מסמך לחיוב זה.

 

בקשה לדוגמא ב GET לבדיקות:

 

https://secure.cardcom.solutions/interface/RecurringPayment.aspx?TerminalNumber=1000&RecurringPayments.ChargeInTerminal=1000&UserName=test9611&codepage=65001&Operation=NewAndUpdate&LowProfileDealGuid=6cc64545-5534-46ac-9476-9455cdcbd68f&Account.CompanyName=testName&Account.RegisteredBusinessNumber=012345678&RecurringPayments.InternalDecription=קורס&RecurringPayments.NextDateToBill=25/02/2024&RecurringPayments.TotalNumOfBills=99999& RecurringPayments.FinalDebitCoinId=1&RecurringPayments.ReturnValue=order1234&RecurringPayments.
FlexItem.InvoiceDescription=קורס&RecurringPayments.FlexItem.Price=100


תשובה לדוגמא:

 

ResponseCode=0&Description=OK&TotalRecurring=1&IsNewAccount=True&AccountId=9917&Recurring0.RecurringId=33244&Recurring0.ReturnValue=order1234&Recurring0.IsNewRecurring=true




 

דוגמא לפנייה ב POST דרך Postman

 

 

ביצירת הוראת קבע בAPI - חשוב להעביר פרמטרים של אמצעי תשלום כרטיס אשראי\פרטי חשבון בנק

פרטי כרטיס אשראי:

מס פרמטר ערכים אפשריים לדוגמא תיאור
 1

 CreditCard.CardOwnerName

 אלי כהן  שם בעל הכרטיס
 2

 CreditCard.CardOwnerId

 123456789  ת''ז בעל הכרטיס
 3

 CreditCard.Year

 26  שנה YY
 4

 CreditCard.Month

 11  חודש MM
 5

CreditCard.Token Or CreditCard.Number

 4cf8e168-261e-4613-8d20-000/5326-XXXX-XXXX-XXXX  טוקן כרטיס או מספר כרטיס אשראי

 

הוראת קבע בנקאית - מס''ב 

 

מס פרמטר  ערכים אפשריים לדוגמא תיאור
 1   BankInfo.Bank  1 ( INT )  מספר בנק
 2   BankInfo.Branch  123 (INT )  מספר סניף
 3  BankInfo.AccountNumber  1233456 ( LONG)  מספר חשבון בנק
 4   BankInfo.Description  מחרוזה 50 .  הערות כלליות 


לאחר היצירה של ההוראת קבע - מומלץ להיכנס למערכת של בית העסק ולבדוק שאכן נוצר לקוח + הוראה לחיוב, מצורף מדריך  : הקמת הוראת קבע באשראי. 

 

שלב 3:

מצורף מדריך נוסף להגדרת קבלת דיווח ל Webhook על סטטוס ההוראות במקרה של שינויים ->

 

הוראת קבע בנקאית :

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

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

 

מספר פרמטר ערכים אפשריים לדוגמא תיאור
1 BankInfo.Bank 1 מספר בנק - int
2 BankInfo.Branch 123 מספר סניף - int
3 BankInfo.AccountNumber 332255 מספר חשבון בנק - long
4 BankInfo.Description הערות לחשבון בנק הערות כלליות - 50 תווים



פרטי התשובה המתקבלת

מספר פרמטר ערכים אפשריים לדוגמא תיאור
1 ResponseCode 0 0 הפעולה הצליחה
2 Description OK תיאור התשובה
3 TotalRecurring 1 מספר הוראות שנוצרו
4 IsNewAccount True האם נוצר הוראה חדשה
5 AccountId 1001 מספר הלקוח שנוצר ב קארדקום
6 Recurring0.RecurringId 9460 מספר ההוראה
7 Recurring0.ReturnValue 1234 ערך משתמש להחזרה
8 Recurring0.IsNewRecurring true האם מנוצר הוראה חדשה



בנוסף מצורפים קודי דוגמא :

הוספת הו׳׳ק חדשה/ AddRecurringPayment  AddRecurringPayment.php.txt
ביטול הו׳׳ק קיימת / DisableRecurringPayment  DisableRecurringPayment.php.txt
עדכון הו׳׳ק קיימת / UpdateRecurringPayment  UpdateRecurringPayment.php.txt

יש ליצור קשר עם התמיכה לקבלת שם משתמש לבדיקות.

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

האם המאמר הזה עזר לך?