Financial behavior, made explicit
A foundation for financial software.
FinKore is an open-source, language-independent specification for financial behavior. You get explicit requirements, portable acceptance cases, and operation contracts for machine clients.
Your team implements the rules in your own product, choosing the language, architecture, and tools to execute the cases.
FinKore Core 2.0.2 stable
Your product may be unique.
Your financial rules don't have to be.
Handling amounts, approving changes, preserving history: the same questions recur across financial products. FinKore makes those rules explicit, so your team can build on a shared reference instead of defining them from scratch.
One amount, two explicit policies
What happens to 10.005 EUR?
At scale 2, the declared rounding mode changes the result. CoreDoc requires an explicit policy; the Money specification defines each mode.
Follow the rule and its acceptance cases| Mode | Result |
|---|---|
HALF_UP | 10.01 EUR |
HALF_EVEN | 10.00 EUR |
-
Specifications
Precise financial requirements, stable identifiers, invariants, and portable errors, refining the CoreDoc obligations.
-
Acceptance case manifest
Discover portable inputs and expected observations, linked to requirements for evaluation in your environment.
-
Agentic Contract
Canonical operation semantics, inputs, outputs, errors, effects, and safety metadata for machine clients.
Repository maintenance tools validate these published artifacts. Your team supplies the financial implementation and owns invocation, observation, comparison, and reporting. Artifact checks do not execute financial behavior or establish implementation conformance.
Choose your next step
Read, implement,
or contribute.
Reuse the financial rules and acceptance evidence. Bring your own product logic and implementation.
Read the CoreDoc
Understand why money, identity, history, and approvals need explicit rules.
Build on itImplementation guide
Choose a domain, implement its rules, and check the results against the acceptance cases.
Improve the contractFirst contribution
Choose a small problem, find its source, verify your change, and open a Pull Request.
Explore the CoreDoc
Know the principle.
Explore the rule.
Start with the question in front of you. Open a principle, choose a rule, and read its reasoning here on the site.
5 principles 19 foundational rules
These are the CoreDoc foundations. The domain specifications refine them into precise requirements.
Read the complete CoreDocCORE-001Monetary IntegrityHow do amounts retain their value and currency through calculation?
CORE-002Controlled Financial StateWhich changes are permitted, and what happens when a change is rejected?
CORE-003Financial History and EvolutionHow are original facts preserved when later actions change their effect?
CORE-004Approval IntegrityWhat was approved, by whom, and does that approval still apply?
CORE-005Identifiable and Determinable Financial MeaningCan a reviewer identify the subject, distinguish conditions, and reproduce the outcome?
Licensing · Built for commercial adoption
Build on FinKore.
Keep your product yours.
Designed for banks, fintechs, SaaS platforms, and ERPs. Build on shared financial rules while keeping control of your technology and the business you build around it.
Explore the licensing-
Commercial use. No royalties.
Build proprietary products and paid services without license royalties or a required support purchase.
-
Your implementation. Your choices.
Choose your language, stack, and deployment. Your original implementation of the rules can remain proprietary.
-
Open foundations. Clear terms.
MPL-2.0 preserves the license and notices of covered FinKore files when you distribute them, including your modifications.
The person behind FinKore
Meet the Founder
Will Gittens
Founder & Lead Maintainer FinKore
With over 25 years in software engineering, Will Gittens has built and led software projects across international teams, working extensively with complex financial systems, approval workflows, expense management, and enterprise applications.
His experience in financial software reinforced a belief: the most important engineering decisions should never be hidden inside implementation details. They should be explicit, testable, and open to scrutiny.
That belief led him to create FinKore.
As Founder and Lead Maintainer, Will is responsible for the project's architectural direction, technical consistency, and long-term vision. His ambition is to bring together engineers, architects, and domain specialists who can challenge assumptions, contribute their expertise, and collectively raise the standards of financial software engineering.
He believes the most valuable open-source projects are not defined by how much code one person writes, but by the knowledge they bring together and the trust they earn over time.
Connect with Will on LinkedIn“Great foundations are not built by one person. They are built through shared knowledge, strong principles, and the commitment to make things better.”