⚡ Developer Documentation

API Integration & Testing Suite

Enterprise-grade cryptocurrency payment infrastructure. Accept payments across 9 blockchains with 20+ tokens, now with native recurring subscription support. Test your integration with live examples and comprehensive documentation.

⛓️ 9 Blockchains
💰 20+ Tokens
🔄 Recurring Subscriptions
Real-time Settlement
🔒 Enterprise Security

⚙️ Configuration

Configure your test environment with your merchant credentials. All tests will use these settings.

Your unique Thentic Pay merchant identifier
Ethereum address (42 characters)
ℹ️

About Configuration

Merchant User ID: Identifies your account in the Thentic Pay system (contact support to obtain one)

Recipient Address: Where cryptocurrency payments will be sent (must be a valid ERC-20 compatible wallet)

Test Amount: Used for the first live test - other tests use preset amounts to demonstrate variety

🔨 Pixel Builder

Build custom payment buttons by selecting your parameters. Copy the generated code and embed it anywhere.

Build Your Payment Button

Configure the parameters below to generate a custom payment button

Payment amount in USD
Cryptocurrency token
Blockchain network

Generated Pixel Code

Copy this code and paste it into your website's HTML

Embeddable Iframe Code
<iframe 
    src="https://thentic.tech/pixel?a=10.00&t=USDT&c=Polygon&u=YOUR_USER_ID&r=YOUR_RECIPIENT_ADDRESS"
    width="260" 
    height="70"
    frameborder="0"
    style="border: none;">
</iframe>

Preview

📘

URL Parameters Reference

a or amount: Payment amount in USD (required)

t or token: Cryptocurrency token (default: USDT)

c or chain: Blockchain network (default: Polygon)

u or user_id: Your merchant user ID (required)

r or recipient_address: Wallet address to receive payment (required)

Example URLs

Common pixel configurations with different parameters

Short Parameter Names
https://thentic.tech/pixel?a=50&t=USDC&c=Base&u=YOUR_USER_ID&r=0x...
Full Parameter Names
https://thentic.tech/pixel?amount=100&token=USDT&chain=Polygon&user_id=YOUR_USER_ID&recipient_address=0x...
Mixed Parameter Names
https://thentic.tech/pixel?a=25&token=DAI&c=Arbitrum%20One&user_id=YOUR_USER_ID&r=0x...

🎨 Live Integration Tests

Interactive payment buttons demonstrating different chains and tokens. Click any button to create a live payment request.

Expected Behavior

Each button should display "Pay with Crypto" with the Thentic logo

Clicking creates a payment and redirects to the payment page

Check browser console (F12) - there should be no errors

Test 1: Custom Amount

Chain: Polygon Token: USDT

Test 2: USDC on Base

Chain: Base Token: USDC Amount: $50

Test 3: Alternative Recipient

Chain: Polygon Token: USDT Amount: $25

Test 4: Native ETH

Chain: Ethereum Token: ETH Amount: $0.001

Test 5: Avalanche

Chain: Avalanche Token: USDC Amount: $15

Test 6: Arbitrum Layer 2

Chain: Arbitrum One Token: USDT Amount: $30

🔌 API Integration Examples

Copy-paste ready code examples for integrating Thentic Pay into your application.

📋

Request Parameters

user_id: Your merchant UUID (required)

amount: Payment amount in USD (required)

token: Cryptocurrency token — e.g. USDT, USDC, DAI (required)

chain: Blockchain network — e.g. Polygon, Optimism, Base (required)

recipient_address: 42-character Ethereum wallet address to receive payment (required)

webhook_url: Your endpoint for payment status callbacks (optional)

custom_parameters: JSON object with arbitrary key-value pairs returned in webhook callbacks — max 10KB (optional)

subscription: "daily", "weekly" or "monthly" — creates a recurring subscription managed by the Thentic Master Wallet. ERC-20 tokens only (not supported for native coins such as ETH, BNB, POL). (optional)

include_commission: true or false — when true, a 1% Thentic Pay commission is added on top of the requested amount. Defaults to false. (optional)

POST /api/payment/create
curl -X POST https://thentic.tech/api/payment/create \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "public",
    "amount": 10.00,
    "token": "USDT",
    "chain": "Polygon",
    "recipient_address": "0x000000000000000000000000000000000000dEaD",
    "include_commission": true,
    "webhook_url": "https://yourdomain.com/webhook/payment",
    "custom_parameters": {
      "order_id": "ORDER-12345",
      "customer_email": "customer@example.com",
      "internal_ref": "INV-2026-001"
    }
  }'
ℹ️

Response Format

Returns: transaction_id, payment_url, amount_token, amount_usd, recipient_address, webhook_registered (if webhook_url was provided), custom_parameters_saved (if custom_parameters were provided), and commission (if include_commission was true)

{
  "success": true,
  "transaction_id": "87e2f701-a54d-433c-8daf-92fc5b1a7e83",
  "payment_url": "https://thentic.tech/request?id=87e2f701-...",
  "amount_token": "0.010101",
  "amount_usd": "10.10",
  "recipient_address": "0x000000000000000000000000000000000000dEaD",
  "webhook_registered": true,
  "custom_parameters_saved": true,
  "commission": {
    "rate": "1.00%",
    "amount_usd": "0.10",
    "original_amount_usd": "10.00",
    "total_amount_usd": "10.10"
  }
}
🔔

Webhook Structure

When payment status changes, a POST request will be sent to your webhook_url with the following JSON structure:

{
  "event": "payment_status_update",
  "timestamp": "2026-03-05T13:56:32.291349",
  "transaction": {
    "request_id": "87e2f701-a54d-433c-8daf-92fc5b1a7e83",
    "hash": "0xcf7d...2d28",
    "status": "completed",
    "chain": "Optimism",
    "amount": 0.000010,
    "token": "USDT",
    "wallet_from": "0x1111...1591",
    "subscription": "weekly",
    "subscription_id": "2bd043e5-d837-4804-90e8-95e611026fb9"
  },
  "compliance": {
    "sender_sanctioned": false,
    "sanction_details": null,
    "screening_performed": true,
    "screening_timestamp": "2026-03-05T13:56:32.291876"
  },
  "custom_parameters": {
    "order_id": "ORDER-12345",
    "customer_email": "customer@example.com",
    "internal_ref": "INV-2026-001"
  }
}

subscription: Present when the payment is part of a recurring subscription — value is "daily", "weekly", "monthly", or null for one-time payments.
subscription_id: Unique UUID identifying the subscription. Use this ID to list or cancel subscriptions via the API.
compliance: AML screening results for the sender's wallet, checked against OFAC, EU, and UN sanctions lists via dual-layer screening.

🔄

About Subscriptions

Thentic Pay supports native on-chain recurring subscriptions for ERC-20 tokens (USDT, USDC, DAI, etc.). When a subscription is created, the payer grants an on-chain ERC-20 approve() to the Thentic Master Wallet 0x00027cae93cf1946a5afbc022515b603e5071000, enabling automatic future charges without requiring the payer to return each cycle.

⚠️ ERC-20 tokens only. Subscriptions are not available for native coins (ETH, BNB, POL, etc.) because the ERC-20 approval mechanism does not exist for native currency transfers.

How Subscriptions Work

Step-by-step flow from creation to activation

① Create

Merchant calls /api/payment/create with subscription: "daily", "weekly" or "monthly". A pending subscription row is created.

② Authorize

Payer opens the payment page and clicks Authorize Subscription. Their wallet sends an ERC-20 approve() to the Master Wallet.

③ Pay

Payer completes the first payment. Subscription status moves to active and next_charged_date is calculated.

④ Manage

Merchant can list all active subscriptions and cancel any of them via the API at any time.

Create a Subscription Payment

Add the subscription parameter to any payment creation request

POST /api/payment/create — with subscription
curl -X POST https://thentic.tech/api/payment/create \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "YOUR_MERCHANT_ID",
    "amount": 9.99,
    "token": "USDT",
    "chain": "Optimism",
    "recipient_address": "0xYourRecipientAddress",
    "subscription": "monthly",
    "webhook_url": "https://yourdomain.com/webhook",
    "custom_parameters": {
      "plan": "pro",
      "customer_id": "usr_12345"
    }
  }'

Response includes subscription field

{
  "success": true,
  "transaction_id": "87e2f701-a54d-433c-8daf-92fc5b1a7e83",
  "payment_url": "https://thentic.tech/request?id=87e2f701-...",
  "amount_token": "0.000010",
  "amount_usd": "9.99",
  "recipient_address": "0xYourRecipientAddress",
  "subscription": "monthly",
  "webhook_registered": true
}

List Subscriptions

Retrieve all subscriptions for your merchant account, with optional status filtering

GET /api/subscriptions
# List all subscriptions
curl "https://thentic.tech/api/subscriptions?user_id=YOUR_MERCHANT_ID"

# Filter by status: pending | active | cancelled
curl "https://thentic.tech/api/subscriptions?user_id=YOUR_MERCHANT_ID&status=active"
📋

Query Parameters

user_id: Your merchant UUID (required)

status: Filter by subscription status — pending, active, or cancelled (optional)

Response

{
  "success": true,
  "user_id": "YOUR_MERCHANT_ID",
  "total": 1,
  "subscriptions": [
    {
      "subscription_id": "2bd043e5-d837-4804-90e8-95e611026fb9",
      "request_id": "87e2f701-a54d-433c-8daf-92fc5b1a7e83",
      "subscription_type": "monthly",
      "status": "active",
      "approved_at": "2026-03-05T13:55:56.078369+00:00",
      "approved_by": "0x1111...1591",
      "canceled_at": null,
      "last_charged_date": "2026-03-05T13:56:32.291349+00:00",
      "next_charged_date": "2026-04-05T13:56:32.291349+00:00",
      "created_at": "2026-03-05T13:55:07.601679+00:00",
      "amount_usd": "9.99",
      "token": "USDT",
      "chain": "Optimism"
    }
  ]
}

Cancel a Subscription

Cancel an active or pending subscription. Only the owning merchant can cancel their subscriptions.

POST /api/subscriptions/cancel
curl -X POST https://thentic.tech/api/subscriptions/cancel \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "YOUR_MERCHANT_ID",
    "subscription_id": "2bd043e5-d837-4804-90e8-95e611026fb9"
  }'

Response

{
  "success": true,
  "subscription_id": "2bd043e5-d837-4804-90e8-95e611026fb9",
  "status": "cancelled"
}

Subscription Status Reference

Status Description
pending Subscription created. Waiting for payer to authorize and complete first payment.
active First payment completed and ERC-20 approval granted. next_charged_date is set.
cancelled Subscription cancelled by the merchant. No further charges will be initiated.
POST /api/merchant/statistics
curl -X POST https://thentic.tech/api/merchant/statistics \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "public",
    "period": "30d",
    "include_breakdown": true
  }'
ℹ️

Available Periods

all (default), 24h, 7d, 30d, 90d, or custom with date range

Error Response Examples
// Missing required field
{
  "error": "chain, token, amount, and recipient_address are required"
}

// Invalid address format
{
  "error": "Invalid recipient_address format. Must be a valid Ethereum address (42 characters starting with 0x)"
}

// User not found
{
  "error": "User not found"
}

⛓️ Supported Networks & Tokens

Comprehensive multi-chain support with 20+ tokens across 9 blockchain networks.

Blockchain Native Token Supported Tokens Gas Efficiency
Polygon POL USDT, USDC, DAI, WBTC, WETH, LINK, AAVE, CRV ● Low
Base ETH USDT, USDC, USDbC, DAI, WETH, WBTC ● Low
Arbitrum One ETH USDT, USDC, DAI, WBTC, WETH, LINK ● Low
Optimism ETH USDT, USDC, DAI, WBTC, WETH, LINK, OP ● Low
Ethereum Mainnet ETH USDT, USDC, DAI, WBTC, WETH, LINK, SHIB, POL, UNI, XAUt ● High
Binance Smart Chain BNB USDT, USDC, DAI, WBTC, WETH, LINK, DOGE, SHIB, XRP, ADA, TRX, DOT, POL ● Low
Avalanche AVAX USDT, USDC, DAI, WBTC, WETH, LINK ● Low
Cronos Mainnet CRO USDT, USDC, DAI, WBTC, WETH, SHIB, LINK ● Low
Conflux CFX USDT0, AxCNH ● Low
💡

Recommendations

Best for low fees: Polygon, Base, Arbitrum One

Best for stablecoins: Any chain supporting USDT/USDC

Best for speed: Base, Polygon (< 2 second confirmations)

🛡️ AML Protection & Compliance

Enterprise-grade anti-money laundering protection with dual-layer sanctions screening built into every transaction

Dual-Layer Sanctions Screening

Thentic Pay employs a comprehensive dual-layer approach to sanctions screening, combining both local and real-time API-based verification to ensure maximum compliance and protection:

Layer 1 - Local OFAC SDN List Screening:
All transactions are automatically screened against the U.S. Department of the Treasury's Office of Foreign Assets Control (OFAC) Specially Designated Nationals (SDN) List. This local database ensures fast, reliable checking even if external services are temporarily unavailable.

Layer 2 - Scorechain Real-Time API Verification:
Every wallet address is cross-referenced in real-time with Scorechain's sanctions screening API, which aggregates data from multiple official sources including OFAC, EU sanctions lists, UN sanctions, and other international regulatory bodies. This provides comprehensive, up-to-the-minute global sanctions coverage.

This dual-layer approach ensures compliance with international sanctions and protects your business from inadvertently processing payments involving sanctioned individuals, entities, or cryptocurrency addresses across multiple jurisdictions.

📋

What Are Sanctions Lists?

Sanctions lists include individuals, companies, and cryptocurrency addresses owned, controlled by, or acting on behalf of targeted countries, as well as terrorists, narcotics traffickers, and other designated entities. Assets of sanctioned entities are blocked, and businesses are legally prohibited from processing transactions involving them. Thentic Pay checks against both OFAC (U.S.), EU, UN, and other international sanctions programs.

Real-Time Screening

Every transaction is verified instantly through both local OFAC database and live Scorechain API checks

🌍

Global Coverage

Multi-source verification covering OFAC, EU, UN, and other international sanctions programs

🔄

Automatic Updates

Continuous synchronization with official databases ensures compliance with the latest sanctions

🔒

Fail-Safe Design

If the API is temporarily unavailable, local OFAC screening continues to protect your business

Zero Configuration

Dual-layer AML protection is built-in and automatic—no additional setup or integration required

📊

Detailed Audit Trails

Complete logging of all screening results for regulatory compliance and reporting

⚠️

Blocked Transaction Handling

If a transaction involves an address flagged by either screening layer as being associated with a sanctioned entity, it will be automatically rejected to ensure compliance. Both the wallet address and detailed sanction information (including the sanctioning authority, date, and reason) are logged. Complete transaction logs and audit trails are maintained for regulatory reporting and compliance verification.

Official Sources:
• OFAC Sanctions List Service – U.S. Department of the Treasury
• Scorechain Sanctions API – Multi-Source International Sanctions Database
Last SDN List Update: January 21, 2026
API Status: Real-time verification active