What you need before connecting Maksekeskus
First your company signs a contract with Maksekeskus. You submit company details, the representative is identified and the store is reviewed. After approval you get access to the merchant self-service, where the shop ID and API keys are found.
- A registered company and a bank account
- A working store, or at least a test version the provider can review
- Terms of sale, return policy and contact details on the site
- Store admin access for us
Fees depend on the contract. The current price list is published on the Maksekeskus website.
What the purchase looks like for the buyer
- Checkout shows bank logos and a card payment option
- The buyer picks their bank and lands in online banking
- They confirm the payment with Smart-ID, Mobile-ID or a PIN calculator
- Maksekeskus returns the buyer to the store and sends the store a message with the payment result
With a card the steps are the same, except that a card form opens instead of the bank and the bank may ask for an extra confirmation. In both cases the order status is decided by the server notification, not by whether the buyer made it back to the store.
Platforms we connect Maksekeskus on
WooCommerce has an official MakeCommerce plugin. We configure the shop ID and keys, how payment methods are displayed at checkout, and refunds from the order screen. On Shopify the solution depends on what the platform allows external payment services to do, and we check this before work begins.
In a custom Next.js store we create the transaction through the Maksekeskus API, send the buyer to pay and process the result on our own server. This way the checkout design stays entirely yours.
Testing and the problems we see most
Maksekeskus has a separate test environment with its own keys. There we run a successful payment, an interrupted payment and a refund, and only then switch the store to live.
- Order status does not update because the notification URL is wrong or the server blocks the request
- The store goes live with test keys and real payments fail
- After a domain change or a move to HTTPS the return URLs still point to the old address
- Payment amount and order amount differ because of rounding or a coupon, and the order waits for manual review