A ready-made FinTech backend can support your standard payment flows while leaving a new fee rule, provider connection, or approval process unresolved. The architectural task is to close that gap without creating unnecessary dependencies or maintenance work.
Start with the required business outcome. Use configuration when existing settings cover it, an external extension when supported interfaces can deliver it, and source-code changes when the behaviour must sit inside the backend.
This article explains how to choose between configuration, external extensions, and source-code changes, map requirements to existing capabilities, validate fee and payout scenarios, and plan delivery and maintenance. We will also explore how SDK.finance, a FinTech software development company, helps teams adapt their backend business logic and integrate third-party services, with the scope defined by project requirements and the selected delivery model.
Talk to our team and get a development approach tailored to your business model.
Get a FinTech development estimateWhen is backend customisation worth it?
A missing feature is a starting point for investigation. Justify a change through the outcome it enables: supporting a required payment journey, introducing a pricing rule, reducing manual exception handling, or connecting a provider the business needs.
Record who benefits, how you will measure the result, and what happens if the change is deferred. Compare that value with implementation and ongoing support effort. If an existing setting or a simpler operating process meets the requirement, avoid creating a separate component to maintain.
Prioritise changes that remove a material constraint or support a distinctive product capability. Defer additions whose expected value is unclear or whose dependencies cannot yet be tested. If the software foundation itself is still undecided, our build-versus-buy comparison covers that earlier decision.

Map your requirements to existing backend capabilities
Describe each requirement as an observable outcome. “Add a new provider” is too broad. Specify the operation, who initiates it, how success and failure are recorded, and how operations staff resolve an uncertain result.
Connect the requirement to a business result, such as enabling a required payout route or reducing manual investigations. The table below maps three example requirements to existing capabilities and questions to resolve:
| Requirement | Documented starting point | Gap and open questions |
|---|---|---|
| Charge a fixed amount plus a percentage for a selected operation. | Contract fee settings include “Fixed and percent,” amount ranges, and fee periods. | Confirm the operation, contract, currency, rounding, fee payer, and effective date. Check whether the existing options express the full rule. |
| Route an initiated withdrawal to a preferred external provider. | A withdrawal initiation event is documented for appropriately configured external gate providers. | Build the provider integration and verify the full result-update flow, duplicate handling, reconciliation, and availability in the selected deployment. |
| Approve a transaction and its related financial entries together under a new business rule. | Existing operation behaviour is the baseline for assessment. | Support for this hypothetical rule is unverified. Check whether a supported workflow can enforce it before proposing a source-code change. |
A completed assessment should name the next action and approver. For this illustrative fee change, the product owner approves the charging rule and the technical lead confirms its fit. Acceptance requires the expected fee, account entries, and customer-facing amount to agree. Mark each capability as documented, demonstrated in the target environment, or unresolved.
Choose between configuration, external extensions and source-code changes
Configuration changes available settings, such as a fee rule or transaction limit. An external extension adds logic through supported APIs or events. A source-code change modifies the licensed backend where configuration and supported interfaces cannot fulfil the requirement.
Choose the least complex approach that covers the complete workflow. Compare the options below, then check the constraints that could rule out your initial choice:
| Decision criterion | Configuration | External extension | Source-code change |
|---|---|---|---|
| Required behaviour | Already supported by available settings | Can be composed through documented interfaces | Requires internal behaviour unavailable through supported options |
| Data access | Existing product fields are sufficient | APIs and events expose the necessary data | Internal model changes may be needed |
| Transaction consistency | Existing processing rules remain suitable | Separate processing is acceptable, with defined recovery | Internal coordination must change after supported alternatives are ruled out |
| Operational ownership | Own settings, approval, and validation | Own integration, monitoring, and incident recovery | Own modified code, deployment, and regression testing |
| Upgrade work | Recheck settings and affected outcomes | Check API and event compatibility | Assess upstream changes, merge differences, and retest |
Check the constraints that can change your approach
Check when a decision must take effect
A notification that an operation has started is not proof that an external service can block it before funds move. If a rule must stop a payment, identify the supported control point before execution. If no such control exists, an after-the-event notification cannot fulfil the requirement.
For processes that can complete in stages, an external service may be suitable. Define what happens while the provider’s result is unknown, how the platform receives the final outcome, and who investigates a transaction that remains pending.

Keep financial records authoritative
An external service can make a business decision while leaving the backend responsible for balances and transaction records. Avoid creating a second, conflicting balance calculation just to implement a feature.
Where several financial changes must succeed or fail together, ask the team to demonstrate that guarantee through supported operations. Writing directly to internal database tables can bypass checks and introduce dependencies on implementation details. Treat it as an architectural concern, not a shortcut around a missing API.
Include the user and operational interfaces
A backend change may also affect the fee shown before confirmation, a transaction status in the app, or an investigation view in the backoffice. Include these surfaces in the scope. A correct calculation that the user cannot see, or an exception that support cannot investigate, leaves the requirement incomplete.
Confirm access and modification rights
Check which settings, interfaces, and code your selected delivery model lets the team change. Confirm those rights before estimating the work.
Define security, performance and recovery criteria
For each change, identify the data it reads or sends, the permissions it needs, and the actions that must be logged. Ask the delivery team to show how the design handles failed authentication, unavailable providers, and interrupted processing.
Set acceptance criteria for expected load, response times, and recovery. A new integration can introduce delays or bottlenecks even when the backend itself has capacity. Test those criteria against the complete workflow and involve security or compliance reviewers where the change affects their controls. Use the OWASP API Security Top 10 as an additional review reference for risks such as broken authorisation, unrestricted resource consumption, and unsafe use of third-party APIs.
Talk to our team and get a development approach tailored to your business model.
Get a FinTech development estimateWork through two practical scenarios
Scenario 1: Configure a fixed and percentage fee
- Business requirement: charge EUR 0.50 plus 1% for an eligible EUR operation under a selected customer contract. The customer must see the agreed charge, and the financial records must reflect it. This scenario is illustrative.
- Proposed approach: use configuration if the documented “Fixed and percent” fee type covers the full rule. For EUR 100, the expected fee is EUR 100 × 1% + EUR 0.50 = EUR 1.50, excluding any separate provider cost.
- What must be verified: the operation, currency, amount range, effective period, fee payer, and rounding policy. Confirm whether the fee is added to the amount paid or deducted from the amount delivered. The consulted fee guides do not settle every boundary and rounding detail.
- Acceptance evidence: demonstrate the correct fee, payer’s debit, recipient’s credit, fee record, and amount displayed before confirmation. Include threshold and date boundaries, insufficient funds, failed or repeated requests, and reversals; unrelated contracts and operations should retain their existing behaviour.

Before release, record the previous configuration and have a second reviewer approve the change. Restoring settings affects future operations; agree a separate correction process for any fees already charged.
Scenario 2: Connect an additional payout provider
- Business requirement: add a payout route for eligible wallet withdrawals, with a clear result for the customer and a traceable exception for operations staff. This scenario is illustrative and depends on the deployment and provider.
- Proposed approach: assess an external integration using the documented withdrawal initiation event for appropriately configured external gate providers. The integration must translate provider requests and results and update the backend through supported interfaces.
- What must be verified: the complete initiation-to-result workflow, provider readiness, duplicate handling, and reconciliation. If a decision must precede funds movement, confirm the control point identified in the architecture review. Agree how long an unknown result can remain pending and who investigates it.
- Acceptance evidence: retries produce no unintended second payout, transaction statuses agree across systems, and operations staff can trace rejected or unresolved requests. Test provider outages and reconciliation differences. AWS’s guidance on making retries safe with idempotent APIs explains the use of request identifiers to recognise repeated requests.
Estimate delivery effort and long-term ownership
Estimate the agreed change, including its dependencies and acceptance criteria. Separate the initial delivery effort from the recurring work required to keep it operational. For a broader discussion of the work beyond the initial build, see our article on the hidden costs of FinTech product development.
Scope the initial work and delivery dependencies
Include requirement analysis, configuration or development, provider integration, changes to client and backoffice interfaces, testing, and release preparation. Add migration or historical-data work only where the change requires it.
A useful estimate states its assumptions: available provider credentials and test environments, confirmed API behaviour, representative test data, required reviews, and internal decision-makers. Provider onboarding or an unresolved workflow can delay delivery independently of engineering effort.
Ask for an estimate by workstream with named dependencies and unresolved questions. Avoid treating a small code change as a small project when it affects balances, payment execution, or recovery.
Assign responsibility after release
For external extensions, budget for monitoring, incident recovery, provider changes, and compatibility checks. Keep a record of the interfaces and transaction states the extension depends on, and retest affected flows when either system changes.
For source-code changes, keep modifications traceable to the base version and the business requirement. SDK.finance’s support and update guidance assigns merging supplied updates, testing, and resolving merge issues to the customer’s team. Custom development and third-party modifications need their own agreed support scope.
Include architecture decisions, configuration records, test evidence, operational access, and recovery procedures in the handover so the assigned team can operate the change.
Resolve open dependencies before treating an estimate as a delivery commitment. Use the approval checklist below to record the agreed scope.
Use the SDK.finance implementation guide to place these decisions within the wider delivery plan, and the technical overview to explore the available testing documentation.

What to agree before implementation
Use a short change brief to align the product owner, solution architect, and delivery team before approving the work:
- Scope and outcome: the workflow to change, the intended business result, and what is outside the release.
- Approach and dependencies: configuration, external extension, or source-code change; required access, provider readiness, and unresolved assumptions.
- Acceptance evidence: the financial results, user-visible behaviour, security, performance, and recovery checks required for approval.
- Delivery and ownership: the estimate, milestones, approvers, and teams responsible for release, incidents, and future updates.
- Release and recovery: how the change will be introduced and monitored, when rollout should stop, and how service and affected financial records will be corrected.
Customise a FinTech backend with SDK.finance

SDK.finance is a FinTech software development company with 15+ years of FinTech experience and a team of 40+ professionals. The company combines experience in payment flows, transaction accounting, reconciliation, and integrations with the ready-made SDK.finance Transaction Platform.
For a change to the SDK.finance backend, the team assesses which requirements the Platform already covers and defines the remaining development scope, milestones, and responsibilities.
SDK.finance’s FinTech backend software development services help turn those requirements into a working extension through:
- Requirements assessment: the team maps requirements to existing Platform capabilities and identifies where custom development is needed.
- Development and integration: the team adapts backend business logic and workflows and connects third-party services within the selected delivery model.
- Technical validation: a proof of concept tests a critical integration or technical assumption before wider development.
- Release and ongoing development: SDK.finance provides testing, deployment support, and a dedicated development team where required by the engagement.
The delivery model depends on the depth of the required backend changes and the operational responsibilities the client’s team can take on:
- SaaS: the client uses the Platform without access to its backend source code. Adaptation relies on available configuration options and external integrations built with supported APIs and webhooks. SDK.finance manages application hosting and scheduled Platform updates; the client manages its databases.
- Source Code Licence: the client receives access to the Platform’s source code for deployment and modification under the licence terms. This enables changes to internal business logic beyond configuration and API-based extensions. The client is responsible for infrastructure and maintenance, including its modifications and the integration of future updates.
The development engagement is agreed separately from the subscription or licence, including responsibility for implementing and supporting the changes.
FinTech software customisation in practice: Geidea
Geidea’s transaction accounting project illustrates how a ready-made backend can be customised around an established payment business. Using SDK.finance software under a Source Code Licence, a joint team of SDK.finance and Geidea specialists developed custom features on top of the existing Platform.
The transaction core already provided ledger functionality. It was adapted to collect POS transaction data, link it to merchant accounts, and track payment status through bank settlement and payout. The project also included automated reconciliation and a merchant back office with access to balances, transaction history, and payout reports.
Fee management provides a concrete example: the team built on the Platform’s existing fees and limits functionality so commissions could be changed without further source-code changes or redeployment. The Geidea case study shows how platform reuse, targeted development, and integration work addressed specific operational requirements.

Turn your requirements into a maintainable backend
A maintainable FinTech backend starts with a clear distinction between what the platform already supports and what the business needs to change. Configuration, external extensions, and source-code modifications each carry different testing and ownership requirements. The appropriate choice is the one that fulfils the complete workflow and leaves the team able to operate and maintain it.
Before committing to development, resolve the uncertainties that could change the architecture or estimate. For CTOs and solution architects, the outcome should be a defined scope, evidence that the proposed approach can work, and clear responsibility for release and ongoing support. This gives future changes a documented starting point.
Prepare your requirement-to-capability map and review it with the SDK.finance team before committing to implementation.
Talk to our team and get a development approach tailored to your business model.
Get a FinTech development estimate
