Mistok
Documentation · Gateways · UA

WayForPay Ukraine

Cards, Apple/Google Pay, hold, bank installments. Official documentation: https://wiki.wayforpay.com/. Gateway fee: per the WayForPay agreement.

Credentials

merchantAccount, merchantSecretKey, merchantDomainName from the account. Test merchant — in the documentation.

Environment variables
WAYFORPAY_MERCHANT_ACCOUNT WAYFORPAY_SECRET_KEY WAYFORPAY_MERCHANT_DOMAIN
Webhook
POST /webhooks/wayforpay JSON; merchantSignature = HMAC-MD5(merchantAccount;orderReference;amount;currency;authCode;cardPan;transactionStatus;reasonCode). Mistok replies with a signed {orderReference, status: accept, time, signature}.

What Mistok calls

RequestFields / meaning
POST https://api.wayforpay.com/api (CREATE_INVOICE)merchantAccount;merchantDomainName;orderReference;orderDate;amount;currency;productName[];productCount[];productPrice[] → HMAC-MD5 → invoiceUrl
CHECK_STATUStransactionStatus, reasonCode (1127 = not found → created)
REFUNDmerchantAccount;orderReference;amount;currency
SETTLEcapture of the hold

Statuses

Approved → success · WaitingAuthComplete → hold · InProcessing/Pending → processing · Declined → failure · Expired → expired · Refunded/Voided → reversed.

Mistok’s model: created → processing → (hold →) success | failure | expired | reversed. The Shopify order receives a payment only on success and only after the amount and currency are checked against our record.

Sandbox

Test merchantAccount from the wiki; test cards there too.

Limitations

Live run on the test merchant on 31 Oct 2026: CREATE_INVOICE, CHECK_STATUS (including code 1151 “Invoice Is Awaiting For Payment” for an unpaid invoice → created).
Checked against the official documentation, no open questions.

← all gateways · Mistok HTTP API