עסקאות במכשירי EMV באמצעות API
ביצוע עסקאות API במכשירי EMV שנמכרים ע"י טרנזילה
למכשירי Nova, A30, A80 ו – Urovo ניתן להתחבר באמצעות API, מכיוון שהמכשירים הללו עובדים בתצורת ענן.
ניתן לשלוח בקשות לביצוע עסקה במכשיר ע"י שימוש בסט בסיסי של API בתצורה של JSON.
תרחיש שימוש נפוץ - שליחת עסקאות לביצוע במכשיר דרך קופה או עמדת חיוב עם ממשק WEB.
סוגי עסקאות נתמכים:
-
עסקת חיוב רגילה J4
-
עסקת זיכוי
-
עסקת תשלומים
-
עסקת תשלומי קרדיט
-
קבלת track2 של כרטיס מגנטי
טבלאת פרמטרים
תיאור פרמטר
|
חובה
|
דוגמה
|
שם פרמטר
|
שם מסוף |
כן |
terminaltest |
supplier |
מזהה ענן יחודי שמוצמד לכל מכשיר EMV |
כן |
014 |
pos_id |
סכום כולל של העסקה |
כן |
300 |
sum |
מטבע העסקה לפי תקן ISO מספרי
376 - שקל ישראלי חדש
|
כן |
376 |
currency |
סוג עסקה:
A - עסקת חיוב
C - עסקת זיכוי
|
כן |
A |
tranmode |
סוג תשלום
1 - רגיל
6 - קרדיט*
8 - תשלומים**
|
כן |
1 |
cred_type |
מספר התשלומים פחות 1, לדוגמה עבור 3 תשלומים נשים את הספרה 2 |
כן/בתנאי שנשלח cred_type=6/8 |
2 |
npay |
סכום התשלום הראשון |
כן/בתנאי שנשלח cred_type=8 |
100 |
fpay |
סכום כל תשלום לאחר התשלום הראשון |
כן/בתנאי שנשלח cred_type=8 |
100 |
spay |
שדה נוסף לעסקה |
לא |
ישראל ישראלי |
contact |
שדה נוסף לעסקה |
לא |
טסלה |
company |
שדה נוסף לעסקה*** |
לא |
rahakob935@tranzila.com |
email |
* npay יש להגדיר את מספר התשלומים, אך לא פחות מ 3 תשלומים.
אין צורך להעביר את הפרמטרים fpay ו spay כיוון שהחלוקה מתבצעת בחברת האשראי
** חישוב תשלומים לפי הנוסחה הרגילה של - sum = fpay + spay*npay
*** ניתן להשתמש בכל שדה נוסף לעסקה שקיים בהגדרות המסוף
דוגמאות קוד ב JSON
יש לשלוח את כל הערכים כ "string"
עסקת חיוב רגילה:
{
"pos_id": "014",
"currency": "376",
"cred_type": "8",
"supplier": "terminalname",
"tranmode": "A",
"sum": "300",
"company":"bigmama"
}
עסקת חיוב בתשלומים:
{
"pos_id": "014",
"currency": "376",
"cred_type": "8",
"supplier": "terminalname",
"tranmode": "A",
"sum": "300",
"npay": "2",
"fpay" :"100",
"spay" : "100",
"company":"bigmama"
}
עסקת זיכוי:
*ביטול עסקה או זיכוי עסקה מתבצעת בדרך כלל באמצעות אתר 'טרנזילה'.
עבור זיכוי לקוח, שאינו מבוסס על עסקת מקור, השתמש בדוגמה:
{
"pos_id": "014",
"currency": "376",
"cred_type": "1",
"supplier": "terminalname",
"tranmode": "C",
"sum": "1"
}
דוגמה לתשובה תקינה שחוזרת לאחר השלמת עסקה במכשיר:
{
"original_request": {
"fpay": "100",
"spay": "100",
"pos_id": "014",
"currency": "376",
"cred_type": "8",
"supplier": "terminalname",
"npay": "2",
"tranmode": "A",
"sum": "300"
},
"status": 0,
"transaction_result": {
"cardNumber": "458010***1892",
"payments": 2,
"solek": 6,
"creditPayments": 0,
"customerReceipt": [
{
"fieldValue": "21/05/20 17:53",
"fieldName": "תאריך"
},
{
"fieldValue": "0889565",
"fieldName": "מספר מסוף"
},
{
"fieldValue": "01.08.64",
"fieldName": "גרסת תוכנה"
},
{
"fieldValue": "0300012",
"fieldName": "מספר עסק"
},
{
"fieldValue": "MAX ",
"fieldName": "כרטיס"
},
{
"fieldValue": "1892",
"fieldName": "מספר"
},
{
"fieldValue": "01014001",
"fieldName": "מספר שובר"
},
{
"fieldValue": "20052117534808895651709",
"fieldName": "UID"
},
{
"fieldValue": "014200258797",
"fieldName": "RRN"
},
{
"fieldValue": "2E",
"fieldName": "סידורי כ"
},
{
"fieldValue": "001",
"fieldName": "סידורי ש"
},
{
"fieldValue": "חובה",
"fieldName": "סוג עסקה"
},
{
"fieldValue": " 042926",
"fieldName": "מספר אישור"
},
{
"fieldValue": "חברה",
"fieldName": "גורם מאשר"
},
{
"fieldValue": "חכם",
"fieldName": "אופן ביצוע"
},
{
"fieldValue": "A0000000031010",
"fieldName": "זיהוי יישום בשבב"
},
{
"fieldValue": "תשלומים",
"fieldName": "סוג אשראי"
},
{
"fieldValue": "300.00 שח",
"fieldName": "סכום עסקה"
},
{
"fieldValue": "100.00",
"fieldName": "תשלום ראשון"
},
{
"fieldValue": "תשלומים",
"fieldName": "2 standing order genetation"
},
{
"fieldValue": "100.00",
"fieldName": "של"
},
{
"fieldValue": "Verified by PIN",
"fieldName": ""
}
],
"cardName": "MAX ",
"rrn": "014200258797",
"ipayAmount": 0,
"statusCode": 0,
"currency": "376",
"creditTerms": 8,
"firstPaymentAmount": 10000,
"manpik": 6,
"expDate": "2303",
"moadonNumber": "",
"authCodeSolek": 0,
"uid": "20052117534808895651709",
"acquirerMerchantID": "300012",
"authCodeManpik": 1,
"tranType": 1,
"issuerAuthNum": " 042926",
"amount": 30000,
"gatewayToken": "",
"statusMessage": "עסקה אושרה",
"mutag": 2,
"paymentIndex": 0,
"posEntryMode": 40,
"tranCode": 1,
"otherPaymentAmount": 10000
},
"error": null,
"token": "sd46sdf042926"
}
דוגמה לתושבה לאחר שידור עסקה לא תקינה(פרמטר קוד מטבע לא תקין):
"original_request": {
"cred_type": "1",
"currency": "123",
"supplier": "efratemv",
"tranmode": "A",
"sum": "1.1",
"pos_id": "099"
},
"status": 0,
"transaction_result": {
"statusMessage": "קוד מטבע לא תקין",
"statusCode": -26
},
"error": null
}
בקשת API לקבלת track2 של כרטיס מגנטי:
ניתן לבצע קריאת API למכשיר EMV לצורך קריאת פס מגנטי, לקוח הקצה יעביר את הכרטיס בעל הפס המגנטי דרך הקורא כרטיסים שיש על מכשיר ה EMV, המכשיר מחזיר ב-API את הערך – track2.
*לא ניתן להעביר כרטיסי אשראי דרך הקורא פס מגנטי, ניתן להעביר רק כרטיסים מסוג מתנה/מועדן כגון 'תו זהב', במידה ויקרא כרטיס אשראי תתקבל שגיאה.
**שימו לב! – לאחר העברת הפס המגנטי יוצג על מסך המכשיר טקסט" עסקה נדחתה – ערוץ 2 לא תקין. "על מנת להוריד את השגיאה למקרים הללו יש לגשת לתפריט הטכנאי, ובתחתית המסך להדליק הגדרה בשם " "HANDLEONE SWIPE.
דוגמה לבקשה שיש לשלוח:
{
"pos_id": "014",
"currency": "376",
"supplier": "terminalname",
"sum": "1"
}
תשובה שחוזרת לאחר העברת הכרטיס בקורא של המכשיר:
{
"success": true,
"track2": "000000000000000000000020101111500000"
}