Withdrawal function in online and mobile banking: an implementation guide

Eximee Team
Published 13 Oct, 2026

As of June 19, 2026, a new rule applies across the European Union: withdrawing from a contract concluded online must be as easy as concluding it. The rule comes from Directive (EU) 2023/2673, which amends Directive 2011/83/EU on consumer rights and repeals Directive 2002/65/EC on the distance marketing of financial services. The key new provision, Article 11a, covers all contracts concluded with consumers through an online interface where a right of withdrawal applies. This includes accounts, cards, loans, and term deposits opened online. The goal is simple: an end to dark patterns, meaning design choices that deliberately make it harder for customers to cancel.

Poland missed the transposition deadline. The first draft of the implementing act was withdrawn, but a new one (UC 169) was submitted for public consultation on September 10, 2026. The direction of change is settled. The only open question is the date.

For an online store, adding a withdrawal button is a relatively simple change. In a bank, a single click triggers customer verification, different legal consequences for different products, and a series of operations in core systems. That is why implementing this function in banking is not a minor UI tweak but a challenge for system architecture and core banking integration. This article shows how to meet it.

Key Takeaways

  • Directive 2023/2673 requires that withdrawing from a contract concluded online be as easy as concluding it, through a visible “Withdraw from contract here” function with a two-step confirmation. The application deadline passed on June 19, 2026, and the Polish draft implementing act (UC 169) has been in public consultation since September 10, 2026.
  • In banking, this is an architectural challenge, not a UI change. Different products have different withdrawal consequences, each request must reach multiple systems, and every product is owned by a different business unit.
  • A platform approach makes it possible to handle all products with a single form, published simultaneously in online banking and the mobile app.
  • Eximee acts as a trigger: it accepts the customer’s statement and routes it to the appropriate system. The fulfillment logic stays in core banking, so there is no need to rebuild it.

What exactly the new rules change

The new rules do not change the right of withdrawal itself or its time limit. Instead, they specify what the withdrawal function must look like in the interface.

The function must be labeled “Withdraw from contract here” or with an equally unambiguous phrase. It must be prominently displayed and easily accessible throughout the entire period during which the customer has the right of withdrawal. It cannot be temporarily disabled or made technically difficult to use.

The process has two steps. First, the customer fills in a form, providing information that identifies them and the contract, and indicating the channel through which they want to receive confirmation. Then they submit the statement using a separate, clearly labeled button, such as “Confirm withdrawal.” They do not have to give a reason, and they can withdraw from the contract in whole or in part. The trader must send the customer a confirmation on a durable medium without undue delay, including the content of the statement and the date and time it was submitted.

The new function does not replace existing withdrawal methods, but a bank cannot redirect a customer who concluded a contract online to a branch or a call center. The rules tie the function to the interface through which the contract was concluded. Some banks take a broader interpretation and make the function available in every digital channel where they sell products, which reduces the risk of claims that customers had to search for the right place.

For the financial sector, one more element matters: the proposed Article 42a of the Polish Consumer Rights Act, which explicitly prohibits dark patterns in financial services. The directive lists examples such as giving more prominence to certain choices, repeatedly asking customers to make a decision they have already made, and making it harder to cancel a service than to sign up for it. So the button alone is not enough. The entire journey before and after it matters.

Withdrawal vs. termination: a key process distinction

In everyday language, both terms mean “canceling a product,” but legally and procedurally they are two very different paths. For a bank designing a withdrawal function, the distinction is crucial because it determines which products belong in the form, at what point, and with what consequences for the customer.

Withdrawal from a contract Termination of a contract
Basis Statutory consumer right Contract terms and product-specific regulations
When Within the statutory period, typically 14 days (longer for some products or if the customer was not properly informed) At any time during the contract
Reason Not required Depends on the contract, usually not required
Legal effect The contract is deemed never to have been concluded The contract ends after the notice period
Settlement Repayment of principal, interest for the actual period the funds were used, refund of fees According to the contract terms
Interface button Mandatory, with two-step confirmation Not required by the directive, but recommended as good UX practice

In practice, the withdrawal form must clearly communicate the period within which withdrawal is available and, once that period has passed, direct customers to the termination path. Less stringent requirements for termination do not mean anything goes, however. The dark patterns ban also covers situations where canceling is harder than signing up. A bank that perfects its withdrawal journey but leaves termination behind a call center may still have a problem.

Why implementation is harder in banking than in e-commerce

In e-commerce, withdrawal usually ends with the return of goods and money, whether the customer bought a pair of shoes or a coffee maker. In banking, the challenges come from four areas:

  • Every product is a different process. For an account, the bank must check the balance, linked cards, and standing orders. A card must be blocked and its transactions settled. For a loan, the customer repays the principal plus interest for the period the funds were used, within 30 days of submitting the statement in the case of consumer credit. For a term deposit, the funds return to the customer’s account. Withdrawal periods and the documents the customer should receive also differ.
  • Security vs. simplicity. An online store can accept a withdrawal statement based on an order number. A bank must be certain that it is the customer, not a third party, canceling a financial product. At the same time, any additional step may be considered an obstacle. A sensible rule: the withdrawal process should not require more authentication steps than concluding the same contract did.
  • One click, many systems. The customer’s statement must reach the system handling the product, the accounting system, the card system, the CRM, the document archive, and the notification module. Some of these are legacy systems that do not always operate in real time and have their own maintenance windows.
  • Linked products. A loan often comes with insurance, an account with a debit card, and a credit card with a package of add-on services. Withdrawal from a consumer credit agreement also applies to ancillary service contracts related to the credit. The bank must therefore know which products are linked, inform the customer, and terminate those contracts without requiring further action from them, sometimes with the involvement of an external partner such as an insurer.

Each of these challenges can be solved on its own. The difficulty lies in solving them all at once, in a single, consistent process available in every channel.

Implementation pitfalls: siloed vs. platform (low-code) approach

The first decision concerns the approach: a form added separately to each sales process, or a single solution for all products.

The siloed approach seems natural because, in many banks, each product is managed by a different unit, and sales processes developed independently. The result is easy to predict: each form works a little differently, each must be maintained and updated separately whenever regulations change, and there is a growing risk that the function will simply not be built in one of the channels. That is exactly the kind of gap the rules do not tolerate.

The platform approach means one form for all products sold remotely. In Eximee, its logic is designed once and published simultaneously in online banking and the mobile app. The platform is integrated with the bank’s app once, and subsequent forms, including the withdrawal form, can be launched in the mobile version without additional integration work. With minimal effort, the same form can also be made available in advisor channels, such as the call center and branches. The rules do not require this, but if a customer calls or visits a branch, an advisor can take their statement within the same process, and the bank keeps a single, consistent workflow across all channels.

Implementation experience shows, however, that the biggest challenges are not technological:

  • API limitations. Banking systems usually do not allow retrieving all contracts concluded within the withdrawal period, so the form must combine suggestions from the systems with data entered by the customer.
  • Divergent requirements. Each business unit has so far collected a different set of data to process withdrawals. A single form requires standardizing these requirements, which means negotiations between areas that previously never had to align.
  • Many stakeholders. Loans, insurance, deposits, cards, and accounts are owned by separate teams with their own processes and priorities.

Until now, each unit in the bank collected a different set of data needed to process a withdrawal. With one form for many products, the biggest challenge wasn’t the technology. It was standardizing those requirements so that each product needed a similar set of data.
Adam Ziemkiewicz, Eximee Platform Product Owner at Consdata

Eximee does not remove these organizational divisions, but it ensures the customer does not feel them. For the customer, it is a single form. On the bank’s side, each statement goes to the unit responsible for fulfilling the request.

The customer journey, step by step

A good journey is short, predictable, and, as far as possible, the same for all products.

Step 1: easy access

The function should be where customers look for it: in the product details or in the product management section. The rules do not specify a number of clicks, but best practice is no more than two or three. The option must not be hidden in terms and conditions, multi-level menus, or behind a chatbot.

Step 2: selecting the product and contract

The customer selects a product from a full list and then identifies the specific contract. Depending on the product, this is an account, a card number, or a contract number. Where the API allows, the form suggests ready-made options, such as a list of accounts or cards. Where it does not, for example with term deposits, the customer enters the number manually, and the form shows where to find it. At this stage, the customer also sees hints about the withdrawal conditions for the selected product, such as the time limit.

Step 3: confirmation

The customer submits the statement using a separate button. The screen does not need detailed calculations or summaries, because the simpler the process, the lower the risk of the customer getting lost.

Step 4: information on next steps

The confirmation message should state not only what the withdrawal concerned and when it was submitted, but also what happens next, for example, whether and by when the customer must return funds.

What to avoid

The easiest way to spoil the journey is to try to retain the customer. Retention screens such as “Are you sure you want to lose your bonus?”, a mandatory reason-for-cancellation field, or additional authentication steps may be considered dark patterns. Asking for a reason is fine, but only as an optional field.

Digital accessibility

Since June 2025, consumer banking services have been subject to the requirements of the European Accessibility Act. The form must therefore work with screen readers, keyboard navigation, and text magnification, and descriptions of the legal consequences should be written in plain language.

Eximee’s technical architecture: what happens under the hood

From the customer’s perspective, withdrawing from a contract takes a few clicks. On the bank’s side, it is a process that must connect the interface, the systems handling individual products, and customer communication. The key is how responsibility is divided among these elements.

Eximee as a trigger, not a core banking replacement

The most important architectural decision concerns where the withdrawal business logic resides. In Eximee implementations, the platform acts as a trigger: it accepts the customer’s statement and creates a task for the appropriate bank system. Stopping interest accrual, changing the product status, and calculating the amount to be repaid remain with the systems that already handle each product. The bank does not have to move or duplicate core banking logic, and each unit processes withdrawals within processes it already knows.

Eligibility logic

The form displays different fields depending on the product type. If the bank’s system provides the product’s opening date, Eximee retrieves it and shows only contracts concluded within the withdrawal period. If not, the form accepts the customer’s statement, and the system handling the withdrawal decides whether the request can be fulfilled. The customer is not blocked at the interface level.

Authentication

The form uses the active session of a customer logged in to online banking, so the bank knows who is submitting the statement without additional steps.

Customer communication

Eximee connects to the bank’s messaging system via a REST API. The customer receives two messages: one after submitting the statement, with a document and confirmation that the request was received, and another after it is processed, with the status “completed” or “rejected.” The customer does not need to follow up on what is happening with their statement, and the bank has every stage of the process documented.

Audit trail

Data from every request is stored in a reporting database through a platform-level mechanism. The bank has a single place to check who withdrew from which contract and when, which helps with complaints and potential regulatory audits.

Implementation checklist for banks

Before launching the withdrawal function, it is worth going through the following list. It will help verify that the solution meets regulatory requirements and does not leave gaps that a customer or regulator would quickly spot.

Scope

  • Product list. List all products a customer can conclude online: accounts, cards, loans, term deposits, and insurance. Do not overlook products for children, such as accounts or cards opened by a parent. Each of them must have a withdrawal path, and the parent should be able to find it in their own online banking.
  • Linked products. Determine which ancillary contracts terminate together with the main contract and who is responsible for terminating them, including on the side of external partners.
  • Channels. Check that the function is available in every interface where the bank concludes contracts, both in online banking and in the mobile app.
  • Time limits. Define the withdrawal period for each product and determine the date from which it runs: the conclusion of the contract or the delivery of the required information.

Interface and customer journey

  • Labeling and access. The function is labeled “Withdraw from contract here” or something equally unambiguous, is clearly visible, and can be reached in a few clicks.
  • Two steps. A form and a separate confirmation button, with no mandatory reason field and the option to withdraw in whole or in part.
  • No dark patterns. The journey has no retention screens, repeated prompts, or additional authentication steps that were not required when concluding the contract. Check the same for the termination path.
  • Digital accessibility. The form meets the requirements of the European Accessibility Act, and descriptions of withdrawal consequences are written in plain language.

Processes and systems

  • Function availability. The function works throughout the entire withdrawal period. Check what the customer will see during maintenance or outages of the bank’s systems.
  • Request routing. Each statement reaches the unit responsible for the product, with a standardized data set.
  • Confirmation. The customer receives a confirmation on a durable medium without undue delay, including the content of the statement, the date and time of submission, and information on next steps.
  • Processing status. The customer is informed whether the request was completed or rejected.
  • Audit trail. The bank can check in one place who withdrew from which contract and when.

Documents and teams

  • Documentation. Terms and conditions, information on the right of withdrawal, and pre-contractual information indicate where the function is located in the interface.
  • Customer service. Call center agents and branch staff know where the function is and can direct customers to it, rather than taking statements “the old way.”

Conclusions

The withdrawal function looks like a small change: one button, one form, one confirmation. In a bank, however, that button is backed by different products, many systems, and many teams that have so far each handled withdrawals in their own way.

A successful implementation rests on three pillars. The first is regulatory compliance: a clearly labeled function, a two-step process, confirmation on a durable medium, and availability throughout the withdrawal period. The second is low maintenance cost: a single form for many products instead of separate solutions, each of which must be updated whenever regulations change. The third is a consistent UX free of dark patterns: a short, predictable journey that is the same in every channel, with no attempts to retain the customer.

The Polish regulations implementing the directive are still being drafted, but their direction will not change. Banks that prepare now will avoid a last-minute rush when the act comes into force and will build a solution that also brings order to how product cancellations are handled.

FAQ

Are the Polish rules on the withdrawal function already in force?

Not yet. Directive 2023/2673 was to apply from June 19, 2026, but Poland did not transpose it on time. A new draft implementing act (UC 169) was submitted for public consultation on September 10, 2026. The obligation to provide the function, and the ability of UOKiK (the Polish Office of Competition and Consumer Protection) to enforce it, will arise once the Polish act comes into force.

What is the difference between withdrawing from a contract and terminating it?

Withdrawal is a statutory consumer right that can be exercised within a set period, typically 14 days, without giving a reason. The contract is then deemed never to have been concluded. Termination is possible at any time during the contract, on the terms set out in it, and the contract ends after the notice period. The directive requires a button only for withdrawal.

Does the customer have to give a reason for withdrawing from a contract?

No. The right of withdrawal applies without the need to give a reason. A bank may ask for one, but only in an optional field. A mandatory field could be considered an obstacle to withdrawal.

Does the withdrawal function have to be available before logging in to online banking?

The rules do not specify this. They require the function to be clearly visible and easily accessible. In banking, the natural place is the logged-in area, such as the product details or the product management section, because the bank must identify the customer and the contract. The key is that the customer can reach it in a few clicks.

Can a bank require additional authentication for withdrawal?

A bank must be sure that the statement is submitted by the customer, which is why it usually relies on the customer’s active online banking session. However, any additional step may be considered an obstacle. A sensible rule: withdrawal should not require more authentication steps than concluding the same contract did.

How quickly must a bank confirm a withdrawal?

Without undue delay after the statement is submitted. The confirmation must reach the customer on a durable medium and include the content of the statement and the date and time it was submitted. It is also good practice to include information on next steps.

Can a single form handle withdrawals from all of a bank’s products?

Yes, and this approach has an advantage over separate forms for each product. The customer goes through one journey in every channel, and the bank maintains one solution. In Eximee, the form routes each statement to the unit responsible for the product, while the fulfillment logic stays in the bank’s systems.


Sources

  1. Directive (EU) 2023/2673 (https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:32023L2673)
  2. Draft act UC 169 amending the Consumer Rights Act and the Act on Consumer Pawn Loans (in Polish) (https://redakcja.www.gov.pl/web/premier/projekt-ustawy-o-zmianie-ustawy-o-prawach-konsumenta-oraz-ustawy-o-konsumenckiej-pozyczce-lombardowej)
  3. Eximee. Banking sales (https://eximee.com/banking-sales/)
  4. Eximee. Omnichannel banking (https://eximee.com/omnichannel-banking/)
  5. Eximee. Customer information and communication (https://eximee.com/customer-information-communication/)
  6. Eximee. Self-service (https://eximee.com/self-service/)
  7. What is WCAG and why should you implement it in your organisation (https://eximee.com/blog/what-is-wcag-and-why-should-you-implement-it-in-your-organisation/)
  8. WCAG in Eximee – How our low-code platform supports accessibility compliance (https://eximee.com/blog/wcag-in-eximee-how-our-low-code-platform-supports-accessibility-compliance/)
  • Automation
  • Eximee news
  • UX

Authors

Eximee Team