Card Issuance Integration for Gateway Mode (Consumer Use)

• This guide provides the card issuance integration process for Gateway mode (Consumer use) clients, outlining the key scenario, use case, and corresponding API workflow.
• 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.

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.


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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 the id field, enter the end-customer's account ID.
  5. 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.

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.

Balance Management:The balance of a prepaid card is controlled by transferring funds between the Infinity Account and the card.

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.

  1. Step 1: Create a Budget

  2. 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.
  • 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.

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.