כל חיוב מאושר בדף תשלום של PayPlus מפיק חשבונית מס קבלה. ה-Callback חתום, ואנחנו מאמתים אותו בכל בקשה.
התקנה (5 דקות)#
- ב-SLK Invoices: חיבורים → סליקה ותשלומים → PayPlus, והעתיקו את כתובת ה-Callback.
- הדביקו בשדה הסוד את ה-Secret Key של PayPlus (Settings → API). זה המפתח שבו PayPlus חותמת על כל הודעה.
- ב-PayPlus הגדירו את הכתובת כ-Callback URL בהגדרות דף התשלום. ביצירת קישור תשלום ב-API השתמשו בשדה
refURL_callback. - בהגדרות דף התשלום בחרו שיטת שליחה POST. ההודעה צריכה להגיע כ-JSON.
- אפשר להעביר את מספר ההזמנה בשדה
more_info. הוא יופיע בנושא המסמך. - בחרו סוג מסמך ולחצו על "שליחת הזמנת בדיקה".
Developer reference#
- Endpoint:
POST /api/billing/ecommerce/payplus/<hookId>(JSON). - Docs: callback body https://docs.payplus.co.il/reference/get_yourdomain-yourendpoint ; request validation https://docs.payplus.co.il/reference/validate-requests-received-from-payplus ;
refURL_callbackhttps://docs.payplus.co.il/reference/website-or-app . - Auth (custom):
user-agentmust equalPayPlus, and thehashheader =base64(HMAC-SHA256(body, secretKey)). PayPlus signsJSON.stringify(parsedBody); we compare against the raw bytes first, then the compact re-serialisation, constant-time. The tenant secret is the merchant's PayPlus API secret key. - Issues a document when:
transaction_type=Charge,transaction.status_code=000, currency ILS (or absent),transaction.amount> 0,transaction.uidpresent. Refund callbacks and failures are acknowledged withskipped. - Idempotency:
externalId=transaction.uid;apiIdentifier=payplus-<uid>.
| PayPlus field | Document |
|---|---|
transaction.amount (shekels) | payment amount, ×100 → agorot, taxIncluded: true |
data.items[] | lines, only when quantity × quantity_price reproduces the total exactly; otherwise one line "תשלום באתר" |
data.hash_data (base64 JSON) | customer name, email, vat_number → customerUniqueId |
data.card_information.card_holder_name / four_digits | fallback name / cardLast4 |
transaction.more_info (fallback number) | subject / comments |
transaction.date | issue date |
BODY='{"transaction_type":"Charge","transaction":{"uid":"dcb11c1e7-a1231-37cf-6311-f5111eeb69c7","date":"2026-09-20 12:32:52","status_code":"000","amount":236,"currency":"ILS","more_info":"ORD-7719"},"data":{"card_information":{"card_holder_name":"Ronit Sagi","four_digits":"4580"}}}'
HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "<PAYPLUS_SECRET_KEY>" -binary | base64)
curl -X POST "https://invoice.slk.co.il/api/billing/ecommerce/payplus/<hookId>" \
-H "content-type: application/json" -H "user-agent: PayPlus" -H "hash: $HASH" -d "$BODY"Troubleshooting#
- 401: ה-Secret Key שהדבקתם שונה מזה של PayPlus, או שההודעה לא הגיעה מ-PayPlus (כותרת
user-agentאוhashחסרה). ודאו שאין שרת ביניים ששינה את הגוף. - 404: מזהה ה-hook שגוי. העתיקו את הכתובת מחדש.
- 200 עם
skipped: החיוב לא אושר (status_code שונה מ-000), זיכוי, או לא בשקלים. - ה-Callback מגיע כ-GET: בהגדרות דף התשלום ב-PayPlus שנו את שיטת השליחה ל-POST.
- "חסום" / "רדום": החבילה או המכסה החודשית לא מאפשרות הפקה. נסו שוב ידנית מיומן ההזמנות.