BSICARDS API Documentation

Welcome to the BSICARDS API. Integrate card issuance capabilities into your application.

Features: Create MasterCard/Visa/Digital cards - Fund cards - Track transactions - Webhooks - Admin endpoints

Tech Support: Contact on Telegram @bsicards

Authentication

Include these headers in every request:

publickey: pk_test_16tl64hqs6fazd9q5j96 secretkey: sk_test_izaov8rek6e04gu8d0j9 Base URL: https://cards.bsigroup.tech/api/

MasterCard Issuance

Create and manage MasterCard virtual cards with 3DS authentication and GPay/Apple Pay support.

Create Card

POSTDeprecated/newcard
https://cards.bsigroup.tech/api/newcard
{"useremail":"test@bsigroup.tech","nameoncard":"John Doe","pin":"1234"}

Get All Cards

POSTDeprecated/getallcard
https://cards.bsigroup.tech/api/getallcard
{"useremail":"test@bsigroup.tech"}

Get Pending

POSTDeprecated/getpendingcards
https://cards.bsigroup.tech/api/getpendingcards
{"useremail":"test@bsigroup.tech"}

Get Card

POSTDeprecated/getcard
https://cards.bsigroup.tech/api/getcard
{"useremail":"test@bsigroup.tech","cardid":"card_id"}

Transactions

POSTDeprecated/getcardtransactions
https://cards.bsigroup.tech/api/getcardtransactions
{"useremail":"test@bsigroup.tech","cardid":"card_id"}

Change Pin

POSTDeprecated/changecardpin
https://cards.bsigroup.tech/api/changecardpin
{"useremail":"test@bsigroup.tech","cardid":"card_id","pin":"5678"}

Freeze Card

POSTDeprecated/freezecard
https://cards.bsigroup.tech/api/freezecard
{"useremail":"test@bsigroup.tech","cardid":"card_id"}

Unfreeze Card

POSTDeprecated/unfreezecard
https://cards.bsigroup.tech/api/unfreezecard
{"useremail":"test@bsigroup.tech","cardid":"card_id"}

Fund Card

POSTDeprecated/fundcard
https://cards.bsigroup.tech/api/fundcard
{"useremail":"test@bsigroup.tech","cardid":"card_id","amount":"50.00"}

Min: $10

Visa Card Issuance

Note: Requires KYC (national ID + photo)

Create Card

POSTDeprecated/visanewcard
https://cards.bsigroup.tech/api/visanewcard

multipart/form-data: useremail, nameoncard, pin, nationalid[file], photo[file]

Get All

POSTDeprecated/visagetallcard
https://cards.bsigroup.tech/api/visagetallcard
{"useremail":"test@bsigroup.tech"}

Get Pending

POSTDeprecated/visagetpendingcards
https://cards.bsigroup.tech/api/visagetpendingcards
{"useremail":"test@bsigroup.tech"}

Get Card

POSTDeprecated/visagetcard
https://cards.bsigroup.tech/api/visagetcard
{"useremail":"test@bsigroup.tech","cardid":"card_id"}

Fund Card

POSTDeprecated/visafundcard
https://cards.bsigroup.tech/api/visafundcard
{"useremail":"test@bsigroup.tech","cardid":"card_id","amount":"50.00"}

Digital Wallet Cards

Virtual and physical cards with 3DS, GPay/Apple Pay support.

Create Virtual

POST/digitalnewvirtualcard
https://cards.bsigroup.tech/api/digitalnewvirtualcard
{"useremail":"test@bsigroup.tech","firstname":"John","lastname":"Doe","dob":"1979-12-17","address1":"128 city road","postalcode":"ec1v2nx","city":"london","country":"GB","state":"london","countrycode":"44","phone":"911266016115"}

Create Physical

POST/digitalnewphysicalcard
https://cards.bsigroup.tech/api/digitalnewphysicalcard

Same fields as virtual card

Activate Physical

POST/activatedigital
https://cards.bsigroup.tech/api/activatedigital
{"useremail":"test@bsigroup.tech","activationcode":"0059","cardid":"crd-xxx"}

Check 3DS

POST/check3ds
https://cards.bsigroup.tech/api/check3ds
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Check Wallet OTP

Get OTP for GPay/ApplePay verification

POST/checkwallet
https://cards.bsigroup.tech/api/checkwallet
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Approve 3DS

POST/approve3ds
https://cards.bsigroup.tech/api/approve3ds
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx","eventId":"3ds-xxx"}

Get All

POST/getalldigital
https://cards.bsigroup.tech/api/getalldigital
{"useremail":"test@bsigroup.tech"}

Get Card

POST/getdigital
https://cards.bsigroup.tech/api/getdigital
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Transactions

POST/digitaltransactions
https://cards.bsigroup.tech/api/digitaltransactions
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Block Card

POST/blockdigital
https://cards.bsigroup.tech/api/blockdigital
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Unblock Card

POST/unblockdigital
https://cards.bsigroup.tech/api/unblockdigital
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Terminate Card

POST/terminatedigital
https://cards.bsigroup.tech/api/terminatedigital
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Loyalty Points

POST/digitalcardpoints
https://cards.bsigroup.tech/api/digitalcardpoints
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Redeem Points

POST/redeempoints
https://cards.bsigroup.tech/api/redeempoints
{"useremail":"test@bsigroup.tech","cardid":"crd-xxx"}

Digital Visa Wallet

Digital Visa wallet APIs for card lifecycle, funding, OTP retrieval, and webhook events.

Auth: All endpoints require publickey and secretkey headers, except webhook callback.

Create Card

POST/digital-wallet-visa/create-card
https://cards.bsigroup.tech/api/digital-wallet-visa/create-card
{"useremail":"test@bsigroup.tech","firstname":"John","lastname":"Doe"}

Creates a virtual digital visa card. Issuance fee applies.

Fund Card

POST/digital-wallet-visa/fund-card
https://cards.bsigroup.tech/api/digital-wallet-visa/fund-card
{"useremail":"test@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j","amount":50.00}

Fee: $1 + 1.5%. Provider is funded with requested amount only.

Block Card

POST/digital-wallet-visa/block-card
https://cards.bsigroup.tech/api/digital-wallet-visa/block-card
{"useremail":"test@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Unblock Card

POST/digital-wallet-visa/unblock-card
https://cards.bsigroup.tech/api/digital-wallet-visa/unblock-card
{"useremail":"test@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Get Card

POST/digital-wallet-visa/get-card
https://cards.bsigroup.tech/api/digital-wallet-visa/get-card
{"useremail":"test@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Get All Cards

POST/digital-wallet-visa/get-all-cards
https://cards.bsigroup.tech/api/digital-wallet-visa/get-all-cards
{"useremail":"test@bsigroup.tech"}

Get OTP

POST/digital-wallet-visa/get-otp
https://cards.bsigroup.tech/api/digital-wallet-visa/get-otp
{"useremail":"test@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Returns the latest OTP received in the last few minutes for this card.

Webhook

POST/digital-wallet-visa/webhook
https://cards.bsigroup.tech/api/digital-wallet-visa/webhook
{"data":{"otp":"166559","cardId":"cmmnxo9fv991fh701n1otdfyv"},"event":"CARD_OTP_CODE","timestamp":"2026-03-16T18:45:24.843Z"}

Provider callback endpoint; stores card OTP events.

Reseller Digital Visa Cards

Dedicated merchant endpoints for issuing and managing Digital Visa cards under reseller credentials.

Create Card

POST/merchant/create-card
https://cards.bsigroup.tech/api/merchant/create-card
{"useremail":"merchantuser@bsigroup.tech","firstname":"John","lastname":"Doe"}

Deducts 1 from Card Balance and $5 + ($1 + 1.5%) from Visa Fund balance on successful card issuance.

Fund Card

POST/merchant/fund-card
https://cards.bsigroup.tech/api/merchant/fund-card
{"useremail":"merchantuser@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j","amount":50.00}

Minimum amount: 4.99. Fee charged from Visa Fund: $1 + 1.5%. Provider receives requested amount only.

Get All Cards

POST/merchant/getalldigitalvisa
https://cards.bsigroup.tech/api/merchant/getalldigitalvisa
{"useremail":"merchantuser@bsigroup.tech"}

Get Card

POST/merchant/getdigitalvisa
https://cards.bsigroup.tech/api/merchant/getdigitalvisa
{"useremail":"merchantuser@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Returns local card details and provider card/pan/transactions response.

Block Card

POST/merchant/block-card
https://cards.bsigroup.tech/api/merchant/block-card
{"useremail":"merchantuser@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Unblock Card

POST/merchant/unblock-card
https://cards.bsigroup.tech/api/merchant/unblock-card
{"useremail":"merchantuser@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Get OTP

POST/merchant/get-otp
https://cards.bsigroup.tech/api/merchant/get-otp
{"useremail":"merchantuser@bsigroup.tech","cardid":"cmmut1w0q002zc8011vjx4s2j"}

Returns latest OTP received for the card within the recent 2-minute window.

Reseller Digital Master Cards

Endpoints for reseller partners to manage digital wallet cards. All endpoints are available on the reseller API endpoint.

Create Virtual Card

POST/digitalnewvirtualcard
https://resellerurl/digitalnewvirtualcard
{"useremail":"test11@bsigroup.com","firstname":"John","lastname":"Doe","dob":"1979-12-17","address1":"128 city road","postalcode":"ec1v2nx","city":"london","country":"GB","state":"london","countrycode":"44","phone":"93266016111"}

Check 3DS

POST/check3ds
https://resellerurl/check3ds
{"useremail":"nash821@xenio.in","cardid":"crd-687f4d1c-a294-4fa6-a66c-f2ba1a4e724f"}

Check Wallet OTP

Get OTP for GPay/ApplePay verification

POST/checkwallet
https://resellerurl/checkwallet
{"useremail":"nash821@xenio.in","cardid":"crd-687f4d1c-a294-4fa6-a66c-f2ba1a4e724f"}

When users add their card manually to GPay/ApplePay for verification, they need to select Email OTP. This endpoint retrieves the OTP which you can send via email or display on screen.

Approve 3DS

POST/approve3ds
https://resellerurl/approve3ds
{"useremail":"nash821@xenio.in","cardid":"crd-687f4d1c-a294-4fa6-a66c-f2ba1a4e724f","eventId":"3ds-3f41728f-cfd1-4cca-8404-bc8f5e9d71d6"}

Get All Digital Cards

POST/getalldigital
https://resellerurl/getalldigital
{"useremail":"test11@bsigroup.com"}

Get Digital Card

POST/getdigitalcard
https://resellerurl/getdigitalcard
{"useremail":"test11@bsigroup.com","cardid":"crd-fdb421af-4fd9-4f51-9a2c-1c1fe916e929"}

Create Addon Card

POST/createmerchantaddon
https://resellerurl/createmerchantaddon
{"useremail":"test11@bsigroup.com","cardid":"crd-fdb421af-4fd9-4f51-9a2c-1c1fe916e929"}

Block Digital Card

POST/blockdigital
https://resellerurl/blockdigital
{"useremail":"test11@bsigroup.com","cardid":"crd-ec1b9481-a6b8-44bf-8c17-8eb75e7b83b1"}

Unblock Digital Card

POST/unblockdigital
https://resellerurl/unblockdigital
{"useremail":"test11@bsigroup.com","cardid":"crd-ec1b9481-a6b8-44bf-8c17-8eb75e7b83b1"}

Terminate Card

POST/terminatedigital
https://resellerurl/terminatedigital
{"useremail":"test11@bsigroup.com","cardid":"crd-ec1b9481-a6b8-44bf-8c17-8eb75e7b83b1"}

Note: Reseller credentials are different from standard API keys. Ensure you use the correct URL for your reseller account and share the API keys with your merchants.

Administrator Endpoints

Security: Requires admin authentication

Wallet Balance

GET/admin/wallet
https://cards.bsigroup.tech/api/admin/wallet

Returns wallet balance

Deposits

GET/admin/deposits
https://cards.bsigroup.tech/api/admin/deposits

All deposits

Transactions

GET/admin/transactions
https://cards.bsigroup.tech/api/admin/transactions

All transactions

Visa Cards

GET/admin/visacards
https://cards.bsigroup.tech/api/admin/visacards

All Visa cards

Mastercards

GET/admin/mastercards
https://cards.bsigroup.tech/api/admin/mastercards

All Mastercards

Digital Cards

GET/admin/digitalcards
https://cards.bsigroup.tech/api/admin/digitalcards

All digital cards

Reseller Balance

GET/merchant/merchantbalance
https://cards.bsigroup.tech/api/merchant/merchantbalance

Reseller Balance

Reseller Cards

GET/merchant/merchantcards
https://cards.bsigroup.tech/api/merchant/merchantcards

Reseller cards

Reseller Transactions

GET/merchant/merchanttransactions
https://cards.bsigroup.tech/api/merchant/merchanttransactions

Reseller Transactions

Wallet as a Service API

Multi-chain wallet endpoints for creating, managing, and transacting with cryptocurrency wallets. All endpoints require publickey and secretkey headers.

Supported Coins

  • USDT-BEP20 (BSC)
  • DAI (BSC)
  • BNB (BSC)
  • USDC-Polygon (Polygon)
  • USDT-TRC20 (TRON)
  • TRON (TRX)
  • BTC
  • SOL (Solana)
  • XRP

Amount Units & Decimals for Send/Withdraw

Important: The amount parameter in send/withdraw endpoints must be specified in the smallest unit for each coin, not in USD. See the table below:

Coin Network Unit Decimals Example (1 Coin)
BTCBitcoinSatoshi8100000000
ETHEthereumWei181000000000000000000
BNBBSCWei181000000000000000000
USDT-BEP20BSCToken Unit61000000
DAIBSCToken Unit181000000000000000000
USDC-PolygonPolygonToken Unit61000000
USDT-TRC20TRONToken Unit61000000
TRON (TRX)TRONSun61000000
SOLSolanaLamport91000000000
XRPRippleDrop61000000

For example, to send 1 USDT-TRC20, set amount to 1000000. To send 0.5 BTC, set amount to 50000000.
Always use the smallest unit for the coin. Do not use USD values.

Note: The privateKey, mnemonic, and xpub fields (if present in the response) are only displayed once at the time of address creation. They cannot be retrieved again for security reasons. Please store them securely.

1. Create Address

POST /api/wallet/create-address
{
  "useremail": "user@example.com",
  "coin": "USDT-BEP20"
}

Response:

{
    "uuid": "36056904-224c-43f0-99bc-fe0252b81531",
    "address": "0x.....",
    "coin": "USDC-BEP20",
    "useremail": "user@example.com",
    "mnemonic": "target .......",
    "private_key": "0x....."
}

BTC-Lightning Error Example:

{
    "error": "Wallet creation failed: missing address, mnemonic, or private key"
}

2. Get All Deposit Addresses

GET /api/wallet/addresses

Query: useremail

Response:

[
  {
    "uuid": "...",
    "address": "...",
    "coin": "USDT-BEP20",
    "created_at": "..."
  }
]

3. Get Specific Deposit Address

GET /api/wallet/address/{uuid}

Query: useremail

Response:

{
  "uuid": "...",
  "address": "...",
  "coin": "USDT-BEP20",
  "created_at": "..."
}

4. Get Balance

GET /api/wallet/balance

Query: uuid or address, useremail

Response:

{
  "balances": {
    "USDT-BEP20": "...",
    "BNB": "..."
  }
}

5. Get Withdrawal Fees

POST /api/wallet/withdrawal-fee
{
  "uuid": "...",
  "to_address": "...",
  "amount": "1.0",
  "coin": "USDT-BEP20"
}

Response:

{
  "total_gas_fees": "...",
  "base_coin": "BNB",
  "base_balance": "..."
}

6. Withdraw

POST /api/wallet/withdraw
{
  "uuid": "...",
  "to_address": "...",
  "amount": "1.0",
  "coin": "USDT-BEP20",
  "useremail": "user@example.com"
}

Response:

{
  "tx_hash": "...",
  "status": "pending"
}

Exchange - Currencies

GET /api/swap/currencies

Returns a list of supported currencies for exchange.

Example Request

GET /api/swap/currencies HTTP/1.1
Host:cards.bsigroup.tech
Headers: publickey and secretkey

Exchange - Status

GET /api/swap/status

Checks the status of the exchange service.

Example Request

GET /api/swap/status?transaction_id=12345 HTTP/1.1
Host:cards.bsigroup.tech
Headers: publickey and secretkey

Response

{
    "created_at": "2026-03-25 08:33:03",
    "status": "wait",
    "transaction_id": "c69c3819f5d5d9",
    "coin_from": "BTC",
    "coin_to": "USDT",
    "deposit_amount": "0.5",
    "withdrawal_amount": "34899.28510624",
    "rate": "69800.570212495914022",
    "fee": "0",
    "deposit": "bc1q3ltpcsh9w3f7lwpt7vtpe6plr5p4r8400yl25v",
    "deposit_extra_id": null,
    "withdrawal": "THUnQJKECXP82EjijVVHpUwFMd3Y3vGBQJ",
    "withdrawal_extra_id": null,
    "return": null,
    "return_extra_id": null,
    "final_amount": "34899.28510624",
    "hash_in": null,
    "hash_out": null,
    "rating": null,
    "real_deposit_amount": "0.5",
    "real_withdrawal_amount": "34899.28510624",
    "startedAt": null,
    "finishedAt": null,
    "type": "cex",
    "is_float": 0,
    "coin_from_network": "BTC",
    "coin_to_network": "TRC20",
    "revert": 0,
    "extra_fee_from": "0",
    "extra_fee_to": "0",
    "return_amount": null,
    "return_hash": null,
    "return_coin": null,
    "return_network": null,
    "confirmations": 0,
    "expired_at": 1774422183,
    "aml_error_signals": [],
    "error_code": "",
    "coin_from_contract_address": null,
    "coin_to_contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
    "execution_time": null,
    "is_available": false,
    "coin_from_explorer_url": "https://blockchair.com/bitcoin/transaction/",
    "coin_to_explorer_url": "https://tronscan.org/#/transaction/",
    "coin_from_smart_contract_explorer_url": null,
    "coin_to_smart_contract_explorer_url": "https://tronscan.org/#/token20/",
    "coin_from_icon": "https://images.letsexchange.io/coins/9489b9506caf28a7d22423c0bf908937.svg",
    "coin_from_extra_name": "",
    "coin_to_icon": "https://images.letsexchange.io/coins/092c3f1c9ac951f1bee4db4e836b979a.svg",
    "coin_to_extra_name": "",
    "coin_from_name": "Bitcoin",
    "coin_to_name": "TetherUS",
    "coin_from_additional_get_info": "",
    "coin_from_additional_send_info": "",
    "coin_to_additional_get_info": "",
    "coin_to_additional_send_info": "",
    "need_confirmations": 2,
    "email": "*******",
    "kyc_url": null,
    "kyc_email": null,
    "internal_transafer_refund": false,
    "return_network_code": null,
    "return_explorer_url": null,
    "profit": null,
    "bonus": "0.00000000"
}

Exchange - Get Estimate

POST /api/swap/estimate

Get an estimated amount for a currency exchange.

Example Request

POST /api/swap/estimate HTTP/1.1
Host:cards.bsigroup.tech
Headers: publickey and secretkey
Content-Type: application/json

{
    "from" :"BTC",
    "to" : "USDT-TRC20",
	"network_from" : "BTC",
	"network_to" : "TRC20",
    "amount" : 0.5

}

Response

{
    "deposit_min_amount": "0.001",
    "deposit_max_amount": "650",
    "min_amount": "0.001",
    "max_amount": "650",
    "amount": "35121.03542425",
    "fee": "0",
    "rate": "70244.070848512802913",
    "profit": "0",
    "withdrawal_fee": "1.00000000",
    "extra_fee_amount": "0",
    "rate_id": "",
    "rate_id_expired_at": 0,
    "applied_promo_code_id": null,
    "networks_from": [],
    "networks_to": [],
    "deposit_amount_usdt": "35476.28500000",
    "expired_at": "1774425318542",
    "base_amount": "35121.03542425"
}

Exchange - Create Exchange

POST /api/swap/create

Initiate a new currency exchange transaction.

Example Request

POST /api/swap/create HTTP/1.1
Host:cards.bsigroup.tech
Headers: publickey and secretkey
Content-Type: application/json

{
  "coin_from": "BTC",
  "coin_to": "USDT-TRC20",
  "network_from": "BTC",
  "network_to": "TRC20",
  "deposit_amount": 0.5,
  "withdrawal": "THUnQJKECXP82EjijVVHpUwFMd3Y3vGBQJ",
  "withdrawal_extra_id": "NA"// for those needing memo field.

}

Response

{
    "is_float": false,
    "status": "wait",
    "type": "cex",
    "coin_from": "BTC",
    "coin_to": "USDT",
    "deposit_amount": "0.5",
    "withdrawal": "THUnQJKECXP82EjijVVHpUwFMd3Y3vGBQJ",
    "withdrawal_extra_id": null,
    "return": null,
    "return_extra_id": null,
    "extra_fee_from": 0,
    "extra_fee_to": 0,
    "coin_from_network": "BTC",
    "coin_to_network": "TRC20",
    "deposit": "bc1qme7vudpf0uczpvy2n3gng44cdll54tyarr7j6e",
    "deposit_extra_id": null,
    "withdrawal_amount": "34766.26738966",
    "rate": "69534.534779335905914",
    "fee": "0",
    "revert": false,
    "transaction_id": "c69c39472dda17",
    "expired_at": 1774427002,
    "created_at": "2026-03-25 09:53:22",
    "execution_time": null,
    "is_available": true,
    "coin_from_explorer_url": "https://blockchair.com/bitcoin/transaction/",
    "coin_to_explorer_url": "https://tronscan.org/#/transaction/",
    "coin_from_smart_contract_explorer_url": null,
    "coin_to_smart_contract_explorer_url": "https://tronscan.org/#/token20/",
    "coin_from_extra_name": "",
    "coin_to_extra_name": "",
    "coin_from_name": "Bitcoin",
    "coin_to_name": "TetherUS",
    "coin_from_additional_get_info": "",
    "coin_from_additional_send_info": "",
    "coin_to_additional_get_info": "",
    "coin_to_additional_send_info": "",
    "need_confirmations": 2,
    "confirmations": 0,
    "email": "*******",
    "aml_error_signals": [],
    "kyc_url": null,
    "kyc_email": null,
    "rating": null,
    "error_code": "",
    "bonus": "0.00000000"
}

SDKs

Error Codes

200 OK

Success

400 Bad Request

Invalid parameters

401 Unauthorized

Invalid credentials

404 Not Found

Resource not found

422 Unprocessable Content

Response Has Error

Support

Email: cs@bsigroup.tech

Website: www.bsigroup.tech