On this page
- Introduction
On this page
- Guides
On this page
- API Keys & Access Security
On this page
- Errors
On this page
- API
On this page
- Webhooks
Virtual Cards
On this page
- Virtual Cards
Transactions
On this page
- Transactions
Cards
The Cards section explains to the user how to manage card information associated with their accounts. Users can add, update, and remove cards, as well as retrieve details such as card number and expiration date. This section provides essential functionality for handling payment methods within the application. > **Note:** Deposits made to cards must be at least 10 USD to be processed.
On this page
- Cards
Wallets
This section comprises all the API endpoints to interact with Virtual Wallet, which is the entry point for the user to make deposits on any available blockchain.
On this page
- Wallets
Holding
A Holding Wallet is a wallet that is created when the user requests to create their first virtual wallet for a given blockchain. This wallet will be used to centralize all deposits made to all virtual wallets on such blockchain. Whenever a deposit is done on a Virtual Wallet, the tokens get transferred to the Holding Wallet almost immediately.
This module allows users to get a Holding Wallet balance, information (Alias, address and id) and to withdraw tokens from it.
On this page
- Holding
Configuration
Configuration is a group of endpoints that allows users to manage and query system settings.
On this page
- Configuration
Virtual Wallets
This module offers customers the possibility to generate Virtual Wallets on various blockchain networks to send, receive and record balances and movements. It simplifies the management of digital assets and allows to establish automated rules for user flows. All the assets will be stored on a Holding Wallet that will be created when the first Virtual Wallet is created. There is only one Holding Wallet for each blockchain. When a deposit is made to one of the addresses it will accredit it instantly. These Virtual Wallets will have a virtual balance, which represents the amount of tokens that belongs to those addresses. > **Note:** Deposits made to virtual wallets must be at least 1 USD to be processed.
Virtual Wallets:
Virtual wallets are interfaces that allow users to interact with the blockchain in a more accessible and user-friendly way without the need to directly manage the private keys associated with their digital assets. This reduces the technical complexity and risks associated with the loss or mismanagement of these keys, making blockchain technology more accessible to the average user.
Virtual Wallets also have the capability to be deactivated, ensuring that they do not occupy space within the pool of available virtual wallets. This feature allows for better management and allocation of resources, ensuring that only active and necessary wallets consume system resources.
Holding Wallet:
At the core of the Virtual Wallet infrastructure is the Holding Wallet. This is a unique wallet designated for each blockchain, where all users’ digital assets are stored. The Holding Wallet is responsible for managing the actual funds and executing transactions on behalf of the Virtual Wallets. This centralized approach allows for greater security and efficiency in the management of digital assets.
Virtual Balance:
Virtual Wallets display to users a virtual balance that reflects the amount of tokens allocated to their specific addresses. However, these real assets are centrally stored in the Holding Wallet. This virtual representation allows for more agile and secure management, eliminating the need for users to interact directly with the blockchain for each operation.
Instant Transactions:
One of the key benefits of Virtual Wallets is the ability to perform instant transactions from the user’s perspective. When a deposit is made to a Virtual Wallet address, the balance is updated immediately in the user interface, providing a seamless and delay-free experience. Meanwhile, the underlying transaction on the blockchain is processed in the background and may take a bit longer to confirm, depending on network congestion and conditions.
User Flow Automation:
Virtual Wallets also offer advanced automation capabilities, allowing users to set customized rules for managing user flows. This can include setting up automatic transfers, alerts, and notifications, among other features that significantly enhance the user experience. Automation reduces the need for manual intervention, making digital asset management more efficient and secure.
Financial Management:
The Holding Wallet plays a critical role in financial management. It allows for partial withdrawal of the balance, keeping a reserve ratio against the Virtual Wallets, which facilitates the handling of user funds to generate additional benefits. It is essential to maintain a guarantee fund within the Holding Wallet to ensure that customer withdrawals are always covered. Failing to do so would result in insufficient funds errors when attempting withdrawals.
Moreover, if assets are transferred from the Holding Wallet to a Virtual Wallet, the balance of the latter will be updated even if the Holding Wallet does not have sufficient funds to cover that amount. This mechanism can create leverage by effectively using capital beyond the immediate balance of the Holding Wallet.
On this page
- Virtual Wallets
Accounts
The accounts module allows to create and manage multiple accounts, each with their own wallets. This allows to manage crypto assets in a more organized way, and also allows to create multiple wallets for a given blockchain.
On this page
- Accounts
Tokens
The Tokens module offers users information about the tokens that are currently listed and available for a given Blockchain
On this page
- Tokens
Treasury
The treasury module offers you a seamless way to integrate the functionalities of a decentralized wallet, along with the capability to send and receive your crypto assets. This module covers everything from setting up a single wallet to managing multiple ones, all without delving into the complexities of web3.0 terminology. This ensures a smoother integration and user experience overall. > **Note:** Deposits made to treasury wallets must be at least 1 USD to be processed.
On this page
- Treasury
Clients
The Management API is your all-in-one powerhouse for steering the ship of account management. It functions as a sophisticated toolkit, empowering users to seamlessly create, tweak, or bid farewell to clients, accounts, users, and access levels. Acting as a refined interface, it grants users granular control over the organizational account landscape, facilitating tasks such as spinning up new clients or tweaking existing configurations on the fly. Need to sculpt user accounts to fit the evolving needs of your operation? You got it. It doesn’t stop there – the API lets you fine-tune access levels, ensuring a secure and compliant environment. And when it’s time for some digital spring cleaning, the API’s deletion functionalities let you tidy up by retiring entities that have overstayed their welcome. It’s like having a backstage pass to the techy side of account management without the fuss.
For using this API you need to use your API key that have MANAGEMENT permission.
On this page
- Clients
Operations
Get all the operations available in the platform. You can use this information to create new credentials for your clients.
On this page
- Operations
Blockchains
Get all the blockchains available in the platform. You can use this information to create new credentials for your clients or using every other endpoints that ask for the blockchain where you want to operate.
On this page
- Blockchains
Configurations
Manage the company configurations from here, like changing the payment destination address for each blockchain.
On this page
- Configurations
Contracted Products
Get information about the products that a client has contracted within the platform. This includes resources like wallets and virtual cards. You can use this information to monitor usage, enforce limits, or as a reference when performing operations that depend on the availability or capacity of contracted services.
On this page
- Contracted Products
Management
The Management API is your all-in-one powerhouse for steering the ship of account management. It functions as a sophisticated toolkit, empowering users to seamlessly create, tweak, or bid farewell to clients, accounts, users, and access levels. Acting as a refined interface, it grants users granular control over the organizational account landscape, facilitating tasks such as spinning up new clients or tweaking existing configurations on the fly. Need to sculpt user accounts to fit the evolving needs of your operation? You got it. It doesn’t stop there – the API lets you fine-tune access levels, ensuring a secure and compliant environment. And when it’s time for some digital spring cleaning, the API’s deletion functionalities let you tidy up by retiring entities that have overstayed their welcome. It’s like having a backstage pass to the techy side of account management without the fuss.
For using this API you need to use your API key that have MANAGEMENT permission.
On this page
- Management
Clients
The Management API is your all-in-one powerhouse for steering the ship of account management. It functions as a sophisticated toolkit, empowering users to seamlessly create, tweak, or bid farewell to clients, accounts, users, and access levels. Acting as a refined interface, it grants users granular control over the organizational account landscape, facilitating tasks such as spinning up new clients or tweaking existing configurations on the fly. Need to sculpt user accounts to fit the evolving needs of your operation? You got it. It doesn’t stop there – the API lets you fine-tune access levels, ensuring a secure and compliant environment. And when it’s time for some digital spring cleaning, the API’s deletion functionalities let you tidy up by retiring entities that have overstayed their welcome. It’s like having a backstage pass to the techy side of account management without the fuss.
For using this API you need to use your API key that have MANAGEMENT permission.
On this page
- Clients
Get Supported Countries
Get the three-letter alpha-3 country code, as defined in the ISO 3166-1 spec, and ISO 3166-2 subdivision codes for supported countries.
On this page
- Get Supported Countries
Get Identification Types
Get identification types that CryptoMate will accept for individuals by region needed to create a company client.
On this page
- Get Identification Types
Get Client Requiered Documentation
Retrieves the documentation requirements and KYC checklist needed to create a company client. This endpoint returns astructured checklist that defines which identity documents are required, accepted document types, and imaging requirements (front/back) for client onboarding.
On this page
- Get Client Requiered Documentation
Create Client
Creates a new company client with KYC information. Requiered for Bank Ramp and Credit Card Ramp operations. At least one document must be submitted.
The status field represents the current lifecycle state of the client and can take one of the following values: REJECTED, PENDING, ACTIVE, or INCOMPLETE. Upon client creation, the status is set to PENDING by default. However, if the request includes "bank_ramp": false, the client will be created with ACTIVE status instead.
The INCOMPLETE status indicates that the KYC process has not been successfully completed due to missing or invalid required documentation. The REJECTED status indicates that the client has failed compliance or verification checks.
Required access level: Admin Access (Level 3)
On this page
- Create Client
Get client
The status field represents the current lifecycle state of the client and can take one of the following values: REJECTED, PENDING, ACTIVE, or INCOMPLETE. Upon client creation, the status is set to PENDING by default.
The INCOMPLETE status indicates that the KYC process has not been successfully completed due to missing or invalid required documentation. The REJECTED status indicates that the client has failed compliance or verification checks. Required access level: Admin Access (Level 3)
On this page
- Get client
On this page
- Delete client
On this page
- Get all clients
On this page
- Update client
Create provider customer
Creates a new client-provider mapping to enable ramp operations. For individual client ramp operations, set the provider field to BRIDGE in the request body.
Required access level: Admin Access (Level 3)
On this page
- Create provider customer
On this page
- Get Bank Account by ID
On this page
- Delete Bank Account
On this page
- Get All Bank Accounts
On this page
- Create US Bank Account
On this page
- Create SPEI Bank Account
On this page
- Create SEPA Bank Account
On this page
- Create PIX Bank Account
Get Pending Documents for Client
Obtain a list of document types required to complete the onboarding of a new client when the status is not ACTIVE or REJECTED.
Required access level: Admin Access (Level 1)
On this page
- Get Pending Documents for Client
Create Business Client
This endpoint allows you to create a new business client (company/organization) in the system. Business clients undergo KYB (Know Your Business) verification and require more detailed information than individual clients. Authentication
This endpoint requires API key authentication via the x-api-key header.
Overview
When creating a business client, you must provide:
Basic business information (legal name, type, industry)
Registered address (and optionally a physical address if different)
At least one associated person with control and one with signing authority
At least one tax identification document (EIN, TIN, VAT, etc.)
High-risk activity declarations
Business Formation Documentation
Ownership Information
Proof of Nature of Business
High-Risk Business Detection
If the business selects any high-risk activity other than none_of_the_above, the following fields become required:
account_purpose
source_of_funds
source_of_funds_description
estimated_annual_revenue_usd
expected_monthly_payments_usd
high_risk_activities_explanation
Conditional Fields
account_purpose = other —> account_purpose_other
conducts_money_services= true —> conducts_money_services_description, compliance_screening_explanation
telegram = true —> username
Associated Persons Requirements
At least one person must have has_control: true
At least one person must have is_signer: true
The same person can have both roles
On this page
- Create Business Client
On this page
- Get Business Industries
Get Business Identifications by Country
Returns the list of available tax identification types for businesses based on the specified country.
On this page
- Get Business Identifications by Country
Operations
Get all the operations available in the platform. You can use this information to create new credentials for your clients.
On this page
- Operations
Blockchains
Get all the blockchains available in the platform. You can use this information to create new credentials for your clients or using every other endpoints that ask for the blockchain where you want to operate.
On this page
- Blockchains
Configurations
Manage the company configurations from here, like changing the payment destination address for each blockchain.
On this page
- Configurations
Contracted Products
Get information about the products that a client has contracted within the platform. This includes resources like wallets and virtual cards. You can use this information to monitor usage, enforce limits, or as a reference when performing operations that depend on the availability or capacity of contracted services.
On this page
- Contracted Products
On this page
- API
Events
Security: For avoid that someone can call the client side simulating being a real call. The request will have a security header called X-Webhook-Key with the value set on the management configuration
On this page
- Events
Simulate
The Simulate section allows users to test and replicate transaction events within the API Layer using the account’s configured mechanisms. By simulating transactions, users can ensure that the API functions correctly and accurately reflects real-world scenarios. This section is essential for developers to validate the behavior of their applications and ensure seamless integration with the API Layer.
This feature is only available on Sandbox environment
On this page
- Simulate
Webhooks
Webhooks provide real-time notifications for API events, enabling your platform to receive timely updates about specific activities. Our system sends these notifications to a designated endpoint within your hosted environment, which is configured to adeptly receive and process them.
Leverage webhooks to promptly obtain information about critical API events. These events include occurrences external to your system, such as a new deposit in an MPC wallet or a card transaction at a point-of-sale (POS) terminal.To seamlessly receive and process webhook-enabled events, you need to establish and configure a webhook endpoint within your environment.
Each webhook request consists of a common part and a custom payload specific to the event being communicated. The common part includes standard information such as the event type, sub-type, status and a unique Id of of the notification, while the custom payload contains detailed data relevant to the specific event.
| Field | Type | Description |
| operation | String | Indicator of the operation being informed |
| sub_operation | String | Indicator of the activity of the operation being informed |
| operation_id | String | Unique identifier of the operation |
| status | String | Status of the transaction. Possible values: SUCCESS | CANCELLED | FAILED |
| reason | String | If the status is FAILED the reason of why ll appear here |
| data | Object | Variable payload of the notification. The content of this will change depending of the notification type. Complete specification of this will be inside each notification page. |
General payload example:
{"operation": "TREASURY","sub_operation": "DEPOSIT","operation_id": "ca0c57d2-b1c9-4bcd-9d5d-8d361cad6fddds1c","status": "FINISHED","data": { }}On this page
- Webhooks