Tpay Payments (BLIK, Pay-by-link, cards) changelog
All notable changes to Tpay Payments (kv_tpay) are documented here.
The format follows Keep a Changelog and the project uses Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”Fixed (before the first release)
Section titled “Fixed (before the first release)”- Multi-Vendor: refunds are a privilege of the store administrator in marketplace owner mode; a vendor only refunds from an account of their own (vendor mode). The refund job and the refund-status trigger follow the same rule.
- Vendor mode: the checkout visibility check reads the account of the vendor that receives the payment, not the storefront company.
- Names, addresses, cities and descriptions are cut by characters, not bytes; address 255 and city 64 as in the reference; fields below the minimum length of 3 are left out.
- Refunds: database lock per payment; the amount is reserved before the request; an unclear answer is reconciled with Tpay’s refund list and never repeated blindly (admin may retry after 2 minutes, status jobs after 15).
- Return, notification and cron are serialised per payment; a return while pending no longer restores the cart (double payment).
- A card refund made in the Tpay panel (
chargeback) now sets the local status to refunded. - A notification with
tr_paiddifferent fromtr_amount(payer fees) is accepted whentr_amountmatches; the read-back checks the amount again. - The PLN amount is converted from the primary currency in one step.
- Pending payments are re-read every 5 minutes for the first hour, then hourly, for 7 days.
- PHP 7.4 is the declared minimum.
[1.0.0] - 2026-11-07
Section titled “[1.0.0] - 2026-11-07”- Initial release.
- Tpay payment method: OAuth 2.0 access (
/oauth/auth),POST /transactionswith payer, callbacks and optional BLIK / bank group, redirect to the Tpay payment page. - Notification verification as documented: JWS signature (
X-JWS-Signature, certificate chain of Tpay), md5sum and merchant id; answerTRUE; idempotent events. - An order is marked paid only after
GET /transactions/{id}confirms amount, currency and reference; lost-notification recovery by the payer’s return and a recurring check. - Refunds from the order page (full as the documented empty request, partial with an amount) and by order status; reconciliation with the Tpay refund list after an unclear answer; refunds cancelled by Tpay give the amount back.
- Per payment method choice of all methods, BLIK only (group 150) or one payment group.
- Connection page with encrypted client ID / secret / security code, merchant ID, sandbox and live mode, connection test.
- Job queue with retries and back-off, cron (command line and secret address), log viewer with CSV export.
- Multi-Vendor: marketplace owner mode or one Tpay account per vendor.