Skip to content

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.

  • 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_paid different from tr_amount (payer fees) is accepted when tr_amount matches; 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.
  • Initial release.
  • Tpay payment method: OAuth 2.0 access (/oauth/auth), POST /transactions with 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; answer TRUE; 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.