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
Virtual Cards
On this page
- Virtual Cards
Create virtual card
On this page
- Create virtual card
Get virtual card
Get all the information of a particular virtual card
Required access level: Read-Only Access (Level 1)
On this page
- Get virtual card
List virtual cards
Returns all active cards.
Required access level: Read-Only Access (Level 1)
On this page
- List virtual cards
Delete virtual card
Remove and disable the selected card. After this action the specified card will be permanently disable and the action cannot be undone.
Required access level: Operational Access (Level 2)
On this page
- Delete virtual card
Get Top Up wallets
Get all top-up wallets of a particular virtual card, this is only available for cards of type TOP_UP
Required access level: Read-Only Access (Level 1)
On this page
- Get Top Up wallets
Get PAN (html)
Get the PAN of the selected card as a link that needs to be embedded. The link generated can be open only once and it's time to live is of 60 seconds once opened.
Required access level: Operational Access (Level 2)
On this page
- Get PAN (html)
Update virtual card limits
Updates the spending limits of a particular virtual card
Required access level: Operational Access (Level 2)
On this page
- Update virtual card limits
Update virtual card email
Required access level: Operational Access (Level 2)
On this page
- Update virtual card email
Update virtual card phone
Required access level: Operational Access (Level 2)
On this page
- Update virtual card phone
Override virtual balance
Override the virtual balance of a wallet associated with a virtual card. If the card already has a virtual balance, the specified amount will replace the existing balance. Only positive values and zero are allowed; negative values are not permitted.
This only works for virtual cards where the approval method is TOP_UP.
Required access level: Operational Access (Level 2)
On this page
- Override virtual balance
Unblock card
This endpoint reverses the BLOCKED status of a card and reactivates it for use. Cards may be blocked because they exceeded the maximum number of attempts for entering incorrect PIN, CVV, or expiry date information.
Required access level: Operational Access (Level 2)
Warning:
Once this method is successfully called, the card's status will be set to
ACTIVE
, regardless of its previous status or whether it was unblocked.
On this page
- Unblock card
3DS configuration
During a transaction authentication, the default option to verify the cardholder’s identity is to send a one-time password (OTP) via SMS. It can opt in for 3DS configuration.
By enabling 3DS Configuration, you can decide the method to receive a one-time password (OTP) via SMS or via Webhook (using the URL provide by the webhook configuration). This one-time password (OTP) is sent and is need it to validate the 3DS Challenge using the 3DS Authentication Respond endpoint.
Required access level: Operational Access (Level 2)
On this page
- 3DS configuration
3DS authentication respond
When an online transaction is triggered, the cardholder may or may not need to authenticate their identity as an extra step to ensure this transaction is 3DS certified. Use this endpoint to respond to a notification which we sent you when a 3DS authentication for your card. You need to response using the code with this endpoint within 5 minutes from the transaction timestamp otherwise will be failed.
Required access level: Operational Access (Level 2)
On this page
- 3DS authentication respond
Freeze or Unfreeze card
This endpoint allows for the freezing or unfreezing of the card.
Required access level: Admin Access (Level 3)
On this page
- Freeze or Unfreeze card
Update PIN
This endpoint allows to update the PIN for the specific card. The PIN must follow these rules:
Length: 4–12 digits.
Non-consecutive identical digits: No more than two identical digits in non-consecutive positions (e.g., 124758).
Consecutive repeated digits: No more than two repeated digits in a row (e.g., 112441).
Required access level: Admin Access (Level 3)
On this page
- Update PIN
Reissue Card
Warning:
This endpoint allows you to generate a new number, CVV and expiry date for a given card.
When a card with a givencardID is lost, damaged or suspected of fraudulent use, this endpoint will generate a new number, CVV and expiry date for your card with the same cardID.
If the card was previously tokenized and provisioned to a mobile wallet (e.g. Google Pay), the newly created card should remain linked to the mobile wallet. However, for subscription-based services, the cardholder may need to re-enter the new card details and verify the card again. While the 16-digit Number, CVV, and expiry date will change, the cardIdremains the same as well the balance, movements and other information will remain unchanged.
Required access level: Admin Access (Level 3)
On this page
- Reissue Card
Transactions
On this page
- Transactions
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
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