What you’ll build
Build a system where each of your end users has a balance, Account Numbers to receive money, and a movement history.When to use it
Reach for this pattern when your product holds a balance per end user:- Neobanks and fintech apps.
- B2B platforms holding client funds.
- Marketplaces or gig platforms where sellers accumulate earnings before cashing out.
Three patterns: pick one
You can model a user wallet on Fintoc in three ways. The patterns differ in what Fintoc tracks and whether each user needs Know Your Customer (KYC). Start with the pattern that requires the fewest per-user resources and still fits your requirements.Pattern A: one Account Number per user (virtual Account Numbers)
- Structure: one Fintoc
Account(yours) with many Account Numbers, one per user. - Per-user balance: you track it in your own database. Fintoc holds the aggregate balance.
- KYC: none per user. Only your root
Entityis onboarded.
- Use your root
Account. - Create one Account Number per user with
metadata.user_id. - On
transfer.inbound.succeeded, credit the user’s balance in your database. - For withdrawals, create an outbound
Transferfrom your rootAccountand debit the user’s balance in your database.
Pattern B: one Account per user under your Entity (sub-accounts)
- Structure: many
Accountobjects, all under yourEntity. EachAccounthas its own balance and root Account Number. - Per-user balance: Fintoc tracks each user’s balance at the
Accountlevel. You can view the balance in the dashboard and statements. - KYC: none per user.
- Create an
Accountby sendingPOST /v2/accountswith yourEntity’s ID. The newAccountincludes a root Account Number. - On
transfer.inbound.succeeded, usedata.account_idto identify the user. - Use
data.account_idas the source of funds for withdrawals.
Pattern C: one Account per user under their own Entity
- Structure: many
Entityobjects (one per client). EachEntityhas one or moreAccountobjects and root Account Numbers. - Per-user balance: Fintoc tracks each user’s balance at the
Accountlevel. - KYC: required per
Entity. You run KYC through the API without using the dashboard.
- Create the client’s
Entityand run its KYC review through the API. Follow Onboard an Entity by API to create theEntity, upload company and shareholder documents, and submit the onboarding. - Wait for the
entity.onboarding.approvedwebhook or poll the onboarding status to confirm approval. - Create one or more
Accountobjects under theEntityby sendingPOST /v2/accountswith theEntity’sentity_id. EachAccounthas its own balance and root Account Number. A clientEntitycan hold more than one sub-account, as in Pattern B. Outbound transfers show the client’s legal name on the Comprobante Electrónico de Pago, the Mexican payment receipt.
Entity objects through the API without dashboard steps. For other countries, create the Entity from the dashboard.