Skip to main content

Product

v2

No KYC Card API

Programmatically issue cards, process crypto payments, verify transactions, and manage virtual cards with our RESTful API v2. Built for privacy-first card operations.

Overview

The No KYC Card API v2 provides a complete set of endpoints for generating payment addresses, verifying blockchain transactions, issuing virtual cards, and managing card lifecycle operations. All requests return JSON responses and support CORS for client-side integrations.

Our API follows RESTful conventions with predictable resource-oriented URLs. All timestamps are returned in ISO 8601 format (UTC). Rate limiting and API key authentication are available for production integrations.

Rate Limiting

All API endpoints are limited to 30 requests per 60 seconds per IP address. Exceeding this returns a 429 Too Many Requests response. Rate limit status is included in every response under meta.rate_remaining. Integrations should implement exponential backoff with jitter when rate-limited.

Base URL

https://nokyccard.cc/api/v2

All API requests should be directed to /api/v2/. The current API version is v2. Version v1 is deprecated and will be sunset on December 31, 2026.

Supported Cryptocurrencies

Ticker Network Avg. Confirmation
BTCBitcoin10-30 min
ETHEthereum3-5 min
SOLSolana< 1 min
POLYGONPolygon2-3 min
USDCUSDC (Solana)< 1 min
USDT-SOLUSDT (Solana)< 1 min
USDT-ERC20USDT (ERC-20)3-5 min
XMRMonero20-30 min

If no ticker is specified, the API defaults to BTC. Invalid tickers also fall back to Bitcoin.

Authentication

All API requests require authentication using an API key passed in the X-API-Key header. Keys are provisioned from your dashboard under Developer Settings.

X-API-Key: ncc_live_R4nD0mK3yH3r3F0r3x4mPl3s

Test mode keys use the prefix ncc_test_ and operate in a sandbox environment. Keys are scoped to specific endpoints — request the appropriate scope during provisioning.

Core Endpoints

GET /v2/?ticker={ticker}

Generate a crypto payment address. Returns a unique transaction hash, verification hash, and a wallet address for the specified cryptocurrency.

Query Parameters

Parameter Type Required Description
tickerstringnoCrypto ticker (BTC, ETH, SOL, etc). Default: BTC
hashstringnoCustom verification hash. Auto-generated if omitted
amountnumbernoExpected deposit amount in USD (optional metadata)

Example Request

https://nokyccard.cc/api/v2/?ticker=ETH

Example Response

{
  "success": true,
  "data": {
    "request_id":        "req_a1b2c3d4e5f6",
    "transaction_hash":  "txn_3f8a2c1b9d4e...",
    "verification_hash": "verification_7e4d2a...",
    "payment_method":    "ETH",
    "payment_address":   "0x6383Af3476eF7fb1...",
    "status":            "address_generated",
    "created_at":        "2026-06-01T14:30:00.000Z",
    "expires_in":        3600
  },
  "meta": {
    "api_version":    "2.0.0",
    "environment":    "production",
    "timestamp":      1717247400,
    "rate_limit":     "30 / 60s",
    "rate_remaining": 29
  }
}
Try it live
GET /v2/ver?verification_hash={hash}

Verification endpoint. Check the status of a blockchain transaction using its verification hash. Returns payment status, confirmation count, and next check interval.

Query Parameters

Parameter Type Required Description
verification_hashstringyesThe verification hash from the payment address generation step

Example Request

https://nokyccard.cc/api/v2/ver?verification_hash=verification_7e4d2a1f3b8c9e5d7a0f2b6c

Example Response

{
  "success": true,
  "data": {
    "request_id":         "req_b2c3d4e5f6a7",
    "verification_hash":  "verification_7e4d2a1f3b8c9e5d7a0f2b6c",
    "status":             "pending_payment",
    "status_description": "Payment submitted, awaiting 3 confirmations",
    "confirmations":      "0/3",
    "checked_at":         "2026-06-01T14:30:00.000Z",
    "next_check":         "60 seconds"
  }
}
Try it live
POST /v2/cards

Issue a new virtual card. The card is pre-funded with a payment address and enters pending_topup status until payment is confirmed. Maximum 3 cards per 24-hour period per account.

Request Body

Field Type Required Description
binstringyesBIN prefix for the card (e.g. "549948" for Mastercard)
tickerstringnoPreferred crypto for top-up. Default: BTC
PATCH /v2/cards/{id}/withdraw

Initiate a withdrawal from an active card. The card is permanently closed and its remaining balance is returned to the account wallet. Only available for cards in active status.

Path Parameters

Parameter Type Required Description
idintegeryesCard ID to withdraw from

Response Fields

Field Type Description
successbooleanWhether the withdrawal was successful
data.balancestringBalance amount returned, formatted to 2 decimal places
data.messagestringHuman-readable result description
PATCH /v2/cards/{id}/freeze

Temporarily freeze an active card, blocking all new authorizations. The card can be unfrozen via a subsequent call. Does not affect already-authorized transactions. Only available for cards in active status.

Path Parameters

Parameter Type Required Description
idintegeryesCard ID to freeze
DELETE /v2/cards/{id}

Permanently delete a card. This action is irreversible. All associated tokens, authorizations, and transaction history are immediately purged. This operation does not affect the daily card generation limit.

Path Parameters

Parameter Type Required Description
idintegeryesCard ID to delete
forcebooleannoSkip confirmation check. Default: false

Webhooks

Receive real-time event notifications by configuring webhook endpoints in your dashboard. Events are delivered via HTTP POST with a JSON payload and signed using HMAC-SHA256 for verification.

Event Trigger
payment.address_generatedA new crypto payment address is generated.
payment.confirmedA crypto payment reaches the required confirmations.
card.createdA new virtual card is issued.
card.activatedA card transitions to active status after top-up.
card.withdrawnA card is withdrawn and closed.
card.frozenA card is frozen via API or dashboard.
card.deletedA card is permanently removed.

Error Handling

The API uses conventional HTTP response codes. All error responses follow a consistent JSON structure.

{
  "success": false,
  "error": {
    "code":    "card_not_found",
    "message": "No card exists with the provided identifier.",
    "request_id": "req_9hK2mP7xR4vL"
  }
}
Code Meaning
400Bad Request — Invalid parameters or malformed request body
401Unauthorized — Missing or invalid API key
403Forbidden — Insufficient permissions for the requested resource
404Not Found — The requested resource does not exist
409Conflict — Card is not in a state that allows this operation (e.g. withdraw on pending_topup)
429Too Many Requests — Rate limit exceeded
500Internal Server Error — Retry with exponential backoff

Quickstart

To generate a payment address and verify a transaction, follow these two steps:

1

Generate a payment address

curl -s https://nokyccard.cc/api/v2/?ticker=ETH

Store the returned verification_hash and payment_address for verification.

2

Verify the payment

curl -s https://nokyccard.cc/api/v2/ver?verification_hash=verification_7e4d2a1f3b8c9e5d7a0f2b6c

Once confirmations reaches 3/3, the card activates automatically.

Pro tip: Poll the verification endpoint every 60 seconds for real-time status updates. Use webhooks for event-driven architectures to avoid polling altogether.