B2COPY API

One API for Copy Trading, PAMM, and MAM

B2COPY runs three investment models — Copy Trading, PAMM, and MAM — across MetaTrader 4, MetaTrader 5, cTrader, and B2Trader. One Broker API drives all of it: the same accounts, subscriptions, fees, and events, published as gRPC proto contracts and as JSON REST over HTTPS.

3 models
Copy Trading, PAMM, and MAM — all first-class in the same Broker contract.
4 platforms
MetaTrader 4, MetaTrader 5, cTrader, and B2Trader behind one account model.
gRPC + REST
Two forms of one API — the choice is your stack, not your feature set.
On request
Additional methods, events, and a surface shaped to your CRM.

Coverage

Three Investment Models, Four Trading Platforms, One Contract

Copy Trading, PAMM, and MAM are product families inside the same Broker API — not three separate integrations. The trading platform is a property of the account, so the same calls work whether the login lives on MetaTrader 4, MetaTrader 5, cTrader, or B2Trader.

Copy Trading

Investors mirror a master through copier subscriptions. Create, update, pause, unsubscribe, and restore a link, and read copying settings back for your CRM.

Copier links

PAMM

PAMM subscriptions have their own methods in the same service, plus read models for processed virtual close deals and closed positions.

PAMM links + deal reads

MAM

MAM masters are served through the copier subscription model — a master registered as a MAM master takes investors through the same link calls.

MAM masters

Trading platforms

One Account Model Across Every Connected Server

A B2COPY account is created for an existing trading-platform login. The platform is a property of that account, so your CRM calls the same endpoints whether the login lives on MetaTrader 4, MetaTrader 5, cTrader, or B2Trader.

MetaTrader 4

MT4 logins register as B2COPY accounts. PAMM deal reads carry the MT4 order ID and order state used for deduplication on that platform.

MT4

MetaTrader 5

MT5 logins use the same account and subscription calls. PAMM deal reads carry the MT5 deal ID instead of an MT4 order ID.

MT5

cTrader

cTrader accounts join the same Broker contract — create, list, subscribe, and settle fees without a separate integration path.

cTrader

B2TRADER

B2Trader accounts are first-class in the same account model, so a multi-platform book stays under one set of Broker API calls.

B2Trader

Transports

Two Forms of the Same API

Not two products and not two feature sets — one platform published over two transports. Copy Trading, PAMM, and MAM are behind both, on every connected trading server. Start with JSON endpoints in the back office and move performance-sensitive paths to gRPC later without changing credentials or data model.

broker/accounts/v1/link/link_service.proto

One declaration

rpc CreateCopierLink(CreateCopierLinkRequest) returns (CreateCopierLinkResponse) {
option (google.api.http) = {
post: "/api/broker/accounts/v1/link/copier/create"
body: "*"
};
}
gRPC
LinkService/CreateCopierLink
CreateCopierLinkRequestCreateCopierLinkResponse

Generated client · protobuf messages

JSON REST
POST /api/broker/accounts/v1/link/copier/create
Authorization: Bearer <access_token>
Content-Type: application/json

Plain HTTPS · no gRPC toolchain

One service · one request and response · the transport is the only difference

gRPC · Proto Contracts

Services and messages are defined in shared .proto files — subscription management for integrators lives in b2copy.broker.accounts.v1.link. Generate typed clients in your language and keep strict typing across server-to-server traffic.

Strict typing · high throughput

JSON REST · Over HTTPS

The same Broker API service carries HTTP annotations and an OpenAPI description, so a CRM or back office can call plain JSON endpoints with a bearer token — no gRPC toolchain, no code generation step.

Fast integration · CRM-friendly

CRM integration

CRM Integration Prerequisites

Integrating an external CRM is a first-class scenario with its own documented setup. Four things have to exist before the first call — all of them on your side except the key registration.

A Service Admin

The Admin panel account your CRM acts as. It is the identity behind every request your system makes.

Signed JWT with Three Claims

Each token your CRM issues carries admin_id for the service admin, device_ip for the calling address, and key_id for the signing key — signed with ES256.

An EC Key Pair

A P-256 key pair. Keep the private key; hand the public key and its identifier to B2COPY support so the platform can verify your tokens.

An IP Allowlist

Register the addresses your CRM calls from. Restricting the service admin to known addresses is the recommended setup.

Staying in sync

Event-Driven Synchronization

Two documented ways to keep your CRM in step with the platform. Callbacks push canonical event batches to your endpoint; polling settles asynchronous fee charges with the same request_id until they finish.

PushPlatform calls you
B2COPY
webhook
Your CRM

account.created

{ trigger, events[] }

fee.charged

{ trigger, events[] }

Canonical JSON from the Broker contract. Sample endpoints return an example batch.

PullYou poll until it settles

POST /api/broker/fees/v1/fee/process

{ account_login, request_id }

1PENDINGqueued
1PENDINGsame request_id
2SUCCESSfinal
3ERRORthe other final status

Callbacks for Account.Created and Fee.Charged

The Broker API publishes canonical JSON payloads for two triggers: account.created when a new B2COPY account appears, and fee.charged when a fee is durably charged or accrued. Sample endpoints return an example batch; your route receives the same schema when fields map 1:1.

In the Broker contract

Documented Polling Where State Settles

Fee processing is explicitly asynchronous: the first call can return PENDING, and your CRM repeats the request with the same request_id until it settles as SUCCESS or ERROR.

Documented

Planning an integration?

Bring Your CRM and Platform Mix — We Will Scope the API Calls with You.

Scope, stated plainly

Documented Today, or Built on Request

The left column is what the published API documentation and the proto contracts already describe. The right column is work we are set up to do — extension is routine here, and the scope is agreed per integration rather than promised up front.

Feature
Documented today
In the API documentation and proto contracts
Built on request
Scoped with the B2COPY team
AuthorizationBack-office sign-in, side-auth URL, and user-id resolve in the Broker API; CRM JWT exchange through the admin auth surfaceClaim mapping and token handling aligned to your identity provider
Accounts and usersCreate a B2COPY account from an existing trading-platform login; list accounts and users with filters and pagingExtra filters, response fields, and bulk operations for back-office tooling
SubscriptionsFull copier and PAMM link lifecycle in the Broker API; MAM masters use the same copier callsAdditional subscription operations your workflow depends on
Trading platformsAccounts on MetaTrader 4, MetaTrader 5, cTrader, and B2Trader behind one account modelPlatform-specific fields or bulk operations for a mixed book
FeesOn-demand fee processing for an investor account, tracked by your request_id until PENDING settlesReconciliation and reporting cuts for your finance stack
Event deliveryaccount.created and fee.charged webhook payloads; status polling for asynchronous fee processingAdditional triggers and delivery options scoped with the B2COPY team
PAMM activityList processed PAMM deals and closed positionsCustom reporting cuts for your PAMM stack

JSON REST

Documented Broker API Flows

The public Broker API contract — the surface built for broker and CRM integrators, covering Copy Trading, PAMM, and MAM on every connected trading server. Paths are shown without a host: yours is environment-specific and issued together with your credentials. Every call after sign-in carries the access token as a bearer token.

Authorization

b2copy.broker.auth.v1.authn

Sign in a Back Office administrator, hand a client into the Web UI already signed in, or resolve the B2COPY user behind a trading account. CRM systems that mint their own JWT still exchange it through the admin auth surface — the bearer token that comes back authenticates against this same Broker API.

Sign in

POST /api/broker/auth/v1/sign-in

access_tokenrefresh_token

Every following call

Authorization: Bearer <access_token>

Same admin JWT model the rest of the Broker API authenticates against — gRPC and JSON REST alike.

  • POST /api/broker/auth/v1/sign-inAuthenticate a Back Office administrator and receive an access and refresh token pair.
  • POST /api/broker/auth/v1/side-auth-url/createGenerate a one-time side-auth URL for a trading account, so the client arrives in the B2COPY Web UI already signed in.
  • POST /api/broker/auth/v1/user-id/resolveResolve or create the B2COPY user for a trading account and return its user identifier.

Accounts and Users

b2copy.broker.accounts.v1.account · …user

Register an existing MetaTrader 4, MetaTrader 5, cTrader, or B2Trader login as a B2COPY account, and read accounts and user profiles back for CRM views. The product family — copier, PAMM, or MAM — is a field on the account, so one set of calls covers all three. Owner info is embedded in list rows, so most list screens need a single call.

EndpointPurpose
POST /api/broker/accounts/v1/account/createCreate a B2COPY account record for an existing trading-platform account — the trading account itself is not created by this call.
POST /api/broker/accounts/v1/account/listList trading accounts with filtering, sorting, and paging. Basic owner fields ship with every row.
POST /api/broker/accounts/v1/user/getRead a single user profile.
POST /api/broker/accounts/v1/user/listList users with filtering and paging.

Subscriptions

b2copy.broker.accounts.v1.link

Copier and PAMM subscription management end to end — create, update, read, list, disable, and restore. MAM runs through the copier methods: a master registered as a MAM master takes investors through the same calls. Every method publishes a JSON endpoint alongside the gRPC surface.

EndpointPurpose
POST /api/broker/accounts/v1/link/copier/createCreate a copy-trading subscription between an investor and a master.
POST /api/broker/accounts/v1/link/pamm/createCreate a PAMM subscription.
POST /api/broker/accounts/v1/link/copier/updateUpdate copying settings on an existing copier subscription.
POST /api/broker/accounts/v1/link/pamm/updateUpdate settings on a PAMM subscription.
POST /api/broker/accounts/v1/link/deleteDisable a subscription.
POST /api/broker/accounts/v1/link/restoreRestore a previously disabled subscription.
POST /api/broker/accounts/v1/link/copier/getRead a single copier subscription.
POST /api/broker/accounts/v1/link/pamm/getRead a single PAMM subscription.
POST /api/broker/accounts/v1/link/copier/listList copier subscriptions with paging.
POST /api/broker/accounts/v1/link/pamm/listList PAMM subscriptions with paging.

Fee Processing

b2copy.broker.fees.v1.fee

Charge outstanding copy-trading fees for an investor on demand — the call brokers make before letting a withdrawal go through. PENDING means fees were queued; repeat with the same request_id until SUCCESS or ERROR.

EndpointPurpose
POST /api/broker/fees/v1/fee/processProcess copy-trading fees for an investor account. Takes account_login and your request_id; returns PENDING, SUCCESS, or ERROR.

Webhook Payloads

b2copy.broker.brokernotifications.v1.event

Canonical JSON shapes for the two broker notification triggers. Sample endpoints return an example batch; the response schema is the contract your CRM route receives when fields map 1:1.

EndpointPurpose
GET /api/broker/brokernotifications/v1/events/account-created/sampleSample account.created webhook batch — fired when a new B2COPY account is created.
GET /api/broker/brokernotifications/v1/events/fee-charged/sampleSample fee.charged webhook batch — fired when a fee is durably charged or accrued.

PAMM Deals and Positions

b2copy.broker.pamm.v1.deal · …position

Read models for PAMM activity your CRM or reporting stack needs after a subscription is live.

EndpointPurpose
POST /api/broker/pamm/v1/deal/listList processed PAMM virtual close deals.
POST /api/broker/pamm/v1/position/listList closed PAMM positions.

The request_id on fee processing is your own idempotency key — repeating the call with the same id reports the status of the already-submitted charge instead of charging again. Legacy compatibility routes under /api/v2/… and /api/v1/standalone/… still exist for older clients; the paths above are the canonical Broker API.

On request

Any API Your Integration Needs — We Can Build It

The Broker contract above is the starting point, not a ceiling. Extra methods, extra events, or a dedicated surface shaped to your CRM are scoped per integration. Bring the scenario; we agree the contract. Dates come after we understand the model — not before.

Additional Methods and Fields

If an operation, filter, or response field is missing, we add it to the same Broker API — gRPC and JSON REST together.

Same contract

New Webhook Triggers

account.created and fee.charged already ship. Other events your CRM has to react to can be designed into the same notification surface.

Same delivery model

A Surface Shaped to Your CRM

When the fit is not a handful of extra calls, we can publish a dedicated set of requests for your stack — still the same platform, credentials, and data model.

Scoped together

gRPC

The Proto Contract Behind the Same Flows

The Broker API is defined in protobuf under b2copy.broker.*. Every service above publishes both gRPC methods and JSON REST annotations from the same .proto files — one contract, two transports.

Broker Packages

b2copy.broker.*

Named by domain. These are the packages that generate the JSON routes listed above.

PackagePurpose
b2copy.broker.auth.v1.authnSign-in, side-auth URL, and user-id resolve.
b2copy.broker.accounts.v1.accountCreate and list trading accounts for an existing platform login.
b2copy.broker.accounts.v1.userGet and list user profiles.
b2copy.broker.accounts.v1.linkCopier and PAMM subscription lifecycle — create, update, get, list, delete, restore.
b2copy.broker.fees.v1.feeOn-demand fee processing with PENDING / SUCCESS / ERROR.
b2copy.broker.brokernotifications.v1.eventCanonical account.created and fee.charged webhook payloads.
b2copy.broker.pamm.v1.deal · …positionPAMM deal and closed-position list reads.

Service, method, and package names above come from the contract itself. If the operation your CRM needs is not in it, that is a scoping conversation — not a dead end.

Customization

Extending the API for Your CRM

The documented request set already covers the typical CRM and back-office scenarios — authorize, onboard a client, create accounts, read account and statistics data, and settle fees before a withdrawal. When an integration needs something beyond it, we add requests and methods; here that is normal practice rather than an exception.

1 API3 models · 4 platforms

Copy Trading, PAMM, and MAM across MetaTrader 4, MetaTrader 5, cTrader, and B2Trader — one contract, published as gRPC and JSON REST. Start with JSON endpoints in your back office and move performance-sensitive paths to gRPC later: same platform, same credentials, same data model.

Additional Requests and Methods

If your CRM needs an operation, filter, or response field the current set does not expose, we can add it. Bring the scenario and we work out the contract with you.

Architecture Worked Out Together

Walk us through your CRM data model, onboarding, and reconciliation flow. We map it onto the API surface and show which documented flow covers which step.

More Events When You Need Them

account.created and fee.charged already ship in the Broker contract. If your CRM needs another trigger or a different delivery shape, we scope that together.

The Broker Contract as the Baseline

The public b2copy.broker.* packages are the starting point for every integration, so your developers work from the same .proto files the platform ships.

Tell us how your CRM is put together and what it has to keep in sync — we will map it onto the API and flag what needs extending.

常見問題解答

常見問題

Two: gRPC, where services and messages come from shared proto contracts, and JSON REST over HTTPS. They are two forms of one API against one platform — the same accounts, subscriptions, fees, and statistics — so the choice is about the stack you already run, not about which capabilities you get.

Yes. All three are product families inside the same Broker contract rather than three integrations. Copy Trading uses copier subscriptions; PAMM has its own subscription methods plus deal and closed-position reads; MAM masters are served through the copier methods — a master registered as a MAM master takes investors through the same calls. The product family is a field on the account, so your CRM reads and filters all three the same way.

MetaTrader 4, MetaTrader 5, cTrader, and B2Trader. A B2COPY account is created for an existing trading-platform login, and the platform is a property of that account, so your integration calls the same endpoints regardless of which server the login lives on. PAMM deal and position reads additionally carry platform-specific identifiers — an MT4 order ID or an MT5 deal ID — plus the trading server name.

You create a service admin in the Admin panel, and your CRM signs its own JWT with an EC private key using ES256. The token carries admin_id, device_ip, and key_id claims. You send the public key and its key identifier to B2COPY support along with the IP addresses your CRM will call from, and it is recommended to restrict the service admin to that list. Your CRM then exchanges a signed token for a B2COPY access and refresh token pair and passes the access token as a bearer token on later calls.

Back-office sign-in, side-auth URL and user-id resolve, creating and listing accounts and users, the full copier and PAMM subscription lifecycle, on-demand fee processing with PENDING / SUCCESS / ERROR, PAMM deal and position lists, and the account.created and fee.charged webhook payloads. Legacy /api/v2 and standalone routes still exist for older clients; the paths on this page are the canonical Broker API.

Yes. The documented set covers common scenarios, and extending it for a specific CRM is routine rather than an exception. Describe the operation and the data you need and we will agree the contract with you — we would rather scope it properly than name a date before understanding your model.

Yes. The Broker API contract defines two notification triggers with canonical JSON payloads: account.created when a new B2COPY account appears, and fee.charged when a fee is durably charged or accrued. Sample endpoints return an example batch so you can see the schema your CRM route receives when fields map 1:1. Additional triggers can be scoped with the team. Where a call is asynchronous by design, polling is also documented — fee processing can return PENDING, and your CRM re-checks with the same request_id until it settles as SUCCESS or ERROR.

Yes. Hosts are environment-specific and issued with your credentials, which is why the paths on this page are shown without one. The service admin, the public-key registration, and the IP list are set up together with the B2COPY team.

This page is about the API itself — its two transports, the documented flows, the authorization model, and how far the contract can be extended. The integration page is about choosing how deep to go overall: an embedded widget with SSO, a pre-built CRM connector, or an API-led build.

In the B2COPY API documentation, maintained outside this marketing site. It carries the parameter tables, request examples, and response shapes for each documented flow.

Talk to our API team

Map Your CRM to the B2COPY API

Bring your CRM, back office, and reporting model — and the mix of Copy Trading, PAMM, and MAM you run across MetaTrader, cTrader, and B2Trader. We will show which documented flows cover your scenarios, and what we would extend to cover the rest.

電子報

加入我們的社群,隨時掌握外匯、加密貨幣、主經紀與金融科技產業的最新創新

與您同行

在您常用的社群網路上關注公司動態

獎項

FMLS:25 London Expo

Best White Label Solution

FMLS:25 London Expo

Money Expo India

Leading White Label Propfirm Solution Provider

Money Expo India

Forex Traders Summit in Dubai

Best Liquidity Provider

Forex Traders Summit in Dubai

Money Expo Mexico

Best B2B Liquidity Provider

Money Expo Mexico

Forex Expo Dubai

Best FX/Crypto Technology & Liquidity Provider

Forex Expo Dubai

Crypto Expo Dubai

Best Crypto Liquidity Solution

Crypto Expo Dubai

Forex Traders Summit

The Best Fintech & Solutions

Forex Traders Summit

Forex Traders Summit

Best Technology Provider

Forex Traders Summit

Forex Traders Summit

Best Payment Solutions Provider

Forex Traders Summit

Forex Traders Summit

Best CEO Arthur Azizov

Forex Traders Summit

Crypto Expo Dubai

Most Trusted Liquidity Provider

Crypto Expo Dubai

Crypto Expo Dubai

Best Crypto Payment Service

Crypto Expo Dubai

Fintech & Crypto Summit Bahrain

Most Trusted Liquidity Provider

Fintech & Crypto Summit Bahrain

Fintech & Crypto Summit Bahrain

Appreciation Award to Arthur Azizov

Fintech & Crypto Summit Bahrain

Finance Magnates London Summit

Best White Label Solution

Finance Magnates London Summit

Forex Expo Dubai

Best Liquidity Provider & Best Crypto Processing System

Forex Expo Dubai

Wiki Finance Expo Dubai

Best Payment Solutions Provider & Best Technology Provider

Wiki Finance Expo Dubai

iFX Asia

Best Liquidity Provider & Best Crypto Processing company

iFX Asia

Fazzaco Hall of Fame

Best Founder (Fintech)

Fazzaco Hall of Fame

Fazzaco Expo Dubai

Best Liquidity Provider

Fazzaco Expo Dubai

Money Expo India

Best Liquidity Provider

Money Expo India

Money Expo India

Best Crypto Processing System

Money Expo India

Forex Traders Summit Dubai

Best Crypto Payment Solution Provider

Forex Traders Summit Dubai

Forex Traders Summit Dubai

Middle East 50 Most Influential Figures: Arthur Azizov

Forex Traders Summit Dubai

Forex Traders Summit Dubai

Best Multi-Assets Liquidity Provider

Forex Traders Summit Dubai

Crypto Expo Dubai

Best Liquidity Provider

Crypto Expo Dubai

Crypto Expo Dubai

Best Crypto Payment Provider

Crypto Expo Dubai

Crypto Expo Dubai

Best Crypto Technology Provider

Crypto Expo Dubai

FOREX EXPO

Best FX/Crypto Technology & liquidity provider

FOREX EXPO

Global FOREX Awards

Best Crypto CFD Liquidity Provider

Global FOREX Awards

FM Awards

Best White Label Solution

FM Awards

Global FOREX Awards

Best FX CRM Provider

Global FOREX Awards

FM Awards

Best Crypto Solution for Payments

FM Awards

Global Brands Magazine

Best White Label Multi-Asset Liquidity Platform

Global Brands Magazine

B2BROKER

© 版權所有 2026 B2BROKER. All rights reserved.

網站由 wsa.design 開發

*Other than B2BROKER, all third-party company names, logos, brands, and trademarks displayed are the property of the respective brand owners. B2BROKER is not affiliated with or endorse such companies.