How it works
Payment callback
WayForPay sends payment data and merchantSignature to the unique Service URL for your integration.
Payment record
A successful payment attaches to an existing orderReference or is stored separately for reconciliation.
No duplicates
A repeated event updates the same payment, does not duplicate the alert, and never invents an order.
Signature verification
- Algorithm
- HMAC-MD5 over order fields
- Field
- merchantSignature
- merchantAccount
- sent by WayForPay and included in the signature; not stored separately by the CRM
- Card data
- PAN, recToken, repayUrl and signature are not stored
Security
- merchantSignature is verified before recording a payment
- SecretKey verifies incoming signatures and signs the accept response; it is never returned in the UI
- Idempotent record and match by orderReference
- Signed test payload generation
Setup
- 1
Add the WayForPay adapter
Provide only the SecretKey and create the adapter — callbacks work immediately. The Service URL appears on the adapter page; merchantAccount is needed only for the optional local check.
- 2
Add the Service URL
For API payments, pass serviceUrl in Purchase or wayforpay.run(...). In the portal: Payment tools → Payment Button → Advanced settings → Service URL.
- 3
Run a control payment
You may generate a local example as an optional diagnostic; it does not activate the integration. A control payment verifies your own WayForPay portal setup and appears in Commerce → Payments or on the existing order.
Frequently asked questions
How is it different from LiqPay?
WayForPay uses HMAC-MD5 over its own field set, including merchantAccount. This is a provider-specific contract, not the LiqPay signature flow.
Can I test without a real payment?
Yes. You can check the SecretKey and signature locally without recording a payment. This is optional: correctly signed events are accepted immediately after creation. A real or provider test payment verifies Service URL delivery, payment recording and the signed accept response.
Must the order already exist in the CRM?
No. If the order already exists, pass its externalId as orderReference and the payment attaches to it. Otherwise the payment is stored separately for reconciliation and does not create an order automatically.
Can the CRM issue a refund or settle a hold?
No. The integration only receives the Service URL event and returns a signed accept response. Refund, Settle, Charge, invoices and Payment Widget remain in WayForPay or your storefront.
Connect WayForPay
Track WayForPay payments in one journal and reconcile them with orders.
Start for free