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, and so does the place to add your merchantAccount and website domain: those let you raise payment links straight from an order, and they feed the optional local signature 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 I raise a payment link straight from the CRM?
Yes, once the merchantAccount and website domain are saved on the adapter page: the "Payment link" button on an order or invoice then raises a WayForPay invoice and returns a link for the manager to send the buyer. Links stay payable for a day and the payment attaches itself. One WayForPay quirk: after paying, the buyer stays on the provider's result page — its create-invoice method accepts no return address.
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