The integration plugin connects T-Bank's internet acquiring to a Medusa store. Online receipts under 54-FZ, one-step and two-step payments, refunds, cancellations and every connection setting in the Admin.

We published the plugin for T-Kassa, T-Bank's internet acquiring service, back in summer 2025, and since then many Medusa stores have put it into production, among them Solidno, Ktsport and White Dog. The buyer pays on the bank's secure page, a receipt under Russia's fiscal law 54-FZ goes out with the payment, and the store admin manages credentials, receipts and refunds right in the Medusa Admin.
See how it works in the demo:
The store in the demo video is built on Gorgo's production-ready Medusa DTC Starter. Its Medusa backend and Next.js storefront are debugged and ready to launch, so all that's left is to set the general store settings and fill in the product catalog. In this example T-Kassa is already connected, and its code is in the GitHub repository. Run it locally and walk the same path against a test terminal.
T-Kassa accepts online payments for online stores in Russia. It is the internet acquiring service of T-Bank (formerly Tinkoff Bank), one of the country's largest digital banks. Buyers pay by card, through SBP, T-Pay, SberPay, Alfa Pay, Mir Pay and other methods. Payments are made in roubles, and from abroad only Mir cards are accepted. More about the service is on T-Bank's website.
At checkout, T-Kassa appears as its own tile next to the other payment methods.
The Pay button takes the buyer to T-Bank's payment page. Card details are entered there and never reach the store. Which payment methods the page offers is up to the terminal settings in the T-Business dashboard.
Once the payment goes through, the buyer lands back on the order page, and the payment status reaches Medusa through a webhook.
A paid order shows up in the Admin as a regular Medusa payment. If a refund is needed, it can be started from the payment's menu.
T-Kassa is configured through the Integration Module on the Settings → Integrations → T-Kassa page. Values are stored in the database, the password is encrypted, and the plugin picks up saved changes on its next operation, with no restart and no redeployment of the store.
The Integration Module stores plugin settings in the database, so they can be changed in the Medusa Admin without redeploying the store. It builds the settings page from the description of options that any plugin or module provides, encrypts secrets, makes sure required fields are filled in and checks the connection to the external service. T-Kassa, YooKassa, Robokassa, ApiShip, 1C and other plugins from the Medusa developer community are already configured through it.
The receipt fields appear only when sending receipts is on.
You need Medusa 2.17.2 or later, Node.js 20 or later, and an internet acquiring terminal in T-Business.
The constant ties the two entries together. The payment provider uses it to find its integration instance and get that instance's options.
Add the key the Integration Module uses to encrypt the terminal password to the of the Medusa backend:
INTEGRATION_ENCRYPTION_KEY=supersecretSet the key once and don't change it, or the module can no longer decrypt the stored secrets.
In the T-Business dashboard, open the terminal settings, choose to send notifications over HTTP, and enter the webhook URL:
https://<your-medusa-domain>/hooks/payment/tkassa_tkassaInstallation and setup are covered in detail in the documentation. If your storefront is built on the DTC starter, the files to add to it are listed in the storefront integration guide.
The T-Kassa integration is one of the plugins we build for Medusa. Our catalog already has YooKassa and Robokassa payments, ApiShip shipping and data exchange with 1C. More payment, shipping, ERP, CRM and other integrations are on the way. All of them will meet our quality standards and be tested daily for compatibility with the latest Medusa versions and provider APIs. We explained how these tests work in this post.
We announce releases in the Medusa.js News Telegram channel.
Ask questions and discuss Medusa in the Telegram community, report plugin issues in the Gorgo support chat, or open Issues and Pull Requests on GitHub.
npm install @gorgo/medusa-integration @gorgo/medusa-payment-tkassa1const TKASSA_INTEGRATION_ID = "tkassa-1"2
3module.exports = defineConfig({4 plugins: [5 {6 resolve: "@gorgo/medusa-integration",7 options: {8 encryptionKey: process.env.INTEGRATION_ENCRYPTION_KEY,9 providers: [10 {11 resolve: "@gorgo/medusa-payment-tkassa/providers/integration-tkassa",12 id: TKASSA_INTEGRATION_ID,13 options: {},14 },15 ],16 },17 },18 {19 resolve: "@gorgo/medusa-payment-tkassa",20 options: {},21 },22 // ...23 ],24 modules: [25 {26 resolve: "@medusajs/medusa/payment",27 options: {28 providers: [29 {30 resolve: "@gorgo/medusa-payment-tkassa/providers/payment-tkassa",31 id: "tkassa",32 options: {33 id: TKASSA_INTEGRATION_ID,34 },35 },36 ],37 },38 },39 // ...40 ],41})