lanocard
登录 注册

代理商 API

代理商 API 文档

Admin-enabled resellers add USD fund, then create Mastercard and Visa virtual cards, top them up, freeze or unfreeze them, and read live balance and transactions through the API. Mastercard: if your deposit covers the card amount plus issue fee, POST /cards.php accepts the order. When issuer fund can cover it, the card is created immediately; if issuer fund is low, the order stays processing until issuance is available or a card number is delivered. Visa: minimum $5. The order is created instantly and usually stays processing for about 30 minutes. Then you deliver that number to your user with POST /card-deliver.php. After a Visa or Mastercard PAN exists on the card, top-up, freeze, unfreeze, balance, and transactions use the same live issuer path. You cannot use more than you deposited.

API access is off until an admin enables reseller on your user. Then your dashboard shows Mastercard and Visa API fund.

Mastercard

Auto-create from $10

UK-BIN2560 · England · issue fee $3.00

Visa

Min $5 · Instant create · ~30 min processing

BIN: 493875 · United States · issue fee $3.00

Card amount

Visa $5 / MC $10–$10,000

USD load on the card. Charged from your API fund plus issue fee.

Authentication

Send your secret API key on every request. Base URL: https://lanocard.com/api/v1

Authorization: Bearer lc_live_xxxxxxxx
# or raw key
Authorization: lc_live_xxxxxxxx
# or
X-Api-Key: lc_live_xxxxxxxx

Keep the key server-side. Copy the full lc_live_ key (quotes and extra spaces are stripped). Token and X-Api-Key also work. Rotating it in admin immediately invalidates the previous key.

Method Endpoint Use
GET/balance.phpYour API deposit / usable fund
GET/bins.phpReseller card products (includes UK-BIN2560)
POST/cards.phpCreate Mastercard or Visa (cardType, optional bin)
GET/cards.phpList cards or one card (live if ?token=)
GET/card-balance.phpReal-time card AVAILABLE
GET/card-transactions.phpReal-time card ledger
POST/card-topup.phpTop up card from API fund
POST/card-freeze.phpFreeze or unfreeze an owned card
POST/card-cancel.phpCancel a processing order and refund API fund
GET/card-deliver.phpPending user orders waiting for a card number
POST/card-deliver.phpDeliver an already-created card number to a user order
—WebhooksNot offered. Poll card status (see Webhooks & OTP)

GET /api/v1/balance.php

Returns your deposit, usable limit, and current fees.

curl -s https://lanocard.com/api/v1/balance.php \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "ok": true,
  "currency": "USD",
  "balanceUsd": 120.00,
  "depositUsd": 120.00,
  "usableUsd": 120.00,
  "canCreate": false,
  "brand": "mastercard",
  "bin": "UK-BIN2560",
  "bins": [{"code":"UK-BIN2560","brand":"mastercard","area":"England","default":true}],
  "issueFeeUsd": 3,
  "minAmountUsd": 10,
  "maxAmountUsd": 10000}

GET /api/v1/bins.php

Lists reseller card products. Mastercard default is UK-BIN2560 (England). Pass the code as bin on POST /cards.php.

curl -s https://lanocard.com/api/v1/bins.php \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "ok": true,
  "defaultBin": "UK-BIN2560",
  "bins": [
    {"code": "UK-BIN2560", "brand": "mastercard", "area": "England", "default": true}
  ]
}

POST /api/v1/cards.php

Creates a Mastercard by default. Debits amountUsd + issue fee from your fund. There is no KYC card-count limit on reseller creates. When issuance is available, the card is purchased immediately and comes back active (or processing only while the issuer finishes). If issuer fund is low, the order is still accepted and stays processing until issuance is available or you deliver a number with POST /card-deliver.php. After the card is active, top-up and transaction history work on that token. Send cardType: "visa" for Visa (see the Visa section below).

curl -s -X POST https://lanocard.com/api/v1/cards.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"amountUsd\":10,\"bin\":\"UK-BIN2560\"}"
{
  "ok": true,
  "orderNo": "ORD-20261001-XXXXXXXXXX",
  "token": "ABC…",
  "cardStatus": "active",
  "cardNumber": "5324xxxxxxxxxxxx",
  "last4": "1234",
  "expiry": "12/29",
  "cvv": "123",
  "amountUsd": 10,
  "issueFeeUsd": 3,
  "totalPayUsd": 13,
  "balanceUsd": 108.00
}

Errors: 401 invalid key, 402 only if your deposit is too low (issuer fund being empty does not reject the order), 400 if amount is under $10 (Mastercard) or over $10,000. A processing card can be completed with POST /card-deliver.php.

Visa — POST /api/v1/cards.php

Same Bearer lc_live_… key as Mastercard. Send cardType: "visa" (or brand: "visa"). If your integration cannot send a card type, use the Visa base URL https://lanocard.com/api/v1/visa/ — every card created there is Visa, and balance, top-up, freeze and deliver work the same. Minimum card balance is $5.00 (you can purchase from $5). Amounts under $5.00 return 400. The order is created instantly; processing usually takes about 30 minutes. Your API fund is still debited for amount + Visa issue fee ($3.00). The pending Visa order appears on your reseller dashboard (card list + Deliver user card) and on Lanocard admin Pending Portal so staff can paste the PAN. After the card is active, you deliver that number to your end-user with POST /card-deliver.php. Then GET /card-balance.php, GET /card-transactions.php, POST /card-topup.php, and POST /card-freeze.php work automatically on the same live issuer path as Mastercard.

curl -s -X POST https://lanocard.com/api/v1/cards.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
          -d "{\"amountUsd\":5,\"cardType\":\"visa\",\"secureEmail\":\"user@example.com\"}"
{
  "ok": true,
  "orderNo": "ORD-20261008-XXXXXXXXXX",
  "token": "ABC…",
  "brand": "visa",
  "cardType": "visa",
  "cardStatus": "processing",
  "manualDelivery": true,
  "amountUsd": 5,
  "issueFeeUsd": 3,
  "totalPayUsd": 8,
  "message": "Visa created. Processing usually completes in about 30 minutes."
}

Auth is unchanged: Authorization: Bearer lc_live_… or X-Api-Key. List Visa cards with GET /cards.php?cardType=visa. Optional secureEmail is the inbox for Visa 3D Secure OTP (defaults to your reseller account email).

GET /api/v1/cards.php

Lists your cards. With ?token= returns one card and fetches live issuer balance.

curl -s "https://lanocard.com/api/v1/cards.php" \
  -H "Authorization: Bearer YOUR_API_KEY"

curl -s "https://lanocard.com/api/v1/cards.php?token=YOUR_CARD_TOKEN" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "ok": true,
  "live": true,
  "balanceUsd": 9.40,
  "card": {
    "token": "ABC…",
    "status": "active",
    "frozen": false,
    "brand": "mastercard",
    "cardNumber": "5324xxxxxxxxxxxx",
    "last4": "1234",
    "expiry": "12/29",
    "cvv": "123",
    "balanceUsd": 9.40
  }
}

GET /api/v1/card-balance.php

Real-time Visa or Mastercard AVAILABLE from the issuer (after PAN exists). Poll this after spend or top-up. Required query: token.

curl -s "https://lanocard.com/api/v1/card-balance.php?token=YOUR_CARD_TOKEN" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "ok": true,
  "token": "ABC…",
  "live": true,
  "currency": "USD",
  "balanceUsd": 9.40,
  "fetchedAt": "2026-10-01T03:30:00+00:00"
}

GET /api/v1/card-transactions.php

Real-time issuer ledger (recharge, consume, refund). Optional limit (default 50, max 200).

curl -s "https://lanocard.com/api/v1/card-transactions.php?token=YOUR_CARD_TOKEN&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "ok": true,
  "token": "ABC…",
  "live": true,
  "balanceUsd": 9.40,
  "count": 2,
  "transactions": [
    {
      "id": "…",
      "type": "Consumption",
      "status": "Finish",
      "amountUsd": 0.60,
      "signedUsd": -0.60,
      "direction": "debit",
      "merchant": "STORE",
      "createdAt": "2026-10-01T03:10:00+00:00"
    }
  ]
}

POST /api/v1/card-topup.php

Loads USD onto an active Visa or Mastercard from your API fund (after the PAN exists). Debits amountUsd + 3.00% fee. Needs an active card. Min $10, max $10,000. If the issuer top-up fails, your API fund is refunded.

curl -s -X POST https://lanocard.com/api/v1/card-topup.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"token\":\"YOUR_CARD_TOKEN\",\"amountUsd\":20}"
{
  "ok": true,
  "topupNo": "RTP-20261001-XXXXXXXXXX",
  "token": "ABC…",
  "amountUsd": 20,
  "feeUsd": 0.6,
  "totalPayUsd": 20.6,
  "balanceUsd": 80.00,
  "cardBalanceUsd": 29.40,
  "live": true,
  "message": "Top-up applied"
}

Errors: 404 card not found, 400 still processing / amount out of range, 402 deposit too low, 403 if the card is frozen.

POST /api/v1/card-freeze.php

Freeze or unfreeze a Visa or Mastercard you created. Frozen cards cannot be topped up until you unfreeze them. After a Visa card is active, freeze/unfreeze uses the same live issuer path as Mastercard. You can only freeze cards that belong to your API key. The card owner also gets an email notification.

curl -s -X POST https://lanocard.com/api/v1/card-freeze.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"token\":\"YOUR_CARD_TOKEN\",\"action\":\"freeze\"}"

curl -s -X POST https://lanocard.com/api/v1/card-freeze.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"token\":\"YOUR_CARD_TOKEN\",\"action\":\"unfreeze\"}"
{
  "ok": true,
  "frozen": true,
  "token": "ABC…",
  "issuerOk": true,
  "mailSent": true,
  "card": {
    "token": "ABC…",
    "status": "frozen",
    "frozen": true,
    "brand": "mastercard",
    "last4": "1234",
    "balanceUsd": 9.40
  },
  "message": "Card frozen"
}

Body: token (required) and action = freeze or unfreeze. You can also send frozen: true / false. Errors: 401 invalid key, 404 card not found or not yours, 400 missing token/action.

POST /api/v1/card-cancel.php

Cancels a processing order (no PAN yet). The amount taken from your API fund (card load + issue fee) is refunded. Active cards cannot be cancelled this way.

curl -s -X POST https://lanocard.com/api/v1/card-cancel.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"token\":\"YOUR_CARD_TOKEN\"}"
{
  "ok": true,
  "token": "ABC…",
  "cancelled": true,
  "refundUsd": 13,
  "walletBalanceUsd": 133.00,
  "message": "$13.00 returned to your API fund. The processing order is cancelled."
}

Errors: 404 card not found, 400 if the card is already active, 409 already cancelled.

GET / POST /api/v1/card-deliver.php

Use this when a card number is already created and you want to deliver it to a Lanocard user order that is still processing. GET lists pending paid orders. POST attaches the card number (expiry/CVV are filled from the backend).

curl -s "https://lanocard.com/api/v1/card-deliver.php" \
  -H "Authorization: Bearer YOUR_API_KEY"

curl -s -X POST https://lanocard.com/api/v1/card-deliver.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"orderNo\":\"ORD-20261003-XXXXXXXXXX\",\"cardNumber\":\"5324xxxxxxxxxxxx\"}"
{
  "ok": true,
  "token": "ABC…",
  "message": "Card delivered. The user can see it on their dashboard."
}

Body: orderNo or token, plus cardNumber. Errors: 404 pending order not found, 409 already delivered or number already used, 400 invalid number.

Webhooks & OTP

Webhooks are not available on the reseller API. We do not push card-created, paid, or OTP events to your server. Poll instead: GET /cards.php?token=… until status is active, then use GET /card-balance.php and GET /card-transactions.php for live issuer data.

Visa 3D Secure OTP is sent by Visa / the card issuer to the secureEmail you set on POST /cards.php (or your reseller login email if omitted). Lanocard does not return OTP codes on the API and does not forward OTP to a webhook. Your end-user must open that email when a merchant asks for 3DS.

Mastercard (UK-BIN2560) is for global online payments. It does not use a Lanocard OTP API. If a shop shows 3DS, the bank/issuer handles it — not this API.

Statuses

  • processing — your fund was taken. Mastercard waits for the issuer; Visa is created instantly and is usually ready in about 30 minutes.
  • active — PAN, expiry, and CVV are present. Live balance and top-up work.
  • frozen — card is locked. Top-up is blocked until you call unfreeze. GET cards also returns frozen: true.
  • cancelled — processing order was cancelled and the wallet debit was refunded to API fund.
  • live: true — balance came from the issuer AVAILABLE field in real time.