SchoolHeaderSchoolNavSchoolHeaderSchoolNavOpen, fund and group accounts on any platform
What actually goes wrong
Each terminal works perfectly. The gaps between them are where the day goes.
A brokerage that runs two platforms runs two account-opening processes, two group structures, two sets of credentials to issue and two consoles to check before answering a question. Run four and the desk is no longer operating a business; it is operating a translation layer between systems that were never meant to know about each other.
None of the failures below are platform faults. They happen in the space between the CRM and the terminal, which is exactly the space nobody owns — and where an account ends up in the wrong group, on the wrong leverage, or opened twice because the first attempt appeared not to have worked.
Accounts are created from the client record, on whichever platform the product sits on, and the credentials go to the client without an operator ever opening a terminal. What took a manager ten minutes and a context switch becomes a request the client submits themselves.
Group assignment follows rules: the product, the client’s country, their KYC state, their account type and whether an introducing partner is attached. Spreads, commissions and swap terms are decided by that rule rather than by whoever created the account that afternoon.
Clients request through the portal, the request checks their KYC state, jurisdiction limits and open positions, and approval is a recorded action at the right level. A leverage change is a risk decision, and it now leaves the same trail as one.
Demo accounts sit on the same client record as live ones, so converting is a step rather than a new registration. The prospect who has been practising for three weeks does not re-enter their details, and the desk can see who is actually ready to fund.
Accounts carry their purpose on the record — product, currency, platform, nickname, state — rather than being a number the client has to recognise. A client with six accounts across two platforms can find the one they meant, and so can the agent on the phone.
Credit and bonuses are tracked separately from balance, with their own release conditions and their own expiry. What is withdrawable and what is not is a fact on the record instead of a rule somebody remembers to apply when the withdrawal request arrives.
Inactivity rules flag, restrict and archive accounts on your own schedule, with the client notified on the way. The platform stays clean, the reporting stops counting accounts nobody has touched since 2021, and the desk knows what is actually live.
What is in it
The whole life of an account, run from the record rather than from four terminals.
From the client record, on whichever platform the product lives on, with credentials issued to the client directly. Requests can be self-service from the portal or raised by the desk, and either way the checks run before anything is created.
The commercial settings, decided by rule rather than by hand. Group assignment drives spread, commission and swap terms, so getting it wrong is a pricing error rather than an administrative one — which is why it is not left to the moment of creation.
The wallet sits between the payment rails and the accounts, so a client funds once and allocates afterwards. Credit is tracked apart from balance because the two behave differently the moment somebody tries to withdraw.
Accounts change state, and every change is a recorded decision: restricted for compliance, closed to new positions, dormant through inactivity or archived. The client is told when the state affects them, rather than discovering it at the worst moment.
Who signs in
The point of the module is that nobody below needs a terminal login to do their job.
Every platform works. What costs you the day is the space between them.
Questions about the module
What a dealing desk usually wants confirmed before the CRM starts creating accounts.
MT5, cTrader, Match-Trader, VertexFX, Leverate and Piptrex ship as bridges, and more than one can run at the same time — which is the case worth designing for, because a desk that offers two platforms is otherwise running two of everything. The client record holds accounts across all of them at once, so a client with an MT5 account and a cTrader account is one relationship rather than two, and the desk answers questions about both from the same screen.
By rule, evaluated when the account is created. The product being opened, the client’s country, their KYC state, the account type and whether an introducing partner is attached all feed the decision, and the first matching rule wins. This matters more than it sounds: the group carries spread, commission and swap terms, so an account in the wrong group is mispriced rather than just misfiled, and it will usually be a client who notices first. Changing a group later is possible and leaves an approval trail.
Yes, within whatever limits you set. From the portal or the app a client can request an account on a product available to them, name it so they can tell it apart from the others, and fund it from their wallet. The checks run before anything is created: KYC state, jurisdiction rules, and any cap on how many accounts of a type one client may hold. Where your desk would rather approve each one, that is a setting rather than a different product, and the request simply queues for an operator instead.
As a request with checks behind it rather than as a message to somebody. The client asks from the portal; the request tests their KYC state, the leverage cap for their jurisdiction and whether they currently hold open positions; and approval is a recorded action by an operator entitled to make it. Increases can require a higher approval level than decreases, which is usually how a desk wants it. The change lands on the platform without anyone opening a terminal, and the whole thing is on the trail afterwards.
It is, because the two behave differently the moment a client tries to withdraw. Credit and bonuses are tracked apart from balance with their own release conditions — a volume requirement, a time period, whatever your promotion specifies — and their own expiry. The withdrawable figure is calculated from that rather than assumed, so a withdrawal request that would take out unreleased credit is stopped with a reason the client can read. Promotions that do not work this way tend to produce complaints that are expensive to answer.
Inactivity rules you set: after so long without a login or a trade an account is flagged, then restricted, then archived, with the client notified at the points you choose. History is retained rather than deleted, so the account can still be produced for a query or an audit years later, and reporting can exclude dormant accounts so growth figures reflect accounts somebody is actually using. It also keeps the platform itself tidy, which matters on terminals where licence costs scale with account count.