Explore the liquidity providers and FIX platforms supported by B2CONNECT
Find step-by-step instructions on most common user scenarios
Explore the B2CONNECT FIX API reference
Learn about trading platforms, payment providers, and other third-party solutions integrated with B2CORE
Gain a deeper view of the B2CORE Back Office user interface
Step-by-step guides for common admin tasks and configurations in the B2CORE Back Office
Deploy branded mobile apps for iOS and Android
Identify and address common issues quickly and effectively with our guides
Explore the Back Office and learn how to launch your own partnership programs
Discover IB Room and join a partner plan to begin attracting new clients while earning rewards
Understand the basics and learn everything you need to start using the B2TRADER API
Consult an in-depth reference describing REST API requests and responses
Explore the supported WebSocket API methods and streams
Connect to the FIX 4.4 API for market data streaming and order execution
Customize your Trading Terminal and configure settings
Explore and manage all available trading widgets
Learn basic terms and values used across the platform
Get a quick introduction to B2TRANSLATE and get familiar with basics and key terms
Explore the B2TRANSLATE interface and start managing your product translations
This is required for proper handling of time variables (nanoseconds in this case).
This guide outlines the steps you need to follow to properly prepare your Android app for Google review, approval, and successful publication on Google Play.
* In the **Questionnaire** section, select **No** for all the following:
* Downloaded app
* User content sharing
* Online content
* Promotion or sale of age-restricted products or activities
* Miscellaneous
* In the **Summary** section, verify the displayed summary and click **Save**.
* In the **Summary** section, verify the displayed summary and click **Save**.
* In the **Data types** section, fill in the following:
* **Location**: B2CORE does not collect this type of data.
* **Personal info**: Specify the data that clients are required to provide during registration in your B2CORE instance. This usually includes (but isn't limited to) "Name", "Email address", "Phone number", or other.
* **Financial info**: B2CORE does not collect this type of data.
* **Health and fitness**: B2CORE does not collect this type of data.
* **Messages**: B2CORE does not collect this type of data.
* **Photos and videos**: B2CORE does not collect this type of data.
* **Audio files**: B2CORE does not collect this type of data.
* **Files and docs**: B2CORE does not collect this type of data.
* **Calendar**: B2CORE does not collect this type of data.
* **Contacts**: B2CORE does not collect this type of data.
* **App activity**: B2CORE collects "App interactions" data.
* **Web browsing**: B2CORE does not collect this type of data.
* **App info and performance**: B2CORE collects "Crash logs" and "Diagnostics" data.
* **Device or other IDs**: B2CORE does not collect this type of data.
* In the **Data usage and handling** section, you will see a set of questionnaires related to the data collected by the app.
* Complete the questionnaires in the **Personal info** section as shown in the example below:
* Complete the questionnaires in the **App info and performance** and **App activity** sections as shown in the example below:
* In the **Preview** section, verify the displayed summary and click **Save**.
* Click **Save** to return to the Dashboard.
* Click **Save** to return to the Dashboard.
* In the **Graphics** section, attach graphic assets provided by the B2CORE team. Click **Add assets** and upload each graphic asset one by one, and select the appropriate category for each asset.
* After you’ve added all provided assets, click **Save**.
The license requirements are mandatory, and the permissions to servicing trading operations must be granted by Apple. To learn more about the licensing requirements which apply specifically to cryptocurrencies, refer to [App Store Review Guidelines - 3.1.5 Cryptocurrencies](https://developer.apple.com/app-store/review/guidelines/#cryptocurrencies).
## Step 2. Create and configure a demo account in the B2CORE UI [#step-2-create-and-configure-a-demo-account-in-the-b2core-ui]
To be able to review all of your app’s functionality, the App Store review team needs access to a demo account. For this reason, you need to configure a demo account as follows:
* Verify your demo account by going through all the steps of your KYC procedure.
* In the Back Office, examine and enable all the B2CORE UI modules that will be featured in your mobile app. Each module must be properly configured to ensure that your mobile app will not be rejected by the App Store during review.
* If your app enables its users to transfer or exchange assets, you also need to make sure that there are enough funds on your demo account, so that the App Store review team is able to check the transfer and exchange functionality as well.
## Step 3. Enroll in the Apple Developer Program as an Organization [#step-3-enroll-in-the-apple-developer-program-as-an-organization]
To be able to open an Apple Developer account, you must provide the following information:
* your D-U-N-S number
* your Legal Entity Status
* your Legal Binding Authority
* your website address
To publish your iOS app, you need to enroll in the Apple Developer Program as an organization, and then share access to your developer account with the B2CORE team by sending your access credentials to our company email: [ios-admin@b2broker.com](mailto:ios-admin@b2broker.com).
Further on, with each iOS release, the B2CORE team will upload a new app build for you, and you will be responsible for managing the regular maintenance of the app (for details, refer to [Step 8. Update your app with new releases](deploying-your-ios-app#step-8-update-your-app-with-new-releases)).
For general information, refer to [Before You Enroll — Apple Developer Program](https://developer.apple.com/programs/enroll/).
For step-by-step instructions, refer to [Enrolling in the Apple Developer Program as an organization](https://developer.apple.com/support/app-account/).
## Step 4. Grant access and admin permissions to the B2CORE team [#step-4-grant-access-and-admin-permissions-to-the-b2core-team]
For the B2CORE team to be able to configure your app at App Store Connect, you need to grant the following admin permissions to our team. To do this, proceed as follows:
1. At App Store Connect, switch to **Users and Access**.
2. On the **People** tab, add a new person with the B2BROKER company email: [ios-admin@b2broker.com](mailto:ios-admin@b2broker.com).
3. In the **Roles** section, enable the **Admin** role.
4. In the **Additional Resources** section, make sure that all the permissions are enabled as follows:
* **Access to Reports**
* **Access to Certificates, Identifiers & Profiles**, which includes:
* **Access to Cloud Managed Distribution Certificate**
* **Access to Cloud Managed Developer ID Certificate**
* **Create Apps**
## Step 5. Provide all necessary information to your account manager [#step-5-provide-all-necessary-information-to-your-account-manager]
Contact your account manager at B2BROKER to inform the development team that they must prepare your app for publishing.
You need to provide the following information to your account manager, which will be passed over to the development team:
* The information about licenses, along with the credentials to your B2CORE Demo Account.
* The URL of your B2CORE UI instance.
* The legal name of your company, as well as your Apple Developer account name (typically, it coincides with the company name specified when creating a Developer Account as an Organization).
## Step 6. Specify the pricing, availability and privacy options [#step-6-specify-the-pricing-availability-and-privacy-options]
At App Store Connect, configure the following app settings:
* **Pricing and Availability**
In this section, you need to specify the following options:
* We recommend that you offer your mobile app for free and set the **Price Schedule** field to `US$0.00 (Free)`.
* Set the **Tax Category** field to `App Store software`.
* In the **Availability** section, select the countries in which your app will be available, according to the licenses obtained by you.
* For the other options in this section, you can leave the default settings.
* **App Privacy**
In this section, specify the **Privacy Policy URL**, which must be the same one that you specified for your B2CORE UI instance.
Next, click **Get Started** and complete the quiz to specify your app’s data collection policy:
* **Contact Info**
Your app will collect the user’s email address by default.
Depending on your app’s configuration, it may also collect other data, such as the username, phone number, user address and other contact information. Please make sure that you indicate the collected data according to the options that are specified in your B2CORE Back Office.
* **Identifiers**
The **User ID** data is collected by default.
The **Device ID** data is not collected.
* **User Content**
The user photos and videos are collected.
* **Other User Content**
On this page, select `App Functionality` and `Other Purposes`.
5. Specify the following fields:
* **Promotional Text**
* **Description**
* **What’s New in This Version**
* **Keywords**
* **Support URL**
* **Marketing URL**
* **Version**
* **Copyright**
To learn more about these fields, refer to [Platform version information](https://developer.apple.com/help/app-store-connect/reference/platform-version-information).
6. Click **Add for Review** to submit your app for review to the App Store team.
When your app is reviewed and approved, its status will be changed to `Ready for Distribution`.
## Step 8. Update your app with new releases [#step-8-update-your-app-with-new-releases]
With each iOS release, the B2CORE team will upload a new app build for you in App Store Connect.
You need to create a new app version, add the new build to the version, and submit it for review to the App Store team.
### Create a new app version [#create-a-new-app-version]
When the B2CORE team notifies you of a new iOS release, create a new app version in Apple Store Connect, add a new build to it, and submit it for review to the App Store team.
7. Add the release notes to the **What’s new in this version** field. The RNs for each iOS release can be found [here](../release-notes/release-notes-mobile).
5. Add the latest build:
* Click the **add** button (+) displayed next to the **Build** section.
* In the **Add Build** popup, select the build with the *highest* version number and click **Done**.
6. In the **Version** field, update the version number to match the new iOS release. For example, change `1.23.0` to `1.24.0`.
7. Add the release notes to the **What’s new in this version** field. The RNs for each iOS release can be found [here](../release-notes/release-notes-mobile).
The following information is displayed on the Dashboard:
## Deposits [#deposits]
* **Total deposit** — the total amount of deposits, in USD, for the selected period. The metric is calculated against the **Final amount (USD)** column in [Finance > Deposits](finance/deposits). Only the completed deposits in the final status are included.
* **Average deposit** — the average deposit amount for the selected period, which is calculated as:
`Total deposit / Number of deposits`
## Withdrawals [#withdrawals]
* **Total withdrawal** — the total amount of withdrawal, in USD, over the selected period. The metric is calculated against the **Final amount (USD)** column in [Finance > Payouts](finance/payouts). Only the completed withdrawals in the final status are included.
* **Average withdrawal** — the average deposit amount for the selected period, which is calculated as:
`Total withdrawal / Number of withdrawals`
## Summary [#summary]
* **Net deposit** — the net amount of deposits, in USD, for the selected period, calculated as:
`Total deposit − Total withdrawal`
B2CORE is a fully-featured CRM providing a complete set of customization and access control options.
## Authorization and permissions [#authorization-and-permissions]
B2CORE provides a full set of personalization and access control options. User access is controlled by applying different user group permissions.
After your B2CORE profile is activated, you can sign in to the Back Office using the credentials provided by your administrator.
Upon encountering an error when trying to sign in, check the login and password, along with the input language and Caps Lock state. If everything appears to be correct, contact your administrator to clarify the status of your profile.
## General interface options [#general-interface-options]
The Back Office user interface is uniform across all pages, ensuring consistent look and feel and featuring a common set of basic options. This document describes how to shape the data displayed on a page, how to filter and sort this data, and then export it to a file.
### The top bar options [#the-top-bar-options]
At the top of a typical Back Office page, you can find a top bar with the following elements:
* the **☰ main menu** button
Click it to expand or collapse the main menu.
* **Backend version**
The currently deployed version of your Back Office.
* **Server time**
The fixed system time in GMT+0. It can't be changed and ensures accuracy and consistency across all transactions, logs, and activities within B2CORE.
* the **Open personal area** link
Click the link to access the **Sign In** page of the B2CORE UI associated with your Back Office.
* the **Bell** icon
Click it to see pending client requests. The number of new requests is displayed on a counter badge.
* the **Warning** icon
Click it to view platform connectivity alerts, such as notifications about trading platforms that are currently unreachable. The number of active alerts is displayed on a counter badge.
* the panel displaying the email address from your user profile
In the upper-right page corner, click the profile button displaying your email address to access the **Log out** button and **Enable 2FA** option (or **Disable 2FA**, if two-factor authentication is already enabled).
Two-factor authentication (2FA) is obligatory and must be enabled for all user profiles in the Back Office.
To enable 2FA through time-based one-time passwords (TOTP) for your user profile, click **Enable 2FA**, and then click **OK** in the popup. Next, follow the displayed instructions to set up 2FA with Google Authenticator.
After enabling 2FA, sign in to the Back Office by entering your login and password, followed by a code from the Google Authenticator app.
### Common options [#common-options]
The following buttons can be found on most Back Office pages.
* Above a table:
*
— the **Create** button used to add a new entry
*
— the **Export** button used to export table data to a CSV file
* the **Select** and **Select All** buttons used to select multiple table entries and perform bulk actions on them (where available)
* In a table header:
*
— the **Search** button used to apply custom filters
*
— the **Reset** button used to reset custom filters
* In a table row:
*
— the **Edit** button used to drill down the data and access details
*
— the **Delete** button used to delete an entry
Page elements may serve as hyperlinks that can be clicked to drill down to details. Access to this data is maintained based on the permissions assigned to a particular user group.
### Filtering and sorting [#filtering-and-sorting]
Throughout the Back Office, the data is typically organized in tables. Table data can be sorted and filtered.
The columns by which you can sort data are marked with up and down arrows displayed in column headers (no arrows are displayed when sorting isn't available). You can click these arrows to sort data in ascending or descending order, by a single column at a time
Along with a sorting order, you can specify multiple criteria for filtering column data.
When filtering is available, the appropriate input fields are displayed in column headers. The inputs vary depending on a data format, such as text, number, date, time, or list.
To facilitate filtering by date, two fields for the start and end dates may be displayed so that you can define a time period.
To enable or disable filters, click the **Search** and **Reset** buttons.
### Pagination [#pagination]
You can display table data across multiple pages and specify how many records to display on a page (the total number of records found is displayed next to the page size selector).
To navigate between pages, click **Prev** or **Next**, or click a specific page number.
### Visibility [#visibility]
To choose the data fields to include in a table, click **Column Visibility** and mark or unmark the columns you want to display or hide. Once applied, the new visibility settings become effective for all Back Office users (visibility of specific fields depends on the access permissions granted to particular users).
### Data export [#data-export]
The data on most of the Back Office pages can be exported to a CSV or XLSX file.
To do this, click the **Export** button, choose a file format, and then select whether to download the data to your computer or deliver it to an email address from your profile.
The data in a resulting file matches both the current visibility settings and the applied sorting and filtering criteria.
Use this menu to access to the functionalities of the **Introducing brokers (IB)** product, designed to support referral programs that help expand your client base. Through these programs, you can encourage your existing clients to become partners and attract new traders to your brokerage. In return, partners earn a percentage of the revenue generated from the trading activity of their referrals, fostering a mutually beneficial partnership.
If you don't have this menu in your Back Office, contact your account manager to learn more about obtaining and implementing the IB program.
For more information about IB, refer to the [product documentation](https://docs.ib.b2core.b2broker.com/).
On this page, you can view feedback left by clients after tickets that they reported to HelpDesk in the B2CORE UI are marked as resolved.
The following information is provided about each ticket for which feedback is submitted:
**Id**
The identifier of a ticket that was reported by a client to HelpDesk.
Click a ticket identifier to view ticket details in SupportPal or Zendesk.
***
**Email**
The client email address.
***
**Comment**
The feedback text.
***
**Date**
The data and time when feedback was submitted.
***
**Status**
The client satisfaction rating. Possible values:
* Extra Positive
* Positive
* Neutral
* Negative
* Extra Negative
***
**Subject**
The subject of a ticket.
* **Support for custom tiles in Services**
Custom tiles can now be added to the **Services** section to link users to third-party services or external resources that support your brokerage business. Configuration must be set in the **Back Office**, where the tile name and redirect URL must be specified. Once configured, custom tiles will appear in the app under **Services**.
In the Back Office, the option to configure custom menu links will become available with the [June 2025 release](release-notes#july-2-2025).
* **Streamlined account creation with the Go to Deposit option**
The account creation process has been streamlined to clearly indicate when a minimum deposit is required. If funds are insufficient for opening a new trading account, users will see the required amount along with the **Go to Deposit** button, encouraging quick funding and faster trading.
* Optimized overall app performance to provide a faster, more stable, and responsive user experience.
***
### March, 2025 [#march-2025]
**v1.28 (iOS)**
This version includes:
**Improved sign-up and onboarding experience**
The sign-up and onboarding processes in the app for new clients have been improved:
* **Quick app overview**: before accessing the **Sign Up** and **Sign In** forms, clients now see a brief app overview showcasing key features through several screens. This enhancement aims to increase registration conversion and attract more potential clients.
**One-click access to trading**
Clients can now access the MT4, MT5, and cTrader trading terminals by tapping **Trade** from their accounts in the app, making trading more convenient. To enable this feature, specify the **Web Terminal URL** in the platform details upon navigating to **Products** > **Platforms** in the B2CORE Back Office (for details, refer to [How to enable one-click trading access from the B2CORE UI and mobile app](../how-to-articles/manage-platforms/how-to-enable-one-click-access-to-web-trading-terminals)).
***
### December, 2024 [#december-2024]
**v1.27 (iOS)**
This version includes:
* **Enhanced security with passcodes**
Setting a passcode is now available during sign-up or sign-in to ensure improved app security.
* **Optional biometric authentication**
Biometric options, such as Face ID or Touch ID, have been introduced as an additional layer of security for quick and secure access.
* **Support for analytics in Amplitude**
The Amplitude platform is now supported for the app, enabling you to get analytics about your clients’ actions within the app. Please contact your account manager for assistance in setting up and getting Amplitude analytics.
* Bug fixes and improvements affecting the display and usability of the app's interface for a more seamless user experience.
***
### v1.26 (iOS) [#v126-ios]
* This version brings internal enhancements and behind-the-scenes fixes to boost app performance and improve the user experience.
***
### v1.25 (iOS) [#v125-ios]
This version includes:
* **Redesigned Deposit section**
The **Deposit** section, accessible via **Services** > **Finance**, has been redesigned for a smoother deposit experience. You can now easily select a wallet and deposit currency, and then choose one of the supported payment methods. Once selected, you’ll receive the deposit address or have the option to enter bank details to finalize your transaction.
Additionally, before making a deposit, you can check current rates and calculate estimated amounts based on those rates in the **Indicative amounts** section.
* The app performance has been enhanced for a faster and more seamless experience.
***
### v1.24 (iOS) [#v124-ios]
This version includes:
* **App Services**
We are pleased to introduce the new app services feature, making it easier for you to locate supported services, such as Trading, Finances, HelpDesk, IB, and others, and see what will be available soon. The feature enables you to:
* access services directly from the Home screen
* search for the service you need
* tap a service tile to quickly navigate to the desired service.
* **Integration with Zendesk**
The Zendesk customer support platform has been integrated, offering ticketing, live chat, and AI tools. Tap the HelpDesk button to navigate to the Zendesk interface from the app, without any additional authorization.
* **Enhanced IB Room**
The enhancements to the IB Room include detailed information about clients and rewards, enabling you to:
* view a list of Direct IB and Sub-IB clients registered using your referral links. For each client, you can view the details about their total traded volumes and reward amounts you received.
* view a list of rewards paid to your wallet and navigate to reward details.
* **Password validation**
When setting new passwords, they are now validated to comply with security standards, ensuring they meet the required length and include the necessary character requirements.
* Bug fixes and improvements for a more refined and user-friendly interaction.
***
### v1.23 (iOS) [#v123-ios]
This version includes:
* **Integration with B2TRADER Brokerage Platform**
With this release, we are thrilled to announce integration with B2TRADER Brokerage Platform, offering you a comprehensive trading experience:
* Single sign-on: sign in to the app and navigate to the BBP platform without additional authorization.
* Account list with detailed balances: keep your funds under control with a comprehensive view of account balances. Create and rename accounts to keep your funds well organized.
* Asset balances screen: view asset details, including the amounts of free and frozen funds, with the option to hide assets with zero balances.
* Order book and Price chart: monitor trading data and make buy and sell decisions, with quick access to the order placing screen.
* Candlestick and Line charts: switch between chart types and scroll through historical values.
* Limit & Market orders: place Limit and Market orders using all the supported time in force settings (Market: IOC, FOK; Limit: IOC, FOK, GTC, GTD, Day).
* Order lists: access open and historical order lists, providing easy navigation to order parameters and details, and options for quick canceling or repeating an order.
* **Redesigned Dashboard**
The redesigned Dashboard offers the following enhancements:
* **New widgets**: use new widgets, such as Total Balance, Last Transactions, Favorite Trading Accounts (now displaying only MT4 and MT5 accounts added to favorites), and IB Program.
* **Organize the Dashboard**: easily organize your Dashboard by dragging and dropping widgets according to your preferences.
* **Support for banners**: banners can now be displayed on the Dashboard.
* **Profile info**: you can now view your profile name and picture at the top of the Dashboard.
* **Quick navigation to HelpDesk**: tap the button in the topbar for quick access to the HelpDesk, if supported.
* **Apple store info**: you can now review what’s new in the latest app version before downloading it.
* Bug fixes and improvements to offer a smoother and more streamlined user experience.
***
### v1.22 (iOS) [#v122-ios]
This version includes:
* **Integration with CentroID**
Support for CentroID has been added, providing connectivity to various trading platforms and liquidity sources. Now you can add your CentroID margin accounts, and make transactions on the accounts.
* **Introducing Brokers (IB)**
The IB Room option has become available in the Profile menu. Use it to register as a partner in referral programs and create your unique referral links. Attract new traders, earn rewards based on the trading activities of your newly referred clients, and track program performance using the IB Room Dashboard.
* Bug fixes and improvements to ensure a more seamless and efficient user experience.
* **Support for copy trading, PAMM, and MAM**
Copy trading, PAMM, and MAM functionality from **B2COPY** is now supported in the app via a web view. This enables clients to access these services directly from the app, through the **Services** section.
* **Static payment details for deposits via B2BINPAY V3 and Coinsbuy V3**
The app now supports **static payment details** for deposits via **B2BINPAY** and **Coinsbuy** when connected through **API V3**. With static payment details, clients can generate one or more blockchain-specific deposit addresses directly in the app. These addresses are saved for future use and can be reused for subsequent deposits.
In addition, the crypto deposit flow via **B2BINPAY V3** and **Coinsbuy V3** has been improved with clear **fee breakdowns** and **indicative amount** displays, providing better transparency and a smoother deposit experience.
* **Full B2TRANSLATE integration for payment forms**
Payment forms in the app are now fully integrated with [B2TRANSLATE](https://docs.b2translate.b2broker.com/) (formerly Weblate). Labels for all components of dynamic forms for PSS-connected deposit and withdrawal methods, as well as validation error messages, can now be customized and translated into multiple languages via B2TRANSLATE.
* Bug fixes and improvements to ensure a more seamless and efficient user experience.
***
### September, 2025 [#september-2025-1]
**v2.8.0 (Android)**
This version includes:
* **Google Play app deployment**
It’s now possible to deploy and publish your app on **Google Play**, making it easy for clients to download, install, and receive future updates directly from the store.
* **PSS deposit & withdrawal methods now in the app**
Withdrawal methods configured via the [Payment System Service (PSS)](../integrations/payment-systems#payment-system-service-pss) in the Back Office are now available in the app. This completes support for both **deposit methods**, which were previously integrated, and **withdrawal methods** connected through PSS.
* **Device management for enhanced security**
In **Profile** > **Security**, a new **Device management** section has been added. It displays log data about devices, IP addresses, and locations used to sign in to their profiles, and allows clients to terminate their current active session directly from the app. This gives clients better control over sessions and helps protect against unauthorized access.
* Fixes and improvements to ensure stable performance and reliability.
***
### August, 2025 [#august-2025]
**v2.7.0 (Android)**
This version includes:
* **Feedback form**
Users can now share their experience directly in the app. The feedback form automatically appears after several app launches or whenever a financial operation is performed, allowing a quick positive or negative rating with an optional comment. Feedback can also be submitted anytime from the **Profile** menu.
* Improved performance and stability for a faster, more reliable experience.
***
### June, 2025 [#june-2025-1]
**v2.6.0 (Android)**
This version includes:
* **Deposits methods configured via PSS now supported in the app**
Deposit methods configured in the Back Office through the [Payment System Service (PSS)](../integrations/payment-systems#payment-system-service-pss) are now accessible to users directly within the app.
Please note, withdrawal methods via PSS aren’t yet supported in the app.
* **Bonuses now available in the app**
Users can now view and subscribe to bonus programs on **MT4/5** and **cTrader** directly in the app. If a user doesn’t have a suitable trading account, the required account can be created during the subscription process.
Once the program requirements are met, the bonus amount is credited to the user’s balance and becomes available for withdrawal.
* **Support for custom tiles in Services**
Custom tiles can be added to the **Services** section to link users to third-party services or external resources that support your business. Configuration must be done in the **Back Office**, where the tile name and redirect URL must be specified. Once configured, custom tiles will appear in the app under **Services**.
In the Back Office, the option to configure custom menu links will become available with the [June 2025 release](release-notes#july-2-2025).
* **In-app verification via SumSub**
The full verification process via **SumSub** is now supported directly within the app, no external redirections are required. This streamlined experience makes the KYC journey faster, and more intuitive during onboarding.
* **Blockchain explorer link for withdrawal tracking**
Users can now easily track **withdrawal transactions** on the blockchain directly from the app. Crypto wallets include a link to `https://www.blockchain.com/explorer`, available only for withdrawals in Bitcoin, Ethereum, and Bitcoin Cash. This simplifies transaction monitoring and enhances transparency.
* Optimized overall app performance to provide a faster, more stable, and responsive user experience.
***
### May, 2025 [#may-2025]
**v2.5.0 (Android)**
This version includes:
Performance improvements and bug fixes to enhance the overall user experience.
***
### April, 2025 [#april-2025]
**v2.4.0 (Android)**
This version includes:
**Revamped sign-up and onboarding process**
* **App preview**: before going to the **Sign Up** or **Sign In** forms, clients are now presented with a brief walkthrough highlighting the app’s main features across several screens. It enhances the user journey from the start, encouraging quicker sign-ups.
* The app has been optimized to deliver a faster, more stable, and responsive experience.
***
### March, 2025 [#march-2025-1]
**v2.3.0 (Android)**
This version includes:
* **Internal transfers**
The app now supports internal transfers, enabling clients to transfer funds to other clients within the same brokerage by specifying the **Client ID** and **Account ID** of the recipient. The funds are transferred instantly and without commission.
* **Enhanced security with withdrawal address whitelisting**
Secure your withdrawals by enabling the **Withdraw Whitelist** option in the **Security** section and adding trusted withdrawal addresses. Once enabled, funds can only be withdrawn to the specified addresses, preventing unauthorized transactions.
* **One-click access to trading**
Clients can now access the MT4, MT5, and cTrader trading terminals by tapping **Trade** from their accounts in the app, making trading more convenient. To enable this feature, specify the **Web Terminal URL** in the platform details upon navigating to **Products** > **Platforms** in the B2CORE Back Office (for details, refer to [How to enable one-click trading access from the B2CORE UI and mobile app](../how-to-articles/manage-platforms/how-to-enable-one-click-access-to-web-trading-terminals)).
***
### December, 2024 [#december-2024-1]
**v2.2.0 (Android)**
This version includes:
* **Introducing Brokers (IB)**
The IB functionality is now supported in the app, making it easier to manage your referral activities. With this update, you can:
* **Explore and join IB programs**: view all available IB programs and join new ones using the **IB Program** widget on the **Home** screen.
* **IB clients**: view a list of your referred clients, organized across different levels.
* **Track IB rewards**: monitor your earned rewards and view payment details. Additionally, you can track your IB wallet balance and make withdrawals directly from the app.
* **Customize IB referral links**: configure referral link parameters for each program in the **Advanced Link** section to optimize your referral strategy.
* **Enhancements to trading accounts**
More options for MT4/5 and cTrader accounts are now available in the app, including:
* **Essential account parameters**: view such parameters as Balance, Equity, Free Funds, Credit, and Leverage directly in the account details.
* **Equity chart**: analyze account performance with the Equity chart, now available for daily, weekly, and monthly periods.
* **Expanded trading data**: access more detailed trading data with the **Pending orders**, **Open positions**, and **Trading history** tabs.
* The ability to archive trading accounts.
* The ability to rename accounts for better organization.
* Bug fixes and interface improvements to deliver a more seamless and user-friendly experience.
***
### November, 2024 [#november-2024]
**v2.1.0 (Android)**
This version includes:
* **Support for exchanges**
Exchanges are now accessible in the **Finance** section, enabling you to convert between different currencies, including fiat to crypto, and vice versa. When making exchanges, you can view real-time rates and refresh them as needed to stay up-to-date with the latest rates for your transactions.
* **Integration with Zendesk**
With the integration of Zendesk customer support, you can now easily create, submit, and track your support tickets directly from the **Profile menu** in the app.
To use Zendesk in the app, the Zendesk configuration must be set up in the Back Office. This includes establishing an external connection to Zendesk and following the steps to [switch from SupportPal](../how-to-articles/manage-system-settings/how-to-switch-from-supportpal-to-zendesk) if it was previously used.
* **Favourite wallets**
You can now add wallets to your favorites in the app, making it easier to organize and access them quickly.
* **More options for trading accounts**
The options to rename your trading accounts and archive them are now available in the account details, giving you more flexibility in managing your accounts.
* Bug fixes and performance enhancements have been implemented to deliver a smoother and more responsive user experience.
***
### October, 2024 [#october-2024]
**v2.0.0 (Android)**
This version includes:
* **Support for MT4/5 and cTrader accounts**
You can now open demo and live MT4/5 and cTrader accounts in the app, deposit and withdraw funds to/from your accounts, and monitor account trading parameters, such as balance, equity, credit, and free margin in real time.
* **Transaction History section added**
View your full deposit, withdrawal, and transfer history, along with detailed information for each transaction, in the new Transaction History section.
* **Password change for profile security**
Providing a convenient way to keep your profile secure, the Security section now includes an option to change your profile password.
* **Sign in to the B2CORE UI with QR codes**
You can now use the app where you’re already signed in to scan QR codes on the B2CORE UI **Sign In** page, allowing access without the need to enter your credentials.
***
### September, 2024 [#september-2024]
**v1.0.0 (Android)**
We're excited to announce the release of the B2CORE app for Android, which you can launch as your own branded app. This allows you to offer your clients an additional platform to access the B2CORE functionality.
**App download**
Currently, Android apps are available for download and installation via APK files. To make the APK available for download from your B2CORE UI, refer to [How to configure settings for mobile app downloads](../how-to-articles/manage-system-settings/how-to-configure-settings-for-mobile-app-downloads).
This version includes:
* **Registration**
Registration through the app is available by clicking the Sign Up option on the Start screen.
* **Dashboard**
The Dashboard appears after signing in to the app, displaying the Total Balance, Last Transactions, and Wallets widgets, with banners at the top.
* **Profile menu**
Accessible by tapping the top left corner of the screen, the Profile menu enables you to:
* upload profile photos
* view your current verification levels and complete KYC verification to reach higher levels
* access security settings, such as 2FA via Google Authenticator or SMS, anti-phishing codes, and more
* displays the app version and a list of custom links to additional resources.
* **Wallets**
Displays a list of your wallets, grouped into crypto and fiat categories. At the top, the estimated total across all wallets, converted to USD, is shown. From this section, you can deposit, withdraw, and transfer funds.
By tapping a wallet, you can view detailed information, including the available balance, amount on hold, and transaction history.
* **Finance**
This section is intended for deposits, withdrawals, and transfers. Recent transactions are displayed under each transaction type, allowing you to quickly initiate new ones with pre-filled fields based on previous transactions.
* **Trading**
This section supports the B2TRADER Spot Brokerage Platform, providing access to its extensive trading features and functionalities.
#### Support for the Zendesk chatbot [#support-for-the-zendesk-chatbot]
When using **Zendesk** as your HelpDesk system with B2CORE, you can now enable the Zendesk chatbot in the B2CORE UI. This enhancement offers a more streamlined HelpDesk experience, allowing clients to ask questions, quickly find the information that they need, and seamlessly switch to a live operator, all without requiring additional authorization. For details, refer to [How to add Zendesk chatbot](../how-to-articles/manage-system-settings/how-to-configure-a-connection-to-zendesk#how-to-configure-the-zendesk-chatbot).
#### Enhanced static Dashboard [#enhanced-static-dashboard]
The static **Dashboard** with fixed widgets introduced in the previous release has been further enhanced to improve usability and clarity.
**Last Transactions**
* The widget is now displayed on the **Dashboard** only if the related **Transaction History** menu is enabled. If the menu is hidden, the widget won’t appear on the **Dashboard**.
* Fiat currencies in the widget always use a precision of two decimals. All other currencies follow the decimal settings configured for each currency in the Back Office.
* If a client has no transaction history, the **All** button is hidden from the widget. It becomes visible once transactions appear, allowing clients to view their full history directly from the widget.
**Portfolio**
The tabs displayed in the widget now depend on whether the related **Wallets** and **Platforms** menus are enabled:
* If both menus are enabled, the widget shows the **Wallets**, **Trading Platforms**, and **All** tabs, allowing clients to view their total portfolio value across all wallets and trading accounts.
* If either menu is disabled, the corresponding tab is hidden from the widget.
**Trading Accounts**
The widget is displayed on the **Dashboard** only if the related **Platforms** menu is enabled. If the menu is hidden, the widget won’t appear on the **Dashboard**.
* **Automatic submission of verification code forms**
In forms where verification codes are required to confirm actions, for example, signing in, changing a password, or others, the form is now automatically submitted once the code is entered, removing the need for clients to click the **Continue** button and making the process more seamless.
### Payment system updates [#payment-system-updates-8]
#### Payment input snapshots [#payment-input-snapshots]
In the B2CORE Back Office, it’s now possible to view the information that clients enter on the deposit and withdrawal forms when using **PSS** methods. This data helps admins to make informed decisions when approving or rejecting withdrawal requests and speeds up the investigation of potential payment-related issues.
The information is available in the new **Payment input snapshot** section, which is added to:
* Deposit details in **Finance** > **Deposits**.
* Withdrawal details in **Finance > Payouts**.
* Client requests in **Clients** > **Requests**, including: **Payout** requests, **PS Deposit Assistance** requests, and **PS Withdrawal Assistance** requests.
#### Streamlined handling of PS Deposit Assistance requests [#streamlined-handling-of-ps-deposit-assistance-requests]
When a **PS Deposit Assistance** request is triggered due to reaching a sync deadline with the respective payment system, a separate request is no longer created in **Clients** > **Requests**. Instead, such cases now must be handled directly in the deposit details, reducing the number of unnecessary assistance requests.
#### Full B2TRANSLATE integration for payment forms [#full-b2translate-integration-for-payment-forms]
Payment forms in the B2CORE UI and mobile apps are now fully integrated with [B2TRANSLATE](https://docs.b2translate.b2broker.com/) (formerly WEBLATE). Labels for all components of dynamic forms for PSS-connected deposit and withdrawal methods, as well as validation error messages, can now be customized and translated into multiple languages via B2TRANSLATE. This ensures consistent localization across all financial workflows.
### Improvements [#improvements-8]
* The balance of source accounts is now checked when approving client requests for **transfers** and **internal transfers** to ensure sufficient funds are available. If the balance is insufficient for a transfer, the request can’t be approved, and the error message is displayed: `Application approve failed. Insufficient funds on source account`.
* In **Bonuses** > **Bonus distribution**, a new **Created by** column has been added, displaying the emails and IDs of the Back Office users who added bonuses to clients. Clicking an ID opens the profile of the respective Back Office user.
* The loading speed of the **Finance** > **Exchange** page in the Back Office has been significantly improved, especially for large data volumes. Exporting exchange data from the same page has also been accelerated.
* Visibility of items in the main menu of the B2CORE UI can now be restricted based on a client’s **jurisdiction** and **country**, allowing more granular control over which features clients can access.
## October 1, 2025 [#october-1-2025]
### New features [#new-features-9]
#### New PS integrations [#new-ps-integrations-4]
Support for the following new payment systems has been added via **PSS**:
* **Payrock** – with support for deposits and withdrawals
* **Proxpay** – with support for deposits and withdrawals
* **KoraPay** – the option for withdrawals to bank accounts has been added.
#### Introducing static payment details for deposits [#introducing-static-payment-details-for-deposits]
Starting with this release, deposit methods via integrated payment systems will gradually support **static payment details**. Previously issued payment information, such as crypto addresses or bank details, is saved for clients, allowing them to reuse it for deposits of different amounts at any time.
In this release, **B2BINPAY** and **Coinsbuy** methods feature static deposit details. Clients can generate deposit addresses in the B2CORE UI, which are saved for future use, or create new blockchain-specific addresses, all stored for subsequent deposits.
#### The Dashboard with key financial metrics [#the-dashboard-with-key-financial-metrics]
The **Dashboard** now opens after signing in to the Back Office for users who are assigned the permission `Access to Finance Dashboard` under the **Statistics** category. The **Dashboard** displays key financial metrics, including **total deposits**, **total withdrawals**, and **net deposits**, helping users quickly review financial results and activity over the selected period (refer to [Dashboard](../back-office-guide/dashboard)).
### B2CORE UI updates [#b2core-ui-updates-9]
#### Redesigned static Dashboard [#redesigned-static-dashboard]
The B2CORE UI **Dashboard** has been redesigned to provide a clear, intuitive overview of a client’s portfolio and financial state. The **Dashboard** is now a fixed, non-customizable page with the following widgets:
* **Portfolio**: shows the total balance with the ability to view allocation across wallets and trading accounts. The prominent **Deposit** button allows clients to add funds quickly. In addition, access to other financial transactions such as **Transfers**, **Exchanges**, and **Withdrawals** is available from the widget.
* **Last Transactions**: shows a list of recent financial transactions along with their statuses for quick review and provides access to the full **Transaction History**.
* **Trading Accounts**: displays active accounts, marked as favorites or accounts with non-zero balances, for easy access, and provides options to create a new account or go to trading with a single click.
#### Clear display of verification request statuses [#clear-display-of-verification-request-statuses]
For clients, it’s now easier to track the status of their verification requests. A new banner on the **Dashboard** and **Verification** page displays the pending status after a request is submitted and provides a direct link to the **Document verification** section, where clients can monitor their document statuses.
#### More accurate indicative amounts for deposits and withdrawals [#more-accurate-indicative-amounts-for-deposits-and-withdrawals]
The calculation of indicative amounts displayed to clients when initiating deposits and withdrawals in the B2CORE UI has been reworked. These amounts now more accurately reflect the final results that clients will receive after execution, taking into account commissions and exchange rates.
### Improvements [#improvements-9]
* For **DXtrade**, it's become possible to add the **Account number prefix** when configuring a product in the Back Office. The prefix is added to the beginning of DXtrade account numbers to help distinguish, for example, live and demo accounts or accounts belonging to different brands within a single DXtrade infrastructure (refer to [How to integrate DXtrade](../how-to-articles/manage-platforms/how-to-integrate-dxtrade)).
* For **ShuftiPro**, the document type `any` is now supported for address verification. It allows clients to submit any document containing their name and address, rather than a specific document type, making the KYC process more flexible and convenient (refer to [How to use ShuftiPro](../how-to-articles/manage-verification-options/how-to-use-shuftipro)).
* Jurisdictions are now assigned to clients based on the combination of their **country** and **client type** as defined in the jurisdiction settings (refer to [Jurisdictions](../back-office-guide/clients/jurisdictions)).
* PSS payment methods, including both deposits and withdrawals, are now supported in the mobile apps starting from version 1.30.0 (iOS) and 2.8.0 (Android).
* Table loading in the Back Office has been optimized. In particular, the **Clients** > **Accounts** list now loads much faster, even when handling a large number of accounts.
* For **Twilio** calls to clients from the B2CORE Back Office, you can now choose which phone number to use if you have several active Twilio numbers in your account. This enables you to select the most suitable local number, increasing the chances of successful contact and enhancing client trust.
Outgoing calls made from the B2CORE Back Office via Twilio can now be recorded, with the recordings saved in your Twilio account for later playback.
* The **Export** option has been enhanced to provide more reliable data export from the pages where this option is available in the Back Office.
* In **Bonuses** > **Bonus distribution**, the **Ignored symbol groups** field is now optional and can be left empty when manually crediting bonuses to clients. If left empty, all symbols from available groups traded by a client are counted toward their traded volume for meeting bonus requirements.
* Banner targeting in the B2CORE UI and mobile apps has been improved. In addition to **country** and **verification level**, restrictions can now be applied by **client type** and **jurisdiction** for more precise control over visibility.
* In saved withdrawal presets in the B2CORE UI, the payment method now matches the selected withdrawal method, and the currency is clearly displayed. Previously, the technical method name used in the Back Office appeared, causing inconsistencies.
## July 2, 2025 [#july-2-2025]
### New features [#new-features-10]
#### New PS integrations [#new-ps-integrations-5]
Support for the following new payment systems has been added via **PSS**, with both deposits and withdrawals available:
* **FundPay**
* **Jetapay**
* **PayRetailers**
* **TopChange Pay**
In addition, withdrawals are now supported for **AlfredPay**.
#### Integration with SumSub Fraud Prevention [#integration-with-sumsub-fraud-prevention]
Transaction monitoring via **SumSub Fraud Prevention** is now supported for fiat and crypto **deposits** and **withdrawals**.
When such transactions are initiated, they're automatically checked by **SumSub**, with results returned to B2CORE. The results are displayed in the **Transaction monitoring** section of deposit and withdrawal details, as well as in the respective client requests before they can be approved or rejected. Additionally, a new **KYT status** column in **Finance** > **Deposits/Payouts** displays the transaction monitoring results.
This also improves **auto-withdrawals** in B2CORE, allowing faster processing without compromising compliance.
To use this feature, you must have **SumSub Fraud Prevention** enabled and properly configured in your SumSub account and the enabled **SumSub** external connection in the B2CORE Back Office (refer to [How to configure a connection to SumSub](../how-to-articles/manage-verification-options/how-to-use-sumsubstance#how-to-configure-a-connection-to-sumsub)).
#### Integration with ActiveCampaign [#integration-with-activecampaign]
It’s now possible to run targeted email campaigns using client data from B2CORE, seamlessly synced with the **ActiveCampaign** platform. This integration enables more efficient, data-driven email marketing and notifications by:
* Configuring an external connection to **ActiveCampaign** in the B2CORE Back Office.
* Automatically syncing client data from B2CORE to **ActiveCampaign**.
* Creating email lists to improve client retention and provide more personalized interactions via **ActiveCampaign**.
For details, refer to [How to integrate ActiveCampaign](../how-to-articles/manage-communication-platforms/how-to-integrate-activecampaign).
#### Support for custom menu items in the B2CORE web and mobile apps [#support-for-custom-menu-items-in-the-b2core-web-and-mobile-apps]
It’s now possible to add custom items to the menu displayed in both the B2CORE UI and mobile apps. In mobile apps, this functionality is supported starting from **iOS** v1.29 and **Android** v2.6.0.
Custom items can be configured in **Promotion** > **Menu** by specifying their names, URLs to which clients will be redirected, and icons. When clicked, clients are redirected to third-party external resources or web pages that support your business (refer to [How to add custom menu items](../how-to-articles/manage-advertising-options/how-to-add-custom-menu-items)).
### B2CORE UI updates [#b2core-ui-updates-10]
#### Improved Total Balance widget [#improved-total-balance-widget]
The widget has been improved to show balances from both wallets and trading accounts, as well as the overall portfolio value for a comprehensive financial overview.
#### Enhancements related to B2TRADER accounts [#enhancements-related-to-b2trader-accounts]
The following improvements to B2TRADER accounts handling have been introduced:
* **New B2TRADER Accounts widget**: accounts created on the B2TRADER platform can now be conveniently viewed and accessed via a dedicated widget on the **Dashboard** in the B2CORE UI. With a single click, traders can sign in to the trading interface and start trading instantly.
* **Support for Netting accounts**: in addition to **Hedging**, B2TRADER accounts with the **Netting** execution type are now supported. This allows traders to choose the appropriate type to plan and adjust their trading strategies. To enable Netting accounts, a separate product must be configured in the B2CORE Back Office under the **Products** menu.
* **Support for demo accounts**: demo B2TRADER accounts with a predefined balance can now be created via the B2CORE UI, allowing traders to safely practice using the trading interface.To enable demo accounts, a separate product must be configured in the B2CORE Back Office under the **Products** menu.
#### Revised Sign Up and Sign In pages [#revised-sign-up-and-sign-in-pages]
The **Sign Up** and **Sign In** forms have been redesigned for a cleaner layout, improved visual appearance, and a better overall user experience, including:
* Displaying the client’s email or phone during confirmation to clarify where a verification code was sent.
* The **Back** button now returns clients to the previous step without resetting the form.
### Improvements [#improvements-10]
* PSS payment methods are now partially supported in the mobile apps. *Deposit* methods are available in the **iOS** app starting from v1.29 and **Android** starting from v2.6.0. *Withdrawal* methods via PSS aren't yet supported.
* The use of bonus presets and temporary bonuses can now be restricted for clients based on a client's **country**, **client type**, **verification level**, **jurisdiction**, or **introducing broker (IB)**. These restrictions can be applied individually or in combination, allowing for more granular access control.
If the restrictions are applied to the bonus preset used for crediting automatic deposit bonuses, these bonuses will only be credited to clients who meet the specified criteria (refer to [Bonus presets](../back-office-guide/bonuses/bonus-presets#details) and [Temporary bonuses](../back-office-guide/bonuses/temporary-bonuses#details)).
* On the **Bonus** > **Bonus distribution** page, a new **Expired at** column has been added to display the date and time when a credited bonus is scheduled to expire or has already expired. This improvement makes it easier to monitor bonus timelines on client accounts and encourage clients to meet the bonus requirements before expiration.
* Jurisdiction handling has been enhanced. You can now manually assign or change a client's jurisdiction in the client details in the Back Office. The list of countries for a jurisdiction can be edited, with the option to apply changes to existing clients or only to those who register after the update (refer to [Jurisdictions](../back-office-guide/clients/jurisdictions)).
* For KYC via **ShuftiPro**, the **Show OCR form** – where clients can review, confirm, or if necessary, edit the information extracted from their submitted documents – can now be enabled or disabled in the ShuftiPro connection settings in **System** > **External connections**.
* Confirmed phone numbers can now be removed from the **Contacts** tab in client profiles in the Back Office. To do this, a Back Office user must be assigned the `Update clients` permission. Once removed, the phone number becomes available for registering a new client profile.
* The **Clients** > **Requests** page has been improved to include a **Country** column with filter options, making it easier to identify requests by client location. Additionally, the **Processing date** column now shows when a request was approved or rejected, helping you assess its processing time.
* In **System** > **Visual customization**, images uploaded as logos can now only be in `SVG` format.
### Resolved issues [#resolved-issues-8]
* Resolved an internal server error that occurred when uploading supporting documents for deposits via the **WireDocument** provider. Deposit requests now proceed without errors.
## April 18, 2025 [#april-18-2025]
### New features [#new-features-11]
#### New PS integrations [#new-ps-integrations-6]
With this release, we’ve integrated a new payment system, **AlfredPay**. It supports deposits and is fully integrated via PSS connections.
#### Ongoing migration of payment systems to PSS [#ongoing-migration-of-payment-systems-to-pss]
More systems have been successfully migrated to the **Payment System Service (PSS)**.
You can view the complete list of PSS-supported payment systems in [Integrations > Payment systems](../integrations/payment-systems). They are marked with Yes in the **PSS-supported** column.
#### Account status [#account-status]
An account can have a status that limits what you can do with it. When a status applies, a status indicator is shown on the account, and a banner explains the restriction. Account status is managed by your administrator.
The following statuses are visible to you:
* **Halted**: A banner reads *Account is locked for trading. Contact your administrator.* The trading controls are disabled, but you can still deposit and withdraw funds, and your balances, positions, and history stay visible.
* **Frozen**: A banner reads *Account is frozen. Contact your administrator.* The account is view-only. All controls are disabled, while your balances, positions, and history stay visible.
To restore trading on an account that is Halted or Frozen, contact your administrator.
#### Favorite markets [#favorite-markets]
Mark instruments as favorites for quick access. To add or remove a market from favorites, click the **star icon** next to the market name in the instrument selection list.
Favorite markets can be accessed in two ways:
* **Favorites tab** in the instrument selection panel — filters the list to show only your favorite markets.
* **Favorites dropdown** in the topbar — provides quick access to favorite markets from anywhere in the terminal.
### Settings [#settings]
Use this control to access interface and system settings.
Refer to [Settings](settings) for details.
### Other controls [#other-controls]
* **Introduction tour**: Access the interactive platform walkthrough.
* **Alerts**: View new system notifications.
* **Analytics**: Open the **Account Analytics** view with the **Equity Curve** chart — your account balance and equity dynamics over time (Margin Balance, Equity, Total Equity, Unrealized PnL, Deposits / Withdrawals) for a selected period and granularity. The data updates hourly. Click **Back to Trading** to return to the terminal.
* **Log out**: Log out of the system to securely terminate the session. After that you’re navigated to the Login page.
## Working with widgets [#working-with-widgets]
> For more information about available widgets, refer to the **Widgets** section of this guide.
### Add widgets to your workspace [#add-widgets-to-your-workspace]
**To add a new widget**:
1. Click the **Add Widget** button.
2. Browse the available widgets.
3. Click any widget to add it to your workspace.
**To add widgets to existing panels**:
1. Look for the **+** button next to the tabs in a panel's header.
2. Click it to open the widget catalog.
3. Select a widget to add it as a new tab to that panel.
### Move and position widgets [#move-and-position-widgets]
**To move a widget**:
1. Click and hold the **move handle** in the top-right corner of the panel header.
2. Drag it to desired location on the page.
3. Drop it.
**To rearrange widget tabs within a panel**:
1. Click and hold any widget tab.
2. Drag it left or right to reorder.
3. Release to set the new position.
### Resize widgets [#resize-widgets]
**To resize a widget panel**:
* **Single edge**: Hover over any edge until you see the resize cursor, then drag.
* **Corner resize**: Drag a corner to adjust both width and height simultaneously.
* **Precision**: Use edge dragging for fine-tuned sizing.
### Remove widgets and tabs [#remove-widgets-and-tabs]
**To remove a tab**:
1. Click the **×** button in the top-right corner of the widget tab.
2. The tab will be removed immediately.
3. When you remove the last tab from a panel, the entire panel disappears.
### Link panels to a group [#link-panels-to-a-group]
Each panel header has a **Link to group** button — the circle icon **next to the move handle** in the top-right corner. Linking panels to the same colored group keeps them in sync: when you select an instrument in one linked panel, the other panels in the same group switch to it automatically.
**To link a panel to a group**:
1. Click the **Link to group** button (next to the move handle) in the panel's top-right corner.
2. Select one of the color groups (Group 1–5).
3. Repeat for other panels, choosing the same group to keep them synchronized.
### Customize widget content [#customize-widget-content]
Certain widgets let you customize which columns to display and their order: Look for the **column settings** button in the widget header.
**To customize columns**:
1. Click the **column settings** button.
2. **Show/hide columns**: Check or uncheck boxes (grayed-out columns are required).
3. **Reorder columns**: Drag and drop items in the list.
4. **Reset**: Click *Reset to default* to restore original settings.
## Managing workspaces [#managing-workspaces]
### Create new workspaces [#create-new-workspaces]
**To create a workspace**:
1. Click the **+** tab next to your existing workspaces.
2. Choose a template:
* **Pre-built templates**: Start with common widget combinations.
* **Empty**: Build completely from scratch.
3. Enter a name for your workspace.
4. Start customizing.
### Workspace management [#workspace-management]
**To rename or delete a workspace**:
1. Click the menu icon on the workspace tab.
2. Select **Rename** or **Remove**.
**To reorder workspaces**:
1. Click and hold any workspace tab.
2. Drag it left or right to reorder.
3. Release to set the new position.
## Market info panel [#market-info-panel]
Click the **info icon** next to a market symbol in widgets to view:
* Detailed market information.
* Trading session schedules.
* Leverage details (for CFD and PF markets).
* Fee details.
* Funding details (for PF markets).
## Pro tips [#pro-tips]
### Efficient layout building [#efficient-layout-building]
* Start with a template that is close to your needs, then customize.
* Group related widgets in tabs to save screen space.
* Use larger panels for charts, smaller ones for order books.
### Layout best practices [#layout-best-practices]
* **Save multiple workspaces** for different trading strategies.
* **Test your layout** during low-activity periods.
* **Keep essential widgets visible** (account info, positions, alerts).
Guest mode lets you open the Trading terminal and look around without an account. You get the real interface with live market data, so you can judge the platform and its market coverage before you sign up. Everything that would move money or show someone's balance stays behind login.
You do not switch Guest mode on. Open the terminal URL without a session and it loads in Guest mode on its own — there is no redirect to a login page first.
On your first visit a short disclaimer appears, stating that the page is for information only and that the instruments actually available for trading are determined by current legislation. Click **OK** to dismiss it; it is remembered in your browser and does not appear again. Your broker can turn the disclaimer off.
## What you can do as a guest [#what-you-can-do-as-a-guest]
* Browse the full list of instruments your broker offers, and filter, group, and search it exactly as a logged-in trader would.
* Follow live prices, the [Order book](../widgets/order-book), and [Market depth](../widgets/market-depth).
* Work with the [Price chart](../widgets/price-chart): change the instrument, change the timeframe, and use the chart tools.
* Open the [AI Assistant](../widgets/ai-assistant) widget for market analysis.
* Fill in the [Place order](../widgets/place-order) form — order type, side, quantity, price, stop loss, take profit, time in force. The fields behave the same as they do for a logged-in trader, so you can see exactly what placing an order involves.
## What needs logging in [#what-needs-logging-in]
In the [Place order](../widgets/place-order) widget the order submit button is replaced by a **Log In** button. You can fill in the whole form and see the calculated figures, but there is no way to submit an order as a guest.
Account-related widgets are not hidden either. Each is covered by an overlay with a padlock icon, the message *Log in to unlock all features*, and a **Log In** button, so you can see where your own data will appear once you have an account. The affected widgets are:
* [Assets](../widgets/assets)
* [Margin](../widgets/margin)
* [Open orders](../widgets/open-orders)
* [Open positions](../widgets/open-positions)
* [Closed positions](../widgets/closed-positions)
* [Order history](../widgets/order-history)
* [Stop orders](../widgets/stop-orders)
* [Messages](../widgets/messages)
* [Price control](../widgets/price-control)
## Your guest workspace [#your-guest-workspace]
Guest mode opens with a workspace laid out by your broker. It is the same on every visit and it is not saved: rearranging widgets as a guest does not carry over to your next visit, and it never becomes your workspace after you log in.
## Logging in from Guest mode [#logging-in-from-guest-mode]
Use **Log In** in the terminal topbar, or the **Log In** button on any account widget overlay or in the Place order widget — they all do the same thing.
After you log in, the terminal reloads into the full trading experience and opens your saved workspace. On a first login, when you have no saved workspace yet, it opens the default one.
If you are already logged in to your broker's client portal in the same browser, the terminal detects that session on load and takes you straight into the full trading experience — no second login.
## Logging out [#logging-out]
Logging out returns you to Guest mode on the same address, not to a login page, so you can keep watching the markets. Your account data is cleared from the browser first, so no balances, positions, orders, or history remain visible.
Access settings by clicking the **gear icon** in the topbar of the Trading terminal.
Settings are organized into tabs:
* [Interface](#interface): Configure language, time display, and visual theme.
* [Widgets](#widgets): Customize widget display options.
* [Action Confirmation](#action-confirmation): Choose which actions require additional confirmation.
* [Account margin](#account-margin): Manage collateral assets for margin trading.
* [Trading report](#trading-report): Generate comprehensive trading and account reports, including an official Client Account Statement.
* [API token management](#api-token-management): Generate and manage tokens for accessing the Trading API.
* [TradingView Webhooks](#tradingview-webhooks): Configure TradingView webhook alerts for automated order execution.
## Interface [#interface]
Configure global interface preferences:
**Language**
Select the interface language from the dropdown menu.
**24 hour mode**
* Enable: Display time in 24-hour format.
* Disable: Display time in 12-hour format with AM/PM.
**Dark theme**
* Enable: Apply dark color scheme.
* Disable: Apply light color scheme.
## Widgets [#widgets]
Configure display options for the following widgets.
### Price chart [#price-chart]
**Display positions**
When enabled, open positions are shown on the chart along with:
* Position size and current PnL.
* Quick access to edit price triggers and close positions.
* Color coding: Long positions (green), Short positions (red).
**Display orders and triggers**
When enabled, the following orders and triggers are displayed on the chart:
* Active Limit and Stop orders with order type, price, and amount.
* Stop loss, Take profit, and Trailing stop triggers.
* Quick access to edit triggers and cancel orders.
* Color coding: Buy orders (green), Sell orders (red).
**Display executed orders**
When enabled, executed orders are shown on the chart with order type indicators:
* Green `B` tag for Buy orders.
* Red `S` tag for Sell orders.
Clicking `B` or `S` will open details of one or more orders that were executed during the candle interval.
**Market quick trade panel**
When enabled, a panel is displayed on the chart for placing Market orders with:
* Quick amount selection from preset values.
* Leverage ratio input (when applicable).
Amount presets can be configured in the corresponding field displayed when the option is enabled.
**Limit quick trade panel**
When enabled, a panel is displayed on the chart for placing Limit orders with:
* Quick amount selection from preset values.
* Leverage ratio input (when applicable).
Amount presets can be configured in the corresponding field displayed when the option is enabled.
## Action Confirmation [#action-confirmation]
Choose which trading actions require an additional confirmation dialog before execution.
**Cancel orders**
* Enable: A confirmation dialog is displayed before canceling orders.
* Disable: Orders are canceled immediately without confirmation.
This setting applies to single and bulk order cancellations from the **Open Orders** widget and the **Price chart**.
The confirmation dialog includes a **"Don't ask again"** checkbox. To skip the confirmation for future order cancellations, check this box.
**Full Close Positions**
* Enable: A confirmation dialog is displayed before closing positions.
* Disable: Positions are closed immediately without confirmation.
This setting applies to single and bulk position closures from the **Open Positions** widget.
**Limit order cross-TOB warning**
* Enable: A confirmation dialog is displayed before a Limit order is submitted if its price crosses the current top-of-book — that is, when a Buy price is at or above the best ask, or a Sell price is at or below the best bid. The dialog shows the entered price and the current best bid/ask, and includes a **Do not show this warning again** checkbox.
* Disable: Crossing Limit orders are submitted immediately without the warning.
The warning is enabled by default. The dialog checkbox and this toggle share the same global setting and stay in sync.
The warning is informational only — it does not block the order. If you confirm, the order is submitted with the original price. The warning applies only to standard Limit orders; Stop-limit, Take-profit-limit, IOC, FOK, and other order types are not affected. If best bid or best ask data is unavailable (empty book or disconnected feed), the order is submitted without the warning.
## Account margin [#account-margin]
Control which assets can be used as collateral for margin trading.
### Asset list [#asset-list]
The following information is provided about each asset:
**Asset**
The alphabetical code of the asset.
The first asset in the list is the **root asset** of the platform.
***
**Caption**
The asset name.
***
**Available**
The balance available for trading, calculated as *Total – Halted*, where *Halted* represents funds locked for pending Limit orders.
***
**Total**
The complete asset balance including locked funds.
***
**Margin ratio**
The percentage of asset value that can be used as collateral for margin trading.
***
**Use as margin**
Enable this toggle to use the asset as collateral for margin trading.
Configure which assets can be used as collateral for margin trading by toggling the **Use as margin** setting for each asset.
Only assets with **Margin ratio** greater than 0 (zero) can be enabled.
The platform root asset is enabled by default and can't be disabled.
### Filtering options [#filtering-options]
Click the **funnel icon** to configure the asset list display:
* **Show/Hide zero balances**: Control visibility of assets with zero balance. By default, hidden.
* **Show/Hide assets unused as margin**: Control visibility of assets with disabled margin usage.
* **Show/Hide assets with zero margin ratio**: Control visibility of assets that can't be used as collateral. By default, hidden.
## Trading report [#trading-report]
Generate comprehensive reports containing:
* **Trade history**
* Closed positions
* Executed orders
* Individual trades
* **Transfers history**
* All account transfers
* **Account statistics**
* Total balance
* Realized PnL
* Position swaps
* Position funding
* Commissions
* Margin Balance, Equity, Margin Used, Free Margin, Margin Level, Unrealized PnL, and As Of — the same account summary values as the HTML statement, see [Client Account Statement](#client-account-statement)
To generate a report:
1. Select a custom period of time (UTC time), or generate a report for your entire account history using the **All data** range. The following timeframe presets have been implemented for your convenience:
* **Today**
* **Current**: week, month, quarter
* **Previous**: week, month, quarter
* **All data**.
2. Click **Download**.
Once generated, the report will be automatically downloaded to your computer as a zipped file.
### Client Account Statement [#client-account-statement]
Along with the CSV file, the downloaded archive contains an HTML **Client Account Statement**: a self-contained document you can open directly in your browser, without any additional software. Besides your trade and transfer history, the statement can include:
* Your broker's trading entity details and logo, when configured.
* The statement period, currency, and the generation date and time, in UTC.
* Your account details: legal name, account number, and account type, when available.
* A point-in-time account summary — Margin Balance, Equity, Margin Used, Free Margin, Margin Level, and Unrealized PnL — as of the end of the selected period, or the latest available snapshot while the period is still open, with the exact time printed next to the summary.
* Legal texts configured by your broker, such as a disclaimer or a confidentiality statement.
A field your broker hasn't configured is left out of the statement rather than shown blank. If the requested period ends before account summary data becomes available, the statement states that account summary data isn't available for that period, instead of showing the summary.
To save the statement as a PDF file, open the downloaded HTML file in your browser, then use your browser's Print dialog and select **Save as PDF**.
## API token management [#api-token-management]
Generate tokens for accessing the [Trading API](https://api-docs.b2trader.b2broker.com/):
* **Limit**: 10 tokens per account
* **Validity**: 1 year
* **Management**: Can be revoked or deleted at any time
To generate a token:
1. Click **+ Create new**.
2. In the **New API token** popup, fill in a **Name** for the token, to help you identify it later.
3. Click **Create**.
The newly generated token will be displayed and available for copying, along with its name and expiration date.
The widget is organized into the following sections:
* [AI Recommendation](#ai-recommendation): Overall recommendation score.
* [Forecast](#forecast): Price target and market sentiment.
* [Signal Drivers](#signal-drivers): Technical, on-chain, and sentiment signals.
* [Suggested Actions](#suggested-actions): AI-generated trading suggestions.
* [Key Metrics](#key-metrics): Market data overview.
## AI Recommendation [#ai-recommendation]
Displays a numeric score from 0 to 100 representing the overall AI assessment of the market, along with a label such as **Strong Buy**, **Buy**, **Neutral**, **Sell**, or **Strong Sell**.
A higher score indicates a more favorable outlook.
## Forecast [#forecast]
**1Y Price Target**
The forecasted price in one year and the expected percentage change from the current price.
***
**Market Sentiment**
A visual bar showing the ratio between bullish and bearish sentiment among market participants.
## Signal Drivers [#signal-drivers]
Signals that influence the AI recommendation, categorized into three types:
* **Technical**: Signals based on technical analysis indicators such as RSI and Moving Averages.
* **On-Chain**: Signals based on blockchain data such as ETF inflows, active addresses, and total value locked (TVL).
* **Sentiment**: Signals based on community and analyst opinions.
Each signal includes a description and an impact assessment: **Bullish**, **Bearish**, or **Neutral**.
## Suggested Actions [#suggested-actions]
A list of AI-generated trading suggestions based on the current market conditions. These are informational recommendations, not automated trading signals.
## Key Metrics [#key-metrics]
The following market data is displayed:
**All-Time High**
The highest price ever recorded for the asset (in USD) and the percentage difference from the current price.
***
**All-Time Low**
The lowest price ever recorded for the asset (in USD) and the percentage difference from the current price.
***
**24h Volume**
The total trading volume over the last 24 hours in USD.
***
**Market Cap**
The total market capitalization of the asset in USD.
## In Guest mode [#in-guest-mode]
The widget works in Guest mode too, with the same sections, so you can read the analysis for any instrument your broker offers before you have an account.
## Fields [#fields]
The following information is provided about each market:
**Market**
The market type (Spot, CFD, or Perpetual), market ticker and full name of the market.
***
**Current price**
The current market price, in the quote asset and in the platform root asset.
This value is green if the price is rising and red if it's falling.
***
**24h change**
The price change over the last 24 hours, in absolute and percentage values.
This value is calculated as *Current price* – *Price 24h ago*.
This value is green if the price is rising and red if it's falling.
A dash in this field means that there is no *Price 24h ago* data available.
## Summary [#summary]
This widget displays the list of all asset balances on your account.
## Settings [#settings]
### Hide zero balances [#hide-zero-balances]
Use this option to hide all assets with zero balances from the list.
It's enabled by default.
### Configure columns [#configure-columns]
Click the **Configure columns** button in the widget header to adjust the displayed information:
* **Mark or unmark column checkboxes**: To display or hide them; the column checkboxes highlighted in grey can’t be unmarked.
* **Drag and drop the columns**: To adjust their order in the table.
## Fields [#fields]
The following information is provided about each asset:
**Asset**
The alphabetical code of the asset.
The first asset in the list is the **root asset** of the platform.
***
**Caption**
The asset name.
***
**Available**
The balance at your disposal, meaning the difference between your total assets and a sum of all limit orders placed by this time.
This value is calculated as *Total – Halted*, where *Halted* is the asset amount frozen on the account for execution of placed Limit orders.
***
**Available, \{RAT}**
The available balance, in conversion to the platform root asset.
***
**Total**
The overall amount of the asset available in your wallet, including locked funds.
***
**Total, \{RAT}**
The total balance, in conversion to the platform root asset.
## Summary [#summary]
This widget displays a list of your closed positions on the selected account.
The entire history of your closed positions is available.
## Fields [#fields]
All values are in displayed in conversion to the platform root asset:
**Your margin level**
The ratio of your funds to a used collateral, in percents. This value is calculated as *Equity* / *Used margin* × 100%.
Possible values:
* **Empty**: No open positions.
* **Low risk**: Everything is ok.
* **Margin call**: Your margin level fell below the set Margin call value. You received a notification urging you to increase the margin level to avoid a Stop out. Remember that if you ignore this warning, the margin level may continue to decrease. During the Margin call, you can only close existing positions; opening new positions isn’t possible.
* **Stop out level**: Your margin level fell below the set Stop out value; the platform started a process of liquidating your positions. This process continues until the margin level exceeds this required value. **ANY** currently open position can be closed regardless of its side and volume.
***
**Margin balance**
The total amount of your funds that can be used as a collateral for CFD trading.
It’s calculated as Σ(*TotalAmountX* × *MarginRatioX* × *Rate X/RAT*), where:
* *TotalAmountX* is the the total amount of the asset X, including both available and locked funds.
* *MarginRatioX* is the Margin ratio set for the asset X.
* *Rate X/RAT* is the constantly updated rate of the asset X to the platform root asset.
The Margin balance is continually recalculated based on price fluctuations.
An increase in the prices of assets boosts available Balance & Free margin.
Conversely, a decrease in asset prices may reduce the available Balance and Free margin.
Additionally, a decline in the prices of assets with open positions may trigger Margin calls and Stop outs.
***
**Credit**
A promotional bonus granted by your broker for margin (CFD and Perpetual) trading, shown in the platform root asset (RAT). When you have no credit, this row shows 0.
Credit increases your Equity and Free margin and can be used as collateral to open positions. It becomes available immediately when granted and never expires. However, credit cannot be withdrawn as cash, so it is excluded from your withdrawable balance. Your broker can revoke credit at any time, and the row updates in real time when this happens.
The row includes an info tooltip that reads: *Promotional credit for margin trading only. Cannot be withdrawn.*
***
**Equity**
The potential balance of your account if all your positions were closed right now.
This value is calculated as *Margin balance* + *Credit* + *Unrealized PnL*.
***
**Used margin**
The amount of funds that is used for maintaining all your open positions.
Is opposed to the *Free margin*.
The Used margin for positions on a specific market is calculated using the maximum value between the total margin of long positions and the total margin of short positions: MAX(*MarketPositionLong*, *MarketPositionShort*).
**Example**
**Step 1: Initial balance**
* Margin balance: $10,000
* Opened positions: 0
* Free margin: $10,000
* Used margin: $0
**Step 2: Open a long position (Leverage 1:100)**
* Market: CFD EUR/USD
* Position size: 1 lot (100,000 units)
* Current price: $1.001
* Required margin: $(100,000 × 1.001) / 100 = $1,001
* After opening:
* Free margin: $8,999
* Used margin: $1,001
**Step 3: Open a long position (Leverage 1:20)**
* Market: CFD EUR/USD
* Position size: 1 lot (100,000 units)
* Current price: $1.001
* Required margin: $(100,000 × 1.001) / 20 = $5,005
* After opening:
* Free margin: $3,994
* Used margin: $6,006
**Step 4: Open a short position (Leverage 1:100)**
* Market: CFD EUR/USD
* Position size: 9 lots (900,000 units)
* Current price: $1
* Required margin: $(900,000 × 1.001) / 100 = $9,009.
The system verifies that upon opening this position, the MarketUsedMargin remains valid by satisfying the condition: **MarketUsedMargin** = MAX(*MarketPositionLong*, *MarketPositionShort*) = MAX(6,006, 9,009) = 9,009.
Since the condition is met, the position opens.
* After opening:
* Free margin: $991
* Used margin: $9,009
As a result, you can open multiple opposite positions without significantly increasing the Used margin.
Furthermore, closing positions never increases the Used margin.
***
**Free margin**
The amount of funds that can be used for opening new positions.
***
**Unrealized PnL**
The total potential profit or loss earned from all open positions.
This value is calculated as *Σ(Unrealized PnL for Long positions + Unrealized PnL for Short positions)*, where:
* *Unrealized PnL for Long positions* = *Position size* × (*Current price* – *Open price*)
* *Unrealized PnL for Short positions* = *Position size* × (*Open price* – *Current price*)
## Summary [#summary]
Use this widget to assess the current market depth indicating the actual liquidity of an asset, which is evaluated based on the number of currently open orders to buy and sell it as well asset prices and volumes at various price levels.
The widget is dynamic and is continuously updated in real time.
The widget displays a chart indicating the overall volume of buy (green) and sell (red) orders at various price levels awaiting execution at the moment.
You can hover the mouse pointer over the chart to learn the exact price and volume of an asset traded at a specific price level.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
## Summary [#summary]
Use this widget to monitor statistics on a specific instrument.
The widget is dynamic and is continuously updated in real time.
## Settings [#settings]
### Mark as read [#mark-as-read]
Unread alerts are marked with a red dot in the list:
* Click the dot to mark the notification as read.
* Click **Mark all as read** to mark all new notifications as read at once.
* Click the **three dots** icon in the upper right corner of the widget to access the **Hide read notifications option**.
The widget is dynamic and is continuously updated in real time.
It provides three different sections displaying the following information:
* Open sell orders are highlighted in red and listed in the top section. The best ask, which is the sell order with the lowest price, is displayed at the bottom of this list.
* Open buy orders are highlighted in green and listed in the bottom section. The best bid, which is the buy order with the highest price, is displayed at the top of this list.
* The middle section displays the current bid-ask spread indicating the gap between the best ask and bid prices declared for an asset.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Display only asks/bids [#display-only-asksbids]
In the upper part of the widget, you can choose how to display the Order book:
* Full view.
* Buy orders only + spread.
* Sell orders only + spread.
## Fields [#fields]
Each row of the Order book provides the following information about a selected market:
**Price, \{QUOTE}**
The price, in the quote asset.
***
**Amount, \{BASE}**
The total amount of the base asset available at a corresponding price level.
***
**Total**
The total amount, in the quote asset, required to fully execute the orders at a corresponding price level.
The widget has two states:
### The PRO toggle is disabled [#the-pro-toggle-is-disabled]
In this state, you can quickly place **IOC Market** and **GTC Limit** orders by selecting the order side (Buy/Sell) and type (Market/Limit), and specifying the order size (in lots) and price (for Limit orders).
You can also place orders on CFD markets with the maximum leverage automatically applied.
### The PRO toggle is enabled [#the-pro-toggle-is-enabled]
In this state, you get access to more precise order settings, such as:
* **Stop orders**
* **Time in force**
* **Leverage**
* **Take profit, Stop loss, Trailing stop**
* **Comment**
* **Complete order information**
The **Comment** field allows you to attach a text note to the order (up to 100 characters). The comment is inherited by the resulting position and can't be edited after the order is placed.
## Settings [#settings]
### Select a market [#select-a-market]
The market on which the order will be placed is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Place an order [#place-an-order]
To place an order, fill in the parameters, review order details and preliminary calculated values, and then confirm the order by clicking the **Place** button.
The horizontal axis (X-axis) represents the time scale, and the vertical axis (Y-axis) indicates the price level.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Customization [#customization]
Multiple customization options are provided, allowing you to configure the chart according to your preferences.
You can switch between bar, candle, Heikin Ashi, line, area and baseline views, as well as specify the time period for which data should be displayed.
The chart supports numerous financial indicators, such as moving averages and regressions, and can feature a variety of custom shapes, including arrows and lines, pitchforks, and various ranges, allowing you to perform an in-depth market analysis.
### Display options [#display-options]
The widget supports displaying of open positions, price triggers, open and executed orders.
Click the **gear icon** in the topbar and access [Price chart settings](../get-started/settings#price-chart) to enable desired options.
## Placing orders [#placing-orders]
### Enable placing orders [#enable-placing-orders]
To enable placing orders directly from the Price chart, you need to activate the corresponding settings:
1. Click the **gear icon** in the topbar and access [Price chart settings](../get-started/settings#price-chart).
2. Activate the **Market quick trade panel** or **Limit quick trade panel** toggle, or both.
3. If needed, adjust the amount presets. These amounts will be available for quick selection when placing an order.
### Market quick trade panel [#market-quick-trade-panel]
If the corresponding setting is activated, the draggable **Market quick trade panel** is constantly displayed on the Price chart.
### Limit quick trade panel [#limit-quick-trade-panel]
If the corresponding setting is activated, the **+** will appear when hovering over price levels on the chart.
Clicking it will open the **Limit quick trade panel**:
* in the upper half of the chart — to sell;
* in the lower half of the chart — to buy.
### Place a new order [#place-a-new-order]
To place a new Market or Limit order from the Price chart, when a corresponding panel is displayed:
1. Select the **amount** from configured presets.
2. Select a **leverage** ratio, if trading on CFD or PF markets.
3. Click **Buy** or **Sell**.
The order will be placed according to the selected type.
## Summary [#summary]
Use this widget to configure alerts that will be delivered to the [Messages](messages) widget when an instrument price reaches the specified level.
## Settings [#settings]
### Configure a new alert [#configure-a-new-alert]
To configure a new alert:
1. Click the **Add market** button to select a required market from the list.
2. Click the **+** icon below the instrument name to add a new alert trigger.
3. In the displayed fields, specify the exact price or the price change in percents (positive or negative). The other value will be calculated automatically.
4. Click the **check mark icon** to add the trigger.
Now you will receive a notification in the [Messages](messages) widget, once the instrument price hits the specified level.
You can configure multiple triggers for each instrument.
### Edit alerts [#edit-alerts]
Click the price to edit the existing alert.
### Remove alerts [#remove-alerts]
Click the **×** button on the trigger panel to remove it and stop receiving corresponding notifications.
Click the **×** button in the instrument row to remove it from the list and stop monitoring.
## Summary [#summary]
This widget displays a list of untriggered Stop orders created on the selected account.
Once a market price reaches your predetermined Stop price, the Stop order is activated and submitted as either a Market or Limit order.
It's then removed from this widget.
You can now find it in either the [Open orders](open-orders) or [Order history](order-history) widget, depending on its current status.
## Stop orders outside trading hours [#stop-orders-outside-trading-hours]
You can place Stop Market and Stop Limit orders while a market is closed according to its trading calendar, so you can prepare an entry or a protective level before the session opens. This applies to every channel: the Trading terminal, the REST API, the FIX API, and TradingView.
An order placed this way behaves as follows:
* It is accepted right away and appears in this widget with the standard **Waiting for activation** status. No new status was introduced for orders placed outside trading hours.
* It is validated at placement against the price and amount scales and the market minimum amount. The stop price is also checked against the best bid and ask whenever a price is available — while the market is closed there may be no live price to check it against.
* No balance or margin is reserved at placement. The margin check happens when the order triggers.
* It stays Waiting for activation across sessions until it triggers, you cancel it, or it expires under its [Time in force](../knowledge-base/time-in-force). A Stop order placed on Friday evening is still there on Monday, and an unexpected holiday does not cancel it.
* You can view and cancel it while the market is still closed.
When the session opens, the order is evaluated against the first available price. If the market gapped past your stop price while it was closed, the order triggers at the open. For an order placed while no price was available, the first incoming price is used to finalise the order's internal pricing before it can trigger, so activation can take one extra price update. If the margin check fails when the order triggers, the order is cancelled and you receive the failure reason — it is never dropped silently.
## Settings [#settings]
### Add/remove instruments [#addremove-instruments]
Click the **Add market** button to select a required market from the list.
Click the **×** button in the instrument row to remove it from the list and stop monitoring.
### Configure columns [#configure-columns]
Click the **Configure columns** button in the widget header to adjust the displayed information:
* **Mark or unmark column checkboxes**: To display or hide them; the column checkboxes highlighted in grey can’t be unmarked.
* **Drag and drop the columns**: To adjust their order in the table.
## Fields [#fields]
The following information is provided about each instrument:
**Market**
The market type (Spot, CFD, or Perpetual) and market ticker.
***
**Full name**
The market full name or description.
***
**Last price**
The price of the last trade.
***
**24h change, %**
The price change over the last 24 hours, in percents.
This value is calculated as ((*Current price* – *Price 24h ago*) / *Current price*) × 100.
This value is green if the price is rising and red if it's falling.
A dash in this field means that there is no *Price 24h ago* data available.
***
**24h low**
The lowest trade price over the last 24 hours.
***
**24h high**
The highest trade price over the last 24 hours.
Welcome to **B2TRANSLATE**, a comprehensive web-based localization tool integrated with B2BROKER products.
This tool enables you to efficiently translate your product's web user interfaces (WebUIs) into multiple languages, ensuring global accessibility for your applications.
B2TRANSLATE organizes translations using a clear hierarchy that makes managing complex localization projects intuitive:
1. **Project types**: Your B2BROKER products.
2. **Projects**: Individual WebUIs within each product, such as test and production websites.
3. **Keys and translations**: Specific UI elements and their localized texts.
Let's explore each component in more detail.
## Project types [#project-types]
**Project types** correspond directly to your purchased B2BROKER products.
They're automatically added to your B2TRANSLATE.
If you have multiple products, all of them can be accessed on a single page for your convenience.
Each product may have one or more WebUIs, for example if you have several instances.
In this case, the project type encompasses different **projects** that represent these WebUIs.
## Open your account settings [#open-your-account-settings]
To open your account settings, click **Account** (the gear icon) in the sidebar. The **Settings** page opens with two tabs:
* **Personal API tokens** — create and revoke tokens for programmatic API access.
* **Change password** — update the password you use to sign in.
These settings apply to your own account only.
## Change your password [#change-your-password]
## Manage personal API tokens [#manage-personal-api-tokens]
Personal API tokens are an authentication method for programmatic access to the B2TRANSLATE API, useful for integrations and automation workflows. A token acts on your behalf, so you don't need to share your sign-in credentials.
### Create a token [#create-a-token]
### Revoke a token [#revoke-a-token]
To revoke a token you no longer need, find it in the list on the **Personal API tokens** tab and click **Delete**. Any integration that uses the token stops working immediately.
## View your notifications [#view-your-notifications]
B2TRANSLATE keeps you informed about background events — such as a finished AI translation, a ready export, or a completed import — through the notification bell at the bottom of the sidebar.
* A red badge on the bell shows the number of unread notifications.
* To see your most recent notifications, click the bell.
* Mark a notification as read to clear it, or click **Mark all as read** to clear them all at once.
* When you have more than five notifications, click **All notifications** to open the full history.
## Change the interface language [#change-the-interface-language]
B2TRANSLATE is available in multiple languages. To change the language of the interface, click the language selector (the globe icon) at the bottom-left of the sidebar, and then select a language from the list. Your choice is saved for the next time you sign in.
## Sign out [#sign-out]
To sign out, click the log-out icon at the bottom of the sidebar. B2TRANSLATE ends your session and returns you to the **Sign in** page.
The credentials for signing in to B2TRANSLATE are sent to you after setting up the product you have purchased.
To access your B2TRANSLATE account, go to the **Sign in** page, enter your email and password, and click **Sign in**.
If you forgot your password, click the **Forgot password?** link and follow the instructions.
**Two-factor authentication (2FA)**
For security purposes, 2FA using codes generated by an authenticator app is obligatory for all B2TRANSLATE accounts.
* If 2FA is enabled for your B2TRANSLATE account, complete the sign-in process by entering a 2FA code from an app, such as **Google Authenticator** or **Twilio Authy**.
* If 2FA hasn't yet been enabled for your account, you'll be prompted to set it up during sign-in. Follow the on-screen instructions to install an authenticator app on your phone and set it up to generate 2FA codes for B2TRANSLATE.
To filter keys, while on the **Translations** page, click the **Filters** button in the upper-right page corner.
You can filter keys by the following parameters:
**Filter by**
Select one of the following:
* **Empty keys**: To filter keys for which empty translations are saved. For such keys, an empty string is displayed in the WebUI.
* **No translation**: To filter keys with no custom translations. For such keys, a default translation is displayed in the WebUI.
* **New keys in the last 2 weeks**: To filter keys that have been added within the previous 2 weeks.
* **New keys in the last 4 weeks**: To filter keys that have been added within the previous 4 weeks.
***
**Created between**
Pick up a date range to filter keys added during it.
***
**Updated between**
Pick up a date range to filter keys modified during it.
***
**Category**
Select a category to filter keys included in it.
***
**Key**
Enter a key identifier or a keyword to filter keys with matching identifiers.
***
**Source**
Enter a translation or a keyword to filter keys with the matching default English translations.
***
**Custom translation**
Enter a translation or a keyword to filter keys with matching custom translations.
***
Click **Apply** to filter keys.
To reset filters, click **Clear all**.
On this page, you can view a list of languages available for your projects.
View the following information about each language:
**Language**
The name of a language.
***
**Code**
The two-letter code of a language, as per ISO 639-1.
***
**Projects**
The number of projects where the language is added and used.
## Project list [#project-list]
On this page, you can view a list of your projects.
Projects are grouped under project types, that are displayed as tabs above the project list.
The following information is provided about each project:
**Name**
The project name.
Click it to navigate to the list of project categories.
***
**Languages**
The number of languages available for a project.
***
**All keys**
The total number of keys in a project, both translated and untranslated.
***
**UUID**
The system identifier of a project, in the UUID format.
***
**Actions**
Click the **three dots** in a project row to access [Download and upload translations](manage-translations/download-and-upload-translations) functionality.
## Translations [#translations]
To open the translation view for a project, click its name in the project list.
### Available controls [#available-controls]
Above the table, you can find:
* The **environment** dropdown: For the *Customer* role, only `production` is available.
* The **language** dropdown: Use it to quickly switch between languages available for you project.
* The **quick search** field: Click the **magnifying glass icon** to search keys by identifier or translations.
* The **Filters** button: Click it to open filter panel. For more details, refer to [Filter keys](filter-keys).
***
**Translations**
* **Source**: The pre-defined translation to English. This column is read‑only and helps you understand the meaning and context of the key.
* **B2TRANSLATE**: The pre-defined translation to a selected language, if distinct from English. This column is read-only.
* **Custom translation**: The custom translation to a selected language. This field is initially empty and editable at any time. For keys containing plural forms, this value displays [the Other form](manage-translations/handle-plural-forms#the-other-form).
Each column displays a badge with the corresponding language code.
Refer to [Display logic in WebUI](../get-started/introduction-to-b2translate#display-logic-in-webui) to understand the translation priorities.
For step-by-step instructions on managing translations, refer to the [Manage translations](manage-translations) section of this guide.
***
**Actions**
* **Translate with AI**: Translate the source English translation to a selected language using ChatGPT. For details, refer to [Translate with AI](manage-translations/translate-with-ai).
* **Reset to source translation**: Revert the custom translation to a pre-defined one — either to a selected language (if the default translation for this language is provided) or to English.
* **Save as empty**: Explicitly set an empty translation for this key.
* **Show history**: View the change history of the translation.
***
**Details**
Click the **three dots** to open details:
* **Info** tab: It's displayed for any key and contains information on when the custom translation was added and when it was last modified.
* **Pluralization** tab: It's displayed for keys containing plural forms. Refer to [Handle plural forms](manage-translations/handle-plural-forms) to learn how to properly configure quantity-dependent content based on grammatical requirements of the selected language.
(**View**).
If any transaction related to crediting or deducting a specific bonus on the client's trading account fails, the respective bonus row is highlighted, and the **exclamation** icon appears next to the **View** button. You can view the bonus transaction history on the [Bonus transactions tab](#bonus-transactions) in the bonus details.
***
**Expired at**
The date and time when a credited bonus is scheduled to expire or has already expired.
## Details [#details]
The details page is divided into two tabs:
* [Bonus details](#bonus-details)
* [Bonus transactions](#bonus-transactions)
### Bonus details [#bonus-details]
On the details tab, you can view the bonus setting and requirements that a client must meet to receive a bonus credit on their account balance.
Additionally, you can reactivate bonuses that have the `Expired` status and revoke bonuses with the `Pending` status. To do this, click the **Actions** button in the upper-right page corner and select the appropriate option in the dropdown.
The following information is provided on the tab:
**Created at**
The date and time when a bonus was credited to a client trading account.
***
**Amount**
The bonus amount.
***
**State**
The bonus status.
***
**Volume closed**
The volume of closed positions counted towards the required volume that a client must achieve to receive a bonus credit on their account balance.
***
**Temporary Bonus**\
*Applicable for temporary bonuses only*
The name of a temporary bonus program from which a bonus was claimed.
***
**Activated at**
The date and time when a bonus amount was added to a client trading account as credit.
***
**Client**
The client’s email address.
***
**Account**
The number of a trading account to which a bonus was credited.
***
**Fictive Volume**
This field is used for reactivation of the expired bonus.
***
**Caption**
The bonus name, displayed to a client in the B2CORE UI.
If this field is empty:
* For temporary bonuses, the name of a temporary bonus program from which a bonus was claimed will be displayed to the client in the B2CORE UI.
* For manually credited bonuses, the name of the platform associated with the account receiving a bonus will be displayed to the client in the B2CORE UI.
***
**Lifetime (days)**
The number of days to fulfill the bonus requirements. After the bonus amount is added to a client trading account as credit, the client must trade the required volume within the specified number of days to receive the bonus credit on the account balance.
***
**Lot per unit**
The ratio applied to the bonus amount to determine the volume that must be traded by a client to receive the bonus credit on their account balance:
`Required volume = Bonus amount / Lot per unit`
Suppose that the bonus amount is 100 USD and the **Lot per unit** option is set to 2. In order to receive the bonus credit of 100 USD to their account balance, a client must trade the following volume:
`100 / 2 = 50 lots`.
***
**Set credit immediately**
* If **Enabled**, when a client claims bonuses from multiple programs at a time using the same trading account, all claimed bonuses are immediately added to their account as credit, enabling the client to use credit funds for trading.
* If **Disabled**, when a client claims bonuses from multiple programs at a time using the same trading account, the claimed bonuses are added to their account one after another. Only after the first claimed bonus is processed and assigned the final status (`Completed` or `Expired`), the second claimed bonus is added to the client trading account as credit, and so on.
***
**Ignored open/close interval (sec)**
The minimum duration, in seconds, for which a client must keep a position open for it to be counted towards the traded volume of the bonus program.
***
**Autoenable trading if balance > 0**
When the account balance changes from zero or negative to positive, the permission named `Trade Enabled` is either automatically restored for the account or not, depending on this setting:
* If **Enabled**, when the account balance becomes positive, the `Trade Enabled` permission is automatically restored, enabling the client to resume trading on their account, including the use of the bonus credit.
* If **Disabled**, when the account balance becomes positive, the `Trade Enabled` permission isn’t automatically restored.
***
**Ignored symbol groups**
One or more symbol groups in which trades aren't counted towards the traded volume of the bonus program.
For cTrader, individual symbols must be selected in this field instead of symbol groups, even though symbol groups are available on the cTrader platform.
This field is optional and can be empty.
### Bonus transactions [#bonus-transactions]
On the transactions tab, you can view the history of transactions related to crediting or deducting a specific bonus on the client's trading account, check their statuses, and retry failed transactions if necessary.
For failed transactions with the `Error` status,
(**Retry**) is displayed. Click the button to attempt processing the transaction again.
(**Refresh**) displayed in the upper-right corner.
The following information is provided on the tab:
**Operation ID**
The identifier assigned to the bonus transaction.
***
**Oder ID**
The identifier of the order associated with the bonus transaction, if applicable.
***
**Amount**
The bonus amount.
***
**Status**
The transaction status:
* `New` — the transaction has been initiated.
* `In progress` — the transaction is being processed.
The `New` and `In progress` statuses are intermediate and appear only for a very brief moment.
* `Success` — the transaction was successfully executed.
* `Error` — the transaction failed due to an issue.
***
**Num of attempts**
The number of attempts made to execute the transaction.
***
**Last attempt date**
The date and time of the most recent attempt to process the transaction.
***
**Comment**
A description identifying the transaction:
* **Credit accrued** — the bonus amount is added to the client’s trading account as credit.
* **Credit cleared** — the credited bonus is deducted from the account once the bonus requirements have been met. This occurs just before adding the bonus amount to the account balance.
* **Balance accrued** — the credited bonus is added to the account balance after the bonus requirements have been met.
* **Credit expired** — the credited bonus has expired and is deducted from the account.
* **Bonus cancelled** — the credited bonus is revoked when funds are withdrawn from the account.
***
**Error message**
For transactions with the `Error` status, this field displays details about the error.
***
**Creation date**
The date and time when the transaction was initiated.
| BCH | bch |
|
| BTC | btc |
|
| DASH | dash |
|
| DOGE | doge |
|
| ETH | eth-etherium |
|
| ETH-ARB | eth-arb |
|
| ETH-BASE | eth-base |
|
| LTC | ltc |
|
| TRX | trx |
|
| XLM | xlm-stellar |
|
| XMR | xmr |
|
| XRP | xrp |
|
| ZEC | zec |
## Stablecoins [#stablecoins]
| Icon | Method | Icon name |
| --------------------------------------------------- | ------------- | ------------- |
|
| BUSD-BSC | busd-bsc |
|
| BUSD-T-BSC | busd-t-bsc |
|
| BUSD-ETH | busd-eth |
|
| DAI-BSC | dai-bsc |
|
| DAI-ETH | dai-eth |
|
| USDC-ARB | usdc-arb |
|
| USDC-AVAX | usdc-avax |
|
| USDC-BSC | usdc-bsc |
|
| USDC-ETH | usdc-eth |
|
| USDC-SOL | usdc-sol |
|
| USDC-TRX | usdc-trx |
|
| USDP-BSC | usdp-bsc |
|
| USDP-ETH | usdp-eth |
|
| USDT-ARB | usdp-arb |
|
| USDT-AVAX | usdt-avax |
|
| USDT-BNB | usdt-bnb |
|
| USDT-BSC | usdt-bsc |
|
| USDT-ETH | usdt-eth |
|
| USDT-OMNI | usdt-omni |
|
| USDT-Optimism | usdt-optimism |
|
| USDT-SOL | usdt-sol |
|
| USDT-TON | usdt-ton |
|
| USDT-TRX | usdt-trx |
|
| UST-BSC | ust-bsc |
|
| UST-ETH | ust-eth |
|
| TUSD-ETH | tusd-eth |
## Tokens [#tokens]
| Icon | Method | Icon name |
| ------------------------------------------------ | ---------- | ---------- |
|
| 1INCH-BSC | 1inch-bsc |
|
| 1INCH-ETH | 1inch-eth |
|
| AAVE-ETH | aave-eth |
|
| AKRO-ETH | akro-eth |
|
| ALPHA-ETH | alpha-eth |
|
| ALPHA-BSC | alpha-bsc |
|
| AMP-ETH | amp-eth |
|
| AUDIO-ETH | audio-eth |
|
| AXS-ETH | axs-eth |
|
| BADGER-ETH | badger-eth |
|
| BAL-ETH | bal-eth |
|
| BAND-BSC | band-bsc |
|
| BAND-ETH | band-eth |
|
| BAT-BSC | bat-bsc |
|
| BAT-ETH | bat-eth |
|
| BZRX-ETH | bzrx-eth |
|
| CAKE-BSC | cake-bsc |
|
| CEL-ETH | cel-eth |
|
| CHR-ETH | chr-eth |
|
| CHZ-ETH | chz-eth |
|
| COMP-ETH | comp-eth |
|
| CRV-ETH | crv-eth |
|
| ENJ-ETH | enj-eth |
|
| FET-ETH | fet-eth |
|
| FTM-BSC | ftm-bsc |
|
| FTM-ETH | ftm-eth |
|
| FTT-ETH | ftt-eth |
|
| GRT-ETH | grt-eth |
|
| HOT-ETH | hot-eth |
|
| LEO-ETH | leo-eth |
|
| LINK-BSC | link-bsc |
|
| LINK-ETH | link-eth |
|
| LRC-ETH | lrc-eth |
|
| MANA-ETH | mana-eth |
|
| MATIC-ETH | matic-eth |
|
| MKR-BSC | mkr-bsc |
|
| MKR-ETH | mkr-eth |
|
| NU-ETH | nu-eth |
|
| OCEAN-ETH | ocean-eth |
|
| OMG-ETH | omg-eth |
|
| QNT-ETH | qnt-eth |
|
| RARI-ETH | rari-eth |
|
| REEF-BSC | reef-bsc |
|
| REEF-ETH | reef-eth |
|
| REN-ETH | ren-eth |
|
| REV-ETH | rev-eth |
|
| RSR-ETH | rsr-eth |
|
| SAND-ETH | sand-eth |
|
| SHIB-ETH | shib-eth |
|
| SNX-BSC | snx-bsc |
|
| SNX-ETH | snx-eth |
|
| SRM-ETH | srm-eth |
|
| SUSHI-BSC | sushi-bsc |
|
| SUSHI-ETH | sushi-eth |
|
| SXP-BSC | sxp-bsc |
|
| SXP-ETH | sxp-eth |
|
| TEL-ETH | tel-eth |
|
| UNI-BSC | uni-bsc |
|
| UNI-ETH | uni-eth |
|
| YFI-BSC | yfi-bsc |
|
| YFI-ETH | yfi-eth |
|
| ZRX-ETH | zrx-eth |
The tables below list the crypto- and fiat currencies supported in B2CORE. The ISO code, Alpha code, decimal precision, and icon (if available) are specified for each currency. The icons are used for graphical representation of currencies in the B2CORE UI.
## Fiat [#fiat]
| Icon | ISO code | Alpha code | Precision | Name |
| ----------------------------------------------------------- | -------- | ---------------- | --------- | ---------------------------------------------------------- |
|
| 8 | ALL | 2 | Albanian lek |
|
| 12 | DZD | 2 | Algerian dinar |
|
| 32 | ARS | 2 | Argentine peso |
|
| 36 | AUD | 2 | Australian dollar |
|
| 44 | BSD | 2 | Bahamian dollar |
|
| 48 | BHD | 3 | Bahraini dinar |
|
| 50 | BDT | 2 | Bangladeshi taka |
|
| 51 | AMD | 2 | Armenian dram |
|
| 52 | BBD | 2 | Barbados dollar |
|
| 60 | BMD | 2 | Bermudian dollar |
|
| 64 | BTN | 2 | Bhutanese ngultrum |
|
| 68 | BOB | 2 | Boliviano |
|
| 72 | BWP | 2 | Botswana pula |
|
| 84 | BZD | 2 | Belize dollar |
|
| 90 | SBD | 2 | Solomon Islands dollar |
|
| 96 | BND | 2 | Brunei dollar |
|
| 104 | MMK | 2 | Myanmar kyat |
|
| 108 | BIF | 0 | Burundian franc |
|
| 116 | KHR | 2 | Cambodian riel |
|
| 124 | CAD | 2 | Canadian dollar |
|
| 132 | CVE | 0 | Cape Verde escudo |
|
| 136 | KYD | 2 | Cayman Islands dollar |
|
| 144 | LKR | 2 | Sri Lankan rupee |
|
| 152 | CLP | 0 | Chilean peso |
|
| 156 | CNY (alias: CNH) | 2 | Chinese yuan |
|
| 170 | COP | 2 | Colombian peso |
|
| 174 | KMF | 0 | Comoro franc |
|
| 188 | CRC | 2 | Costa Rican colon |
|
| 191 | HRK | 2 | Croatian kuna |
|
| 192 | CUP | 2 | Cuban peso |
|
| 203 | CZK | 2 | Czech koruna |
|
| 208 | DKK | 2 | Danish krone |
|
| 214 | DOP | 2 | Dominican peso |
|
| 222 | SVC | 2 | Salvadoran colón |
|
| 230 | ETB | 2 | Ethiopian birr |
|
| 232 | ERN | 2 | Eritrean nakfa |
|
| 238 | FKP | 2 | Falkland Islands pound |
|
| 242 | FJD | 2 | Fiji dollar |
|
| 262 | DJF | 0 | Djiboutian franc |
|
| 270 | GMD | 2 | Gambian dalasi |
|
| 292 | GIP | 2 | Gibraltar pound |
|
| 320 | GTQ | 2 | Guatemalan quetzal |
|
| 324 | GNF | 0 | Guinean franc |
|
| 328 | GYD | 2 | Guyanese dollar |
|
| 332 | HTG | 2 | Haitian gourde |
|
| 340 | HNL | 2 | Honduran lempira |
|
| 344 | HKD | 2 | Hong Kong dollar |
|
| 348 | HUF | 2 | Hungarian forint |
|
| 352 | ISK | 0 | Icelandic króna |
|
| 356 | INR | 2 | Indian rupee |
|
| 360 | IDR | 2 | Indonesian rupiah |
|
| 364 | IRR | 2 | Iranian rial |
|
| 365 | IRT | 2 | Iranian Toman |
|
| 368 | IQD | 3 | Iraqi dinar |
|
| 376 | ILS | 2 | Israeli new shekel |
|
| 388 | JMD | 2 | Jamaican dollar |
|
| 392 | JPY | 0 | Japanese yen |
|
| 398 | KZT | 2 | Kazakhstani tenge |
|
| 400 | JOD | 3 | Jordanian dinar |
|
| 404 | KES | 2 | Kenyan shilling |
|
| 408 | KPW | 2 | North Korean won |
|
| 410 | KRW | 0 | South Korean won |
|
| 414 | KWD | 3 | Kuwaiti dinar |
|
| 417 | KGS | 2 | Kyrgyzstani som |
|
| 418 | LAK | 2 | Lao kip |
|
| 422 | LBP | 2 | Lebanese pound |
|
| 426 | LSL | 2 | Lesotho loti |
|
| 430 | LRD | 2 | Liberian dollar |
|
| 434 | LYD | 3 | Libyan dinar |
|
| 440 | LTL | 2 | Lithuanian Litas |
|
| 446 | MOP | 2 | Macanese pataca |
|
| 454 | MWK | 2 | Malawian kwacha |
|
| 458 | MYR | 2 | Malaysian ringgit |
|
| 462 | MVR | 2 | Maldivian rufiyaa |
|
| 478 | MRO | 1 | Mauritanian ouguiya |
|
| 480 | MUR | 2 | Mauritian rupee |
|
| 484 | MXN | 2 | Mexican peso |
|
| 496 | MNT | 2 | Mongolian tögrög |
|
| 498 | MDL | 2 | Moldovan leu |
|
| 504 | MAD | 2 | Moroccan dirham |
|
| 512 | OMR | 3 | Omani rial |
|
| 516 | NAD | 2 | Namibian dollar |
|
| 524 | NPR | 2 | Nepalese rupee |
|
| 532 | ANG | 2 | Netherlands Antillean guilder |
|
| 533 | AWG | 2 | Aruban florin |
|
| 548 | VUV | 0 | Vanuatu vatu |
|
| 554 | NZD | 2 | New Zealand dollar |
|
| 558 | NIO | 2 | Nicaraguan córdoba |
|
| 566 | NGN | 2 | Nigerian naira |
|
| 578 | NOK | 2 | Norwegian krone |
|
| 586 | PKR | 2 | Pakistani rupee |
|
| 590 | PAB | 2 | Panamanian balboa |
|
| 598 | PGK | 2 | Papua New Guinean kina |
|
| 600 | PYG | 0 | Paraguayan guaraní |
|
| 604 | PEN | 2 | Peruvian Sol |
|
| 608 | PHP | 2 | Philippine peso |
|
| 634 | QAR | 2 | Qatari riyal |
|
| 643 | RUB | 2 | Russian ruble |
|
| 646 | RWF | 0 | Rwandan franc |
|
| 654 | SHP | 2 | Saint Helena pound |
|
| 678 | STD | 2 | São Tomé and Príncipe dobra |
|
| 682 | SAR | 2 | Saudi riyal |
|
| 690 | SCR | 2 | Seychelles rupee |
|
| 694 | SLL | 2 | Sierra Leonean leone |
|
| 702 | SGD | 2 | Singapore dollar |
|
| 704 | VND | 0 | Vietnamese đồng |
|
| 706 | SOS | 2 | Somali shilling |
|
| 710 | ZAR | 2 | South African rand |
|
| 728 | SSP | 2 | South Sudanese pound |
|
| 748 | SZL | 2 | Swazi lilangeni |
|
| 752 | SEK | 2 | Swedish krona/kronor |
|
| 756 | CHF | 2 | Swiss franc |
|
| 760 | SYP | 2 | Syrian pound |
|
| 764 | THB | 2 | Thai baht |
|
| 776 | TOP | 2 | Tongan pa’anga |
|
| 780 | TTD | 2 | Trinidad and Tobago dollar |
|
| 784 | AED | 2 | United Arab Emirates dirham |
|
| 788 | TND | 3 | Tunisian dinar |
|
| 800 | UGX | 0 | Ugandan shilling |
|
| 807 | MKD | 2 | Macedonian denar |
|
| 810 | RUR | 2 | Russian ruble |
|
| 818 | EGP | 2 | Egyptian pound |
|
| 826 | GBP | 2 | Pound sterling |
|
| 834 | TZS | 2 | Tanzanian shilling |
|
| 840 | USD | 2 | United States dollar |
|
| 858 | UYU | 2 | Uruguayan peso |
|
| 860 | UZS | 2 | Uzbekistan som |
|
| 882 | WST | 2 | Samoan tala |
|
| 886 | YER | 2 | Yemeni rial |
|
| 901 | TWD | 2 | New Taiwan dollar |
|
| 931 | CUC | 2 | Cuban convertible peso |
|
| 932 | ZWL | 2 | Zimbabwean dollarA/10 |
|
| 933 | BYN | 2 | Belarusian ruble |
|
| 934 | TMT | 2 | Turkmenistan manat |
|
| 936 | GHS | 2 | Ghanaian cedi |
|
| 937 | VEF | 2 | Venezuelan bolívar |
|
| 938 | SDG | 2 | Sudanese pound |
|
| 940 | UYI | 0 | Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) |
|
| 941 | RSD | 2 | Serbian dinar |
|
| 943 | MZN | 2 | Mozambican metical |
|
| 944 | AZN | 2 | Azerbaijani manat |
|
| 946 | RON | 2 | Romanian leu |
|
| 947 | CHE | 2 | WIR Euro (complementary currency) |
|
| 948 | CHW | 2 | WIR Franc (complementary currency) |
|
| 949 | TRY | 2 | Turkish lira |
|
| 950 | XAF | 0 | CFA franc BEAC |
|
| 951 | XCD | 2 | East Caribbean dollar |
|
| 952 | XOF | 0 | CFA franc BCEAO |
|
| 953 | XPF | 0 | CFP franc (franc Pacifique) |
|
| 955 | XBA | | European Composite Unit(EURCO) (bond market unit) |
|
| 956 | XBB | | European Monetary Unit (E.M.U.-6) (bond market unit) |
|
| 957 | XBC | | European Unit of Account 9(E.U.A.-9) (bond market unit) |
|
| 958 | XBD | | European Unit of Account 17(E.U.A.-17) (bond market unit) |
|
| 959 | XAU | 2 | Gold (one troy ounce) |
|
| 960 | XDR | | Special drawing rights |
|
| 961 | XAG | 3 | Silver (one troy ounce) |
|
| 962 | XPT | 2 | Platinum (one troy ounce) |
|
| 963 | XTS | | Code reserved for testing purposes |
|
| 964 | XPD | 2 | Palladium (one troy ounce) |
|
| 965 | XUA | | ADB Unit of Account |
|
| 967 | ZMW | 2 | Zambian kwacha |
|
| 968 | SRD | 2 | Surinamese dollar |
|
| 969 | MGA | 1 | Malagasy ariary |
|
| 970 | COU | 2 | Unidad de Valor Real (UVR) (funds code) |
|
| 971 | AFN | 2 | Afghan afghani |
|
| 972 | TJS | 2 | Tajikistani somoni |
|
| 973 | AOA | 2 | Angolan kwanza |
|
| 975 | BGN | 2 | Bulgarian lev |
|
| 976 | CDF | 2 | Congolese franc |
|
| 977 | BAM | 2 | Bosnia and Herzegovina convertible mark |
|
| 978 | EUR | 2 | Euro |
|
| 979 | MXV | 2 | Mexican Unidad de Inversion (UDI) (funds code) |
|
| 980 | UAH | 2 | Ukrainian hryvnia |
|
| 981 | GEL | 2 | Georgian lari |
|
| 984 | BOV | 2 | Bolivian Mvdol (funds code) |
|
| 985 | PLN | 2 | Polish złoty |
|
| 986 | BRL | 2 | Brazilian real |
|
| 990 | CLF | 4 | Unidad de Fomento (funds code) |
|
| 994 | XSU | | SUCRE |
|
| 997 | USN | 2 | United States dollar (next day) (funds code) |
|
| 999 | XXX | | No currency |
## Crypto [#crypto]
| Icon | ISO code | Alpha code | Precision | Name |
| --------------------------------------------------------------- | -------- | ----------------- | --------- | --------------------------------------------------------- |
|
| 1000 | BTC (alias: XBT) | 8 | Bitcoin |
|
| 1002 | ETH | 18 | Ethereum |
|
| 1003 | LTC | 8 | Litecoin |
|
| 1004 | ETC | 8 | Ethereum Classic |
|
| 1005 | DASH (alias: DSH) | 8 | DASH |
|
| 1006 | BCH | 8 | Bitcoin Cash |
|
| 1007 | XMR | 8 | Monero |
|
| 1009 | PZM | 8 | Prizm |
|
| 1010 | XRP | 6 | Ripple |
|
| 1012 | XEM | 8 | XEM |
|
| 1015 | TFT | 8 | ThreeFold Token |
|
| 1018 | ADA | 8 | ADA |
|
| 1019 | DOGE | 8 | Dogecoin |
|
| 1020 | ZEC | 8 | Zcach |
|
| 1021 | XLM | 7 | Stellar |
|
| 1022 | EOS | 8 | EOS |
|
| 1023 | BWK | 8 | Bulwark |
|
| 1025 | NSD | 8 | Nasdacoin |
|
| 1026 | TRX | 8 | Tron |
|
| 1027 | FUT | 8 | FutPlayCoin |
|
| 1029 | MPC | 8 | MediaPlayCash |
|
| 1995 | XTZ | 8 | Tezos |
|
| 1996 | WAVES | 8 | Waves |
|
| 1997 | ICX | 8 | Icon |
|
| 1999 | BSV | 8 | Bitcoin SV |
|
| 2000 | B2B (alias: B2BX) | 18 | B2BX |
|
| 2005 | USDT | 8 | Tether |
|
| 2006 | EURT | 8 | Tether EUR |
|
| 2007 | R | 8 | Revain |
|
| 2008 | OMG | 8 | OmiseGO |
|
| 2009 | IOST | 8 | IOSToken |
|
| 2010 | VIU | 8 | Viuly |
|
| 2011 | EOS Token | 8 | EOS Token |
|
| 2012 | SRNT | 18 | Serenity |
|
| 2014 | NEO | 8 | NEO |
|
| 2016 | BXN | 8 | BITTXN |
|
| 2018 | DTC | 8 | DateCoin |
|
| 2020 | OLXA | 2 | OLXA |
|
| 2021 | PAX | 8 | PAX |
|
| 2022 | TUSD | 8 | TrueUSD |
|
| 2023 | GUSD | 8 | Gemini Dollar |
|
| 2024 | USDC | 8 | USD Coin |
|
| 2025 | BNB | 8 | Binance Coin |
|
| 2030 | XGT | 8 | XGT |
|
| 2032 | HDP | 4 | HedPay |
|
| 2033 | NADM | 8 | NeoAdam |
|
| 2034 | NOAH | 18 | NOAHCOIN |
|
| 2035 | TC | 8 | Titan Coin |
|
| 2036 | GGC | 18 | GG World Lottery |
|
| 2037 | SIM | 18 | Simmitri |
|
| 2038 | CTC | 18 | Catholic Coin |
|
| 2039 | MYX | 8 | Myoho |
|
| 2040 | CRAFTR | 18 | CraftR |
|
| 2041 | XRX | 8 | Global Property Register |
|
| 2042 | USDQ | 18 | USDQ |
|
| 2043 | ELLEX | 18 | Ellex Coin |
|
| 2044 | ANX | 8 | COINANX |
|
| 2045 | BNX | 8 | BTCNEXT Coin |
|
| 2046 | BFCL | 18 | BFCL Token |
|
| 2047 | ERN | 8 | EURON |
|
| 2048 | NWX | 8 | NIWIX Token |
|
| 2049 | C3W | 8 | C3 Wallet |
|
| 2050 | QDAO | 18 | Q DAO |
|
| 2051 | SPD | 18 | SPINDLE |
|
| 2053 | ZTX | 18 | Zulu Republic Token |
|
| 2054 | ITM | 8 | ITADAKI-MASU Coin |
|
| 2055 | DEC | 8 | Darico Ecosystem Coin |
|
| 2056 | KRWQ | 8 | KRWQ Stablecoin by Q DAO v1.0 |
|
| 2057 | NZE | 8 | Nagezeni |
|
| 2058 | NIOX | 8 | NIOX |
|
| 2060 | VEST | 8 | VestChain |
|
| 2061 | BKZ | 8 | Bitkruz Token |
|
| 2066 | FMT | 8 | Free Market Token |
|
| 2068 | DAI | 8 | Dai Stablecoin |
|
| 2070 | AZ | 8 | AZ Token |
|
| 2071 | B21 | 8 | B21 Token |
|
| 2075 | PDATA | 8 | PDATA |
|
| 2077 | BUSD | 8 | Binance USD |
|
| 2078 | ZVC | 8 | Zeven Coin |
|
| 2081 | ARBIS | 8 | ARBIS |
|
| 2083 | BII | 8 | Bitcoin 2 |
|
| 2084 | BDS | 8 | Bitcoin Dollar Stable |
|
| 2086 | BWON | 8 | Bitcoin BWON |
|
| 2087 | BYUN | 8 | Bitcoin BYUN |
|
| 2088 | NEX | 8 | NEX |
|
| 2090 | TEX | 8 | TEX |
|
| 2106 | AKRO | 18 | Akropolis |
|
| 2107 | ALPHA | 18 | Alpha Finance Lab |
|
| 2110 | BZRX | 18 | bZx Protocol |
|
| 2111 | CHR | 6 | Chromia |
|
| 2113 | MANA | 18 | Decentraland |
|
| 2114 | FTT | 18 | FTX Token |
|
| 2115 | LRC | 18 | Loopring |
|
| 2117 | COMP | 18 | Compound |
|
| 2121 | RSR | 18 | Reserve Rights |
|
| 2122 | SRM | 6 | Serum |
|
| 2123 | SHIB | 18 | SHIBA INU |
|
| 2126 | SNX | 18 | Synthetix |
|
| 2128 | SAND | 18 | The Sandbox |
|
| 2132 | BAND | 18 | Band Protocol |
|
| 2133 | BAT | 18 | Basic Attention Token |
|
| 2136 | SUSHI | 18 | SushiSwap |
|
| 2141 | YFI | 18 | yearn.finance |
|
| 2146 | FTM | 18 | Fantom |
|
| 2147 | AXS | 18 | Axie Infinity |
|
| 2153 | CHZ | 18 | Chiliz |
|
| 2160 | 1INCH | 18 | 1inch |
|
| 2161 | OCEAN | 18 | Ocean Protocol |
|
| 2947 | CAKE | 18 | PancakeSwap |
|
| 2949 | CRV | 18 | Curve DAO Token |
|
| 2956 | REN | 18 | Ren |
|
| 2957 | CEL | 4 | Celsius |
|
| 2959 | ENJ | 18 | Enjin Coin |
|
| 2962 | GRT | 18 | The Graph |
|
| 2964 | AAVE | 18 | Aave |
|
| 2968 | COVIP | 8 | COVIP |
|
| 2969 | SCAMUNKNOWN | 8 | Scam ALERT: UNKNOWN status. Audit made by Q DeFi Rating |
|
| 2970 | SCAMMEDIUMRISK | 8 | Scam ALERT: Medium Risk. Audit made by Q DeFi Rating |
|
| 2971 | SCAMHIGH | 8 | Scam ALERT: HIGH probability. Audit made by Q DeFi Rating |
|
| 2972 | NOAHARK | 8 | NOAH’s DeFi ARK v.1 Governance Token |
|
| 2973 | FLR | 8 | Spark |
|
| 2974 | FXRP | 8 | Spark |
|
| 2975 | XYM | 8 | XYM |
|
| 2976 | QDEFI | 8 | Q DeFi Rating & Governance token v2.0 Token |
|
| 2977 | T34 | 8 | Platinum Software TECHNOLOGIES |
|
| 2978 | CNYQ | 8 | CNYQ Stablecoin by Q DAO |
|
| 2979 | JPYQ | 8 | JPYQ Stablecoin by Q DAO |
|
| 2980 | MILK2 | 8 | MILK2 Coin |
|
| 2981 | SHAKE | 8 | SHAKE Coin |
|
| 2982 | MATIC | 8 | Matic Network |
|
| 2983 | ERG | 8 | Ergo |
|
| 2984 | LTCP | 8 | Litecoin PoS |
|
| 2985 | ZRX | 8 | 0x |
|
| 2986 | BIP | 8 | Minter |
|
| 2987 | ATOM | 8 | Cosmos |
|
| 2988 | GRAM | 8 | Telegram Open Network IOU |
|
| 2989 | JPYQ | 8 | JPYQ |
|
| 2990 | NOAHP | 8 | NOAH.platinum |
|
| 2991 | CC | 8 | Custom Coin |
|
| 2993 | SPD | 8 | Spindle |
|
| 2994 | OWC | 8 | ODUWA Coin |
|
| 2995 | NCER | 0 | NIWIX Certificate |
|
| 2996 | NWX | 8 | NIWIX Token |
|
| 2997 | ERN | 8 | EURON |
|
| 2998 | BFCL | 8 | BFCL Token |
|
| 2999 | ABBC | 8 | ABBC |
|
| 3007 | UMA | 18 | UMA Voting Token v1 |
|
| 3099 | ALICE | 6 | ALICE |
The following statuses can be assigned to transactions such as deposits, withdrawals, transfers, internal transfers, and exchanges:
* **New** — a transaction was created but hasn’t yet been processed.
* **Pending** — indicates either that a transaction request awaits approval from the admin or that some technical issues occurred.
* **Hold** *(applicable for withdrawals only)* — a requested withdrawal amount is being put on hold on a client account.
* **Hold failed** *(applicable for withdrawals only)* — an error occurred when putting on hold a requested withdrawal amount.
* **Refund** *(applicable for withdrawals only)* — after putting on hold a requested withdrawal amount, a transaction wasn’t further processed and the amount was successfully refunded to a client.
* **Refund failed** *(applicable for withdrawals only)* — a requested withdrawal amount put on hold on a client account failed to be refunded due to technical issues.
* **In progress** — a transaction is being processed.
* **Done** — a transaction was successfully completed.
* **Partial** — transaction processing wasn’t finished due to technical issues. Such transactions need to be addressed on the [Finance > Transactions](../finance/transactions) page (for details, refer to [How to process transactions with the Partial status](../../how-to-articles/manage-finances/how-to-process-transactions-with-the-partial-status)).
* **Assistance** — indicates that the transaction status couldn't be determined automatically and the transaction requires manual action. This status may apply only to deposits and withdrawals initiated through methods connected via [PSS](../../integrations/payment-systems#payment-system-service-pss). The admin must decide whether to continue syncing the status with the external payment system used to process the transaction or mark it as failed (for details, refer to [How to process transactions with the Assistance status](../../how-to-articles/manage-finances/how-to-process-transactions-with-the-assistance-status)).
* **Failed** — a transaction failed due to incorrect parameters.
* **Rejected** — a transaction request was rejected by the admin.
* **Canceled** — a transaction was canceled by a client.
## Introduction to Savings [#introduction-to-savings]
Savings programs offer clients a way to invest their idle funds and earn interest by holding them on savings accounts. These programs provide a passive method to grow their crypto or fiat assets, similar to traditional bank savings accounts.
.
## Details [#details]
On the details page, you can view settings of the savings program to which a client subscribed. Additionally, a list of interest payments is displayed.
For `Fixed` strategies, the payments list includes scheduled payments as well as payments that have been already made to a client wallet.
For `Flexible` strategies the list displays only payments made to a client.
displayed in the **Phones** section to dial a specified client's phone number using Twilio.
Suppose that a client deposits funds to their trading account opened on the `MetaTrader4 Live` platform. Given that **Autocreate from deposit** is set to **Enabled** and the bonus preset for `MetaTrader4 Live` is available on the **Bonus presets** page, the client is eligible to receive a bonus for their deposit. The requirements for receiving the bonus are detailed below:
To receive the bonus amount of 386 USD from the bonus program, a client needs to claim the bonus in the B2CORE UI using their active trading account opened on the `MetaTrader 5 Live` platform and denominated in USD.
After claiming the bonus, the bonus is added to the client trading account as credit, enabling the client to use credit funds for trading. In order to receive the bonus credit on their account balance, the client must fulfill the following bonus program requirements:
Exchanges initiated by clients in specific currency pairs through the B2CORE UI can be configured to require admin approval.
When clients create exchanges in these specific pairs, requests of the **Exchange** type are created and listed on the [Clients > Requests](../../back-office-guide/clients/requests) page. These exchanges are executed only after corresponding requests are approved by the admin, using the rates specified in the approved requests.
To enable requests for exchanges in a specific currency pair:
displayed next to the plan for which you want to review interest payment details.
Payment details in a Fixed savings plan
in the question row.
Verification Level 0
To obtain Verification Level 1, submit the following documents:
## How to restrict the use of verification levels by client type [#how-to-restrict-the-use-of-verification-levels-by-client-type]
To configure separate verification procedures, for example for individual clients and corporate clients, indicate the levels that can be obtained only by clients of a specific type.
To apply client type restrictions to a verification level:
If the configuration is correct but issues persist, contact the SMS provider to check for service disruptions or delivery issues with the client’s number.
Before creating a manual deposit via the Back Office, make sure that the **manual** deposit method is created and enabled. To do this, navigate to **System** > **Deposit system** > **Deposit methods**. If the **manual** deposit method is not displayed on the **Deposit methods** page, create the method by following the instructions described in [How to add the manual deposit or withdrawal method](../manage-payment-methods/how-to-add-the-manual-deposit-or-withdrawal-method).
After the **manual** deposit method is created and enabled, follow the steps below to create a deposit.
The main information about the transaction:
**Identifier**
The transaction identifier in the B2CORE Payment Systems Service (PSS). You can click it to navigate to the transaction details in **Finance** > **Deposits** or **Finance** > **Payouts**.
***
**Payment provider identifier**
The transaction identifier from the external payment system, which may have two statuses:
* `Verified` — a transaction with this identifier exists in the payment system.
* `Unverified` — a transaction with this identifier can't be found in the payment system.
***
**Status**
The status of the transaction in the B2CORE PSS:
* **Created** — a transaction was created.
* **In Progress** — a transaction is being processed.
* **Success** — a transaction was completed successfully. This is a final status.
* **Failed** — a transaction failed to complete. This is a final status.
* **Unexpected** — a transaction is in an unknown state. This status must be handled by the admin as part of the assistance process.
* **Unprocessable** — a transaction is in a state that requires manual actions, as no further actions can be taken automatically. This status must be handled by the admin as part of the assistance process.
***
**Initial amount**
The amount with which the transaction was initiated.
***
**Initial currency**
The currency in which the transaction was initiated.
***
**Creation date**
The date and time when the transaction was created.
***
**Last updating date**
The date and time when the transaction was last updated.
### Payment input snapshot [#payment-input-snapshot]
The information entered by a client on a payment form when initiating a deposit or withdrawal. The fields that clients must complete depend on the selected deposit or withdrawal method. This information is displayed as the field name and the value provided by the client.
For some methods, no information is required from clients. In this case, the message `The payment input snapshot is empty` is displayed.
### External details [#external-details]
Additional information about the transaction, including useful data from the payment system. The set of information depends on the specific payment system. During transaction processing, there are no details in this section.
### Timeline [#timeline]
Information about the transaction’s statuses within the B2CORE PSS. The data is presented in chronological order and includes useful details for each status.
### Polling job [#polling-job]
After a transaction is created within the B2CORE PSS, the service initiates periodic requests to the external payment system to check the current status of the transaction. This periodic status check is referred to as the **Polling job** process. Each polling job attempt includes information about the request date, status, and additional details about any errors, if applicable.
After the transaction is successfully completed, the information in all sections of the request is updated accordingly.
When transactions — such as deposits, transfers, or exchanges between wallets and trading accounts — have the `Partial` status, it indicates that processing wasn’t completed due to technical issues. These transactions should be processed manually.
To process a transaction with the `Partial` status:
— the **Process transaction** button
*
— the **Set Done status** button
.
This action assigns the `Done` status to the transaction in B2CORE since it has already been processed on the respective platform, but the status wasn’t received back to B2CORE.
, and then confirm the action in the displayed popup.
To confirm the action, solve a simple math problem and enter the result in the **Verification code** field.
In the displayed popup, fill in the following fields:
* In the **Identifier** field, specify the transaction identifier from the external payment system.
* To confirm the action, solve a simple math problem and enter the result in the **Verification code** field.
* When **THB** has a scale of `1` (one decimal):
* Enter **245 USD** in the **Receive** field → the **Pay** field displays **7,967.4 THB**.
* Enter **7,967.4 THB** in the **Pay** field → the **Receive** field displays **245 USD**.
The mismatch occurs because the scale of `0` can't preserve decimal values, while scales of `1` or higher allow fractional amounts, resulting in more precise conversions.
This instruction explains how to add deposit and withdrawal methods that use payment systems that can be connected to B2CORE through PSS. Payment System Service (PSS) is a new B2CORE service that offers enhanced connections to external payment providers and cashier systems.
Payment systems marked with `Yes` in the **PSS-supported** column in [Integration > Payment systems](../../integrations/payment-systems) can be connected through PSS.
## General procedure [#general-procedure]
Each time the **Configuration** or the associated **Credentials** from the external connection used by the method are updated, the system automatically increments the corresponding version number. When a new version is created, background testing for that version starts automatically. As a result, the test outcome may differ from the previous one.
After the **Configuration** or **Credentials** are updated:
* The corresponding version is increased.
* Background testing of the new version starts and may take some time.
* Results of the previous tests become outdated:
* They are moved to the **Previous** tests section.
* Their **Relevance** value changes to `Old`.
Once background testing of the new version is completed:
* The latest test result becomes the current one.
* The **Relevance** value changes to `Actual`, indicating that the result corresponds to the current configuration version.
Background test result may also change without updating versions of the **Configuration** or **Credentials** from the respective external connection. This can occur for several reasons, including temporary unavailability of the external payment system, changes to the external service API, errors during the testing process. In such cases, a new background test result is also displayed on the tab.
### Method configuration test results [#method-configuration-test-results]
Configuration testing can return one of the following results, indicating the current status of a deposit or withdrawal method:
* **Authorized** — successful authentication with the payment system. The payment system account has sufficient permissions to perform financial operations.
* **Available** — successful authentication with the payment system. This status doesn't guarantee that the account has permissions to create deposits or withdrawals.
* **Failed** — configuration testing has failed. This status includes an error code and description.
* **Unexpected** — an unexpected configuration test result. This status includes an error code and description.
* **Not implemented** — configuration testing is not implemented for this payment driver.
The use of these fields follows the formula:
`Minimum commission amount (1) <= Fixed rate (2) + Percentage rate % (3) <= Maximum commission amount (4)`
You can set a fixed commission rate, a percentage commission rate, or a combination of both.
* To set a fixed commission rate, enter the commission amount in the field `2`. The specified commission amount is charged for each deposit or withdrawal transaction regardless of the transaction amount.
For fixed commission rates, leave the other fields empty.
* To set a percentage commission rate, enter the percentage value in the field `3`. The specified percentage of a deposit or withdrawal amount is charged as a commission.
For percentage commission rates, it’s recommended that you set the minimum commission amount in the field `1` and the maximum commission amount in the field `4`. The commission can’t be be lower than the minimum amount or exceed the maximum amount.
* If both a fixed rate in the field `2` and a percentage rate in the field `3` are entered, the commission is calculated as the sum of the fixed amount and the specified percentage of a deposit or withdrawal amount.
For combined commissions, it’s also recommended that you set the minimum and maximum commission amounts.
Follow the instructions below to configure a connection and set up deposit and withdrawal methods through [B2BINPAY](https://b2binpay.com/) in the B2CORE Back Office.
## Add a deposit method through ChipPay [#add-a-deposit-method-through-chippay]
To add and set up a method for making deposits through ChipPay:
## Add a deposit method through Praxis [#add-a-deposit-method-through-praxis]
To add and set up a method for making deposits through Praxis:
* In the **Email** field, enter the user's email address.
* In the **Password** field, enter a password.
You can also generate a secure password by clicking the **Generate** button on the right side of the field. To view the generated password, enable the **Show password** option.
* In the **Status** dropdown, select **Enabled**.
* In the **Groups** dropdown, select one or more groups in which the new user will be included (for details, refer to [How to add a user group and grant permissions](how-to-add-a-user-group-and-grant-permissions)).
* In the **Enabled** dropdown, select **Yes**.
* In the **SSO Redirect URL (brand url)** field, specify the URL of the Zendesk page to which your clients will be redirected after successful authentication via single sign-on, such as:
`https://{your-subdomain}.zendesk.com/hc/en-us`
### SSO Settings [#sso-settings]
* In **SSO Shared Secret** field, specify the secret from Zendesk, which is used to generate JWTs required for single sign-on.
This secret is generated in the Zendesk **Admin Center** during SSO configuration and must be copied from there.
### Mobile SDK Settings [#mobile-sdk-settings]
These settings are required only if you have a [mobile app](../../release-notes/release-notes-mobile) and need to enable SSO between your app and Zendesk. If you don't have the mobile app, these settings aren't necessary.
* In the **App ID** field, specify the app identifier from Zendesk.
* In the **Client ID** field, specify the client identifier from Zendesk.
* In the **SDK JWT Secret** field, specify the secret generated in Zendesk, which is used to sign JWTs sent from B2CORE to Zendesk for single sign-on.
All these values are generated in your Zendesk **Admin Center** when configuring SSO for the mobile SDK in the **Channels** > **Mobile SDK** menu and must be copied from there.
### Mobile SDK in Zendesk [#mobile-sdk-in-zendesk]
In Zendesk **Admin Center** in **Channels** > **Mobile SDK**, insert the **JWT URL**. The URL must have the following format:
`https://{your-Back-Office-URL}/api/v2/my/helpdesk/zendesk/auth/mobile/exchange`
Make sure to replace `{your-Back-Office-URL}` with the domain of your B2CORE Back Office.
Upon clicking the button, the options for downloading the apps for the respective platforms are displayed.
After adding sources, share the generated API keys with B2BROKER so we can complete the SDK setup for you. This setup enables event data from your B2CORE to be sent to Amplitude.
## Check incoming events for Amplitude tracking [#check-incoming-events-for-amplitude-tracking]
Once sources are configured and your Amplitude project starts receiving data from B2CORE, all received events are collected in **Data** > **Events**, along with their event properties in **Data** > **Properties**.
You must verify incoming events with the `Unexpected` status against the documented events in **Tracking B2CORE Events with Amplitude** to understand their meaning and either add the events that you want to track to your Amplitude plan or delete the ones you don't need.
Events included in your Amplitude tracking plan are marked as `Live` and begin tracked in real time.
## Configure data representation in Amplitude [#configure-data-representation-in-amplitude]
In your Amplitude project, access the **Dashboard** on the **Home** page. By default, it includes a set of pre-defined widgets with collected data from the default Amplitude events. You can fully customize the **Dashboard** to display the information and charts that are most relevant to you.
## Build charts in Amplitude [#build-charts-in-amplitude]
Charts in Amplitude turn raw event data into visual insights about how clients interact with B2CORE. Each chart is based on the events you track, enabling you to monitor engagement, conversion, retention, and user distribution. This makes it easier to understand client behavior and improve your services.
To create a chart, click **Create** > **Charts** and select the desired chart type.
For more details on working with charts, see the official [Amplitude documentation](https://amplitude.com/docs).
Below are several examples of simple charts that you can build in Amplitude. You can add charts to your **Dashboard**, share them, and export data if needed.
### Segmentation chart [#segmentation-chart]
The **Segmentation** chart compares or segments your events by event properties over a selected time period.
The chart above shows the number of unique clients who accessed the IB room over the past year, broken down by country.
### Funnel chart [#funnel-chart]
The **Funnel** chart helps you understand how clients navigate within the UI and identify potential problem areas where they tend to drop off. A common example of a funnel is analyzing sign-ups and onboarding.
The chart above shows the conversion rate from clients who started registration to those who completed it over the past 7 days.
### User composition [#user-composition]
The **User Composition** chart provides insights into the structure of your client base. Unlike event-driven analyses, this chart relies on user properties, such as country, language, platform, or account type, rather than client actions.
The chart above shows the distribution of registered clients across different countries, helping you understand where your clients come from and how your client base is organized.
B2CORE supports embedding third-party web applications directly into the client UI via an iframe. When a custom menu item is configured with the **Iframe** behavior, B2CORE loads your application inside the interface, providing a seamless experience for clients without leaving the platform.
This guide covers two aspects: configuring the custom menu item in the B2CORE Back Office, and preparing your application to work correctly inside the B2CORE iframe.
## Prerequisites [#prerequisites]
Before proceeding, ensure the following:
To add a field, click **+Create** on the **Fields** page, then enter the label, select the group, set validation rules such as **Required**, and, for select fields, add the options that clients choose from.
For details on creating and managing custom fields, refer to [Custom fields](../../back-office-guide/system/custom-fields).
## Step 2. Create a registration profile [#step-2-create-a-registration-profile]
To create a registration profile:
* After enabling the **Slack** or **Telegram** option, do the following:
* Select **Private** to send notifications to the recipients as direct Slack or Telegram messages.
The messages are sent to the chats that are specified in the **Slack chat Id** and **Telegram chat Id** fields on the [Back Office user details page](../../back-office-guide/system/users/users#details).
* Select **Group** to send notifications to a specific group or channel.
* In the displayed **Group Id** field, specify the identifier of a group or channel to which notifications will be delivered (for details, refer to [How to get Telegram chat, group, and channel identifiers](../manage-communication-platforms/how-to-get-telegram-chat-group-and-channel-identifiers)).
* In the **Template** dropdown, select a notification template.
. For a quick search, you can filter partners by a name, email, and other criteria.
in the list. Note that this action **can't be undone**.
. For a quick search, you can filter partners by a name, email, and other criteria.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter symbols by a platform, trading group, symbol name, and other criteria.
Refer to [Max amount](../payment-plans#max-amount) for a distribution example.
— click it to expand or collapse the main menu.
*
— click it to see the events that were scheduled for Admins in the **Event Calendar**. The number of upcoming events is displayed on a counter badge.
*
— click it to see pending client requests. The number of new requests is displayed on a counter badge.
* **Language** **menu** — click it to select the interface language.
* **User profile pane** — click this panel to access the **Log out** button.
## Common buttons and icons [#common-buttons-and-icons]
The following buttons can be found on most Back Office pages.
* the **Create** button — used to add a new entry.
* the **Export** button — used to export table data to a CSV file.
* the **Import** button — used to import an XLSX or a CSV data file.
*
— used to apply custom filters.
*
— used to reset custom filters.
*
— used to access details.
*
— used to delete an entry.
Page elements may serve as hyperlinks which can be clicked to drill down to details. Access to this data is maintained based on the permissions assigned to a particular user group.
## Filtering [#filtering]
Throughout the Back Office, the data is typically organized in tables that can be filtered.
You can specify multiple criteria for filtering column data.
When filtering is available, the appropriate input fields are displayed in column headers. The inputs vary depending on a data format, such as text, number, date, time, or list.
To facilitate filtering by date, two fields for the start and end dates may be displayed so that you can define a time period.
To enable or disable filters, click
and
buttons.
## Sorting [#sorting]
In the Back Office, you can sort the data available in tables.
The columns by which you can sort data are marked with
displayed in column headers (no arrows are displayed when sorting isn't available). You can click these arrows to sort data in an ascending (
) or descending (
) order, by a single column at a time.
## Pagination [#pagination]
You can display table data across multiple pages and specify how many records to display on a page. You can also view the total number of records found.
To open the previous or next page, click the left or right arrow.
## Export and import [#export-and-import]
Some Back Office pages support data export to CSV files. This option is available on pages that contain an **Export** button above the data table.
The data in a resulting file matches the applied sorting and filtering criteria.
To export page data to a CSV file, click the **Export** button.
Some Back Office pages also support importing of CSV and XLSX files. This option is useful when you need to update the symbol settings for a partnership program.
To import data, click the **Import** button, choose the file that you want to import and click **Open**.
## Localizations [#localizations]
In the B2CORE Back Office, you can configure fields that support localizations to have multiple language options in the B2CORE UI.
Using the **localization** buttons, you can set translations for these fields into different languages.
To set localizations, click the **Localization** button next to the field, enter the translation in the supported languages and click **OK**.
Note that only enabled localizations are displayed. You can enable or disable localizations in the **System** > **Localizations** section.
View the following information for each process:
**Date**
The date and time when a process started running.
***
**Process name**
The name of a process. Possible values:
* **Clear Cache** (`cache`) — clears cache for the specified time period.
* **Cancel Payments** (`cancel`) — reverts reward payments.
* **Create Payments** (`payments`) — initiates reward payments.
* **Process Payments** (`transactions`) — processes reward transfers.
* **Run Automation** (`schedule`) — runs consequentially the full process cycle (Sync Symbols + Sync Groups + Sync Trades + Create Payments + Process Payments + Sync Accounts).
* **Run Diagnostics** (`diagnostics`) — runs diagnostics of IB services.
* **Sync Accounts** (`accounts`) — runs synchronization of [accounts](platforms/accounts) with trading platforms.
* **Sync Groups** (`groups`) — runs synchronization of [groups](platforms/groups) with trading platforms.
* **Sync Symbols** (`symbols`) — runs synchronization of [symbols](platforms/symbols) with trading platforms.
* **Sync Trades** (`trades`) — runs synchronization of [trades](platforms/trades) with trading platforms.
***
**Memory**
The amount of memory used by a process.
***
**CPU Time**
The time which it took a process to run.
***
**PID**
The process identifier.
***
**Exit code**
The process result. Possible values:
* **0** — the process completed successfully.
* **1** — the process wasn't completed due to errors.
* **2** — the process was gracefully stopped due to service maintenance.
On this page, you can monitor the synchronization pipelines that keep IB data in sync with trading platforms.
To run a synchronization manually, click the **Run process** button.
The following information is provided about each pipeline run:
**Date**
The date and time when a pipeline run started.
***
**Platform**
The trading platform for which the synchronization was run.
***
**Steps**
The synchronization steps included in the pipeline run.
***
**Status**
The current status of the pipeline run.
The weekly calendar view displays the pipeline runs by day of the week.
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
You can switch between WebUI pages: the editing mode remains active until you disable it by clicking the **Exit editing mode**.
3. Select a required language.
4. Drag and drop the file into the upload area or click **Add file** to select the file from your computer. The maximum allowed file size is 3 MB.
5. Click **Upload**.
6. Refresh the page to see the translations uploaded.
### The Other form [#the-other-form]
This is the primary required form used across all languages worldwide.
Every pluralized translation must include this form as it serves as the fallback for any unspecified cases.
If you fill only the **Other** form and leave the others empty, B2TRANSLATE will automatically populate the remaining forms with the **Other** form value.
This ensures your translation remains functional while you work on completing all forms.
You can configure cashback reward programs for clients who trade on MT4/5.
The cashback is rewarded for the volumes traded on MT accounts over a day, based on closed positions, and deposited to clients the following day. For example, the cashback for the volumes traded on May 24 is rewarded to clients on May 25.
From the **MetaTrader Volume** menu, you can access the **MetaTrader 4** and **MetaTrader 5** pages to configure cashback programs for each platform.
Each page is divided into two tabs:
* [Preferences tab](preferences-tab)
* [Tiers tab](tiers-tab)
— the **phone** icon
The option to dial the specified client's phone number from the Back Office.
To use this option, a phone service provider, such as Twilio, must be configured (for details, refer to [How to configure Twilio](../../../how-to-articles/manage-communication-platforms/how-to-configure-twilio)).
***
— the **bin** icon
This option is available if you're granted the `Update clients` permission, which includes the ability to edit client information on the **Contacts** tab. By clicking the icon, you can delete any added phone numbers, including the confirmed phone number.
After removing a confirmed phone number, a client can add and confirm a new phone number to associate with their profile.
Once removed, the phone number becomes available for registering a new client profile, assuming that your registration procedure requires [phone numbers to be unique](../../system/settings#client-settings).
On this tab, you can view and edit the values of [custom fields](../../system/custom-fields) specified for a client.
The fields are organized by the [custom field groups](../../system/custom-fields#groups) configured in your system. Select a group to view and edit the fields it includes.
(the menu button) located in the upper-right page corner and expand the dropdown that displays the available options.
The available tabs are described in the subsequent sections of this document.
After saving the field settings, you'll be redirected to the fields list on the **Custom fields** tab.
.
The page is divided into the following tabs:
. Here you can view and customize currency settings.
All fields, except for **Created**, can be modified.
On this page, you can view a list of failed IB reward payments along with the error details.
The following information is provided about each failed payment:
**ID**
The identifier of the failed payment.
***
**Error Reason**
The reason why the payment failed.
***
**Error Message**
The detailed error message.
***
**Transaction ID**
The identifier of the related transaction.
***
**Account ID**
The identifier of the related account.
***
**Created At**
The date and time when the failed payment was registered.
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Reward state**
The current status of a reward payment:
* **Done** — the reward was successfully credited to a partner's account.
* **Pending** — the reward was calculated, but not yet credited to a partner's account.
* **Canceled** — the reward was canceled and debited from a partner's account.
***
**Reward amount**
The total amount rewarded.
***
**Transaction ID**
The transaction identifier.
***
**Level**
The partner's level.
***
**Introducing broker**
The name of a partner.
***
**Payment plan**
The formula for setting up the rewards calculation. To learn more, refer to [Payment plans](../../payment-plans).
***
**Level ratio**
The multiplier based on which rewards are calculated considering a partner's level.
***
**Personal ratio**
The individual multiplier based on which rewards are calculated for a specific client.
***
**Tier ratio**
The multiplier based on which rewards are calculated considering a specific tier.
***
**Tier trading volume**
The trading volume defined for a tier.
***
**Tier active traders**
The number of active traders defined for a tier.
***
**Tier name**
The tier name.
***
**Tier period**
The number of days during which a partner must meet tier objectives to receive increased rewards.
***
**Created**
The date and time when a reward was paid.
***
**Trading platform**
The trading platform name.
***
**Trade account type**
The account type. Possible values:
* Default
* Payment account
* PAMM investment account
* PAMM master account
***
**Trading account**
The account number of a client who executed a trade.
***
**Trade ID**
The trade identifier.
***
**Trade execution time**
The date and time when a trade was executed.
***
**Side**
The trade side. Possible values:
* Buy
* Sell
***
**Symbol**
The symbol code.
***
**Quote currency**
The quote currency traded.
***
**Contract size**
The trade amount.
***
**Price**
The execution price.
***
**Volume, lots**
The trade volume, in lots.
***
**Volume, USD**
The trade volume, in USD.
***
**Commission**
The paid commission amount.
***
**Client email**
The email of a client who executed a trade.
***
**Client ID**
The client identifier in the B2CORE UI.
## Transactions list [#transactions-list]
View the following information for each transaction:
**ID**
The transaction identifier.
***
**Currency**
The currency in which a reward was paid.
***
**Amount**
The amount of a transaction.
***
**Account number**
The partner account number.
***
**Client ID**
The identifier of a client profile.
***
**IB name**
The name of a partner.
***
**IB email**
The partner email.
***
**IB type**
The partnership program.
***
**Status**
The current status of a transaction. Possible values:
* **Failed** — the transaction failed due to internal technical reasons. This is a final status.
* **Invalid** — the transaction amount is `0`, the transaction won't be processed. This is a final status.
* **Processing** — the transaction is currently being credited, the status will be changed soon.
* **Transferred** — the transaction was successfully credited. This is a final status.
***
**Processed**
The date and time when a transaction was credited.
***
**Created**
The date and time when a transaction was created.
## Transaction details [#transaction-details]
To view details, click the **transaction ID** or
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Trading platform**
The trading platform name.
***
**Transaction ID**
The unique identifier of a deposit operation on a trading platform.
***
**Trading account**
The trading account number.
***
**Base currency code**
The deposit currency.
***
**Amount**
The deposit amount.
## Group list [#group-list]
View the following information for each group:
**Platform**
The trading platform name.
***
**Group**
The group of trading accounts as set on a trading platform.
***
**Trades**
The number of trades made by IB clients.
***
**Created**
The date and time when a group was created on a trading platform.
## Group details [#group-details]
To view details, click the **group name** or
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Trading platform**
The trading platform name.
***
**Transaction ID**
The unique identifier of a withdrawal operation on a trading platform.
***
**Trading account**
The account number on a trading platform.
***
**Base currency code**
The currency in which a withdrawal operation was executed.
***
**Amount**
The amount of a withdrawal operation.
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
. Here you can view and customize banner settings.
**Name**
The banner name.
This value can be modified.
***
**Language**
The banner language.
This value can be modified.
***
**Size**
The banner size.
This value can be modified.
***
**Theme**
The banner theme.
This value can be modified.
***
**CDN Image URL**
The CDN URL pointing to a banner along with a banner image.
This value can be modified.
***
**Clicks**
The number of times a banner was clicked.
***
**Registrations**
The number of clients registered after clicking a banner.
***
**Click conversion rate**
The click conversion rate, which is the number of registrations divided by the number of clicks, expressed as a percentage.
***
**Created**
The date and time when a banner was created.
***
**Updated**
The date and time when a banner was last updated.
. Here you can view and customize language settings.
**Name**
The language name.
This value can be modified.
***
**Banners**
The number of banners in a language.
***
**Created**
The date and time when a language was created.
***
**Updated**
The date and time when a language was last updated.
## Size list [#size-list]
View the following information for each language:
**Size**
The size name.
***
**Banners**
The number of banners of this size.
***
**Created**
The date and time when a size was added.
## Size details [#size-details]
To access details, click the size name or
. Here you can view and customize size settings.
**Width**
The banner width.
This value can be modified.
***
**Height**
The banner height.
This value can be modified.
***
**Banners**
The number of banners in a language.
***
**Created**
The date and time when a language was created.
***
**Updated**
The date and time when a language was last updated.
## Theme list [#theme-list]
View the following information for each theme:
**Theme**
The theme name.
***
**Created**
The date and time when a theme was created.
***
**Banners**
The number of banners added to a theme.
## Theme details [#theme-details]
To access details, click the theme name or
. Here you can view and customize theme settings.
**Name**
The theme name.
This value can be modified.
***
**Banners**
The number of banners added to a theme.
***
**Created**
The date and time when a theme was created.
***
**Updated**
The date and time when a theme was last updated.
## Color list [#color-list]
View the following information for each color:
**Priority**
The priority that defines the order in which colors are listed in the B2CORE UI.
***
**Name**
The color name.
***
**Background color**
The HEX code of a background color.
***
**Foreground color**
The HEX code of a foreground color.
***
**Created**
The date and time when a color was added.
## Color details [#color-details]
To access details, click the color name or
. Here you can view and customize color settings.
**Name**
The color name.
This value can be modified.
***
**Priority**
The priority that defines the order in which colors are listed in the B2CORE UI.
This value can be modified.
***
**Background color**
The HEX code of a background color.
This value can be modified.
***
**Foreground color**
The HEX code of a foreground color.
This value can be modified.
***
**Created**
The date and time when a color was added.
***
**Updated**
The date and time when a color was last updated.
## Icon list [#icon-list]
View the following information for each color:
**Priority**
The priority that defines the order in which icons are listed in the B2CORE UI.
***
**Icon**
The thumbnail icon image.
***
**Name**
The icon name.
***
**Created**
The date and time when an icon was added.
## Icon details [#icon-details]
To access details, click the icon name or
. Here you can view and customize icon settings.
**Name**
The icon name.
This value can be modified.
***
**Priority**
The priority that defines the order in which icons are listed in the B2CORE UI.
This value can be modified.
***
**Icon**
The icon image.
***
**Created**
The date and time when an icon was added.
***
**Updated**
The date and time when an icon was last updated.
Explore the liquidity providers and FIX platforms supported by B2CONNECT
Find step-by-step instructions on most common user scenarios
Explore the B2CONNECT FIX API reference
了解与 B2CORE 集成的交易平台、支付服务提供商及其他第三方解决方案
深入了解 B2CORE Back Office 用户界面
B2CORE Back Office 中常见管理任务和配置的分步指南
部署适用于 iOS 和 Android 的品牌移动应用
通过我们的指南快速高效地识别和解决常见问题
Explore the Back Office and learn how to launch your own partnership programs
Discover IB Room and join a partner plan to begin attracting new clients while earning rewards
Understand the basics and learn everything you need to start using the B2TRADER API
Consult an in-depth reference describing REST API requests and responses
Explore the supported WebSocket API methods and streams
Connect to the FIX 4.4 API for market data streaming and order execution
Customize your Trading Terminal and configure settings
Explore and manage all available trading widgets
Learn basic terms and values used across the platform
快速了解 B2TRANSLATE,并熟悉基础知识和关键术语
探索 B2TRANSLATE 界面,并开始管理您的产品翻译
This is required for proper handling of time variables (nanoseconds in this case).
本指南概述了您需要遵循的步骤,以正确准备您的 Android 应用通过 Google 审核、获得批准并成功发布到 Google Play。
* 在 **问卷** 部分,对以下所有项目选择 **否**:
* 下载的应用
* 用户内容分享
* 在线内容
* 推广或销售有年龄限制的产品或活动
* 其他
* 在 **摘要** 部分,验证显示的摘要并点击 **保存**。
* 在 **摘要** 部分,验证显示的摘要并点击 **保存**。
* 在 **数据类型** 部分,填写以下内容:
* **位置**:B2CORE 不收集此类数据。
* **个人信息**:指定客户在您的 B2CORE 实例中注册时必须提供的数据。这通常包括(但不限于)“姓名”、“电子邮件地址”、“电话号码”或其他信息。
* **财务信息**:B2CORE 不收集此类数据。
* **健康和健身**:B2CORE 不收集此类数据。
* **消息**:B2CORE 不收集此类数据。
* **照片和视频**:B2CORE 不收集此类数据。
* **音频文件**:B2CORE 不收集此类数据。
* **文件和文档**:B2CORE 不收集此类数据。
* **日历**:B2CORE 不收集此类数据。
* **联系人**:B2CORE 不收集此类数据。
* **应用活动**:B2CORE 收集“应用互动”数据。
* **网页浏览**:B2CORE 不收集此类数据。
* **应用信息和性能**:B2CORE 收集“崩溃日志”和“诊断”数据。
* **设备或其他 ID**:B2CORE 不收集此类数据。
* 在 **数据使用和处理** 部分,您将看到一组与应用收集的数据相关的问卷。
* 按照以下示例完成 **个人信息** 部分中的问卷:
* 按照以下示例完成 **应用信息和性能** 及 **应用活动** 部分中的问卷:
* 在 **预览** 部分,验证显示的摘要并点击 **保存**。
* 点击 **保存** 以返回信息中心。
* 点击 **保存** 以返回信息中心。
* 在 **图形素材** 部分,附加 B2CORE 团队提供的图形素材。点击 **添加素材**,逐个上传每项图形素材,并为每项素材选择适当类别。
* 添加所有提供的素材后,点击 **保存**。
许可证要求是强制性的,交易业务服务许可必须由 Apple 授予。要详细了解专门适用于加密货币的许可证要求,请参阅 [App Store 审核指南 - 3.1.5 加密货币](https://developer.apple.com/app-store/review/guidelines/#cryptocurrencies)。
## 第 2 步:在 B2CORE UI 中创建并配置演示账户 [#step-2-create-and-configure-a-demo-account-in-the-b2core-ui]
为了能够审核您应用的所有功能,App Store 审核团队需要访问演示账户。因此,您需要按如下方式配置演示账户:
* 完成 KYC 流程中的所有步骤以验证您的演示账户。
* 在 Back Office 中,检查并启用将在您的移动应用中展示的所有 B2CORE UI 模块。必须正确配置每个模块,以确保您的移动应用不会在审核期间被 App Store 拒绝。
* 如果您的应用允许用户转移或兑换资产,您还需要确保演示账户中有足够的资金,以便 App Store 审核团队也能够检查转移和兑换功能。
## 第 3 步:以组织身份加入 Apple Developer Program [#step-3-enroll-in-the-apple-developer-program-as-an-organization]
要开设 Apple Developer 账户,您必须提供以下信息:
* 您的 D-U-N-S 编号
* 您的法人实体状态
* 您的法定约束授权
* 您的网站地址
要发布您的 iOS 应用,您需要以组织身份加入 Apple Developer Program,然后通过将您的访问凭据发送至我司电子邮件 [ios-admin@b2broker.com](mailto:ios-admin@b2broker.com),与 B2CORE 团队共享您的开发者账户访问权限。
此后,B2CORE 团队将在每次 iOS 发布时为您上传新的应用构建版本,而您将负责管理应用的日常维护(详情请参阅[第 8 步:通过新版本更新您的应用](deploying-your-ios-app#step-8-update-your-app-with-new-releases))。
有关一般信息,请参阅 [加入前须知 — Apple Developer Program](https://developer.apple.com/programs/enroll/)。
有关分步说明,请参阅[以组织身份加入 Apple Developer Program](https://developer.apple.com/support/app-account/)。
## 第 4 步:向 B2CORE 团队授予访问权限和管理员权限 [#step-4-grant-access-and-admin-permissions-to-the-b2core-team]
为了使 B2CORE 团队能够在 App Store Connect 中配置您的应用,您需要向我们的团队授予以下管理员权限。请按如下步骤操作:
1. 在 App Store Connect 中,切换至 **用户和访问**。
2. 在 **人员** 选项卡中,使用 B2BROKER 公司电子邮件 [ios-admin@b2broker.com](mailto:ios-admin@b2broker.com) 添加新人员。
3. 在 **角色** 部分中,启用 **管理员** 角色。
4. 在 **其他资源** 部分中,确保按如下方式启用所有权限:
* **访问报告**
* **访问证书、标识符和配置文件**,其中包括:
* **访问云管理的分发证书**
* **访问云管理的 Developer ID 证书**
* **创建应用**
## 第 5 步:向您的客户经理提供所有必要信息 [#step-5-provide-all-necessary-information-to-your-account-manager]
请联系您在 B2BROKER 的客户经理,告知开发团队他们必须为发布准备您的应用。
您需要向客户经理提供以下信息,这些信息将转交给开发团队:
* 有关许可证的信息,以及您的 B2CORE 演示账户凭据。
* 您的 B2CORE UI 实例 URL。
* 您公司的法定名称,以及您的 Apple Developer 账户名称(通常与以组织身份创建 Developer Account 时指定的公司名称一致)。
## 第 6 步:指定定价、可用性和隐私选项 [#step-6-specify-the-pricing-availability-and-privacy-options]
在 App Store Connect 中,配置以下应用设置:
* **定价和可用性**
在此部分中,您需要指定以下选项:
* 我们建议您免费提供移动应用,并将 **价格计划** 字段设置为 `US$0.00 (Free)`。
* 将 **税务类别** 字段设置为 `App Store software`。
* 在 **可用性** 部分中,根据您获得的许可证,选择您的应用将可用的国家/地区。
* 对于此部分中的其他选项,您可以保留默认设置。
* **应用隐私**
在此部分中,指定 **隐私政策 URL**,该 URL 必须与您为 B2CORE UI 实例指定的 URL 相同。
接下来,点击 **开始使用** 并完成问卷,以指定您的应用数据收集政策:
* **联系信息**
默认情况下,您的应用将收集用户的电子邮件地址。
根据您应用的配置,它还可能收集其他数据,例如用户名、电话号码、用户地址和其他联系信息。请确保根据 B2CORE Back Office 中指定的选项标明收集的数据。
* **标识符**
默认会收集 **用户 ID** 数据。
不会收集 **设备 ID** 数据。
* **用户内容**
会收集用户照片和视频。
* **其他用户内容**
在此页面中,选择 `App Functionality` 和 `Other Purposes`。
5. 指定以下字段:
* **推广文本**
* **描述**
* **此版本的新功能**
* **关键词**
* **支持 URL**
* **营销 URL**
* **版本**
* **版权**
要详细了解这些字段,请参阅[平台版本信息](https://developer.apple.com/help/app-store-connect/reference/platform-version-information)。
6. 点击 **添加以供审核**,将您的应用提交给 App Store 团队审核。
当您的应用审核并获批后,其状态将更改为 `Ready for Distribution`。
## 第 8 步:通过新版本更新您的应用 [#step-8-update-your-app-with-new-releases]
B2CORE 团队将在每次 iOS 发布时为您在 App Store Connect 中上传新的应用构建版本。
您需要创建新的应用版本,将新构建版本添加到该版本中,并将其提交给 App Store 团队审核。
### 创建新的应用版本 [#create-a-new-app-version]
当 B2CORE 团队通知您有新的 iOS 发布版本时,请在 Apple Store Connect 中创建新的应用版本,向其中添加新的构建版本,并将其提交给 App Store 团队审核。
7. 将发行说明添加至 **此版本的新功能** 字段。每个 iOS 发布版本的 RN 可在[此处](../release-notes/release-notes-mobile)找到。
5. 添加最新构建版本:
* 点击 **构建版本** 部分旁显示的 **添加** 按钮 (+)。
* 在 **添加构建版本** 弹出窗口中,选择版本号\_最高\_的构建版本,然后点击 **完成**。
6. 在 **版本** 字段中,将版本号更新为与新 iOS 发布版本一致。例如,将 `1.23.0` 更改为 `1.24.0`。
7. 将发行说明添加至 **此版本的新功能** 字段。每个 iOS 发布版本的 RN 可在[此处](../release-notes/release-notes-mobile)找到。
仪表板会显示以下信息:
## 入金 [#deposits]
* **总入金** — 所选期间内的入金总额(以 USD 计)。该指标根据 [Finance > Deposits](finance/deposits) 中的 **Final amount (USD)** 列计算。仅包含处于最终状态的已完成入金。
* **平均入金** — 所选期间内的平均入金金额,计算方式如下:
`Total deposit / Number of deposits`
## 出金 [#withdrawals]
* **总出金** — 所选期间内的出金总额(以 USD 计)。该指标根据 [Finance > Payouts](finance/payouts) 中的 **Final amount (USD)** 列计算。仅包含处于最终状态的已完成出金。
* **平均出金** — 所选期间内的平均入金金额,计算方式如下:
`Total withdrawal / Number of withdrawals`
## 汇总 [#summary]
* **净入金** — 所选期间内的净入金金额(以 USD 计),计算方式如下:
`Total deposit − Total withdrawal`
B2CORE 是一款功能完善的 CRM,提供完整的自定义和访问控制选项。
## 授权和权限 [#authorization-and-permissions]
B2CORE 提供完整的个性化和访问控制选项。用户访问通过应用不同用户组权限进行控制。
激活 B2CORE 个人资料后,您可以使用管理员提供的凭据登录 Back Office。
如果登录时遇到错误,请检查登录名和密码,以及输入语言和 Caps Lock 状态。如果一切看似正确,请联系管理员确认您的个人资料状态。
## 常规界面选项 [#general-interface-options]
Back Office 用户界面在所有页面中保持统一,确保一致的外观和体验,并提供一组通用的基本选项。本文档介绍如何调整页面上显示的数据、如何筛选和排序这些数据,以及如何将其导出到文件。
### 顶部栏选项 [#the-top-bar-options]
在典型的 Back Office 页面顶部,您可以看到包含以下元素的顶部栏:
* **☰ 主菜单**按钮
点击以展开或折叠主菜单。
* **后端版本**
当前部署的 Back Office 版本。
* **服务器时间**
GMT+0 的固定系统时间。该时间无法更改,可确保 B2CORE 中所有交易、日志和活动的准确性和一致性。
* **打开个人区域**链接
点击该链接可访问与您的 Back Office 关联的 B2CORE UI 的**登录**页面。
* **铃铛**图标
点击以查看待处理的客户请求。新请求的数量显示在计数徽章上。
* **警告**图标
点击以查看平台连接警报,例如有关当前无法访问的交易平台的通知。活动警报的数量显示在计数徽章上。
* 显示用户个人资料中电子邮件地址的面板
在页面右上角,点击显示您电子邮件地址的个人资料按钮,可访问**退出登录**按钮和**启用 2FA**选项(如果已启用双重身份验证,则为**禁用 2FA**)。
双重身份验证 (2FA) 是强制性的,必须为 Back Office 中的所有用户个人资料启用。
要通过基于时间的一次性密码 (TOTP) 为您的用户个人资料启用 2FA,请点击**启用 2FA**,然后在弹出窗口中点击**确定**。接下来,按照显示的说明使用 Google Authenticator 设置 2FA。
启用 2FA 后,登录 Back Office 时请先输入登录名和密码,然后输入 Google Authenticator 应用中的验证码。
### 通用选项 [#common-options]
以下按钮可在大多数 Back Office 页面中找到。
* 表格上方:
*
— 用于添加新条目的**创建**按钮
*
— 用于将表格数据导出为 CSV 文件的**导出**按钮
* 用于选择多个表格条目并对其执行批量操作的**选择**和**全选**按钮(如可用)
* 表格标题中:
*
— 用于应用自定义筛选条件的**搜索**按钮
*
— 用于重置自定义筛选条件的**重置**按钮
* 表格行中:
*
— 用于深入查看数据并访问详细信息的**编辑**按钮
*
— 用于删除条目的**删除**按钮
页面元素可能作为超链接,可点击以深入查看详细信息。对此数据的访问权限根据分配给特定用户组的权限进行维护。
### 筛选和排序 [#filtering-and-sorting]
在整个 Back Office 中,数据通常以表格形式组织。表格数据可以排序和筛选。
可用于排序数据的列会在列标题中标有向上和向下箭头(不可排序时不显示箭头)。您可以点击这些箭头,一次按一列以升序或降序排序数据。
除排序顺序外,您还可以指定多个条件来筛选列数据。
筛选可用时,相应的输入字段会显示在列标题中。输入字段因数据格式而异,例如文本、数字、日期、时间或列表。
为便于按日期筛选,可能会显示开始日期和结束日期两个字段,以便您定义一个时间段。
要启用或禁用筛选条件,请点击**搜索**和**重置**按钮。
### 分页 [#pagination]
您可以在多个页面中显示表格数据,并指定每页显示的记录数量(找到的记录总数显示在页面大小选择器旁边)。
要在页面之间导航,请点击**上一页**或**下一页**,或者点击特定页码。
### 可见性 [#visibility]
要选择要包含在表格中的数据字段,请点击**列可见性**,然后勾选或取消勾选要显示或隐藏的列。应用后,新的可见性设置将对所有 Back Office 用户生效(特定字段的可见性取决于授予特定用户的访问权限)。
### 数据导出 [#data-export]
大多数 Back Office 页面上的数据都可以导出为 CSV 或 XLSX 文件。
为此,请点击**导出**按钮,选择文件格式,然后选择将数据下载到您的计算机,或发送到您个人资料中的电子邮件地址。
生成的文件中的数据与当前可见性设置以及已应用的排序和筛选条件一致。
使用此菜单可访问 **介绍经纪人(IB)** 产品的功能,该产品旨在支持帮助您拓展客户群的推荐计划。通过这些计划,您可以鼓励现有客户成为合作伙伴,并为您的经纪业务吸引新的交易者。作为回报,合作伙伴可获得其推荐客户交易活动所产生收入的一定比例,从而建立互利共赢的合作关系。
如果您的 Back Office 中没有此菜单,请联系您的客户经理,了解如何获取和实施 IB 计划。
有关 IB 的更多信息,请参阅[产品文档](https://docs.ib.b2core.b2broker.com/)。
在此页面上,您可以查看客户在 B2CORE UI 中提交给 HelpDesk 的工单被标记为已解决后留下的反馈。
系统会为每个已提交反馈的工单提供以下信息:
**Id**
客户向 HelpDesk 提交的工单标识符。
点击工单标识符可在 SupportPal 或 Zendesk 中查看工单详情。
***
**Email**
客户电子邮件地址。
***
**Comment**
反馈文本。
***
**Date**
提交反馈的日期和时间。
***
**Status**
客户满意度评分。可能的值:
* 非常满意
* 满意
* 一般
* 不满意
* 非常不满意
***
**Subject**
工单主题。
* **支持服务中的自定义磁贴**
现在可将自定义磁贴添加至**服务**部分,以将用户链接到支持您的经纪业务的第三方服务或外部资源。必须在**Back Office**中进行配置,并指定磁贴名称和重定向 URL。配置完成后,自定义磁贴将显示在应用的**服务**下。
在 Back Office 中,配置自定义菜单链接的选项将随 [2025 年 6 月发布版本](release-notes#july-2-2025)提供。
* **通过前往充值选项简化账户创建**
已简化账户创建流程,以清楚指示何时需要最低充值金额。如果资金不足以开设新的交易账户,用户将看到所需金额以及**前往充值**按钮,鼓励快速入金并更快开始交易。
* 优化整体应用性能,提供更快、更稳定、更灵敏的用户体验。
***
### 2025 年 3 月 [#march-2025]
**v1.28 (iOS)**
此版本包括:
**改进注册和引导体验**
应用中面向新客户的注册和引导流程已得到改进:
* **应用快速概览**:在访问**注册**和**登录**表单前,客户现在会看到通过多个页面展示主要功能的简要应用概览。此改进旨在提高注册转化率并吸引更多潜在客户。
**一键访问交易**
客户现在可以通过在应用中从其账户点击**交易**来访问 MT4、MT5 和 cTrader 交易终端,使交易更加便捷。要启用此功能,请在 B2CORE Back Office 中导航至**产品** > **平台**后,在平台详情中指定**Web 终端 URL**(详情请参阅[如何从 B2CORE UI 和移动应用启用一键访问网页交易终端](../how-to-articles/manage-platforms/how-to-enable-one-click-access-to-web-trading-terminals))。
***
### 2024 年 12 月 [#december-2024]
**v1.27 (iOS)**
此版本包括:
* **使用密码增强安全性**
现在可在注册或登录期间设置密码,以确保更高的应用安全性。
* **可选生物识别认证**
已引入 Face ID 或 Touch ID 等生物识别选项,作为快速安全访问的额外安全层。
* **支持 Amplitude 分析**
应用现已支持 Amplitude 平台,使您能够获取有关客户在应用内操作的分析数据。请联系您的客户经理,以获取设置和使用 Amplitude 分析的协助。
* 错误修复和改进,涉及应用界面的显示和可用性,以带来更无缝的用户体验。
***
### v1.26 (iOS) [#v126-ios]
* 此版本带来内部增强和幕后修复,以提升应用性能并改善用户体验。
***
### v1.25 (iOS) [#v125-ios]
此版本包括:
* **重新设计的充值部分**
可通过**服务** > **金融**访问的**充值**部分已重新设计,以带来更顺畅的充值体验。您现在可以轻松选择钱包和充值币种,然后选择一种支持的支付方式。选择后,您将收到充值地址,或可输入银行详情以完成交易。
此外,在充值前,您可以查看当前汇率,并在**参考金额**部分根据该汇率计算预计金额。
* 应用性能已增强,以提供更快、更无缝的体验。
***
### v1.24 (iOS) [#v124-ios]
此版本包括:
* **应用服务**
我们很高兴推出新的应用服务功能,使您能够更轻松地查找支持的服务,例如交易、金融、HelpDesk、IB 等,并了解即将提供的功能。此功能使您能够:
* 直接从首页访问服务
* 搜索所需服务
* 点击服务磁贴以快速导航至所需服务。
* **集成 Zendesk**
已集成 Zendesk 客户支持平台,提供工单、在线聊天和 AI 工具。点击 HelpDesk 按钮可从应用导航至 Zendesk 界面,无需任何额外授权。
* **增强 IB Room**
IB Room 的增强包括有关客户和奖励的详细信息,使您能够:
* 查看使用您的推荐链接注册的 Direct IB 和 Sub-IB 客户列表。对于每位客户,您可以查看其总交易量和您获得的奖励金额详情。
* 查看支付到您钱包的奖励列表,并导航至奖励详情。
* **密码验证**
设置新密码时,现在会验证其是否符合安全标准,以确保满足所需长度和必要字符要求。
* 错误修复和改进,带来更完善、更友好的交互体验。
***
### v1.23 (iOS) [#v123-ios]
此版本包括:
* **集成 B2TRADER Brokerage Platform**
随着此版本发布,我们非常高兴地宣布集成 B2TRADER Brokerage Platform,为您提供全面的交易体验:
* 单点登录:登录应用并导航至 BBP 平台,无需额外授权。
* 包含详细余额的账户列表:通过全面查看账户余额来掌控资金。创建和重命名账户,使资金井然有序。
* 资产余额页面:查看资产详情,包括可用资金和冻结资金金额,并可选择隐藏零余额资产。
* 订单簿和价格图表:监控交易数据并作出买卖决策,可快速访问下单页面。
* K 线图和折线图:在图表类型之间切换并滚动查看历史数值。
* 限价和市价订单:使用所有支持的有效期设置下达限价和市价订单(市价:IOC、FOK;限价:IOC、FOK、GTC、GTD、Day)。
* 订单列表:访问未成交订单和历史订单列表,轻松导航至订单参数和详情,并提供快速取消或重复订单的选项。
* **重新设计的仪表板**
重新设计的仪表板提供以下增强功能:
* **新小组件**:使用总余额、最近交易、收藏交易账户(现在仅显示已收藏的 MT4 和 MT5 账户)和 IB 计划等新小组件。
* **组织仪表板**:根据您的偏好,通过拖放小组件轻松组织仪表板。
* **支持横幅**:仪表板现在可以显示横幅。
* **个人资料信息**:现在可在仪表板顶部查看您的个人资料名称和图片。
* **快速导航至 HelpDesk**:如支持,可点击顶部栏中的按钮快速访问 HelpDesk。
* **Apple store 信息**:现在可以在下载前查看最新应用版本的新功能。
* 错误修复和改进,提供更顺畅、更精简的用户体验。
***
### v1.22 (iOS) [#v122-ios]
此版本包括:
* **集成 CentroID**
已添加对 CentroID 的支持,提供与各种交易平台和流动性来源的连接。现在您可以添加 CentroID 保证金账户,并在这些账户上进行交易。
* **Introducing Brokers (IB)**
个人资料菜单中现已提供 IB Room 选项。使用它可注册成为推荐计划合作伙伴并创建您的专属推荐链接。吸引新交易者,根据您新推荐客户的交易活动赚取奖励,并使用 IB Room 仪表板跟踪计划表现。
* 错误修复和改进,以确保更无缝、更高效的用户体验。
* **支持跟单交易、PAMM 和 MAM**
应用现已通过网页视图支持来自 **B2COPY** 的跟单交易、PAMM 和 MAM 功能。这使客户能够通过**服务**部分直接从应用访问这些服务。
* **通过 B2BINPAY V3 和 Coinsbuy V3 充值的静态支付详情**
通过 **API V3** 连接时,应用现已支持通过 **B2BINPAY** 和 **Coinsbuy** 充值的**静态支付详情**。借助静态支付详情,客户可以直接在应用中生成一个或多个特定区块链的充值地址。这些地址将保存供日后使用,并可用于后续充值。
此外,通过 **B2BINPAY V3** 和 **Coinsbuy V3** 的加密货币充值流程已得到改进,提供清晰的**费用明细**和**参考金额**显示,从而带来更好的透明度和更顺畅的充值体验。
* **支付表单全面集成 B2TRANSLATE**
应用中的支付表单现已全面集成 [B2TRANSLATE](https://docs.b2translate.b2broker.com/)(原 Weblate)。现在可通过 B2TRANSLATE 自定义并将 PSS 连接的充值和提现方式的动态表单所有组件标签以及验证错误消息翻译为多种语言。
* 错误修复和改进,以确保更无缝、更高效的用户体验。
***
### 2025 年 9 月 [#september-2025-1]
**v2.8.0 (Android)**
此版本包括:
* **Google Play 应用部署**
现在可将您的应用部署并发布到 **Google Play**,使客户能够轻松从商店直接下载、安装并接收未来更新。
* **应用现已支持 PSS 充值和提现方式**
通过 Back Office 中的 [支付系统服务 (PSS)](../integrations/payment-systems#payment-system-service-pss) 配置的提现方式现已可在应用中使用。这完成了对先前已集成的**充值方式**以及通过 PSS 连接的**提现方式**的支持。
* **增强安全性的设备管理**
在**个人资料** > **安全**中,新增了**设备管理**部分。它显示有关用于登录其个人资料的设备、IP 地址和位置的日志数据,并允许客户直接从应用终止当前活跃会话。这使客户可以更好地控制会话,并有助于防止未经授权的访问。
* 修复和优化,以确保稳定性能和可靠性。
***
### 2025 年 8 月 [#august-2025]
**v2.7.0 (Android)**
此版本包括:
* **反馈表单**
用户现在可以直接在应用中分享体验。反馈表单会在多次启动应用后或进行任何金融操作时自动显示,允许快速给出正面或负面评分,并可选择添加评论。也可随时通过**个人资料**菜单提交反馈。
* 提升性能和稳定性,带来更快、更可靠的体验。
***
### 2025 年 6 月 [#june-2025-1]
**v2.6.0 (Android)**
此版本包括:
* **应用现已支持通过 PSS 配置的充值方式**
通过 Back Office 中的 [支付系统服务 (PSS)](../integrations/payment-systems#payment-system-service-pss) 配置的充值方式现已可供用户直接在应用中使用。
请注意,应用暂不支持通过 PSS 的提现方式。
* **应用现已支持奖励金**
用户现在可以直接在应用中查看和订阅 **MT4/5** 和 **cTrader** 上的奖励金计划。如果用户没有合适的交易账户,可在订阅过程中创建所需账户。
满足计划要求后,奖励金额将记入用户余额并可用于提现。
* **支持服务中的自定义磁贴**
可将自定义磁贴添加至**服务**部分,以将用户链接到支持您业务的第三方服务或外部资源。必须在**Back Office**中进行配置,并指定磁贴名称和重定向 URL。配置完成后,自定义磁贴将显示在应用的**服务**下。
在 Back Office 中,配置自定义菜单链接的选项将随 [2025 年 6 月发布版本](release-notes#july-2-2025)提供。
* **通过 SumSub 进行应用内验证**
现已支持直接在应用内通过 **SumSub** 完成完整验证流程,无需外部重定向。这种精简体验使引导期间的 KYC 流程更快、更直观。
* **用于跟踪提现的区块链浏览器链接**
用户现在可以直接从应用中轻松跟踪区块链上的**提现交易**。加密货币钱包包含一个指向 `https://www.blockchain.com/explorer` 的链接,仅适用于 Bitcoin、Ethereum 和 Bitcoin Cash 的提现。这简化了交易监控并增强透明度。
* 优化整体应用性能,提供更快、更稳定、更灵敏的用户体验。
***
### 2025 年 5 月 [#may-2025]
**v2.5.0 (Android)**
此版本包括:
性能优化和错误修复,以改善整体用户体验。
***
### 2025 年 4 月 [#april-2025]
**v2.4.0 (Android)**
此版本包括:
**焕新的注册和引导流程**
* **应用预览**:在进入**注册**或**登录**表单前,客户现在会看到简要引导,通过多个页面重点介绍应用的主要功能。这从一开始就提升了用户旅程,并鼓励更快注册。
* 应用已优化,可提供更快、更稳定、更灵敏的体验。
***
### 2025 年 3 月 [#march-2025-1]
**v2.3.0 (Android)**
此版本包括:
* **内部转账**
应用现已支持内部转账,客户可通过指定收款人的**客户 ID**和**账户 ID**,向同一经纪商内的其他客户转账。资金即时到账且不收取佣金。
* **通过提现地址白名单增强安全性**
通过在**安全**部分启用**提现白名单**选项并添加受信任的提现地址来保护您的提现。启用后,资金只能提现至指定地址,从而防止未经授权的交易。
* **一键访问交易**
客户现在可以通过在应用中从其账户点击**交易**来访问 MT4、MT5 和 cTrader 交易终端,使交易更加便捷。要启用此功能,请在 B2CORE Back Office 中导航至**产品** > **平台**后,在平台详情中指定**Web 终端 URL**(详情请参阅[如何从 B2CORE UI 和移动应用启用一键访问网页交易终端](../how-to-articles/manage-platforms/how-to-enable-one-click-access-to-web-trading-terminals))。
***
### 2024 年 12 月 [#december-2024-1]
**v2.2.0 (Android)**
此版本包括:
* **Introducing Brokers (IB)**
应用现已支持 IB 功能,使管理您的推荐活动更加轻松。通过此更新,您可以:
* **探索并加入 IB 计划**:使用**首页**页面上的**IB 计划**小组件查看所有可用 IB 计划并加入新计划。
* **IB 客户**:查看按不同层级组织的推荐客户列表。
* **跟踪 IB 奖励**:监控您获得的奖励并查看付款详情。此外,您可以跟踪 IB 钱包余额并直接从应用提现。
* **自定义 IB 推荐链接**:在**高级链接**部分配置每个计划的推荐链接参数,以优化推荐策略。
* **交易账户增强功能**
应用现在提供更多 MT4/5 和 cTrader 账户选项,包括:
* **基本账户参数**:直接在账户详情中查看余额、净值、可用资金、信用和杠杆等参数。
* **净值图表**:使用现已适用于每日、每周和每月周期的净值图表分析账户表现。
* **扩展交易数据**:通过**挂单**、**未平仓头寸**和**交易历史**标签访问更详细的交易数据。
* 归档交易账户的功能。
* 重命名账户以便更好组织的功能。
* 错误修复和界面改进,带来更无缝、更友好的体验。
***
### 2024 年 11 月 [#november-2024]
**v2.1.0 (Android)**
此版本包括:
* **支持兑换**
现在可在**金融**部分访问兑换功能,使您能够在不同币种之间转换,包括法币兑换加密货币及反向兑换。进行兑换时,您可以查看实时汇率并根据需要刷新,以掌握交易的最新汇率。
* **集成 Zendesk**
通过集成 Zendesk 客户支持,您现在可以直接从应用的**个人资料菜单**轻松创建、提交和跟踪支持工单。
要在应用中使用 Zendesk,必须在 Back Office 中设置 Zendesk 配置。这包括建立到 Zendesk 的外部连接,以及在此前使用 SupportPal 的情况下遵循[从 SupportPal 切换到 Zendesk](../how-to-articles/manage-system-settings/how-to-switch-from-supportpal-to-zendesk)的步骤。
* **收藏钱包**
现在可以在应用中将钱包添加到收藏,以便更轻松地组织和快速访问钱包。
* **更多交易账户选项**
现在可在账户详情中使用重命名和归档交易账户的选项,从而为您的账户管理提供更大灵活性。
* 已实施错误修复和性能增强,以提供更顺畅、更灵敏的用户体验。
***
### 2024 年 10 月 [#october-2024]
**v2.0.0 (Android)**
此版本包括:
* **支持 MT4/5 和 cTrader 账户**
现在您可以在应用中开设模拟和真实 MT4/5 及 cTrader 账户、向账户充值和从账户提现,并实时监控账户交易参数,例如余额、净值、信用和可用保证金。
* **新增交易历史部分**
在新的交易历史部分查看完整的充值、提现和转账历史,以及每笔交易的详细信息。
* **用于个人资料安全的密码更改**
为便于您确保个人资料安全,安全部分现在包含更改个人资料密码的选项。
* **使用 QR 码登录 B2CORE UI**
现在可以使用您已登录的应用扫描 B2CORE UI **登录**页面上的 QR 码,无需输入凭据即可访问。
***
### 2024 年 9 月 [#september-2024]
**v1.0.0 (Android)**
我们很高兴宣布发布适用于 Android 的 B2CORE 应用,您可以将其作为自己的品牌应用启动。这使您能够为客户提供访问 B2CORE 功能的额外平台。
**应用下载**
目前,Android 应用可通过 APK 文件下载和安装。要使 APK 可从您的 B2CORE UI 下载,请参阅[如何配置移动应用下载设置](../how-to-articles/manage-system-settings/how-to-configure-settings-for-mobile-app-downloads)。
此版本包括:
* **注册**
可通过在开始页面点击注册选项,在应用中完成注册。
* **仪表板**
登录应用后将显示仪表板,其中包含总余额、最近交易和钱包小组件,顶部显示横幅。
* **个人资料菜单**
通过点击屏幕左上角访问,个人资料菜单使您能够:
* 上传个人资料照片
* 查看当前验证等级并完成 KYC 验证以达到更高级别
* 访问安全设置,例如通过 Google Authenticator 或 SMS 的 2FA、反钓鱼代码等
* 显示应用版本以及指向额外资源的自定义链接列表。
* **钱包**
显示您的钱包列表,并分为加密货币和法币类别。顶部显示所有钱包折算为 USD 的预计总额。您可从此部分充值、提现和转账。
点击钱包后,可以查看详细信息,包括可用余额、冻结金额和交易历史。
* **金融**
此部分用于充值、提现和转账。每种交易类型下均显示最近交易,使您可以基于先前交易通过预填字段快速发起新交易。
* **交易**
此部分支持 B2TRADER Spot Brokerage Platform,提供对其广泛交易特性和功能的访问。
#### 支持 Zendesk 聊天机器人 [#support-for-the-zendesk-chatbot]
当您将 **Zendesk** 作为 B2CORE 的 HelpDesk 系统使用时,现在可以在 B2CORE UI 中启用 Zendesk 聊天机器人。此增强功能提供了更流畅的 HelpDesk 体验,客户无需额外授权即可提问、快速找到所需信息,并无缝切换至人工客服。有关详细信息,请参阅[如何添加 Zendesk 聊天机器人](../how-to-articles/manage-system-settings/how-to-configure-a-connection-to-zendesk#how-to-configure-the-zendesk-chatbot)。
#### 增强的静态 Dashboard [#enhanced-static-dashboard]
上一版本推出的具有固定小部件的静态 **Dashboard** 已进一步增强,以改善易用性和清晰度。
**Last Transactions**
* 仅当相关的 **Transaction History** 菜单已启用时,该小部件才会显示在 **Dashboard** 上。如果菜单被隐藏,该小部件不会出现在 **Dashboard** 上。
* 小部件中的法定货币始终使用两位小数精度。所有其他货币遵循 Back Office 中为每种货币配置的小数位设置。
* 如果客户没有交易历史记录,**All** 按钮将在小部件中隐藏。交易出现后,该按钮将显示,允许客户直接从小部件查看完整历史记录。
**Portfolio**
小部件中显示的标签现在取决于相关的 **Wallets** 和 **Platforms** 菜单是否已启用:
* 如果两个菜单均已启用,小部件将显示 **Wallets**、**Trading Platforms** 和 **All** 标签,允许客户查看其所有钱包和交易账户的总投资组合价值。
* 如果任一菜单被禁用,相应标签将在小部件中隐藏。
**Trading Accounts**
仅当相关的 **Platforms** 菜单已启用时,该小部件才会显示在 **Dashboard** 上。如果菜单被隐藏,该小部件不会出现在 **Dashboard** 上。
* **自动提交验证码表单**
在需要验证码确认操作的表单中,例如登录、更改密码或其他操作,现在输入验证码后会自动提交表单,客户无需点击 **Continue** 按钮,流程更加顺畅。
### 支付系统更新 [#payment-system-updates-8]
#### 支付输入快照 [#payment-input-snapshots]
在 B2CORE Back Office 中,现在可以查看客户使用 **PSS** 方法时在入金和出金表单中输入的信息。这些数据有助于管理员在批准或拒绝出金请求时做出明智决策,并加快对潜在支付相关问题的调查。
该信息位于新增的 **Payment input snapshot** 部分,该部分已添加至:
* **Finance** > **Deposits** 中的入金详细信息。
* **Finance > Payouts** 中的出金详细信息。
* **Clients** > **Requests** 中的客户请求,包括:**Payout** 请求、**PS Deposit Assistance** 请求和 **PS Withdrawal Assistance** 请求。
#### 简化 PS Deposit Assistance 请求处理 [#streamlined-handling-of-ps-deposit-assistance-requests]
当因与相应支付系统达到同步截止期限而触发 **PS Deposit Assistance** 请求时,**Clients** > **Requests** 中不再创建单独的请求。此类情况现在必须直接在入金详细信息中处理,从而减少不必要的协助请求数量。
#### 支付表单全面集成 B2TRANSLATE [#full-b2translate-integration-for-payment-forms]
B2CORE UI 和移动应用中的支付表单现已全面集成 [B2TRANSLATE](https://docs.b2translate.b2broker.com/)(原 WEBLATE)。现在可以通过 B2TRANSLATE 自定义并翻译 PSS 连接的入金和出金方法动态表单中所有组件的标签,以及验证错误消息,支持多种语言。这可确保所有金融工作流中的本地化保持一致。
### 改进 [#improvements-8]
* 现在在批准客户的**转账**和**内部转账**请求时,会检查源账户余额以确保有足够资金。如果余额不足以进行转账,则无法批准该请求,并会显示错误信息:`Application approve failed. Insufficient funds on source account`。
* 在 **Bonuses** > **Bonus distribution** 中,新增 **Created by** 列,显示为客户添加奖金的 Back Office 用户的电子邮箱和 ID。点击 ID 可打开相应 Back Office 用户的档案。
* Back Office 中 **Finance** > **Exchange** 页面的加载速度已显著提升,尤其适用于大数据量。该页面的兑换数据导出也已加速。
* 现在可以根据客户的**司法管辖区**和**国家/地区**限制 B2CORE UI 主菜单项目的可见性,从而更精细地控制客户可访问的功能。
## 2025 年 10 月 1 日 [#october-1-2025]
### 新功能 [#new-features-9]
#### 新 PS 集成 [#new-ps-integrations-4]
现已通过 **PSS** 添加对以下新支付系统的支持:
* **Payrock** – 支持入金和出金
* **Proxpay** – 支持入金和出金
* **KoraPay** – 已新增向银行账户出金的选项。
#### 推出入金静态支付详情 [#introducing-static-payment-details-for-deposits]
从此版本开始,通过已集成支付系统进行的入金方法将逐步支持**静态支付详情**。此前签发的支付信息(例如加密货币地址或银行详情)将为客户保存,使其可以随时将该信息重复用于不同金额的入金。
在此版本中,**B2BINPAY** 和 **Coinsbuy** 方法提供静态入金详情。客户可以在 B2CORE UI 中生成入金地址并保存以供日后使用,或者创建新的特定区块链地址,所有地址均会保存以便后续入金。
#### 包含关键财务指标的 Dashboard [#the-dashboard-with-key-financial-metrics]
对于在 **Statistics** 类别下被分配 `Access to Finance Dashboard` 权限的用户,登录 Back Office 后现在会打开 **Dashboard**。**Dashboard** 显示关键财务指标,包括**总入金**、**总出金**和**净入金**,帮助用户快速查看所选期间的财务结果和活动(请参阅 [仪表板](../back-office-guide/dashboard))。
### B2CORE UI 更新 [#b2core-ui-updates-9]
#### 重新设计的静态 Dashboard [#redesigned-static-dashboard]
B2CORE UI 的 **Dashboard** 已重新设计,为客户的投资组合和财务状况提供清晰、直观的概览。**Dashboard** 现在是一个固定、不可自定义的页面,包含以下小部件:
* **Portfolio**:显示总余额,并可查看钱包和交易账户之间的资产配置。显眼的 **Deposit** 按钮让客户能够快速添加资金。此外,还可以通过该小部件访问**转账**、**兑换**和**出金**等其他金融交易。
* **Last Transactions**:显示近期金融交易及其状态的列表,以供快速查看,并可访问完整的 **Transaction History**。
* **Trading Accounts**:显示活跃账户、标记为收藏的账户或具有非零余额的账户,便于快速访问;并提供一键创建新账户或前往交易的选项。
#### 清晰显示验证请求状态 [#clear-display-of-verification-request-statuses]
客户现在可以更轻松地跟踪其验证请求的状态。**Dashboard** 和 **Verification** 页面上的新横幅会在请求提交后显示待处理状态,并提供指向 **Document verification** 部分的直接链接,客户可在此监控文件状态。
#### 更准确的入金和出金预估金额 [#more-accurate-indicative-amounts-for-deposits-and-withdrawals]
已重新设计客户在 B2CORE UI 中发起入金和出金时显示的预估金额计算方式。这些金额现在会更准确地反映客户在执行后将收到的最终结果,并考虑佣金和汇率。
### 改进 [#improvements-9]
* 对于 **DXtrade**,现在可以在 Back Office 中配置产品时添加 **Account number prefix**。该前缀会添加到 DXtrade 账号的开头,以帮助区分例如真实账户和模拟账户,或单个 DXtrade 基础设施内属于不同品牌的账户(请参阅[如何集成 DXtrade](../how-to-articles/manage-platforms/how-to-integrate-dxtrade))。
* 对于 **ShuftiPro**,地址验证现支持文件类型 `any`。它允许客户提交包含其姓名和地址的任意文件,而非特定类型的文件,使 KYC 流程更加灵活和便捷(请参阅[如何使用 ShuftiPro](../how-to-articles/manage-verification-options/how-to-use-shuftipro))。
* 现在会根据司法管辖区设置中定义的**国家/地区**和**客户类型**组合,为客户分配司法管辖区(请参阅[司法管辖区](../back-office-guide/clients/jurisdictions))。
* 从 1.30.0(iOS)和 2.8.0(Android)版本起,移动应用现支持 PSS 支付方式,包括入金和出金。
* 已优化 Back Office 中表格的加载。尤其是,即使需要处理大量账户,**Clients** > **Accounts** 列表现在也能更快加载。
* 对于从 B2CORE Back Office 通过 **Twilio** 呼叫客户,如果您的账户中有多个活跃的 Twilio 号码,现在可以选择使用哪个电话号码。这使您能够选择最合适的本地号码,提高成功联系的可能性并增强客户信任。
现在可以录制从 B2CORE Back Office 通过 Twilio 发出的呼叫,录音会保存在您的 Twilio 账户中以供日后播放。
* **Export** 选项已增强,可从 Back Office 中提供此选项的页面更可靠地导出数据。
* 在 **Bonuses** > **Bonus distribution** 中,**Ignored symbol groups** 字段现在为可选项,在手动向客户发放奖金时可以留空。如留空,客户交易的可用组中的所有交易品种都会计入其交易量,以满足奖金要求。
* B2CORE UI 和移动应用中的横幅定向功能已改进。除**国家/地区**和**验证级别**外,现在还可以按**客户类型**和**司法管辖区**应用限制,以便更精确地控制可见性。
* 在 B2CORE UI 中保存的出金预设里,支付方式现在会与所选出金方式相匹配,并且会清晰显示货币。此前会显示 Back Office 中使用的技术方法名称,导致不一致。
## 2025 年 7 月 2 日 [#july-2-2025]
### 新功能 [#new-features-10]
#### 新 PS 集成 [#new-ps-integrations-5]
现已通过 **PSS** 添加对以下新支付系统的支持,均可进行入金和出金:
* **FundPay**
* **Jetapay**
* **PayRetailers**
* **TopChange Pay**
此外,**AlfredPay** 现支持出金。
#### 与 SumSub Fraud Prevention 集成 [#integration-with-sumsub-fraud-prevention]
现在支持通过 **SumSub Fraud Prevention** 对法币和加密货币**入金**及**出金**进行交易监控。
发起此类交易时,系统会自动通过 **SumSub** 进行检查,并将结果返回至 B2CORE。结果会显示在入金和出金详情的 **Transaction monitoring** 部分,以及相应客户请求中,并可在请求批准或拒绝前查看。此外,**Finance** > **Deposits/Payouts** 中新增的 **KYT status** 列会显示交易监控结果。
这也改进了 B2CORE 中的**自动出金**,使其在不影响合规性的情况下能够更快处理。
若要使用此功能,您必须在 SumSub 账户中启用并正确配置 **SumSub Fraud Prevention**,并在 B2CORE Back Office 中启用 **SumSub** 外部连接(请参阅[如何配置 SumSub 连接](../how-to-articles/manage-verification-options/how-to-use-sumsubstance#how-to-configure-a-connection-to-sumsub))。
#### 与 ActiveCampaign 集成 [#integration-with-activecampaign]
现在可以使用 B2CORE 中的客户数据开展定向电子邮件营销活动,并与 **ActiveCampaign** 平台无缝同步。此集成功能可通过以下方式实现更高效、数据驱动的电子邮件营销和通知:
* 在 B2CORE Back Office 中配置至 **ActiveCampaign** 的外部连接。
* 将客户数据从 B2CORE 自动同步到 **ActiveCampaign**。
* 创建电子邮件列表,以提升客户留存率并通过 **ActiveCampaign** 提供更个性化的互动。
有关详细信息,请参阅[如何集成 ActiveCampaign](../how-to-articles/manage-communication-platforms/how-to-integrate-activecampaign)。
#### 支持 B2CORE Web 和移动应用中的自定义菜单项 [#support-for-custom-menu-items-in-the-b2core-web-and-mobile-apps]
现在可以向 B2CORE UI 和移动应用中显示的菜单添加自定义项目。在移动应用中,此功能自 **iOS** v1.29 和 **Android** v2.6.0 起受支持。
可以在 **Promotion** > **Menu** 中配置自定义项目,指定其名称、客户将被重定向到的 URL 以及图标。点击后,客户将被重定向至支持您业务的第三方外部资源或网页(请参阅[如何添加自定义菜单项](../how-to-articles/manage-advertising-options/how-to-add-custom-menu-items))。
### B2CORE UI 更新 [#b2core-ui-updates-10]
#### 改进的 Total Balance 小部件 [#improved-total-balance-widget]
该小部件已改进,可显示钱包和交易账户的余额,以及整体投资组合价值,从而提供全面的财务概览。
#### B2TRADER 账户相关增强功能 [#enhancements-related-to-b2trader-accounts]
B2TRADER 账户处理引入了以下改进:
* **新的 B2TRADER Accounts 小部件**:现在可以通过 B2CORE UI **Dashboard** 上的专用小部件方便地查看和访问在 B2TRADER 平台创建的账户。交易者只需单击一下即可登录交易界面并立即开始交易。
* **支持 Netting 账户**:除 **Hedging** 外,现在还支持执行类型为 **Netting** 的 B2TRADER 账户。这使交易者能够选择适当的类型来规划和调整其交易策略。要启用 Netting 账户,必须在 B2CORE Back Office 的 **Products** 菜单下配置单独的产品。
* **支持模拟账户**:现在可以通过 B2CORE UI 创建具有预设余额的 B2TRADER 模拟账户,使交易者能够安全练习使用交易界面。要启用模拟账户,必须在 B2CORE Back Office 的 **Products** 菜单下配置单独的产品。
#### 改版的 Sign Up 和 Sign In 页面 [#revised-sign-up-and-sign-in-pages]
**Sign Up** 和 **Sign In** 表单已重新设计,布局更简洁、视觉外观更佳、整体用户体验更好,包括:
* 在确认期间显示客户的电子邮箱或电话,以明确验证码发送位置。
* **Back** 按钮现在会让客户返回上一步,而不会重置表单。
### 改进 [#improvements-10]
* 移动应用现在部分支持 PSS 支付方式。自 **iOS** v1.29 和 **Android** v2.6.0 起可使用*入金*方式。暂不支持通过 PSS 使用*出金*方式。
* 现在可以根据客户的**国家/地区**、**客户类型**、**验证级别**、**司法管辖区**或**介绍经纪商 (IB)** 限制客户使用奖金预设和临时奖金。这些限制可单独应用或组合应用,从而实现更精细的访问控制。
如果将限制应用于用于发放自动入金奖金的奖金预设,则仅会向符合指定条件的客户发放这些奖金(请参阅[Bonus presets](../back-office-guide/bonuses/bonus-presets#details)和[Temporary bonuses](../back-office-guide/bonuses/temporary-bonuses#details))。
* 在 **Bonus** > **Bonus distribution** 页面上,新增 **Expired at** 列,用于显示已发放奖金计划到期或已到期的日期和时间。此改进使您能够更轻松地监控客户账户上的奖金时间线,并鼓励客户在到期前满足奖金要求。
* 司法管辖区处理已增强。现在可以在 Back Office 的客户详细信息中手动分配或更改客户的司法管辖区。可以编辑司法管辖区的国家/地区列表,并选择将变更应用于现有客户,或仅应用于更新后注册的客户(请参阅[司法管辖区](../back-office-guide/clients/jurisdictions))。
* 对于通过 **ShuftiPro** 进行的 KYC,**Show OCR form** 现可在 **System** > **External connections** 的 ShuftiPro 连接设置中启用或禁用。此表单可让客户查看、确认或在必要时编辑从其提交文件中提取的信息。
* 现在可以从 Back Office 客户档案中的 **Contacts** 标签删除已确认的电话号码。为此,Back Office 用户必须被分配 `Update clients` 权限。删除后,该电话号码可用于注册新的客户档案。
* **Clients** > **Requests** 页面已改进,包含支持筛选选项的 **Country** 列,使您更容易按客户所在地识别请求。此外,**Processing date** 列现在会显示请求被批准或拒绝的时间,帮助您评估其处理时长。
* 在 **System** > **Visual customization** 中,作为徽标上传的图片现在只能使用 `SVG` 格式。
### 已解决问题 [#resolved-issues-8]
* 已解决通过 **WireDocument** 提供商上传入金支持文件时发生的内部服务器错误。入金请求现在可以正常进行,不会出现错误。
## 2025 年 4 月 18 日 [#april-18-2025]
### 新功能 [#new-features-11]
#### 新 PS 集成 [#new-ps-integrations-6]
在此版本中,我们集成了新的支付系统 **AlfredPay**。它支持入金,并通过 PSS 连接实现全面集成。
#### 持续将支付系统迁移至 PSS [#ongoing-migration-of-payment-systems-to-pss]
更多系统已成功迁移至 **Payment System Service (PSS)**。
您可以在[Integrations > Payment systems](../integrations/payment-systems)中查看 PSS 支持的支付系统完整列表。它们在 **PSS-supported** 列中标记为 Yes。
#### Account status [#account-status]
An account can have a status that limits what you can do with it. When a status applies, a status indicator is shown on the account, and a banner explains the restriction. Account status is managed by your administrator.
The following statuses are visible to you:
* **Halted**: A banner reads *Account is locked for trading. Contact your administrator.* The trading controls are disabled, but you can still deposit and withdraw funds, and your balances, positions, and history stay visible.
* **Frozen**: A banner reads *Account is frozen. Contact your administrator.* The account is view-only. All controls are disabled, while your balances, positions, and history stay visible.
To restore trading on an account that is Halted or Frozen, contact your administrator.
#### Favorite markets [#favorite-markets]
Mark instruments as favorites for quick access. To add or remove a market from favorites, click the **star icon** next to the market name in the instrument selection list.
Favorite markets can be accessed in two ways:
* **Favorites tab** in the instrument selection panel — filters the list to show only your favorite markets.
* **Favorites dropdown** in the topbar — provides quick access to favorite markets from anywhere in the terminal.
### Settings [#settings]
Use this control to access interface and system settings.
Refer to [Settings](settings) for details.
### Other controls [#other-controls]
* **Introduction tour**: Access the interactive platform walkthrough.
* **Alerts**: View new system notifications.
* **Analytics**: Open the **Account Analytics** view with the **Equity Curve** chart — your account balance and equity dynamics over time (Margin Balance, Equity, Total Equity, Unrealized PnL, Deposits / Withdrawals) for a selected period and granularity. The data updates hourly. Click **Back to Trading** to return to the terminal.
* **Log out**: Log out of the system to securely terminate the session. After that you’re navigated to the Login page.
## Working with widgets [#working-with-widgets]
> For more information about available widgets, refer to the **Widgets** section of this guide.
### Add widgets to your workspace [#add-widgets-to-your-workspace]
**To add a new widget**:
1. Click the **Add Widget** button.
2. Browse the available widgets.
3. Click any widget to add it to your workspace.
**To add widgets to existing panels**:
1. Look for the **+** button next to the tabs in a panel's header.
2. Click it to open the widget catalog.
3. Select a widget to add it as a new tab to that panel.
### Move and position widgets [#move-and-position-widgets]
**To move a widget**:
1. Click and hold the **move handle** in the top-right corner of the panel header.
2. Drag it to desired location on the page.
3. Drop it.
**To rearrange widget tabs within a panel**:
1. Click and hold any widget tab.
2. Drag it left or right to reorder.
3. Release to set the new position.
### Resize widgets [#resize-widgets]
**To resize a widget panel**:
* **Single edge**: Hover over any edge until you see the resize cursor, then drag.
* **Corner resize**: Drag a corner to adjust both width and height simultaneously.
* **Precision**: Use edge dragging for fine-tuned sizing.
### Remove widgets and tabs [#remove-widgets-and-tabs]
**To remove a tab**:
1. Click the **×** button in the top-right corner of the widget tab.
2. The tab will be removed immediately.
3. When you remove the last tab from a panel, the entire panel disappears.
### Link panels to a group [#link-panels-to-a-group]
Each panel header has a **Link to group** button — the circle icon **next to the move handle** in the top-right corner. Linking panels to the same colored group keeps them in sync: when you select an instrument in one linked panel, the other panels in the same group switch to it automatically.
**To link a panel to a group**:
1. Click the **Link to group** button (next to the move handle) in the panel's top-right corner.
2. Select one of the color groups (Group 1–5).
3. Repeat for other panels, choosing the same group to keep them synchronized.
### Customize widget content [#customize-widget-content]
Certain widgets let you customize which columns to display and their order: Look for the **column settings** button in the widget header.
**To customize columns**:
1. Click the **column settings** button.
2. **Show/hide columns**: Check or uncheck boxes (grayed-out columns are required).
3. **Reorder columns**: Drag and drop items in the list.
4. **Reset**: Click *Reset to default* to restore original settings.
## Managing workspaces [#managing-workspaces]
### Create new workspaces [#create-new-workspaces]
**To create a workspace**:
1. Click the **+** tab next to your existing workspaces.
2. Choose a template:
* **Pre-built templates**: Start with common widget combinations.
* **Empty**: Build completely from scratch.
3. Enter a name for your workspace.
4. Start customizing.
### Workspace management [#workspace-management]
**To rename or delete a workspace**:
1. Click the menu icon on the workspace tab.
2. Select **Rename** or **Remove**.
**To reorder workspaces**:
1. Click and hold any workspace tab.
2. Drag it left or right to reorder.
3. Release to set the new position.
## Market info panel [#market-info-panel]
Click the **info icon** next to a market symbol in widgets to view:
* Detailed market information.
* Trading session schedules.
* Leverage details (for CFD and PF markets).
* Fee details.
* Funding details (for PF markets).
## Pro tips [#pro-tips]
### Efficient layout building [#efficient-layout-building]
* Start with a template that is close to your needs, then customize.
* Group related widgets in tabs to save screen space.
* Use larger panels for charts, smaller ones for order books.
### Layout best practices [#layout-best-practices]
* **Save multiple workspaces** for different trading strategies.
* **Test your layout** during low-activity periods.
* **Keep essential widgets visible** (account info, positions, alerts).
Guest mode lets you open the Trading terminal and look around without an account. You get the real interface with live market data, so you can judge the platform and its market coverage before you sign up. Everything that would move money or show someone's balance stays behind login.
You do not switch Guest mode on. Open the terminal URL without a session and it loads in Guest mode on its own — there is no redirect to a login page first.
On your first visit a short disclaimer appears, stating that the page is for information only and that the instruments actually available for trading are determined by current legislation. Click **OK** to dismiss it; it is remembered in your browser and does not appear again. Your broker can turn the disclaimer off.
## What you can do as a guest [#what-you-can-do-as-a-guest]
* Browse the full list of instruments your broker offers, and filter, group, and search it exactly as a logged-in trader would.
* Follow live prices, the [Order book](../widgets/order-book), and [Market depth](../widgets/market-depth).
* Work with the [Price chart](../widgets/price-chart): change the instrument, change the timeframe, and use the chart tools.
* Open the [AI Assistant](../widgets/ai-assistant) widget for market analysis.
* Fill in the [Place order](../widgets/place-order) form — order type, side, quantity, price, stop loss, take profit, time in force. The fields behave the same as they do for a logged-in trader, so you can see exactly what placing an order involves.
## What needs logging in [#what-needs-logging-in]
In the [Place order](../widgets/place-order) widget the order submit button is replaced by a **Log In** button. You can fill in the whole form and see the calculated figures, but there is no way to submit an order as a guest.
Account-related widgets are not hidden either. Each is covered by an overlay with a padlock icon, the message *Log in to unlock all features*, and a **Log In** button, so you can see where your own data will appear once you have an account. The affected widgets are:
* [Assets](../widgets/assets)
* [Margin](../widgets/margin)
* [Open orders](../widgets/open-orders)
* [Open positions](../widgets/open-positions)
* [Closed positions](../widgets/closed-positions)
* [Order history](../widgets/order-history)
* [Stop orders](../widgets/stop-orders)
* [Messages](../widgets/messages)
* [Price control](../widgets/price-control)
## Your guest workspace [#your-guest-workspace]
Guest mode opens with a workspace laid out by your broker. It is the same on every visit and it is not saved: rearranging widgets as a guest does not carry over to your next visit, and it never becomes your workspace after you log in.
## Logging in from Guest mode [#logging-in-from-guest-mode]
Use **Log In** in the terminal topbar, or the **Log In** button on any account widget overlay or in the Place order widget — they all do the same thing.
After you log in, the terminal reloads into the full trading experience and opens your saved workspace. On a first login, when you have no saved workspace yet, it opens the default one.
If you are already logged in to your broker's client portal in the same browser, the terminal detects that session on load and takes you straight into the full trading experience — no second login.
## Logging out [#logging-out]
Logging out returns you to Guest mode on the same address, not to a login page, so you can keep watching the markets. Your account data is cleared from the browser first, so no balances, positions, orders, or history remain visible.
Access settings by clicking the **gear icon** in the topbar of the Trading terminal.
Settings are organized into tabs:
* [Interface](#interface): Configure language, time display, and visual theme.
* [Widgets](#widgets): Customize widget display options.
* [Action Confirmation](#action-confirmation): Choose which actions require additional confirmation.
* [Account margin](#account-margin): Manage collateral assets for margin trading.
* [Trading report](#trading-report): Generate comprehensive trading and account reports, including an official Client Account Statement.
* [API token management](#api-token-management): Generate and manage tokens for accessing the Trading API.
* [TradingView Webhooks](#tradingview-webhooks): Configure TradingView webhook alerts for automated order execution.
## Interface [#interface]
Configure global interface preferences:
**Language**
Select the interface language from the dropdown menu.
**24 hour mode**
* Enable: Display time in 24-hour format.
* Disable: Display time in 12-hour format with AM/PM.
**Dark theme**
* Enable: Apply dark color scheme.
* Disable: Apply light color scheme.
## Widgets [#widgets]
Configure display options for the following widgets.
### Price chart [#price-chart]
**Display positions**
When enabled, open positions are shown on the chart along with:
* Position size and current PnL.
* Quick access to edit price triggers and close positions.
* Color coding: Long positions (green), Short positions (red).
**Display orders and triggers**
When enabled, the following orders and triggers are displayed on the chart:
* Active Limit and Stop orders with order type, price, and amount.
* Stop loss, Take profit, and Trailing stop triggers.
* Quick access to edit triggers and cancel orders.
* Color coding: Buy orders (green), Sell orders (red).
**Display executed orders**
When enabled, executed orders are shown on the chart with order type indicators:
* Green `B` tag for Buy orders.
* Red `S` tag for Sell orders.
Clicking `B` or `S` will open details of one or more orders that were executed during the candle interval.
**Market quick trade panel**
When enabled, a panel is displayed on the chart for placing Market orders with:
* Quick amount selection from preset values.
* Leverage ratio input (when applicable).
Amount presets can be configured in the corresponding field displayed when the option is enabled.
**Limit quick trade panel**
When enabled, a panel is displayed on the chart for placing Limit orders with:
* Quick amount selection from preset values.
* Leverage ratio input (when applicable).
Amount presets can be configured in the corresponding field displayed when the option is enabled.
## Action Confirmation [#action-confirmation]
Choose which trading actions require an additional confirmation dialog before execution.
**Cancel orders**
* Enable: A confirmation dialog is displayed before canceling orders.
* Disable: Orders are canceled immediately without confirmation.
This setting applies to single and bulk order cancellations from the **Open Orders** widget and the **Price chart**.
The confirmation dialog includes a **"Don't ask again"** checkbox. To skip the confirmation for future order cancellations, check this box.
**Full Close Positions**
* Enable: A confirmation dialog is displayed before closing positions.
* Disable: Positions are closed immediately without confirmation.
This setting applies to single and bulk position closures from the **Open Positions** widget.
**Limit order cross-TOB warning**
* Enable: A confirmation dialog is displayed before a Limit order is submitted if its price crosses the current top-of-book — that is, when a Buy price is at or above the best ask, or a Sell price is at or below the best bid. The dialog shows the entered price and the current best bid/ask, and includes a **Do not show this warning again** checkbox.
* Disable: Crossing Limit orders are submitted immediately without the warning.
The warning is enabled by default. The dialog checkbox and this toggle share the same global setting and stay in sync.
The warning is informational only — it does not block the order. If you confirm, the order is submitted with the original price. The warning applies only to standard Limit orders; Stop-limit, Take-profit-limit, IOC, FOK, and other order types are not affected. If best bid or best ask data is unavailable (empty book or disconnected feed), the order is submitted without the warning.
## Account margin [#account-margin]
Control which assets can be used as collateral for margin trading.
### Asset list [#asset-list]
The following information is provided about each asset:
**Asset**
The alphabetical code of the asset.
The first asset in the list is the **root asset** of the platform.
***
**Caption**
The asset name.
***
**Available**
The balance available for trading, calculated as *Total – Halted*, where *Halted* represents funds locked for pending Limit orders.
***
**Total**
The complete asset balance including locked funds.
***
**Margin ratio**
The percentage of asset value that can be used as collateral for margin trading.
***
**Use as margin**
Enable this toggle to use the asset as collateral for margin trading.
Configure which assets can be used as collateral for margin trading by toggling the **Use as margin** setting for each asset.
Only assets with **Margin ratio** greater than 0 (zero) can be enabled.
The platform root asset is enabled by default and can't be disabled.
### Filtering options [#filtering-options]
Click the **funnel icon** to configure the asset list display:
* **Show/Hide zero balances**: Control visibility of assets with zero balance. By default, hidden.
* **Show/Hide assets unused as margin**: Control visibility of assets with disabled margin usage.
* **Show/Hide assets with zero margin ratio**: Control visibility of assets that can't be used as collateral. By default, hidden.
## Trading report [#trading-report]
Generate comprehensive reports containing:
* **Trade history**
* Closed positions
* Executed orders
* Individual trades
* **Transfers history**
* All account transfers
* **Account statistics**
* Total balance
* Realized PnL
* Position swaps
* Position funding
* Commissions
* Margin Balance, Equity, Margin Used, Free Margin, Margin Level, Unrealized PnL, and As Of — the same account summary values as the HTML statement, see [Client Account Statement](#client-account-statement)
To generate a report:
1. Select a custom period of time (UTC time), or generate a report for your entire account history using the **All data** range. The following timeframe presets have been implemented for your convenience:
* **Today**
* **Current**: week, month, quarter
* **Previous**: week, month, quarter
* **All data**.
2. Click **Download**.
Once generated, the report will be automatically downloaded to your computer as a zipped file.
### Client Account Statement [#client-account-statement]
Along with the CSV file, the downloaded archive contains an HTML **Client Account Statement**: a self-contained document you can open directly in your browser, without any additional software. Besides your trade and transfer history, the statement can include:
* Your broker's trading entity details and logo, when configured.
* The statement period, currency, and the generation date and time, in UTC.
* Your account details: legal name, account number, and account type, when available.
* A point-in-time account summary — Margin Balance, Equity, Margin Used, Free Margin, Margin Level, and Unrealized PnL — as of the end of the selected period, or the latest available snapshot while the period is still open, with the exact time printed next to the summary.
* Legal texts configured by your broker, such as a disclaimer or a confidentiality statement.
A field your broker hasn't configured is left out of the statement rather than shown blank. If the requested period ends before account summary data becomes available, the statement states that account summary data isn't available for that period, instead of showing the summary.
To save the statement as a PDF file, open the downloaded HTML file in your browser, then use your browser's Print dialog and select **Save as PDF**.
## API token management [#api-token-management]
Generate tokens for accessing the [Trading API](https://api-docs.b2trader.b2broker.com/):
* **Limit**: 10 tokens per account
* **Validity**: 1 year
* **Management**: Can be revoked or deleted at any time
To generate a token:
1. Click **+ Create new**.
2. In the **New API token** popup, fill in a **Name** for the token, to help you identify it later.
3. Click **Create**.
The newly generated token will be displayed and available for copying, along with its name and expiration date.
The widget is organized into the following sections:
* [AI Recommendation](#ai-recommendation): Overall recommendation score.
* [Forecast](#forecast): Price target and market sentiment.
* [Signal Drivers](#signal-drivers): Technical, on-chain, and sentiment signals.
* [Suggested Actions](#suggested-actions): AI-generated trading suggestions.
* [Key Metrics](#key-metrics): Market data overview.
## AI Recommendation [#ai-recommendation]
Displays a numeric score from 0 to 100 representing the overall AI assessment of the market, along with a label such as **Strong Buy**, **Buy**, **Neutral**, **Sell**, or **Strong Sell**.
A higher score indicates a more favorable outlook.
## Forecast [#forecast]
**1Y Price Target**
The forecasted price in one year and the expected percentage change from the current price.
***
**Market Sentiment**
A visual bar showing the ratio between bullish and bearish sentiment among market participants.
## Signal Drivers [#signal-drivers]
Signals that influence the AI recommendation, categorized into three types:
* **Technical**: Signals based on technical analysis indicators such as RSI and Moving Averages.
* **On-Chain**: Signals based on blockchain data such as ETF inflows, active addresses, and total value locked (TVL).
* **Sentiment**: Signals based on community and analyst opinions.
Each signal includes a description and an impact assessment: **Bullish**, **Bearish**, or **Neutral**.
## Suggested Actions [#suggested-actions]
A list of AI-generated trading suggestions based on the current market conditions. These are informational recommendations, not automated trading signals.
## Key Metrics [#key-metrics]
The following market data is displayed:
**All-Time High**
The highest price ever recorded for the asset (in USD) and the percentage difference from the current price.
***
**All-Time Low**
The lowest price ever recorded for the asset (in USD) and the percentage difference from the current price.
***
**24h Volume**
The total trading volume over the last 24 hours in USD.
***
**Market Cap**
The total market capitalization of the asset in USD.
## In Guest mode [#in-guest-mode]
The widget works in Guest mode too, with the same sections, so you can read the analysis for any instrument your broker offers before you have an account.
## Fields [#fields]
The following information is provided about each market:
**Market**
The market type (Spot, CFD, or Perpetual), market ticker and full name of the market.
***
**Current price**
The current market price, in the quote asset and in the platform root asset.
This value is green if the price is rising and red if it's falling.
***
**24h change**
The price change over the last 24 hours, in absolute and percentage values.
This value is calculated as *Current price* – *Price 24h ago*.
This value is green if the price is rising and red if it's falling.
A dash in this field means that there is no *Price 24h ago* data available.
## Summary [#summary]
This widget displays the list of all asset balances on your account.
## Settings [#settings]
### Hide zero balances [#hide-zero-balances]
Use this option to hide all assets with zero balances from the list.
It's enabled by default.
### Configure columns [#configure-columns]
Click the **Configure columns** button in the widget header to adjust the displayed information:
* **Mark or unmark column checkboxes**: To display or hide them; the column checkboxes highlighted in grey can’t be unmarked.
* **Drag and drop the columns**: To adjust their order in the table.
## Fields [#fields]
The following information is provided about each asset:
**Asset**
The alphabetical code of the asset.
The first asset in the list is the **root asset** of the platform.
***
**Caption**
The asset name.
***
**Available**
The balance at your disposal, meaning the difference between your total assets and a sum of all limit orders placed by this time.
This value is calculated as *Total – Halted*, where *Halted* is the asset amount frozen on the account for execution of placed Limit orders.
***
**Available, \{RAT}**
The available balance, in conversion to the platform root asset.
***
**Total**
The overall amount of the asset available in your wallet, including locked funds.
***
**Total, \{RAT}**
The total balance, in conversion to the platform root asset.
## Summary [#summary]
This widget displays a list of your closed positions on the selected account.
The entire history of your closed positions is available.
## Fields [#fields]
All values are in displayed in conversion to the platform root asset:
**Your margin level**
The ratio of your funds to a used collateral, in percents. This value is calculated as *Equity* / *Used margin* × 100%.
Possible values:
* **Empty**: No open positions.
* **Low risk**: Everything is ok.
* **Margin call**: Your margin level fell below the set Margin call value. You received a notification urging you to increase the margin level to avoid a Stop out. Remember that if you ignore this warning, the margin level may continue to decrease. During the Margin call, you can only close existing positions; opening new positions isn’t possible.
* **Stop out level**: Your margin level fell below the set Stop out value; the platform started a process of liquidating your positions. This process continues until the margin level exceeds this required value. **ANY** currently open position can be closed regardless of its side and volume.
***
**Margin balance**
The total amount of your funds that can be used as a collateral for CFD trading.
It’s calculated as Σ(*TotalAmountX* × *MarginRatioX* × *Rate X/RAT*), where:
* *TotalAmountX* is the the total amount of the asset X, including both available and locked funds.
* *MarginRatioX* is the Margin ratio set for the asset X.
* *Rate X/RAT* is the constantly updated rate of the asset X to the platform root asset.
The Margin balance is continually recalculated based on price fluctuations.
An increase in the prices of assets boosts available Balance & Free margin.
Conversely, a decrease in asset prices may reduce the available Balance and Free margin.
Additionally, a decline in the prices of assets with open positions may trigger Margin calls and Stop outs.
***
**Credit**
A promotional bonus granted by your broker for margin (CFD and Perpetual) trading, shown in the platform root asset (RAT). When you have no credit, this row shows 0.
Credit increases your Equity and Free margin and can be used as collateral to open positions. It becomes available immediately when granted and never expires. However, credit cannot be withdrawn as cash, so it is excluded from your withdrawable balance. Your broker can revoke credit at any time, and the row updates in real time when this happens.
The row includes an info tooltip that reads: *Promotional credit for margin trading only. Cannot be withdrawn.*
***
**Equity**
The potential balance of your account if all your positions were closed right now.
This value is calculated as *Margin balance* + *Credit* + *Unrealized PnL*.
***
**Used margin**
The amount of funds that is used for maintaining all your open positions.
Is opposed to the *Free margin*.
The Used margin for positions on a specific market is calculated using the maximum value between the total margin of long positions and the total margin of short positions: MAX(*MarketPositionLong*, *MarketPositionShort*).
**Example**
**Step 1: Initial balance**
* Margin balance: $10,000
* Opened positions: 0
* Free margin: $10,000
* Used margin: $0
**Step 2: Open a long position (Leverage 1:100)**
* Market: CFD EUR/USD
* Position size: 1 lot (100,000 units)
* Current price: $1.001
* Required margin: $(100,000 × 1.001) / 100 = $1,001
* After opening:
* Free margin: $8,999
* Used margin: $1,001
**Step 3: Open a long position (Leverage 1:20)**
* Market: CFD EUR/USD
* Position size: 1 lot (100,000 units)
* Current price: $1.001
* Required margin: $(100,000 × 1.001) / 20 = $5,005
* After opening:
* Free margin: $3,994
* Used margin: $6,006
**Step 4: Open a short position (Leverage 1:100)**
* Market: CFD EUR/USD
* Position size: 9 lots (900,000 units)
* Current price: $1
* Required margin: $(900,000 × 1.001) / 100 = $9,009.
The system verifies that upon opening this position, the MarketUsedMargin remains valid by satisfying the condition: **MarketUsedMargin** = MAX(*MarketPositionLong*, *MarketPositionShort*) = MAX(6,006, 9,009) = 9,009.
Since the condition is met, the position opens.
* After opening:
* Free margin: $991
* Used margin: $9,009
As a result, you can open multiple opposite positions without significantly increasing the Used margin.
Furthermore, closing positions never increases the Used margin.
***
**Free margin**
The amount of funds that can be used for opening new positions.
***
**Unrealized PnL**
The total potential profit or loss earned from all open positions.
This value is calculated as *Σ(Unrealized PnL for Long positions + Unrealized PnL for Short positions)*, where:
* *Unrealized PnL for Long positions* = *Position size* × (*Current price* – *Open price*)
* *Unrealized PnL for Short positions* = *Position size* × (*Open price* – *Current price*)
## Summary [#summary]
Use this widget to assess the current market depth indicating the actual liquidity of an asset, which is evaluated based on the number of currently open orders to buy and sell it as well asset prices and volumes at various price levels.
The widget is dynamic and is continuously updated in real time.
The widget displays a chart indicating the overall volume of buy (green) and sell (red) orders at various price levels awaiting execution at the moment.
You can hover the mouse pointer over the chart to learn the exact price and volume of an asset traded at a specific price level.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
## Summary [#summary]
Use this widget to monitor statistics on a specific instrument.
The widget is dynamic and is continuously updated in real time.
## Settings [#settings]
### Mark as read [#mark-as-read]
Unread alerts are marked with a red dot in the list:
* Click the dot to mark the notification as read.
* Click **Mark all as read** to mark all new notifications as read at once.
* Click the **three dots** icon in the upper right corner of the widget to access the **Hide read notifications option**.
The widget is dynamic and is continuously updated in real time.
It provides three different sections displaying the following information:
* Open sell orders are highlighted in red and listed in the top section. The best ask, which is the sell order with the lowest price, is displayed at the bottom of this list.
* Open buy orders are highlighted in green and listed in the bottom section. The best bid, which is the buy order with the highest price, is displayed at the top of this list.
* The middle section displays the current bid-ask spread indicating the gap between the best ask and bid prices declared for an asset.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Display only asks/bids [#display-only-asksbids]
In the upper part of the widget, you can choose how to display the Order book:
* Full view.
* Buy orders only + spread.
* Sell orders only + spread.
## Fields [#fields]
Each row of the Order book provides the following information about a selected market:
**Price, \{QUOTE}**
The price, in the quote asset.
***
**Amount, \{BASE}**
The total amount of the base asset available at a corresponding price level.
***
**Total**
The total amount, in the quote asset, required to fully execute the orders at a corresponding price level.
The widget has two states:
### The PRO toggle is disabled [#the-pro-toggle-is-disabled]
In this state, you can quickly place **IOC Market** and **GTC Limit** orders by selecting the order side (Buy/Sell) and type (Market/Limit), and specifying the order size (in lots) and price (for Limit orders).
You can also place orders on CFD markets with the maximum leverage automatically applied.
### The PRO toggle is enabled [#the-pro-toggle-is-enabled]
In this state, you get access to more precise order settings, such as:
* **Stop orders**
* **Time in force**
* **Leverage**
* **Take profit, Stop loss, Trailing stop**
* **Comment**
* **Complete order information**
The **Comment** field allows you to attach a text note to the order (up to 100 characters). The comment is inherited by the resulting position and can't be edited after the order is placed.
## Settings [#settings]
### Select a market [#select-a-market]
The market on which the order will be placed is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Place an order [#place-an-order]
To place an order, fill in the parameters, review order details and preliminary calculated values, and then confirm the order by clicking the **Place** button.
The horizontal axis (X-axis) represents the time scale, and the vertical axis (Y-axis) indicates the price level.
## Settings [#settings]
### Select a market [#select-a-market]
The current market is displayed in the widget header.
To change the market, click the market symbol and select a different one from the list.
### Customization [#customization]
Multiple customization options are provided, allowing you to configure the chart according to your preferences.
You can switch between bar, candle, Heikin Ashi, line, area and baseline views, as well as specify the time period for which data should be displayed.
The chart supports numerous financial indicators, such as moving averages and regressions, and can feature a variety of custom shapes, including arrows and lines, pitchforks, and various ranges, allowing you to perform an in-depth market analysis.
### Display options [#display-options]
The widget supports displaying of open positions, price triggers, open and executed orders.
Click the **gear icon** in the topbar and access [Price chart settings](../get-started/settings#price-chart) to enable desired options.
## Placing orders [#placing-orders]
### Enable placing orders [#enable-placing-orders]
To enable placing orders directly from the Price chart, you need to activate the corresponding settings:
1. Click the **gear icon** in the topbar and access [Price chart settings](../get-started/settings#price-chart).
2. Activate the **Market quick trade panel** or **Limit quick trade panel** toggle, or both.
3. If needed, adjust the amount presets. These amounts will be available for quick selection when placing an order.
### Market quick trade panel [#market-quick-trade-panel]
If the corresponding setting is activated, the draggable **Market quick trade panel** is constantly displayed on the Price chart.
### Limit quick trade panel [#limit-quick-trade-panel]
If the corresponding setting is activated, the **+** will appear when hovering over price levels on the chart.
Clicking it will open the **Limit quick trade panel**:
* in the upper half of the chart — to sell;
* in the lower half of the chart — to buy.
### Place a new order [#place-a-new-order]
To place a new Market or Limit order from the Price chart, when a corresponding panel is displayed:
1. Select the **amount** from configured presets.
2. Select a **leverage** ratio, if trading on CFD or PF markets.
3. Click **Buy** or **Sell**.
The order will be placed according to the selected type.
## Summary [#summary]
Use this widget to configure alerts that will be delivered to the [Messages](messages) widget when an instrument price reaches the specified level.
## Settings [#settings]
### Configure a new alert [#configure-a-new-alert]
To configure a new alert:
1. Click the **Add market** button to select a required market from the list.
2. Click the **+** icon below the instrument name to add a new alert trigger.
3. In the displayed fields, specify the exact price or the price change in percents (positive or negative). The other value will be calculated automatically.
4. Click the **check mark icon** to add the trigger.
Now you will receive a notification in the [Messages](messages) widget, once the instrument price hits the specified level.
You can configure multiple triggers for each instrument.
### Edit alerts [#edit-alerts]
Click the price to edit the existing alert.
### Remove alerts [#remove-alerts]
Click the **×** button on the trigger panel to remove it and stop receiving corresponding notifications.
Click the **×** button in the instrument row to remove it from the list and stop monitoring.
## Summary [#summary]
This widget displays a list of untriggered Stop orders created on the selected account.
Once a market price reaches your predetermined Stop price, the Stop order is activated and submitted as either a Market or Limit order.
It's then removed from this widget.
You can now find it in either the [Open orders](open-orders) or [Order history](order-history) widget, depending on its current status.
## Stop orders outside trading hours [#stop-orders-outside-trading-hours]
You can place Stop Market and Stop Limit orders while a market is closed according to its trading calendar, so you can prepare an entry or a protective level before the session opens. This applies to every channel: the Trading terminal, the REST API, the FIX API, and TradingView.
An order placed this way behaves as follows:
* It is accepted right away and appears in this widget with the standard **Waiting for activation** status. No new status was introduced for orders placed outside trading hours.
* It is validated at placement against the price and amount scales and the market minimum amount. The stop price is also checked against the best bid and ask whenever a price is available — while the market is closed there may be no live price to check it against.
* No balance or margin is reserved at placement. The margin check happens when the order triggers.
* It stays Waiting for activation across sessions until it triggers, you cancel it, or it expires under its [Time in force](../knowledge-base/time-in-force). A Stop order placed on Friday evening is still there on Monday, and an unexpected holiday does not cancel it.
* You can view and cancel it while the market is still closed.
When the session opens, the order is evaluated against the first available price. If the market gapped past your stop price while it was closed, the order triggers at the open. For an order placed while no price was available, the first incoming price is used to finalise the order's internal pricing before it can trigger, so activation can take one extra price update. If the margin check fails when the order triggers, the order is cancelled and you receive the failure reason — it is never dropped silently.
## Settings [#settings]
### Add/remove instruments [#addremove-instruments]
Click the **Add market** button to select a required market from the list.
Click the **×** button in the instrument row to remove it from the list and stop monitoring.
### Configure columns [#configure-columns]
Click the **Configure columns** button in the widget header to adjust the displayed information:
* **Mark or unmark column checkboxes**: To display or hide them; the column checkboxes highlighted in grey can’t be unmarked.
* **Drag and drop the columns**: To adjust their order in the table.
## Fields [#fields]
The following information is provided about each instrument:
**Market**
The market type (Spot, CFD, or Perpetual) and market ticker.
***
**Full name**
The market full name or description.
***
**Last price**
The price of the last trade.
***
**24h change, %**
The price change over the last 24 hours, in percents.
This value is calculated as ((*Current price* – *Price 24h ago*) / *Current price*) × 100.
This value is green if the price is rising and red if it's falling.
A dash in this field means that there is no *Price 24h ago* data available.
***
**24h low**
The lowest trade price over the last 24 hours.
***
**24h high**
The highest trade price over the last 24 hours.
欢迎使用 **B2TRANSLATE**,这是一款与 B2BROKER 产品集成的综合在线本地化工具。
该工具可帮助您高效地将产品的 Web 用户界面(WebUI)翻译成多种语言,确保您的应用程序能够面向全球用户。
B2TRANSLATE 采用清晰的层级结构来组织翻译,让复杂本地化项目的管理变得直观易懂:
1. **项目类型**:您的 B2BROKER 产品。
2. **项目**:每个产品中的独立 WebUI,例如测试和生产网站。
3. **键和翻译**:特定的 UI 元素及其本地化文本。
让我们更详细地了解各个组成部分。
## 项目类型 [#project-types]
**项目类型** 直接对应于您购买的 B2BROKER 产品。
它们会自动添加到您的 B2TRANSLATE 中。
如果您拥有多个产品,为方便起见,您可以在单个页面上访问所有产品。
每个产品可以拥有一个或多个 WebUI,例如当您有多个实例时。
在这种情况下,项目类型包含代表这些 WebUI 的不同 **项目**。
## 打开账户设置 [#open-your-account-settings]
要打开账户设置,请点击侧边栏中的**账户**(齿轮图标)。随即会打开包含两个选项卡的**设置**页面:
* **个人 API 令牌** — 创建和撤销用于以编程方式访问 API 的令牌。
* **更改密码** — 更新您用于登录的密码。
这些设置仅适用于您自己的账户。
## 更改密码 [#change-your-password]
## 管理个人 API 令牌 [#manage-personal-api-tokens]
个人 API 令牌是一种用于以编程方式访问 B2TRANSLATE API 的身份验证方法,适用于集成和自动化工作流。令牌会代表您执行操作,因此您无需共享登录凭据。
### 创建令牌 [#create-a-token]
### 撤销令牌 [#revoke-a-token]
要撤销不再需要的令牌,请在**个人 API 令牌**选项卡的列表中找到它,然后点击**删除**。使用该令牌的任何集成都会立即停止工作。
## 查看通知 [#view-your-notifications]
B2TRANSLATE 会通过侧边栏底部的通知铃铛,向您告知后台事件 — 例如已完成的 AI 翻译、已准备好的导出或已完成的导入。
* 铃铛上的红色徽章显示未读通知的数量。
* 要查看最近的通知,请点击铃铛。
* 将通知标记为已读即可清除它,或者点击**全部标记为已读**以一次性清除所有通知。
* 当通知数量超过五条时,请点击**所有通知**以打开完整历史记录。
## 更改界面语言 [#change-the-interface-language]
B2TRANSLATE 提供多种语言。要更改界面语言,请点击侧边栏左下角的语言选择器(地球图标),然后从列表中选择一种语言。您的选择会保存,并在下次登录时继续生效。
## 退出登录 [#sign-out]
要退出登录,请点击侧边栏底部的退出图标。B2TRANSLATE 会结束您的会话并返回**登录**页面。
购买的产品设置完成后,您将收到用于登录 B2TRANSLATE 的凭据。
要访问您的 B2TRANSLATE 账户,请前往 **登录** 页面,输入您的电子邮件地址和密码,然后点击 **登录**。
如果您忘记了密码,请点击 **忘记密码?** 链接并按照说明操作。
**双重身份验证 (2FA)**
出于安全考虑,所有 B2TRANSLATE 账户都必须使用身份验证器应用生成的代码进行 2FA 验证。
* 如果您的 B2TRANSLATE 账户已启用 2FA,请输入来自应用的 2FA 代码以完成登录流程,例如 **Google Authenticator** 或 **Twilio Authy**。
* 如果您的账户尚未启用 2FA,系统将在登录期间提示您进行设置。请按照屏幕上的说明在手机上安装身份验证器应用,并将其设置为生成用于 B2TRANSLATE 的 2FA 代码。
要筛选键,请在 **Translations** 页面中点击页面右上角的 **Filters** 按钮。
您可以按以下参数筛选键:
**筛选方式**
选择以下选项之一:
* **空键**:筛选已保存空翻译的键。对于此类键,WebUI 中会显示空字符串。
* **无翻译**:筛选没有自定义翻译的键。对于此类键,WebUI 中会显示默认翻译。
* **过去 2 周内的新键**:筛选在过去 2 周内添加的键。
* **过去 4 周内的新键**:筛选在过去 4 周内添加的键。
***
**创建时间范围**
选择一个日期范围,以筛选在该时间段内添加的键。
***
**更新时间范围**
选择一个日期范围,以筛选在该时间段内修改的键。
***
**类别**
选择一个类别,以筛选其中包含的键。
***
**键**
输入键标识符或关键词,以筛选标识符匹配的键。
***
**源文本**
输入翻译文本或关键词,以筛选默认英文翻译匹配的键。
***
**自定义翻译**
输入翻译文本或关键词,以筛选自定义翻译匹配的键。
***
点击 **Apply** 以筛选键。
要重置筛选条件,请点击 **Clear all**。
在此页面上,您可以查看项目可用的语言列表。
查看每种语言的以下信息:
**语言**
语言的名称。
***
**代码**
根据 ISO 639-1 标准的语言双字母代码。
***
**项目**
已添加并使用该语言的项目数量。
## 项目列表 [#project-list]
在此页面上,您可以查看项目列表。
项目按项目类型分组,并以标签页形式显示在项目列表上方。
以下是每个项目提供的信息:
**名称**
项目名称。
点击名称可导航至项目类别列表。
***
**语言**
项目中可用的语言数量。
***
**所有密钥**
项目中的密钥总数,包括已翻译和未翻译的密钥。
***
**UUID**
项目的系统标识符,采用 UUID 格式。
***
**操作**
点击项目行中的**三个点**,即可访问[下载和上传翻译](manage-translations/download-and-upload-translations)功能。
## 翻译 [#translations]
要打开项目的翻译视图,请在项目列表中点击其名称。
### 可用控件 [#available-controls]
在表格上方,您可以找到:
* **环境**下拉菜单:对于 *Customer* 角色,仅可使用 `production`。
* **语言**下拉菜单:使用它可在您的项目可用语言之间快速切换。
* **快速搜索**字段:点击**放大镜图标**,可按标识符或翻译内容搜索密钥。
* **筛选器**按钮:点击它可打开筛选面板。有关详细信息,请参阅[筛选密钥](filter-keys)。
***
**翻译**
* **源语言**:预定义的英文翻译。此列为只读,可帮助您理解密钥的含义和上下文。
* **B2TRANSLATE**:预定义的所选语言翻译(若其不同于英语)。此列为只读。
* **自定义翻译**:所选语言的自定义翻译。此字段最初为空,且可随时编辑。对于包含复数形式的密钥,此值会显示[Other 形式](manage-translations/handle-plural-forms#the-other-form)。
每一列都会显示带有相应语言代码的徽章。
请参阅[WebUI 中的显示逻辑](../get-started/introduction-to-b2translate#display-logic-in-webui),以了解翻译优先级。
有关管理翻译的分步说明,请参阅本指南中的[管理翻译](manage-translations)部分。
***
**操作**
* **使用 AI 翻译**:使用 ChatGPT 将源英文翻译为所选语言。有关详细信息,请参阅[使用 AI 翻译](manage-translations/translate-with-ai)。
* **重置为源翻译**:将自定义翻译恢复为预定义翻译——恢复为所选语言(如果提供了该语言的默认翻译)或英语。
* **保存为空**:明确将此密钥的翻译设置为空。
* **显示历史记录**:查看翻译的更改历史记录。
***
**详细信息**
点击**三个点**以打开详细信息:
* **信息**标签:适用于所有密钥,包含有关自定义翻译何时添加及最后修改时间的信息。
* **复数形式**标签:适用于包含复数形式的密钥。请参阅[处理复数形式](manage-translations/handle-plural-forms),了解如何根据所选语言的语法要求正确配置依赖数量的内容。
(**查看**)。
如果与向客户交易账户发放或扣除特定奖金相关的任何交易失败,相应的奖金行将被高亮显示,且 **感叹号** 图标将出现在 **查看** 按钮旁边。您可以在奖金详情的[奖金交易选项卡](#bonus-transactions)中查看奖金交易历史记录。
***
**过期时间**
已发放奖金计划过期或已过期的日期和时间。
## 详情 [#details]
详情页面分为两个选项卡:
* [奖金详情](#bonus-details)
* [奖金交易](#bonus-transactions)
### 奖金详情 [#bonus-details]
在详情选项卡中,您可以查看奖金设置以及客户必须满足的要求,以便在其账户余额中获得奖金信用额。
此外,您还可以重新激活状态为 `Expired` 的奖金,并撤销状态为 `Pending` 的奖金。为此,请点击页面右上角的 **Actions** 按钮,并在下拉菜单中选择相应选项。
选项卡中提供以下信息:
**创建时间**
向客户交易账户发放奖金的日期和时间。
***
**金额**
奖金金额。
***
**状态**
奖金状态。
***
**已完成交易量**
计入客户必须完成的所需交易量中的已平仓头寸交易量,以便客户在其账户余额中获得奖金信用额。
***
**临时奖金**\
*仅适用于临时奖金*
领取奖金时所使用的临时奖金计划名称。
***
**激活时间**
将奖金金额作为信用额添加至客户交易账户的日期和时间。
***
**客户**
客户的电子邮件地址。
***
**账户**
获得奖金发放的交易账户号码。
***
**虚拟交易量**
此字段用于重新激活已过期的奖金。
***
**标题**
在 B2CORE UI 中向客户显示的奖金名称。
如果此字段为空:
* 对于临时奖金,将在 B2CORE UI 中向客户显示领取奖金时所使用的临时奖金计划名称。
* 对于手动发放的奖金,将在 B2CORE UI 中向客户显示与获得奖金的账户关联的平台名称。
***
**有效期(天)**
完成奖金要求的天数。将奖金金额作为信用额添加至客户交易账户后,客户必须在指定天数内完成所需交易量,才能在账户余额中获得奖金信用额。
***
**每单位手数**
应用于奖金金额的比率,用于确定客户必须完成的交易量,以便在其账户余额中获得奖金信用额:
`Required volume = Bonus amount / Lot per unit`
假设奖金金额为 100 USD,且 **Lot per unit** 选项设置为 2。若要在账户余额中获得 100 USD 的奖金信用额,客户必须完成以下交易量:
`100 / 2 = 50 lots`。
***
**立即设置信用额**
* 如果**已启用**,当客户使用同一交易账户同时从多个计划领取奖金时,所有已领取的奖金将立即作为信用额添加至其账户,使客户能够使用信用资金进行交易。
* 如果**已禁用**,当客户使用同一交易账户同时从多个计划领取奖金时,已领取的奖金将依次添加至其账户。只有在第一笔已领取的奖金处理完成并获得最终状态(`Completed` 或 `Expired`)后,第二笔已领取的奖金才会作为信用额添加至客户交易账户,依此类推。
***
**忽略开仓/平仓间隔(秒)**
客户必须保持头寸开仓的最短时长(以秒为单位),该头寸才能计入奖金计划的已交易量。
***
**当余额 > 0 时自动启用交易**
当账户余额从零或负数变为正数时,是否自动恢复该账户名为 `Trade Enabled` 的权限取决于此设置:
* 如果**已启用**,当账户余额变为正数时,将自动恢复 `Trade Enabled` 权限,使客户能够恢复在其账户上交易,包括使用奖金信用额。
* 如果**已禁用**,当账户余额变为正数时,不会自动恢复 `Trade Enabled` 权限。
***
**忽略的品种组**
一个或多个品种组,在这些品种组中的交易不会计入奖金计划的已交易量。
对于 cTrader,必须在此字段中选择单个品种而非品种组,即使 cTrader 平台中提供品种组也是如此。
此字段为可选字段,可以留空。
### 奖金交易 [#bonus-transactions]
在交易选项卡中,您可以查看与向客户交易账户发放或扣除特定奖金相关的交易历史记录、检查其状态,并在必要时重试失败的交易。
对于状态为 `Error` 的失败交易,将显示
(**重试**)。点击该按钮可尝试再次处理交易。
(**刷新**)。
选项卡中提供以下信息:
**操作 ID**
分配给奖金交易的标识符。
***
**订单 ID**
与奖金交易关联的订单标识符(如适用)。
***
**金额**
奖金金额。
***
**状态**
交易状态:
* `New` — 交易已发起。
* `In progress` — 正在处理交易。
`New` 和 `In progress` 状态为中间状态,仅会短暂显示。
* `Success` — 交易已成功执行。
* `Error` — 交易因某个问题而失败。
***
**尝试次数**
执行交易的尝试次数。
***
**最后尝试日期**
最近一次尝试处理交易的日期和时间。
***
**备注**
用于标识交易的说明:
* **Credit accrued** — 奖金金额作为信用额添加至客户的交易账户。
* **Credit cleared** — 在满足奖金要求后,从账户中扣除已发放的奖金。这发生在将奖金金额添加至账户余额之前。
* **Balance accrued** — 在满足奖金要求后,将已发放的奖金添加至账户余额。
* **Credit expired** — 已发放的奖金已过期,并从账户中扣除。
* **Bonus cancelled** — 从账户提取资金时,将撤销已发放的奖金。
***
**错误消息**
对于状态为 `Error` 的交易,此字段显示有关错误的详细信息。
***
**创建日期**
发起交易的日期和时间。
| BCH | bch |
|
| BTC | btc |
|
| DASH | dash |
|
| DOGE | doge |
|
| ETH | eth-etherium |
|
| ETH-ARB | eth-arb |
|
| ETH-BASE | eth-base |
|
| LTC | ltc |
|
| TRX | trx |
|
| XLM | xlm-stellar |
|
| XMR | xmr |
|
| XRP | xrp |
|
| ZEC | zec |
## 稳定币 [#stablecoins]
| 图标 | 方式 | 图标名称 |
| --------------------------------------------------- | ------------- | ------------- |
|
| BUSD-BSC | busd-bsc |
|
| BUSD-T-BSC | busd-t-bsc |
|
| BUSD-ETH | busd-eth |
|
| DAI-BSC | dai-bsc |
|
| DAI-ETH | dai-eth |
|
| USDC-ARB | usdc-arb |
|
| USDC-AVAX | usdc-avax |
|
| USDC-BSC | usdc-bsc |
|
| USDC-ETH | usdc-eth |
|
| USDC-SOL | usdc-sol |
|
| USDC-TRX | usdc-trx |
|
| USDP-BSC | usdp-bsc |
|
| USDP-ETH | usdp-eth |
|
| USDT-ARB | usdp-arb |
|
| USDT-AVAX | usdt-avax |
|
| USDT-BNB | usdt-bnb |
|
| USDT-BSC | usdt-bsc |
|
| USDT-ETH | usdt-eth |
|
| USDT-OMNI | usdt-omni |
|
| USDT-Optimism | usdt-optimism |
|
| USDT-SOL | usdt-sol |
|
| USDT-TON | usdt-ton |
|
| USDT-TRX | usdt-trx |
|
| UST-BSC | ust-bsc |
|
| UST-ETH | ust-eth |
|
| TUSD-ETH | tusd-eth |
## 代币 [#tokens]
| 图标 | 方式 | 图标名称 |
| ------------------------------------------------ | ---------- | ---------- |
|
| 1INCH-BSC | 1inch-bsc |
|
| 1INCH-ETH | 1inch-eth |
|
| AAVE-ETH | aave-eth |
|
| AKRO-ETH | akro-eth |
|
| ALPHA-ETH | alpha-eth |
|
| ALPHA-BSC | alpha-bsc |
|
| AMP-ETH | amp-eth |
|
| AUDIO-ETH | audio-eth |
|
| AXS-ETH | axs-eth |
|
| BADGER-ETH | badger-eth |
|
| BAL-ETH | bal-eth |
|
| BAND-BSC | band-bsc |
|
| BAND-ETH | band-eth |
|
| BAT-BSC | bat-bsc |
|
| BAT-ETH | bat-eth |
|
| BZRX-ETH | bzrx-eth |
|
| CAKE-BSC | cake-bsc |
|
| CEL-ETH | cel-eth |
|
| CHR-ETH | chr-eth |
|
| CHZ-ETH | chz-eth |
|
| COMP-ETH | comp-eth |
|
| CRV-ETH | crv-eth |
|
| ENJ-ETH | enj-eth |
|
| FET-ETH | fet-eth |
|
| FTM-BSC | ftm-bsc |
|
| FTM-ETH | ftm-eth |
|
| FTT-ETH | ftt-eth |
|
| GRT-ETH | grt-eth |
|
| HOT-ETH | hot-eth |
|
| LEO-ETH | leo-eth |
|
| LINK-BSC | link-bsc |
|
| LINK-ETH | link-eth |
|
| LRC-ETH | lrc-eth |
|
| MANA-ETH | mana-eth |
|
| MATIC-ETH | matic-eth |
|
| MKR-BSC | mkr-bsc |
|
| MKR-ETH | mkr-eth |
|
| NU-ETH | nu-eth |
|
| OCEAN-ETH | ocean-eth |
|
| OMG-ETH | omg-eth |
|
| QNT-ETH | qnt-eth |
|
| RARI-ETH | rari-eth |
|
| REEF-BSC | reef-bsc |
|
| REEF-ETH | reef-eth |
|
| REN-ETH | ren-eth |
|
| REV-ETH | rev-eth |
|
| RSR-ETH | rsr-eth |
|
| SAND-ETH | sand-eth |
|
| SHIB-ETH | shib-eth |
|
| SNX-BSC | snx-bsc |
|
| SNX-ETH | snx-eth |
|
| SRM-ETH | srm-eth |
|
| SUSHI-BSC | sushi-bsc |
|
| SUSHI-ETH | sushi-eth |
|
| SXP-BSC | sxp-bsc |
|
| SXP-ETH | sxp-eth |
|
| TEL-ETH | tel-eth |
|
| UNI-BSC | uni-bsc |
|
| UNI-ETH | uni-eth |
|
| YFI-BSC | yfi-bsc |
|
| YFI-ETH | yfi-eth |
|
| ZRX-ETH | zrx-eth |
下表列出了 B2CORE 支持的加密货币和法定货币。每种货币均标明了 ISO 代码、Alpha 代码、小数精度和图标(如有)。这些图标用于在 B2CORE UI 中以图形方式展示货币。
## 法定货币 [#fiat]
| 图标 | ISO 代码 | Alpha 代码 | 精度 | 名称 |
| ----------------------------------------------------------- | ------ | ---------------- | -- | ---------------------------- |
|
| 8 | ALL | 2 | 阿尔巴尼亚列克 |
|
| 12 | DZD | 2 | 阿尔及利亚第纳尔 |
|
| 32 | ARS | 2 | 阿根廷比索 |
|
| 36 | AUD | 2 | 澳大利亚元 |
|
| 44 | BSD | 2 | 巴哈马元 |
|
| 48 | BHD | 3 | 巴林第纳尔 |
|
| 50 | BDT | 2 | 孟加拉塔卡 |
|
| 51 | AMD | 2 | 亚美尼亚德拉姆 |
|
| 52 | BBD | 2 | 巴巴多斯元 |
|
| 60 | BMD | 2 | 百慕大元 |
|
| 64 | BTN | 2 | 不丹努尔特鲁姆 |
|
| 68 | BOB | 2 | 玻利维亚诺 |
|
| 72 | BWP | 2 | 博茨瓦纳普拉 |
|
| 84 | BZD | 2 | 伯利兹元 |
|
| 90 | SBD | 2 | 所罗门群岛元 |
|
| 96 | BND | 2 | 文莱元 |
|
| 104 | MMK | 2 | 缅甸元 |
|
| 108 | BIF | 0 | 布隆迪法郎 |
|
| 116 | KHR | 2 | 柬埔寨瑞尔 |
|
| 124 | CAD | 2 | 加拿大元 |
|
| 132 | CVE | 0 | 佛得角埃斯库多 |
|
| 136 | KYD | 2 | 开曼群岛元 |
|
| 144 | LKR | 2 | 斯里兰卡卢比 |
|
| 152 | CLP | 0 | 智利比索 |
|
| 156 | CNY (alias: CNH) | 2 | 人民币元 |
|
| 170 | COP | 2 | 哥伦比亚比索 |
|
| 174 | KMF | 0 | 科摩罗法郎 |
|
| 188 | CRC | 2 | 哥斯达黎加科朗 |
|
| 191 | HRK | 2 | 克罗地亚库纳 |
|
| 192 | CUP | 2 | 古巴比索 |
|
| 203 | CZK | 2 | 捷克克朗 |
|
| 208 | DKK | 2 | 丹麦克朗 |
|
| 214 | DOP | 2 | 多米尼加比索 |
|
| 222 | SVC | 2 | 萨尔瓦多科朗 |
|
| 230 | ETB | 2 | 埃塞俄比亚比尔 |
|
| 232 | ERN | 2 | 厄立特里亚纳克法 |
|
| 238 | FKP | 2 | 福克兰群岛镑 |
|
| 242 | FJD | 2 | 斐济元 |
|
| 262 | DJF | 0 | 吉布提法郎 |
|
| 270 | GMD | 2 | 冈比亚达拉西 |
|
| 292 | GIP | 2 | 直布罗陀镑 |
|
| 320 | GTQ | 2 | 危地马拉格查尔 |
|
| 324 | GNF | 0 | 几内亚法郎 |
|
| 328 | GYD | 2 | 圭亚那元 |
|
| 332 | HTG | 2 | 海地古德 |
|
| 340 | HNL | 2 | 洪都拉斯伦皮拉 |
|
| 344 | HKD | 2 | 港元 |
|
| 348 | HUF | 2 | 匈牙利福林 |
|
| 352 | ISK | 0 | 冰岛克朗 |
|
| 356 | INR | 2 | 印度卢比 |
|
| 360 | IDR | 2 | 印度尼西亚盾 |
|
| 364 | IRR | 2 | 伊朗里亚尔 |
|
| 365 | IRT | 2 | 伊朗土曼 |
|
| 368 | IQD | 3 | 伊拉克第纳尔 |
|
| 376 | ILS | 2 | 以色列新谢克尔 |
|
| 388 | JMD | 2 | 牙买加元 |
|
| 392 | JPY | 0 | 日元 |
|
| 398 | KZT | 2 | 哈萨克斯坦坚戈 |
|
| 400 | JOD | 3 | 约旦第纳尔 |
|
| 404 | KES | 2 | 肯尼亚先令 |
|
| 408 | KPW | 2 | 朝鲜元 |
|
| 410 | KRW | 0 | 韩元 |
|
| 414 | KWD | 3 | 科威特第纳尔 |
|
| 417 | KGS | 2 | 吉尔吉斯斯坦索姆 |
|
| 418 | LAK | 2 | 老挝基普 |
|
| 422 | LBP | 2 | 黎巴嫩镑 |
|
| 426 | LSL | 2 | 莱索托洛蒂 |
|
| 430 | LRD | 2 | 利比里亚元 |
|
| 434 | LYD | 3 | 利比亚第纳尔 |
|
| 440 | LTL | 2 | 立陶宛立特 |
|
| 446 | MOP | 2 | 澳门元 |
|
| 454 | MWK | 2 | 马拉维克瓦查 |
|
| 458 | MYR | 2 | 马来西亚林吉特 |
|
| 462 | MVR | 2 | 马尔代夫拉菲亚 |
|
| 478 | MRO | 1 | 毛里塔尼亚乌吉亚 |
|
| 480 | MUR | 2 | 毛里求斯卢比 |
|
| 484 | MXN | 2 | 墨西哥比索 |
|
| 496 | MNT | 2 | 蒙古图格里克 |
|
| 498 | MDL | 2 | 摩尔多瓦列伊 |
|
| 504 | MAD | 2 | 摩洛哥迪拉姆 |
|
| 512 | OMR | 3 | 阿曼里亚尔 |
|
| 516 | NAD | 2 | 纳米比亚元 |
|
| 524 | NPR | 2 | 尼泊尔卢比 |
|
| 532 | ANG | 2 | 荷属安的列斯盾 |
|
| 533 | AWG | 2 | 阿鲁巴弗罗林 |
|
| 548 | VUV | 0 | 瓦努阿图瓦图 |
|
| 554 | NZD | 2 | 新西兰元 |
|
| 558 | NIO | 2 | 尼加拉瓜科多巴 |
|
| 566 | NGN | 2 | 尼日利亚奈拉 |
|
| 578 | NOK | 2 | 挪威克朗 |
|
| 586 | PKR | 2 | 巴基斯坦卢比 |
|
| 590 | PAB | 2 | 巴拿马巴波亚 |
|
| 598 | PGK | 2 | 巴布亚新几内亚基那 |
|
| 600 | PYG | 0 | 巴拉圭瓜拉尼 |
|
| 604 | PEN | 2 | 秘鲁索尔 |
|
| 608 | PHP | 2 | 菲律宾比索 |
|
| 634 | QAR | 2 | 卡塔尔里亚尔 |
|
| 643 | RUB | 2 | 俄罗斯卢布 |
|
| 646 | RWF | 0 | 卢旺达法郎 |
|
| 654 | SHP | 2 | 圣赫勒拿镑 |
|
| 678 | STD | 2 | 圣多美和普林西比多布拉 |
|
| 682 | SAR | 2 | 沙特里亚尔 |
|
| 690 | SCR | 2 | 塞舌尔卢比 |
|
| 694 | SLL | 2 | 塞拉利昂利昂 |
|
| 702 | SGD | 2 | 新加坡元 |
|
| 704 | VND | 0 | 越南盾 |
|
| 706 | SOS | 2 | 索马里先令 |
|
| 710 | ZAR | 2 | 南非兰特 |
|
| 728 | SSP | 2 | 南苏丹镑 |
|
| 748 | SZL | 2 | 斯威士兰里兰吉尼 |
|
| 752 | SEK | 2 | 瑞典克朗 |
|
| 756 | CHF | 2 | 瑞士法郎 |
|
| 760 | SYP | 2 | 叙利亚镑 |
|
| 764 | THB | 2 | 泰铢 |
|
| 776 | TOP | 2 | 汤加潘加 |
|
| 780 | TTD | 2 | 特立尼达和多巴哥元 |
|
| 784 | AED | 2 | 阿联酋迪拉姆 |
|
| 788 | TND | 3 | 突尼斯第纳尔 |
|
| 800 | UGX | 0 | 乌干达先令 |
|
| 807 | MKD | 2 | 马其顿第纳尔 |
|
| 810 | RUR | 2 | 俄罗斯卢布 |
|
| 818 | EGP | 2 | 埃及镑 |
|
| 826 | GBP | 2 | 英镑 |
|
| 834 | TZS | 2 | 坦桑尼亚先令 |
|
| 840 | USD | 2 | 美元 |
|
| 858 | UYU | 2 | 乌拉圭比索 |
|
| 860 | UZS | 2 | 乌兹别克斯坦索姆 |
|
| 882 | WST | 2 | 萨摩亚塔拉 |
|
| 886 | YER | 2 | 也门里亚尔 |
|
| 901 | TWD | 2 | 新台币 |
|
| 931 | CUC | 2 | 古巴可兑换比索 |
|
| 932 | ZWL | 2 | 津巴布韦元A/10 |
|
| 933 | BYN | 2 | 白俄罗斯卢布 |
|
| 934 | TMT | 2 | 土库曼斯坦马纳特 |
|
| 936 | GHS | 2 | 加纳塞地 |
|
| 937 | VEF | 2 | 委内瑞拉玻利瓦尔 |
|
| 938 | SDG | 2 | 苏丹镑 |
|
| 940 | UYI | 0 | 乌拉圭指数单位比索 (URUIURUI)(基金代码) |
|
| 941 | RSD | 2 | 塞尔维亚第纳尔 |
|
| 943 | MZN | 2 | 莫桑比克梅蒂卡尔 |
|
| 944 | AZN | 2 | 阿塞拜疆马纳特 |
|
| 946 | RON | 2 | 罗马尼亚列伊 |
|
| 947 | CHE | 2 | WIR 欧元(补充货币) |
|
| 948 | CHW | 2 | WIR 法郎(补充货币) |
|
| 949 | TRY | 2 | 土耳其里拉 |
|
| 950 | XAF | 0 | 中非金融合作法郎 BEAC |
|
| 951 | XCD | 2 | 东加勒比元 |
|
| 952 | XOF | 0 | 西非法郎 BCEAO |
|
| 953 | XPF | 0 | CFP 法郎(太平洋法郎) |
|
| 955 | XBA | | 欧洲复合货币单位(EURCO)(债券市场单位) |
|
| 956 | XBB | | 欧洲货币单位 (E.M.U.-6)(债券市场单位) |
|
| 957 | XBC | | 欧洲记账单位 9(E.U.A.-9)(债券市场单位) |
|
| 958 | XBD | | 欧洲记账单位 17(E.U.A.-17)(债券市场单位) |
|
| 959 | XAU | 2 | 黄金(一金衡盎司) |
|
| 960 | XDR | | 特别提款权 |
|
| 961 | XAG | 3 | 白银(一金衡盎司) |
|
| 962 | XPT | 2 | 铂金(一金衡盎司) |
|
| 963 | XTS | | 保留用于测试目的的代码 |
|
| 964 | XPD | 2 | 钯金(一金衡盎司) |
|
| 965 | XUA | | 非洲开发银行记账单位 |
|
| 967 | ZMW | 2 | 赞比亚克瓦查 |
|
| 968 | SRD | 2 | 苏里南元 |
|
| 969 | MGA | 1 | 马达加斯加阿里亚里 |
|
| 970 | COU | 2 | 实际价值单位 (UVR)(基金代码) |
|
| 971 | AFN | 2 | 阿富汗阿富汗尼 |
|
| 972 | TJS | 2 | 塔吉克斯坦索莫尼 |
|
| 973 | AOA | 2 | 安哥拉宽扎 |
|
| 975 | BGN | 2 | 保加利亚列弗 |
|
| 976 | CDF | 2 | 刚果法郎 |
|
| 977 | BAM | 2 | 波斯尼亚和黑塞哥维那可兑换马克 |
|
| 978 | EUR | 2 | 欧元 |
|
| 979 | MXV | 2 | 墨西哥投资单位 (UDI)(基金代码) |
|
| 980 | UAH | 2 | 乌克兰格里夫纳 |
|
| 981 | GEL | 2 | 格鲁吉亚拉里 |
|
| 984 | BOV | 2 | 玻利维亚 Mvdol(基金代码) |
|
| 985 | PLN | 2 | 波兰兹罗提 |
|
| 986 | BRL | 2 | 巴西雷亚尔 |
|
| 990 | CLF | 4 | 发展单位(基金代码) |
|
| 994 | XSU | | SUCRE |
|
| 997 | USN | 2 | 美元(次日)(基金代码) |
|
| 999 | XXX | | 无货币 |
## 加密货币 [#crypto]
| 图标 | ISO 代码 | Alpha 代码 | 精度 | 名称 |
| --------------------------------------------------------------- | ------ | ----------------- | -- | ------------------------------------------- |
|
| 1000 | BTC (alias: XBT) | 8 | 比特币 |
|
| 1002 | ETH | 18 | 以太坊 |
|
| 1003 | LTC | 8 | 莱特币 |
|
| 1004 | ETC | 8 | 以太坊经典 |
|
| 1005 | DASH (alias: DSH) | 8 | DASH |
|
| 1006 | BCH | 8 | 比特币现金 |
|
| 1007 | XMR | 8 | 门罗币 |
|
| 1009 | PZM | 8 | Prizm |
|
| 1010 | XRP | 6 | 瑞波币 |
|
| 1012 | XEM | 8 | XEM |
|
| 1015 | TFT | 8 | ThreeFold Token |
|
| 1018 | ADA | 8 | ADA |
|
| 1019 | DOGE | 8 | 狗狗币 |
|
| 1020 | ZEC | 8 | Zcach |
|
| 1021 | XLM | 7 | Stellar |
|
| 1022 | EOS | 8 | EOS |
|
| 1023 | BWK | 8 | Bulwark |
|
| 1025 | NSD | 8 | Nasdacoin |
|
| 1026 | TRX | 8 | Tron |
|
| 1027 | FUT | 8 | FutPlayCoin |
|
| 1029 | MPC | 8 | MediaPlayCash |
|
| 1995 | XTZ | 8 | Tezos |
|
| 1996 | WAVES | 8 | Waves |
|
| 1997 | ICX | 8 | Icon |
|
| 1999 | BSV | 8 | Bitcoin SV |
|
| 2000 | B2B (alias: B2BX) | 18 | B2BX |
|
| 2005 | USDT | 8 | 泰达币 |
|
| 2006 | EURT | 8 | Tether EUR |
|
| 2007 | R | 8 | Revain |
|
| 2008 | OMG | 8 | OmiseGO |
|
| 2009 | IOST | 8 | IOSToken |
|
| 2010 | VIU | 8 | Viuly |
|
| 2011 | EOS Token | 8 | EOS Token |
|
| 2012 | SRNT | 18 | Serenity |
|
| 2014 | NEO | 8 | NEO |
|
| 2016 | BXN | 8 | BITTXN |
|
| 2018 | DTC | 8 | DateCoin |
|
| 2020 | OLXA | 2 | OLXA |
|
| 2021 | PAX | 8 | PAX |
|
| 2022 | TUSD | 8 | TrueUSD |
|
| 2023 | GUSD | 8 | Gemini Dollar |
|
| 2024 | USDC | 8 | USD Coin |
|
| 2025 | BNB | 8 | Binance Coin |
|
| 2030 | XGT | 8 | XGT |
|
| 2032 | HDP | 4 | HedPay |
|
| 2033 | NADM | 8 | NeoAdam |
|
| 2034 | NOAH | 18 | NOAHCOIN |
|
| 2035 | TC | 8 | Titan Coin |
|
| 2036 | GGC | 18 | GG World Lottery |
|
| 2037 | SIM | 18 | Simmitri |
|
| 2038 | CTC | 18 | Catholic Coin |
|
| 2039 | MYX | 8 | Myoho |
|
| 2040 | CRAFTR | 18 | CraftR |
|
| 2041 | XRX | 8 | Global Property Register |
|
| 2042 | USDQ | 18 | USDQ |
|
| 2043 | ELLEX | 18 | Ellex Coin |
|
| 2044 | ANX | 8 | COINANX |
|
| 2045 | BNX | 8 | BTCNEXT Coin |
|
| 2046 | BFCL | 18 | BFCL Token |
|
| 2047 | ERN | 8 | EURON |
|
| 2048 | NWX | 8 | NIWIX Token |
|
| 2049 | C3W | 8 | C3 Wallet |
|
| 2050 | QDAO | 18 | Q DAO |
|
| 2051 | SPD | 18 | SPINDLE |
|
| 2053 | ZTX | 18 | Zulu Republic Token |
|
| 2054 | ITM | 8 | ITADAKI-MASU Coin |
|
| 2055 | DEC | 8 | Darico Ecosystem Coin |
|
| 2056 | KRWQ | 8 | KRWQ Stablecoin by Q DAO v1.0 |
|
| 2057 | NZE | 8 | Nagezeni |
|
| 2058 | NIOX | 8 | NIOX |
|
| 2060 | VEST | 8 | VestChain |
|
| 2061 | BKZ | 8 | Bitkruz Token |
|
| 2066 | FMT | 8 | Free Market Token |
|
| 2068 | DAI | 8 | Dai Stablecoin |
|
| 2070 | AZ | 8 | AZ Token |
|
| 2071 | B21 | 8 | B21 Token |
|
| 2075 | PDATA | 8 | PDATA |
|
| 2077 | BUSD | 8 | Binance USD |
|
| 2078 | ZVC | 8 | Zeven Coin |
|
| 2081 | ARBIS | 8 | ARBIS |
|
| 2083 | BII | 8 | Bitcoin 2 |
|
| 2084 | BDS | 8 | Bitcoin Dollar Stable |
|
| 2086 | BWON | 8 | Bitcoin BWON |
|
| 2087 | BYUN | 8 | Bitcoin BYUN |
|
| 2088 | NEX | 8 | NEX |
|
| 2090 | TEX | 8 | TEX |
|
| 2106 | AKRO | 18 | Akropolis |
|
| 2107 | ALPHA | 18 | Alpha Finance Lab |
|
| 2110 | BZRX | 18 | bZx Protocol |
|
| 2111 | CHR | 6 | Chromia |
|
| 2113 | MANA | 18 | Decentraland |
|
| 2114 | FTT | 18 | FTX Token |
|
| 2115 | LRC | 18 | Loopring |
|
| 2117 | COMP | 18 | Compound |
|
| 2121 | RSR | 18 | Reserve Rights |
|
| 2122 | SRM | 6 | Serum |
|
| 2123 | SHIB | 18 | SHIBA INU |
|
| 2126 | SNX | 18 | Synthetix |
|
| 2128 | SAND | 18 | The Sandbox |
|
| 2132 | BAND | 18 | Band Protocol |
|
| 2133 | BAT | 18 | Basic Attention Token |
|
| 2136 | SUSHI | 18 | SushiSwap |
|
| 2141 | YFI | 18 | yearn.finance |
|
| 2146 | FTM | 18 | Fantom |
|
| 2147 | AXS | 18 | Axie Infinity |
|
| 2153 | CHZ | 18 | Chiliz |
|
| 2160 | 1INCH | 18 | 1inch |
|
| 2161 | OCEAN | 18 | Ocean Protocol |
|
| 2947 | CAKE | 18 | PancakeSwap |
|
| 2949 | CRV | 18 | Curve DAO Token |
|
| 2956 | REN | 18 | Ren |
|
| 2957 | CEL | 4 | Celsius |
|
| 2959 | ENJ | 18 | Enjin Coin |
|
| 2962 | GRT | 18 | The Graph |
|
| 2964 | AAVE | 18 | Aave |
|
| 2968 | COVIP | 8 | COVIP |
|
| 2969 | SCAMUNKNOWN | 8 | 诈骗警报:未知状态。审核由 Q DeFi Rating 完成 |
|
| 2970 | SCAMMEDIUMRISK | 8 | 诈骗警报:中等风险。审核由 Q DeFi Rating 完成 |
|
| 2971 | SCAMHIGH | 8 | 诈骗警报:高概率。审核由 Q DeFi Rating 完成 |
|
| 2972 | NOAHARK | 8 | NOAH 的 DeFi ARK v.1 治理代币 |
|
| 2973 | FLR | 8 | Spark |
|
| 2974 | FXRP | 8 | Spark |
|
| 2975 | XYM | 8 | XYM |
|
| 2976 | QDEFI | 8 | Q DeFi Rating & Governance token v2.0 Token |
|
| 2977 | T34 | 8 | Platinum Software TECHNOLOGIES |
|
| 2978 | CNYQ | 8 | CNYQ Stablecoin by Q DAO |
|
| 2979 | JPYQ | 8 | JPYQ Stablecoin by Q DAO |
|
| 2980 | MILK2 | 8 | MILK2 Coin |
|
| 2981 | SHAKE | 8 | SHAKE Coin |
|
| 2982 | MATIC | 8 | Matic Network |
|
| 2983 | ERG | 8 | Ergo |
|
| 2984 | LTCP | 8 | Litecoin PoS |
|
| 2985 | ZRX | 8 | 0x |
|
| 2986 | BIP | 8 | Minter |
|
| 2987 | ATOM | 8 | Cosmos |
|
| 2988 | GRAM | 8 | Telegram Open Network IOU |
|
| 2989 | JPYQ | 8 | JPYQ |
|
| 2990 | NOAHP | 8 | NOAH.platinum |
|
| 2991 | CC | 8 | Custom Coin |
|
| 2993 | SPD | 8 | Spindle |
|
| 2994 | OWC | 8 | ODUWA Coin |
|
| 2995 | NCER | 0 | NIWIX Certificate |
|
| 2996 | NWX | 8 | NIWIX Token |
|
| 2997 | ERN | 8 | EURON |
|
| 2998 | BFCL | 8 | BFCL Token |
|
| 2999 | ABBC | 8 | ABBC |
|
| 3007 | UMA | 18 | UMA Voting Token v1 |
|
| 3099 | ALICE | 6 | ALICE |
以下状态可分配给入金、出金、转账、内部转账和兑换等交易:
* **新建** — 已创建交易,但尚未处理。
* **待处理** — 表示交易请求正在等待管理员审批,或发生了某些技术问题。
* **冻结** *(仅适用于出金)* — 请求的出金金额正在客户账户中被冻结。
* **冻结失败** *(仅适用于出金)* — 冻结请求的出金金额时发生错误。
* **退款** *(仅适用于出金)* — 冻结请求的出金金额后,交易未继续处理,该金额已成功退还给客户。
* **退款失败** *(仅适用于出金)* — 由于技术问题,冻结在客户账户中的请求出金金额未能退还。
* **处理中** — 交易正在处理。
* **完成** — 交易已成功完成。
* **部分完成** — 由于技术问题,交易处理未完成。此类交易需要在 [财务 > 交易](../finance/transactions) 页面中处理(详情请参阅[如何处理状态为 Partial 的交易](../../how-to-articles/manage-finances/how-to-process-transactions-with-the-partial-status))。
* **需协助** — 表示无法自动确定交易状态,且该交易需要手动操作。此状态仅适用于通过 [PSS](../../integrations/payment-systems#payment-system-service-pss) 连接的方法发起的入金和出金。管理员必须决定是继续与用于处理该交易的外部支付系统同步状态,还是将其标记为失败(详情请参阅[如何处理状态为 Assistance 的交易](../../how-to-articles/manage-finances/how-to-process-transactions-with-the-assistance-status))。
* **失败** — 交易因参数错误而失败。
* **拒绝** — 交易请求被管理员拒绝。
* **取消** — 交易被客户取消。
## 储蓄简介 [#introduction-to-savings]
储蓄计划为客户提供了一种投资闲置资金并通过将其存入储蓄账户赚取利息的方式。这些计划提供了一种被动增长加密货币或法定货币资产的方法,类似于传统银行储蓄账户。
。
## 详情 [#details]
在详情页面上,您可以查看客户所订阅储蓄计划的设置。此外,还会显示利息支付列表。
对于 `Fixed` 策略,支付列表包括计划支付以及已支付至客户钱包的款项。
对于 `Flexible` 策略,列表仅显示已支付至客户的钱款。
,使用 Twilio 拨打指定客户的电话号码。
假设客户向其在 `MetaTrader4 Live` 平台上开立的交易账户入金。鉴于 **Autocreate from deposit** 已设置为 **Enabled**,且 `MetaTrader4 Live` 的奖金预设可在 **Bonus presets** 页面上使用,该客户有资格获得入金奖金。获得奖金的要求如下所述:
要从该奖金计划中获得 386 USD 的奖金金额,客户需要使用其在 `MetaTrader 5 Live` 平台上开设且以 USD 计价的活跃交易账户,在 B2CORE UI 中领取奖金。
领取奖金后,奖金将作为信用额度添加到客户交易账户中,使客户能够使用信用资金进行交易。要在账户余额中获得奖金信用额度,客户必须满足以下奖金计划要求:
可以将客户通过 B2CORE UI 发起的特定货币对兑换配置为需要管理员批准。
当客户创建这些特定货币对的兑换时,系统会创建 **Exchange** 类型的请求,并将其列在 [Clients > Requests](../../back-office-guide/clients/requests) 页面上。只有在管理员批准相应请求后,才会使用已批准请求中指定的汇率执行这些兑换。
要为特定货币对的兑换启用请求:
。
Fixed 储蓄计划中的支付详情
以添加答案选项。
Verification Level 0
To obtain Verification Level 1, submit the following documents:
## 如何按客户类型限制验证等级的使用 [#how-to-restrict-the-use-of-verification-levels-by-client-type]
要配置单独的验证流程,例如针对个人客户和企业客户的流程,请指定只能由特定类型客户获得的等级。
要对验证等级应用客户类型限制:
如果配置正确但问题仍然存在,请联系短信服务提供商,检查是否存在服务中断或向客户号码发送短信的问题。
在通过后台创建手动入金之前,请确保已创建并启用 **manual** 入金方式。为此,请依次前往 **System** > **Deposit system** > **Deposit methods**。如果 **Deposit methods** 页面未显示 **manual** 入金方式,请按照[如何添加手动入金或出金方式](../manage-payment-methods/how-to-add-the-manual-deposit-or-withdrawal-method)中的说明创建该方式。
创建并启用 **manual** 入金方式后,请按照以下步骤创建入金。
交易的主要信息:
**Identifier**
B2CORE Payment Systems Service (PSS) 中的交易标识符。您可以点击它以导航至 **Finance** > **Deposits** 或 **Finance** > **Payouts** 中的交易详情。
***
**Payment provider identifier**
外部支付系统中的交易标识符,可能具有以下两种状态:
* `Verified` — 支付系统中存在具有此标识符的交易。
* `Unverified` — 支付系统中找不到具有此标识符的交易。
***
**Status**
B2CORE PSS 中的交易状态:
* **Created** — 已创建交易。
* **In Progress** — 正在处理交易。
* **Success** — 交易已成功完成。这是最终状态。
* **Failed** — 交易未能完成。这是最终状态。
* **Unexpected** — 交易处于未知状态。管理员必须将此状态作为协助流程的一部分进行处理。
* **Unprocessable** — 交易处于需要手动操作的状态,因为无法再自动执行任何操作。管理员必须将此状态作为协助流程的一部分进行处理。
***
**Initial amount**
发起交易时的金额。
***
**Initial currency**
发起交易时使用的币种。
***
**Creation date**
创建交易的日期和时间。
***
**Last updating date**
上次更新交易的日期和时间。
### 支付输入快照 [#payment-input-snapshot]
客户在发起入金或出金时于支付表单中填写的信息。客户必须填写的字段取决于所选的入金或出金方式。此信息显示为字段名称和客户提供的值。
对于某些方式,客户无需提供任何信息。在这种情况下,将显示消息 `The payment input snapshot is empty`。
### 外部详情 [#external-details]
有关交易的附加信息,包括来自支付系统的有用数据。信息集取决于具体的支付系统。在交易处理期间,此部分中没有详情。
### 时间线 [#timeline]
有关 B2CORE PSS 内交易状态的信息。数据按时间顺序展示,并包含每个状态的有用详情。
### 轮询任务 [#polling-job]
在 B2CORE PSS 中创建交易后,服务会定期向外部支付系统发起请求,以检查交易的当前状态。这种定期状态检查称为 **Polling job** 流程。每次轮询任务尝试均包含请求日期、状态以及任何错误的附加详情(如适用)。
交易成功完成后,请求所有部分中的信息都会相应更新。
当交易(例如入金、转账,或钱包与交易账户之间的兑换)处于 `Partial` 状态时,表示由于技术问题导致处理未完成。这些交易应手动处理。
要处理 `Partial` 状态的交易:
— **Process transaction** 按钮
*
— **Set Done status** 按钮
。
由于该交易已在相应平台上处理完成,但状态未回传至 B2CORE,此操作会为 B2CORE 中的交易分配 `Done` 状态。
,然后在显示的弹窗中确认操作。
要确认操作,请解决一个简单的数学题,并在 **Verification code** 字段中输入结果。
在显示的弹窗中,填写以下字段:
* 在 **Identifier** 字段中,指定外部支付系统中的交易标识符。
* 要确认操作,请解决一个简单的数学题,并在 **Verification code** 字段中输入结果。
* 当 **THB** 的精度为 `1`(一位小数)时:
* 在 **Receive** 字段中输入 **245 USD** → **Pay** 字段显示 **7,967.4 THB**。
* 在 **Pay** 字段中输入 **7,967.4 THB** → **Receive** 字段显示 **245 USD**。
出现不匹配是因为精度 `0` 无法保留小数值,而精度为 `1` 或更高时允许使用小数金额,从而实现更精确的货币转换。
本说明介绍如何添加使用可通过 PSS 连接到 B2CORE 的支付系统的入金和出金方式。支付系统服务(Payment System Service,PSS)是一项新的 B2CORE 服务,可提供与外部支付服务商和收银台系统的增强连接。
在 [Integration > Payment systems](../../integrations/payment-systems) 中,**PSS-supported** 列标记为 `Yes` 的支付系统可通过 PSS 连接。
## 常规流程 [#general-procedure]
每当更新 **Configuration** 或方式所使用外部连接中的关联 **Credentials** 时,系统都会自动增加相应的版本号。创建新版本后,将自动启动该版本的后台测试。因此,测试结果可能与之前的结果不同。
更新 **Configuration** 或 **Credentials** 后:
* 相应版本会增加。
* 新版本的后台测试将启动,且可能需要一些时间。
* 之前测试的结果将变为过期:
* 它们将被移至 **Previous** tests 部分。
* 其 **Relevance** 值将变为 `Old`。
新版本的后台测试完成后:
* 最新测试结果将成为当前结果。
* **Relevance** 值将变为 `Actual`,表明结果对应于当前配置版本。
即使未更新 **Configuration** 或相应外部连接中的 **Credentials** 版本,后台测试结果也可能发生变化。出现这种情况的原因可能包括外部支付系统暂时不可用、外部服务 API 发生变化或测试过程中出现错误。在此类情况下,选项卡中也会显示新的后台测试结果。
### 方式配置测试结果 [#method-configuration-test-results]
配置测试可能返回以下结果之一,表示入金或出金方式的当前状态:
* **Authorized** — 已成功通过支付系统认证。支付系统账户拥有执行金融操作所需的足够权限。
* **Available** — 已成功通过支付系统认证。此状态不保证账户拥有创建入金或出金操作的权限。
* **Failed** — 配置测试失败。此状态包含错误代码和说明。
* **Unexpected** — 出现意外的配置测试结果。此状态包含错误代码和说明。
* **Not implemented** — 此支付驱动程序尚未实现配置测试。
这些字段的使用遵循以下公式:
`最低佣金金额 (1) <= 固定费率 (2) + 百分比费率 % (3) <= 最高佣金金额 (4)`
您可以设置固定佣金费率、百分比佣金费率,或两者的组合。
* 要设置固定佣金费率,请在字段 `2` 中输入佣金金额。无论交易金额是多少,每笔入金或出金交易均会收取指定的佣金金额。
对于固定佣金费率,请将其他字段留空。
* 要设置百分比佣金费率,请在字段 `3` 中输入百分比值。入金或出金金额的指定百分比将作为佣金收取。
对于百分比佣金费率,建议您在字段 `1` 中设置最低佣金金额,并在字段 `4` 中设置最高佣金金额。佣金不能低于最低金额或超过最高金额。
* 如果同时在字段 `2` 中输入固定费率,并在字段 `3` 中输入百分比费率,则佣金将计算为固定金额与入金或出金金额的指定百分比之和。
对于组合佣金,同样建议您设置最低和最高佣金金额。
请按照以下说明,在 B2CORE Back Office 中配置连接并通过 [B2BINPAY](https://b2binpay.com/) 设置入金和出金方式。
## 通过 ChipPay 添加入金方式 [#add-a-deposit-method-through-chippay]
要添加并设置通过 ChipPay 进行入金的方式:
## 通过 Praxis 添加入金方式 [#add-a-deposit-method-through-praxis]
要添加并设置通过 Praxis 入金的方式:
* 在 **电子邮件** 字段中,输入用户的电子邮件地址。
* 在 **密码** 字段中,输入密码。
您也可以点击字段右侧的 **生成** 按钮来生成安全密码。要查看生成的密码,请启用 **显示密码** 选项。
* 在 **状态** 下拉列表中,选择 **已启用**。
* 在 **群组** 下拉列表中,选择新用户将加入的一个或多个群组(详情请参阅 [如何添加用户组并授予权限](how-to-add-a-user-group-and-grant-permissions))。
* 在 **已启用** 下拉列表中,选择 **是**。
* 在 **SSO Redirect URL (brand url)** 字段中,指定客户通过单点登录成功完成身份验证后将被重定向到的 Zendesk 页面 URL,例如:
`https://{your-subdomain}.zendesk.com/hc/en-us`
### SSO 设置 [#sso-settings]
* 在 **SSO Shared Secret** 字段中,指定来自 Zendesk 的密钥,该密钥用于生成单点登录所需的 JWT。
此密钥会在 Zendesk **Admin Center** 中配置 SSO 时生成,必须从中复制。
### 移动 SDK 设置 [#mobile-sdk-settings]
仅当您拥有[移动应用](../../release-notes/release-notes-mobile)并需要在应用与 Zendesk 之间启用 SSO 时,才需要这些设置。如果您没有移动应用,则无需配置这些设置。
* 在 **App ID** 字段中,指定来自 Zendesk 的应用标识符。
* 在 **Client ID** 字段中,指定来自 Zendesk 的客户端标识符。
* 在 **SDK JWT Secret** 字段中,指定在 Zendesk 中生成的密钥,该密钥用于签署从 B2CORE 发送至 Zendesk 以进行单点登录的 JWT。
在 **Channels** > **Mobile SDK** 菜单中为移动 SDK 配置 SSO 时,所有这些值都会在您的 Zendesk **Admin Center** 中生成,必须从中复制。
### Zendesk 中的移动 SDK [#mobile-sdk-in-zendesk]
在 Zendesk **Admin Center** 的 **Channels** > **Mobile SDK** 中,输入 **JWT URL**。该 URL 必须采用以下格式:
`https://{your-Back-Office-URL}/api/v2/my/helpdesk/zendesk/auth/mobile/exchange`
请确保将 `{your-Back-Office-URL}` 替换为您的 B2CORE Back Office 域名。
点击该按钮后,将显示相应平台的应用下载选项。
添加来源后,请将生成的 API 密钥分享给 B2BROKER,以便我们为您完成 SDK 设置。此设置可将您 B2CORE 中的事件数据发送至 Amplitude。
## 检查用于 Amplitude 跟踪的传入事件 [#check-incoming-events-for-amplitude-tracking]
配置来源并且您的 Amplitude 项目开始接收来自 B2CORE 的数据后,所有接收到的事件都会在 **Data** > **Events** 中收集,其事件属性则会显示在 **Data** > **Properties** 中。
您必须根据 **Tracking B2CORE Events with Amplitude** 中记录的事件,验证状态为 `Unexpected` 的传入事件,以了解其含义,并将您希望跟踪的事件添加到您的 Amplitude 计划中,或删除不需要的事件。
包含在您的 Amplitude 跟踪计划中的事件会标记为 `Live`,并开始实时跟踪。
## 在 Amplitude 中配置数据展示方式 [#configure-data-representation-in-amplitude]
在您的 Amplitude 项目中,访问 **Home** 页面上的 **Dashboard**。默认情况下,它包含一组预定义的小组件,其中展示从默认 Amplitude 事件收集的数据。您可以完全自定义 **Dashboard**,以显示与您最相关的信息和图表。
## 在 Amplitude 中构建图表 [#build-charts-in-amplitude]
Amplitude 中的图表可将原始事件数据转化为有关客户如何与 B2CORE 交互的可视化洞察。每个图表都基于您跟踪的事件,使您能够监控参与度、转化率、留存率和用户分布。这使您更容易了解客户行为并改进服务。
要创建图表,请点击 **Create** > **Charts**,然后选择所需的图表类型。
有关图表操作的更多详细信息,请参阅官方 [Amplitude 文档](https://amplitude.com/docs)。
以下是在 Amplitude 中可构建的一些简单图表示例。您可以将图表添加到您的 **Dashboard**、分享图表,并在需要时导出数据。
### 分段图表 [#segmentation-chart]
**Segmentation** 图表可在选定时间段内,按事件属性比较或细分您的事件。
上方图表显示了过去一年中访问 IB room 的独立客户数量,并按国家/地区进行了细分。
### 漏斗图表 [#funnel-chart]
**Funnel** 图表可帮助您了解客户如何在 UI 中导航,并识别他们容易流失的潜在问题区域。漏斗分析的常见示例是分析注册和引导流程。
上方图表显示了过去 7 天内从开始注册到完成注册的客户转化率。
### 用户构成 [#user-composition]
**User Composition** 图表可帮助您深入了解客户群体的结构。与事件驱动的分析不同,该图表依赖于用户属性,例如国家/地区、语言、平台或账户类型,而非客户操作。
上方图表显示了已注册客户在不同国家/地区的分布情况,帮助您了解客户来源以及客户群体的组织结构。
B2CORE 支持通过 iframe 将第三方 Web 应用直接嵌入客户 UI。当自定义菜单项配置为 **Iframe** 行为时,B2CORE 会在界面中加载您的应用,为客户提供无需离开平台的无缝体验。
本指南涵盖两个方面:在 B2CORE Back Office 中配置自定义菜单项,以及准备您的应用以确保其能在 B2CORE iframe 中正常运行。
## 前提条件 [#prerequisites]
在继续之前,请确保满足以下条件:
要添加字段,请在 **Fields** 页面上点击 **+Create**,然后输入标签、选择组、设置 **Required** 等验证规则,并为选择字段添加客户可选择的选项。
有关创建和管理自定义字段的详细信息,请参阅[自定义字段](../../back-office-guide/system/custom-fields)。
## 步骤 2. 创建注册配置文件 [#step-2-create-a-registration-profile]
要创建注册配置文件:
* 启用 **Slack** 或 **Telegram** 选项后,请执行以下操作:
* 选择 **Private**,以直接 Slack 或 Telegram 消息的形式向收件人发送通知。
消息将发送到[Back Office 用户详细信息页面](../../back-office-guide/system/users/users#details)的 **Slack chat Id** 和 **Telegram chat Id** 字段中指定的聊天。
* 选择 **Group**,以将通知发送到特定群组或频道。
* 在显示的 **Group Id** 字段中,指定将接收通知的群组或频道标识符(详情请参阅[如何获取 Telegram 聊天、群组和频道标识符](../manage-communication-platforms/how-to-get-telegram-chat-group-and-channel-identifiers))。
* 在 **Template** 下拉列表中,选择通知模板。
. For a quick search, you can filter partners by a name, email, and other criteria.
in the list. Note that this action **can't be undone**.
. For a quick search, you can filter partners by a name, email, and other criteria.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter partners by a name, email, and other criteria.
.
. For a quick search, you can filter symbols by a platform, trading group, symbol name, and other criteria.
Refer to [Max amount](../payment-plans#max-amount) for a distribution example.
— click it to expand or collapse the main menu.
*
— click it to see the events that were scheduled for Admins in the **Event Calendar**. The number of upcoming events is displayed on a counter badge.
*
— click it to see pending client requests. The number of new requests is displayed on a counter badge.
* **Language** **menu** — click it to select the interface language.
* **User profile pane** — click this panel to access the **Log out** button.
## Common buttons and icons [#common-buttons-and-icons]
The following buttons can be found on most Back Office pages.
* the **Create** button — used to add a new entry.
* the **Export** button — used to export table data to a CSV file.
* the **Import** button — used to import an XLSX or a CSV data file.
*
— used to apply custom filters.
*
— used to reset custom filters.
*
— used to access details.
*
— used to delete an entry.
Page elements may serve as hyperlinks which can be clicked to drill down to details. Access to this data is maintained based on the permissions assigned to a particular user group.
## Filtering [#filtering]
Throughout the Back Office, the data is typically organized in tables that can be filtered.
You can specify multiple criteria for filtering column data.
When filtering is available, the appropriate input fields are displayed in column headers. The inputs vary depending on a data format, such as text, number, date, time, or list.
To facilitate filtering by date, two fields for the start and end dates may be displayed so that you can define a time period.
To enable or disable filters, click
and
buttons.
## Sorting [#sorting]
In the Back Office, you can sort the data available in tables.
The columns by which you can sort data are marked with
displayed in column headers (no arrows are displayed when sorting isn't available). You can click these arrows to sort data in an ascending (
) or descending (
) order, by a single column at a time.
## Pagination [#pagination]
You can display table data across multiple pages and specify how many records to display on a page. You can also view the total number of records found.
To open the previous or next page, click the left or right arrow.
## Export and import [#export-and-import]
Some Back Office pages support data export to CSV files. This option is available on pages that contain an **Export** button above the data table.
The data in a resulting file matches the applied sorting and filtering criteria.
To export page data to a CSV file, click the **Export** button.
Some Back Office pages also support importing of CSV and XLSX files. This option is useful when you need to update the symbol settings for a partnership program.
To import data, click the **Import** button, choose the file that you want to import and click **Open**.
## Localizations [#localizations]
In the B2CORE Back Office, you can configure fields that support localizations to have multiple language options in the B2CORE UI.
Using the **localization** buttons, you can set translations for these fields into different languages.
To set localizations, click the **Localization** button next to the field, enter the translation in the supported languages and click **OK**.
Note that only enabled localizations are displayed. You can enable or disable localizations in the **System** > **Localizations** section.
View the following information for each process:
**Date**
The date and time when a process started running.
***
**Process name**
The name of a process. Possible values:
* **Clear Cache** (`cache`) — clears cache for the specified time period.
* **Cancel Payments** (`cancel`) — reverts reward payments.
* **Create Payments** (`payments`) — initiates reward payments.
* **Process Payments** (`transactions`) — processes reward transfers.
* **Run Automation** (`schedule`) — runs consequentially the full process cycle (Sync Symbols + Sync Groups + Sync Trades + Create Payments + Process Payments + Sync Accounts).
* **Run Diagnostics** (`diagnostics`) — runs diagnostics of IB services.
* **Sync Accounts** (`accounts`) — runs synchronization of [accounts](platforms/accounts) with trading platforms.
* **Sync Groups** (`groups`) — runs synchronization of [groups](platforms/groups) with trading platforms.
* **Sync Symbols** (`symbols`) — runs synchronization of [symbols](platforms/symbols) with trading platforms.
* **Sync Trades** (`trades`) — runs synchronization of [trades](platforms/trades) with trading platforms.
***
**Memory**
The amount of memory used by a process.
***
**CPU Time**
The time which it took a process to run.
***
**PID**
The process identifier.
***
**Exit code**
The process result. Possible values:
* **0** — the process completed successfully.
* **1** — the process wasn't completed due to errors.
* **2** — the process was gracefully stopped due to service maintenance.
On this page, you can monitor the synchronization pipelines that keep IB data in sync with trading platforms.
To run a synchronization manually, click the **Run process** button.
The following information is provided about each pipeline run:
**Date**
The date and time when a pipeline run started.
***
**Platform**
The trading platform for which the synchronization was run.
***
**Steps**
The synchronization steps included in the pipeline run.
***
**Status**
The current status of the pipeline run.
The weekly calendar view displays the pipeline runs by day of the week.
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
您可以在 WebUI 页面之间切换:编辑模式将保持启用状态,直到您点击 **退出编辑模式** 将其禁用。
3. 选择所需语言。
4. 将文件拖放到上传区域,或点击 **Add file** 从计算机中选择文件。允许的最大文件大小为 3 MB。
5. 点击 **Upload**。
6. 刷新页面以查看已上传的翻译。
### 其他形式 [#the-other-form]
这是全球所有语言中使用的主要必填形式。
每个复数化翻译都必须包含此形式,因为它可作为所有未指定情况的后备形式。
如果您只填写 **其他** 形式并将其他形式留空,B2TRANSLATE 会自动使用 **其他** 形式的值填充其余形式。
这样可确保您在完成所有形式的翻译时,译文仍能正常使用。
您可以为在 MT4/5 上交易的客户配置返现奖励计划。
返现根据 MT 账户在一天内交易的交易量进行奖励,以平仓头寸为准,并于次日存入客户账户。例如,5 月 24 日交易的交易量返现将于 5 月 25 日奖励给客户。
通过 **MetaTrader 交易量** 菜单,您可以访问 **MetaTrader 4** 和 **MetaTrader 5** 页面,为各个平台配置返现计划。
每个页面分为两个标签页:
* [偏好设置选项卡](preferences-tab)
* [层级选项卡](tiers-tab)
— **电话**图标
可从后台拨打指定客户的电话号码。
要使用此选项,必须配置电话服务提供商(例如 Twilio)(详情请参阅 [如何配置 Twilio](../../../how-to-articles/manage-communication-platforms/how-to-configure-twilio))。
***
— **垃圾桶**图标
如果您被授予 `Update clients` 权限,则可以使用此选项。该权限包括在 **联系人** 标签页中编辑客户信息的功能。点击该图标后,您可以删除任何已添加的电话号码,包括已确认的电话号码。
删除已确认的电话号码后,客户可以添加并确认新的电话号码以关联到其个人资料。
电话号码被删除后,即可用于注册新的客户资料,前提是您的注册流程要求[电话号码必须唯一](../../system/settings#client-settings)。
在此选项卡中,您可以查看和编辑为客户指定的[自定义字段](../../system/custom-fields)值。
这些字段按照系统中配置的[自定义字段组](../../system/custom-fields#groups)进行组织。选择一个组以查看和编辑其中包含的字段。
(菜单按钮),然后展开显示可用选项的下拉菜单。
可用选项卡将在本文档的后续部分中说明。
保存字段设置后,您将被重定向到 **自定义字段** 选项卡中的字段列表。
.
The page is divided into the following tabs:
. Here you can view and customize currency settings.
All fields, except for **Created**, can be modified.
On this page, you can view a list of failed IB reward payments along with the error details.
The following information is provided about each failed payment:
**ID**
The identifier of the failed payment.
***
**Error Reason**
The reason why the payment failed.
***
**Error Message**
The detailed error message.
***
**Transaction ID**
The identifier of the related transaction.
***
**Account ID**
The identifier of the related account.
***
**Created At**
The date and time when the failed payment was registered.
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Reward state**
The current status of a reward payment:
* **Done** — the reward was successfully credited to a partner's account.
* **Pending** — the reward was calculated, but not yet credited to a partner's account.
* **Canceled** — the reward was canceled and debited from a partner's account.
***
**Reward amount**
The total amount rewarded.
***
**Transaction ID**
The transaction identifier.
***
**Level**
The partner's level.
***
**Introducing broker**
The name of a partner.
***
**Payment plan**
The formula for setting up the rewards calculation. To learn more, refer to [Payment plans](../../payment-plans).
***
**Level ratio**
The multiplier based on which rewards are calculated considering a partner's level.
***
**Personal ratio**
The individual multiplier based on which rewards are calculated for a specific client.
***
**Tier ratio**
The multiplier based on which rewards are calculated considering a specific tier.
***
**Tier trading volume**
The trading volume defined for a tier.
***
**Tier active traders**
The number of active traders defined for a tier.
***
**Tier name**
The tier name.
***
**Tier period**
The number of days during which a partner must meet tier objectives to receive increased rewards.
***
**Created**
The date and time when a reward was paid.
***
**Trading platform**
The trading platform name.
***
**Trade account type**
The account type. Possible values:
* Default
* Payment account
* PAMM investment account
* PAMM master account
***
**Trading account**
The account number of a client who executed a trade.
***
**Trade ID**
The trade identifier.
***
**Trade execution time**
The date and time when a trade was executed.
***
**Side**
The trade side. Possible values:
* Buy
* Sell
***
**Symbol**
The symbol code.
***
**Quote currency**
The quote currency traded.
***
**Contract size**
The trade amount.
***
**Price**
The execution price.
***
**Volume, lots**
The trade volume, in lots.
***
**Volume, USD**
The trade volume, in USD.
***
**Commission**
The paid commission amount.
***
**Client email**
The email of a client who executed a trade.
***
**Client ID**
The client identifier in the B2CORE UI.
## Transactions list [#transactions-list]
View the following information for each transaction:
**ID**
The transaction identifier.
***
**Currency**
The currency in which a reward was paid.
***
**Amount**
The amount of a transaction.
***
**Account number**
The partner account number.
***
**Client ID**
The identifier of a client profile.
***
**IB name**
The name of a partner.
***
**IB email**
The partner email.
***
**IB type**
The partnership program.
***
**Status**
The current status of a transaction. Possible values:
* **Failed** — the transaction failed due to internal technical reasons. This is a final status.
* **Invalid** — the transaction amount is `0`, the transaction won't be processed. This is a final status.
* **Processing** — the transaction is currently being credited, the status will be changed soon.
* **Transferred** — the transaction was successfully credited. This is a final status.
***
**Processed**
The date and time when a transaction was credited.
***
**Created**
The date and time when a transaction was created.
## Transaction details [#transaction-details]
To view details, click the **transaction ID** or
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Trading platform**
The trading platform name.
***
**Transaction ID**
The unique identifier of a deposit operation on a trading platform.
***
**Trading account**
The trading account number.
***
**Base currency code**
The deposit currency.
***
**Amount**
The deposit amount.
## Group list [#group-list]
View the following information for each group:
**Platform**
The trading platform name.
***
**Group**
The group of trading accounts as set on a trading platform.
***
**Trades**
The number of trades made by IB clients.
***
**Created**
The date and time when a group was created on a trading platform.
## Group details [#group-details]
To view details, click the **group name** or
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The detailed information contains the following:
**Trading platform**
The trading platform name.
***
**Transaction ID**
The unique identifier of a withdrawal operation on a trading platform.
***
**Trading account**
The account number on a trading platform.
***
**Base currency code**
The currency in which a withdrawal operation was executed.
***
**Amount**
The amount of a withdrawal operation.
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
The page is divided into the following tabs:
.
. Here you can view and customize banner settings.
**Name**
The banner name.
This value can be modified.
***
**Language**
The banner language.
This value can be modified.
***
**Size**
The banner size.
This value can be modified.
***
**Theme**
The banner theme.
This value can be modified.
***
**CDN Image URL**
The CDN URL pointing to a banner along with a banner image.
This value can be modified.
***
**Clicks**
The number of times a banner was clicked.
***
**Registrations**
The number of clients registered after clicking a banner.
***
**Click conversion rate**
The click conversion rate, which is the number of registrations divided by the number of clicks, expressed as a percentage.
***
**Created**
The date and time when a banner was created.
***
**Updated**
The date and time when a banner was last updated.
. Here you can view and customize language settings.
**Name**
The language name.
This value can be modified.
***
**Banners**
The number of banners in a language.
***
**Created**
The date and time when a language was created.
***
**Updated**
The date and time when a language was last updated.
## Size list [#size-list]
View the following information for each language:
**Size**
The size name.
***
**Banners**
The number of banners of this size.
***
**Created**
The date and time when a size was added.
## Size details [#size-details]
To access details, click the size name or
. Here you can view and customize size settings.
**Width**
The banner width.
This value can be modified.
***
**Height**
The banner height.
This value can be modified.
***
**Banners**
The number of banners in a language.
***
**Created**
The date and time when a language was created.
***
**Updated**
The date and time when a language was last updated.
## Theme list [#theme-list]
View the following information for each theme:
**Theme**
The theme name.
***
**Created**
The date and time when a theme was created.
***
**Banners**
The number of banners added to a theme.
## Theme details [#theme-details]
To access details, click the theme name or
. Here you can view and customize theme settings.
**Name**
The theme name.
This value can be modified.
***
**Banners**
The number of banners added to a theme.
***
**Created**
The date and time when a theme was created.
***
**Updated**
The date and time when a theme was last updated.
## Color list [#color-list]
View the following information for each color:
**Priority**
The priority that defines the order in which colors are listed in the B2CORE UI.
***
**Name**
The color name.
***
**Background color**
The HEX code of a background color.
***
**Foreground color**
The HEX code of a foreground color.
***
**Created**
The date and time when a color was added.
## Color details [#color-details]
To access details, click the color name or
. Here you can view and customize color settings.
**Name**
The color name.
This value can be modified.
***
**Priority**
The priority that defines the order in which colors are listed in the B2CORE UI.
This value can be modified.
***
**Background color**
The HEX code of a background color.
This value can be modified.
***
**Foreground color**
The HEX code of a foreground color.
This value can be modified.
***
**Created**
The date and time when a color was added.
***
**Updated**
The date and time when a color was last updated.
## Icon list [#icon-list]
View the following information for each color:
**Priority**
The priority that defines the order in which icons are listed in the B2CORE UI.
***
**Icon**
The thumbnail icon image.
***
**Name**
The icon name.
***
**Created**
The date and time when an icon was added.
## Icon details [#icon-details]
To access details, click the icon name or
. Here you can view and customize icon settings.
**Name**
The icon name.
This value can be modified.
***
**Priority**
The priority that defines the order in which icons are listed in the B2CORE UI.
This value can be modified.
***
**Icon**
The icon image.
***
**Created**
The date and time when an icon was added.
***
**Updated**
The date and time when an icon was last updated.
Explore the liquidity providers and FIX platforms supported by B2CONNECT
Find step-by-step instructions on most common user scenarios
Explore the B2CONNECT FIX API reference
Obtenga información sobre plataformas de trading, proveedores de pago y otras soluciones de terceros integradas con B2CORE
Obtenga una visión más profunda de la interfaz de usuario de B2CORE Back Office
Guías paso a paso para tareas y configuraciones comunes de administración en B2CORE Back Office
Implemente aplicaciones móviles de marca para iOS y Android
Identifique y resuelva problemas comunes de forma rápida y eficaz con nuestras guías
Explore the Back Office and learn how to launch your own partnership programs
Discover IB Room and join a partner plan to begin attracting new clients while earning rewards