Card Issuance Integration for Gateway Mode (Consumer Use)
• The card issuance process will differ depending on the client's CaaS integration model (MoR or Gateway) and business model (Business use or Consumer use).
Before starting the integration, confirm your operating model: MoR (Merchant of Record) or Gateway Mode. Refer to the official documentation for guidance: Determine Your Integration Model.
Project Background
This model is designed for decentralized wallets or platforms that issue cards to their end users or customers without directly managing customer funds. The service provider uses Interlace's KYC and wallet custody services.
Use Case Example
A decentralized wallet platform issues cards to its users while Interlace handles KYC verification and wallet management.
Workflow
1. Master-Merchant Account Registration (Offline Process)
The decentralized wallet provider (master-merchant) must register at https://distributor.interlace.money and submit KYC and KYB information.
2. End-Customer Account Registration
2.1 Create an account
Use the "Create an Account" API to create an account.
- Endpoint: Create an Account (v1)
2.2 Submit KYC for the account
Submit the end-customer's KYC information for verification.
- Endpoint: Submit Account KYC (v2)
- Options:
- Share KYC information using a SumSub reusable token (SumSub Account KYC).
- Submit KYC information directly through the Account API.
- Interlace Review: Interlace will handle the KYC review process.
2.3 Initialize the account's settings
Once KYC is approved, use the "Account Initialization" API to enable CryptoConnect wallets and the Infinity account.
- Endpoint: Account Initialization (v2)
3. Deposit Fiat/Crypto to Infinity Account
All card-related fees will be deducted from the Infinity Account. Therefore, ensure your end-customer's Infinity Account is funded directly, either via fiat or cryptocurrency. Note that the Infinity Account only supports USD; any crypto deposits will be converted to USD before being credited.
3.1 Deposit Fiat to Infinity Account
If funding an end-customer's Infinity Account with fiat, complete the transfer through your integrated merchant portal.
3.2 Deposit Crypto to End-Customer's Infinity Account
If funding an end-customer's Infinity Account with cryptocurrency, you must first obtain wallet addresses. Deposited crypto (e.g., USDC or USDT) will be converted to USD before being credited to your end-customer's Infinity Account.
-
Step 1: Get a wallet address
In Gateway Mode, once KYC is approved, a set of master wallets is provisioned by default. Use the "List all wallets" API to fetch wallet details, including balance and available addresses.- Endpoint: List all wallets (v2)
-
Step 2 (Optional): Generate an additional address
If no address is available, or if you need an address on a different blockchain, use the "Create an address" API to generate a new one.- Endpoint: Create a blockchain address (v2)
-
Step 3 (Optional): Transfer between CryptoConnect Wallets
Move stablecoins from an End-Customer’s Wallet to the Master Merchant Wallet. This step is optional and provides flexibility in how funds are managed. You may choose to move balances at CryptoConnect Wallet layer (in stablecoins) to collect transaction fees.- Endpoint: Create a transfer (v1)
- Body parameters:
"source": "CRYPTO ASSETS"
"destination": "CRYPTO ASSETS"
-
Step 4: Deposit crypto to End-Customer's Infinity Account
After receiving the deposit webhook notification from Interlace, use the "Create a transfer" API to move USDC or USDT from an End-Customer's Wallet to the End-Customer's Infinity Account. The system will convert the crypto to USD before the funds are credited.- Endpoint: Create a transfer (v1)
- Body parameters:
"source": "CRYPTO ASSETS"
"destination": "INFINITY SUBACCOUNT"
- For the
type
field, use the default value. For theid
field, enter the end-customer's account ID.
-
Step 5 (Optional): Transfer between Infinity Accounts
Move funds from the End-Customer's Infinity Account to the Master Merchant Infinity Account. This step is optional as well. You may choose to move balances at Infinity Account layer (in USD) to collect transaction fees.- Endpoint: Create a transfer (v1)
- Body parameters:
"source": "INFINITY SUBACCOUNT"
"destination": "INFINITY ACCOUNT"
4. Create Cardholder
Cardholder creation is mandatory for all card issuance.
- Endpoint: Create a cardholder (v2)
- Body parameter:
"programType": "CONSUMER USE - GATEWAY"
Notes:
- After the cardholder is created, approval from the issuing bank is required before issuing a card.
- To stay informed about cardholder status updates, please subscribe to our webhook. This will ensure you receive real-time notifications whenever a status change occurs.
- OTP (One-Time Password) will be sent to the cardholder for identity verification during sensitive operations such as card activation or transaction authorization.
5. Create Card
First, decide which type of card you want to issue: prepaid card or budget card.
5.1 Create a Prepaid Card
Use the "Create Infinity Card" API to directly create a prepaid card.
- Endpoint: Create Infinity Card (v2)
- Body parameter:
"type": "PrepaidCard"
Balance Management:The balance of a prepaid card is controlled by transferring funds between the Infinity Account and the card.
- Transfer funds into the card: Use the Infinity Card Transfer In API (v1)
- Transfer funds out of the card: Use the Infinity Card Transfer Out API (v1)
5.2 Create a Budget Card
To create a budget card, you must first set up a budget using the "Budget" API, and then create cards under that budget with the "Create Infinity Card" API.
-
Step 1: Create a Budget
- Endpoint: Create a budget (v1)
-
Step 2: Create a Budget Card
- Endpoint: Create Infinity Card (v2)
- Body parameter:
"type": "BudgetCard"
- Required: Include the
budgetId
in the request body when creating a budget card.
Balance & Spending Control:
- The balance of a budget is managed through transfers between the Infinity Account and the budget.
- Increase the budget balance API (v1) – to allocate funds from the Infinity Account to the budget.
- Decrease the budget balance API (v1) – to return funds from the budget back to the Infinity Account.
- A budget card itself does not hold funds. Its available spending is strictly tied to the budget balance and governed by the velocity control (spending limits) configured for that budget.
- Endpoint: Velocity Control (v1)
Notes:
- Virtual and physical cards must be created separately. Once issued as a virtual card, it cannot be converted into a physical card. For details on physical card issuance, see Issuing Physical Cards.
- This step can only be performed after the cardholder creation has been approved.
Updated about 12 hours ago