WebChain Documentation

WebChain Documentation

Version 2.1 | Last updated: August 16, 2025

WebChain is a high-performance, decentralized blockchain platform powering the E-TALK IKỌBỌ MARKETPLACE, enabling seamless e-commerce integration for global transactions. Built with WebRTC for direct peer-to-peer (P2P) validator communication and EVM Wallets compatibility, WebChain delivers gas-free, instant transactions at scale, supporting up to 1,000,000 transactions per second (TPS). Its P2P architecture eliminates gas fees, making it ideal for high-volume, cost-efficient applications.

WebChain operates on a Proof-of-Concept+ (PoC+) consensus architecture that combines Proof-of-Stake (PoS) with an advanced Proof-of-Contribution (PoC) model. This design enables zero gas fees via peer-to-peer transaction processing, near-instant transaction finality, a structured 60-minute PoS-based ETK reward cycle, and optimized block execution supporting up to five transactions per block.

Instant Transactions

Near-instant transaction confirmation with zero gas fees, powered by our validator-based consensus mechanism.

Secure & Decentralized

True peer-to-peer architecture with WebRTC connections between nodes, eliminating central points of failure.

MetaMask Integration

Full compatibility with MetaMask and other Ethereum wallets through our JSON-RPC endpoint.

Use Cases

  • Cross-Border Payments: Facilitates fast, secure, and cost-free international transactions, enabling merchants and customers to transact globally without intermediaries.
  • E-Talk BNPL (Buy Now, Pay Later): Powers flexible payment plans on the E-TALK IKỌBỌ MARKETPLACE, leveraging WebChain’s gas-free, instant transactions for seamless deferred payments.
  • V1 Card Payments: Supports traditional card-based payments integrated with blockchain transparency, ensuring secure and efficient processing for online purchases.

Performance Comparison

WebChain’s industry-leading 1,000,000 TPS outperforms major blockchains, making it a top choice for high-volume e-commerce applications.

Transaction Throughput

Core Features

Blockchain Architecture

  • WebRTC P2P Network: Custom blockchain built with WebRTC enabling direct validator communication
  • Hybrid Consensus: PoC+ (Proof-of-Concept+) combining PoS and PoC elements
  • On-chain Operations: Supports mining, staking, order broadcasting, and P2P validators/peers
  • EVM Compatibility: Fully compatible with MetaMask, Ethereum wallets, and DApps
  • Validator Mining: Validators can mine ETK every 60 minutes after staking 370 ETK and maintaining 0.0000001 ETK balance
  • Instant Confirmations: Transactions deposited into off-chain wallet from the user mining on-chain wallet in milliseconds
  • WooCommerce Integration: Broadcasts all WooCommerce completed orders to the blockchain

Technical Integration

  • JSON-RPC Endpoint: Full Ethereum-compatible endpoint for MetaMask integration at https://rpc.webchain.e-talk.xyz/
  • Custom REST API: Includes /rpc, /supply, /verify-validator, /process-order, /mining-events, and /validator endpoints
  • Peer System: Complete validator registration and peer management system
  • Transaction Viewer: Real-time transaction display with verification status indicators
  • E-Talk Plugin: Allows vendors to broadcast trade history to WebChain

Recent Enhancements

  • On-chain Mining: Validator mining functionality now fully operational
  • Multi-chain Support: ETK Scan verifies transactions on Ethereum, BSC, Polygon, and WebChain
  • Auto-broadcasting: WooCommerce sites using sync plugins automatically broadcast completed orders

Technical Specifications

Blockchain Parameters

ParameterValueDescription
Chain ID1000001 (0xF4241)Unique identifier for MetaMask
ConsensusPoC+Proof-of-Concept+ (PoS/PoC hybrid)
Block TimeInstantTransactions processed immediately
Transactions per Block5Maximum transactions per block
Validator Requirements370 ETK Staked + 0.0000001 ETK BalanceMinimum to participate in validation
Mining Interval60 minutesFrequency validator can mine ETK

Transaction Structure

{
    "from": "0x...",
    "to": "0x...",
    "amount": 1.23,
    "nonce": 5,
    "note": "Payment",
    "timestamp": 1234567890,
    "hash": "0x..."
}

JSON-RPC Endpoint

Active and ready at: https://rpc.webchain.e-talk.xyz

Send POST requests with JSON-RPC payloads to interact with the WebChain mainnet (version 1.0.0, powered by PoC+).

Supported Methods

MethodSupportedNotes
eth_chainIdReturns chain ID
net_versionReturns network version
eth_getBalanceReturns account balance
eth_sendTransactionProcesses signed transactions
eth_sendRawTransactionProcesses signed transactions
eth_getTransactionReceiptReturns transaction details
eth_blockNumberReturns latest block number
eth_getBlockByNumberReturns block information
eth_getTransactionCountReturns account nonce

ETK-Specific Methods

MethodSupportedNotes
etk_sendRawTransactionSend raw ETK transaction (OTP supported, validator-only)
etk_getBalanceGet on-chain ETK balance (decimal string)
etk_getTransactionCountReturns nonce for a wallet (number of transactions sent)
etk_getBlockByNumberReturns block info including transactions
etk_getBlockByHashReturns block info by block hash
etk_getTransactionByHashReturn transaction details by hash
etk_blockNumberReturns the latest block index
etk_syncingReturns syncing status of WebChain node
etk_chainIdReturns chain ID of WebChain network
etk_gasPriceReturns gas price (always 0 ETK)
etk_getValidatorsReturns list of validators with on/off-chain balances
etk_getSupplyReturns total supply of ETK

Send Raw Transaction (Validator Only)

Note: Only verified validators (370 ETK staked + 0.0000001 ETK balance on/off-chain) can send transactions.

Sample Node.js Script


const { ethers } = require("ethers");
const fetch = require("node-fetch");

const RPC_URL = "https://rpc.webchain.e-talk.xyz";
const privateKey = "0x...";
const toAddress = "0x...";
const amountToSend = "20";

async function sendRawTx() {
  const provider = new ethers.providers.JsonRpcProvider(RPC_URL);
  const wallet = new ethers.Wallet(privateKey, provider);
  const nonce = await provider.getTransactionCount(wallet.address);
  const tx = {
    nonce,
    to: toAddress,
    value: ethers.utils.parseEther(amountToSend),
    gasLimit: ethers.utils.hexlify(21000),
    gasPrice: ethers.utils.hexlify(0),
    chainId: 1000001
  };
  const signedTx = await wallet.signTransaction(tx);
  const payload = {
    jsonrpc: "2.0",
    id: 1,
    method: "eth_sendRawTransaction",
    params: [signedTx]
  };
  const response = await fetch(RPC_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(payload)
  });
  const json = await response.json();
  console.log("Transaction Hash:", json.result);
}
sendRawTx();
    

Transaction Storage & Blockchain Ledger

WebChain uses a LevelDB-backed blockchain ledger for production-grade storage, with a JSON ledger for P2P sync and offline access.

  • LevelDB Storage: Fast, binary storage for blocks and transactions
  • JSON Ledger: Human-readable fallback for P2P sync and exploration
  • Immutability: Cryptographic hashing ensures tamper-evident chain
  • Validator Nodes: Full nodes with local LevelDB, synced via WebRTC

Validator Participation

Stake 0.0000001 ETK to become a validator, enabling transaction submission and consensus participation.

Block Structure

{
  "index": 43,
  "timestamp": 1698863000,
  "transactions": [...],
  "previous_hash": "a4f...",
  "hash": "c8e...",
  "merkle_root": "e9c...",
  "nonce": 102,
  "validator": "0xABCD..."
}

Transaction Index Table: wp_webchain_transactions

ColumnTypeDescription
idBIGINTPrimary key
block_indexINTBlock number (-1 for pending)
tx_hashVARCHAR(64)Transaction hash
fromVARCHAR(42)Sender address
toVARCHAR(42)Recipient address
amountDECIMAL(20,8)Transaction amount
nonceINTTransaction nonce
noteTEXTOptional note
timestampBIGINTUnix timestamp
statusENUM‘pending’ or ‘confirmed’

WebChain Decentralized Exchange (DEX) API

WebChain DEX provides endpoints for real-time market data, trading, liquidity management, and analytics, enabling seamless integration with platforms and tools.

1. Get ETK Price [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/price/etk
Description: Returns the current price of ETK.
        

2. Get All Pools [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pools
Description: Returns a list of all liquidity pools.
        

3. Get Pool Information [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pool/{token_a}/{token_b}
Description: Returns detailed info for a specific liquidity pool. Replace {token_a} and {token_b} with token symbols.
        

4. Add Liquidity [Requires Login]

Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/add-liquidity
Body Parameters:
{
    "token_a": "string",
    "token_b": "string",
    "amount_a": "number",
    "amount_b": "number"
}
Description: Adds liquidity to a specified pool.
        

5. Remove Liquidity [Requires Login]

Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/remove-liquidity
Body Parameters:
{
    "pool_id": "string",
    "liquidity": "number"
}
Description: Removes a portion of liquidity from a pool.
        

6. Swap Tokens [Requires Login]

Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/swap
Body Parameters:
{
    "input_token": "string",
    "output_token": "string",
    "input_amount": "number",
    "min_output": "number (optional)"
}
Description: Swaps tokens in the DEX pool.
        

7. Get My Liquidity Positions [Requires Login]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/my-liquidity
Description: Returns the logged-in user's liquidity positions.
        

8. Get Trade History [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/history
Query Parameters (optional):
    wallet: string
    limit: number (default: 50)
Description: Returns trade history. Can filter by wallet.
        

9. Get Swap Quote [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/quote
Query Parameters:
{
    "input_token": "string",
    "output_token": "string",
    "input_amount": "number"
}
Description: Returns estimated output amount for a swap.
        

10. Get All Balances for Wallet [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/wallet/{wallet}/all-balances
Description: Returns balances for the specified wallet address.
        

11. Get All Tokens with ETK [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/tokens/all-with-etk
Description: Returns a list of all tokens paired with ETK.
        

12. Debug My Liquidity [Requires Login]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/debug-liquidity
Description: Returns detailed info of user's liquidity for debugging.
        

13. Get supply info [public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/supply
Description: Returns ETK supply info.
        

14. Get Volume for Pair [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/volume-pair/{token_a}/{token_b}
Description: Returns 24h volume for a token pair.
        

15. Get Token Volume [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/volume/{token}
Query Parameters (optional):
    days: number (default 7, max 30)
Description: Returns volume for a token over a period of days.
        

16. Market Summary [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/summary
Description: Provides market summary for all trading pairs.
        

17. Pair Data [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/pair/{pair_id}
Description: Returns market data for a specific trading pair.
        

18. Historical Data [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/history/{pair_id}?interval=1
Description: Returns historical data for charts. Interval in hours/days.
        

19. Get All Trading Pairs [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pairs
Description: Returns all available trading pairs.
        

20. CMC Metadata [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/cmc/metadata
Description: Returns CoinMarketCap metadata for ETK.
        

21. CMC Listings [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/cmc/listings
Description: Returns CoinMarketCap token listings.
        

22. CoinGecko Market [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/coingecko/market
Description: Returns market data from CoinGecko for ETK and pairs.
        

23. WUSD Reserve [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/wusd-reserve
Description: Returns current WUSD reserve in DEX pools.
        

24. DEX Fee Earnings [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/fee-earnings
Description: Returns total fees earned from DEX liquidity pools.
        

25. Fear & Greed Index [Public]

Method: GET
URL: https://rpc.webchain.e-talk.xyz/fear-greed
Description: Returns a sentiment index (0–100) reflecting market emotions based on DEX data.

The index measures market sentiment from Extreme Fear (0) to Extreme Greed (100), calculated using multiple real-time metrics:

  • Price Volatility: Stability of token prices across pairs.
  • Trading Volume: Current vs. average daily volume.
  • Liquidity: Total available liquidity in pools.
  • Orderbook Movement: Average price changes signaling demand shifts.
  • Pair Activity: Number of active trading pairs.

This helps gauge market mood and trading behavior on WebChain DEX in real-time.

Exchange Integration Guide

🌐 WebChain Is a Layer-1 Blockchain

WebChain is a full Layer-1 blockchain (PoC+) with its native coin ETK. It supports standard Ethereum-style JSON-RPC methods, enabling exchanges to integrate using familiar tools. For faster and safer operations, WebChain also provides a REST-based RPC Gateway that adds extra security features such as OTP verification and validator approval.

⚠️ Important: On WebChain, every wallet is a validator. To process withdrawals or transfers, your exchange must operate a validator wallet (stake 370 ETK + maintain 0.0000001 ETK balance on/off-chain). This is a core security feature of WebChain and cannot be bypassed. Exchanges that are not validators cannot broadcast transactions directly.

🔧 Standard JSON-RPC Integration (Recommended for Exchanges)

Connect to our RPC endpoint exactly like Ethereum:

POST https://rpc.webchain.e-talk.xyz
{
  "jsonrpc": "2.0",
  "method": "eth_getBalance",
  "params": ["0xYourHotWallet", "latest"],
  "id": 1
}
    

Supported JSON-RPC Methods

  • eth_chainId – Returns chain ID [Recommended]
  • net_version – Returns network version [Recommended]
  • eth_getBalance – Returns account balance [Recommended]
  • eth_sendTransaction – Processes signed transactions [Legacy/Optional]
  • eth_sendRawTransaction – Processes raw signed transactions [Recommended]
  • eth_getTransactionReceipt – Returns transaction details [Recommended]
  • eth_blockNumber – Returns latest block number [Recommended]
  • eth_getBlockByNumber – Returns block information [Legacy/Optional]
  • eth_getTransactionCount – Returns account nonce [Recommended]

ETK-Specific JSON-RPC Methods

  • etk_sendRawTransaction – Broadcast ETK transaction with OTP support [Recommended]
  • etk_getBalance – Get ETK balance (on-chain) [Recommended]
  • etk_getTransactionCount – Get nonce for a wallet [Recommended]
  • etk_getBlockByNumber – Fetch block info by number [Recommended]
  • etk_getBlockByHash – Fetch block info by hash [Recommended]
  • etk_getTransactionByHash – Get transaction details by hash [Recommended]
  • etk_blockNumber – Latest block number [Recommended]
  • etk_syncing – Node syncing status [Recommended]
  • etk_chainId – WebChain chain ID [Recommended]
  • etk_gasPrice – Returns 0 ETK [Recommended]
  • etk_getValidators – List of validators with balances [Recommended]
  • etk_getSupply – Total ETK supply [Recommended]

Example Use Cases

  • Deposit Processing: Track incoming transactions using etk_getTransactionByHash or eth_getLogs
  • Withdrawal Processing: Broadcast validator-approved signed withdrawals using etk_sendRawTransaction
  • Bulk Withdrawals: Submit multiple validator-approved transactions in one call via etk_sendRawTransaction
  • OTP Verification: When sending via etk_sendRawTransaction, OTP verification ensures security for off-chain to on-chain transfers

🔐 WebChain RPC Gateway (Enhanced Integration)

Exchanges may use the REST-based RPC Gateway for simpler integration. This adds OTP/email verification, validator approval, and automatic wallet safety checks.

⚠️ Validator Reminder: Even when using the REST RPC Gateway, all withdrawal and transfer requests must be signed by a validator wallet. Exchanges must operate a validator wallet (stake 370 ETK + maintain 0.0000001 ETK balance on/off-chain). Requests from non-validator wallets will be rejected.

1. Get User Balance [Recommended]

GET /balance?user_id=99999&check_validator=true
Accept: application/json
    

2. Off-chain to On-chain Transfer (OTP) [Recommended]

POST /transfer
Content-Type: application/json

{
  "user_id": 1,
  "amount": 50.0,
  "validator_address": "0x"
}
    

3. On-chain Withdrawal (OTP) [Recommended]

POST /withdraw
Content-Type: application/json

{
  "user_id": 1,
  "amount": 1.0,
  "to": "0xExternalWalletAddressHere",
  "is_offchain": false,
  "validator_address": "0x"
}
    

4. On-chain Withdrawal to Off-chain (OTP) [Recommended]

POST /withdraw
Content-Type: application/json

{
  "user_id": 1,
  "amount": 6.0,
  "to": "",
  "is_offchain": true,
  "validator_address": "0x"
}
    

5. Confirm Transaction with OTP [Recommended]

POST /confirm_tx
Content-Type: application/json

{
  "user_id": 1,
  "otp": "dgXq8a"
}
    

📋 Prerequisites

  • Validator address (cold wallet recommended)
  • Static IP addresses for servers
  • RPC endpoint: https://rpc.webchain.e-talk.xyz

📝 Onboarding

Submit validator address, company info, IP addresses, and transaction volume to WebChain admin for approval.

🔒 Security Requirements

RequirementDescription
IP WhitelistingAll API calls must come from approved IPs
Rate LimitingDefault: 1000 req/min for exchanges
HSM UsageMandatory for validator key storage
Cold WalletValidator address should be cold storage

⚠️ Troubleshooting

Error CodeDescriptionSolution
-32001Unauthorized validatorCheck validator approval status
-32005Rate limit exceededRequest higher rate or slow requests
-32602Invalid paramsVerify transaction structure
-32003Chain tip mismatchSync to latest block

WebChain Validator Layer (WVM-20 Tokens)

The WebChain Validator Layer (WVM-20 standard) enables the creation and management of fully native tokens on WebChain’s Proof-of-Stake (PoS) validator model without requiring smart contracts. WVM-20 tokens are integrated at the protocol level, supporting token creation, transfers, minting, governance, and integration APIs with gas-free operations. WebChain’s native ETK is minted through PoS staking, with rewards instantly deposited to off-chain wallets through the miner on-chain wallet (e.g., E-TALK IKỌBỌ MARKETPLACE), and users can bridge these tokens back to on-chain wallets for full decentralization. WebChain also supports bridging pre-existing ETK from Ethereum, BSC, or Polygon via an off-chain to on-chain mechanism, integrating seamlessly with the native ETK supply. WVM-20 tokens operate independently of ETK, empowering developers to build scalable, secure DApps and token economies.

Core Features

Token Creation

Create custom WVM-20 tokens with configurable parameters including symbol, name, decimals, initial supply, and mintability, directly at the protocol level.

Validator Governance

Token creation and network operations require validator approval via PoS consensus, ensuring security and decentralization.

Wallet Integration

Seamless integration with EVM-compatible wallets (e.g., MetaMask) and off-chain wallets (e.g., E-Talk) for token management, transfers, and bridging.

Token Transfers

Transfer WVM-20 tokens and ETK between wallets with blockchain-backed, gas-free and instant confirmation.

Minting Capability

Mint additional WVM-20 tokens (creator-only) and ETK via PoS staking, with instant on-chain and off-chain wallet deposits.

Balance Tracking

Real-time balance tracking for WVM-20 tokens and ETK (on-chain and off-chain) across wallet addresses.

Database Structure (Protocol Level)

The Validator Layer maintains internal structures to manage tokens and validator activity:

webchain_tokens - Stores token information and status
webchain_token_approvals - Tracks validator votes on tokens
webchain_token_balances - Maintains token balances per wallet
webchain_token_transfers - Records all token transfer transactions
webchain_governance_proposals - Governance proposal management
webchain_governance_votes - Tracks votes on governance proposals

REST API Endpoints

The Validator Layer exposes a comprehensive REST API for token operations:

EndpointMethodDescription
/tokensPOSTCreate a new token
/tokensGETList all tokens
/tokens/{id}/approvePOSTVote on token approval (validators only)
/walletPOSTSet wallet address
/walletGETGet wallet address
/tokens/{id}/transferPOSTTransfer tokens
/tokens/{id}/mintPOSTMint tokens (creator only)
/wallet/{wallet}/balancesGETGet token balances for a wallet
/tokens/{id}/metamaskGETGet token info for MetaMask import
/networkGETGet WebChain network information

Token Creation Lifecycle

  1. User sets their wallet address
  2. User submits token creation request with parameters
  3. Token enters “pending” status awaiting validator approval
  4. Validators vote to approve or reject the token
  5. When sufficient approvals are reached, the token is finalized
  6. Finalized tokens are broadcast to the blockchain and become active
  7. Initial token supply is minted to the creator’s wallet

Developer Hooks

Developers can extend functionality via hooks:

// Filter to modify token data
add_filter('webchain_token_data', function($token_data, $token_id) {
  return $token_data;
}, 10, 2);

// Action when token is approved
add_action('webchain_token_approved', function($token_id, $token_row) {
  // Custom logic
}, 10, 2);

// Action when token is rejected
add_action('webchain_token_rejected', function($token_id, $token_row) {
  // Custom logic
}, 10, 2);

Reference Implementation: WordPress Plugin

To make WVM-20 tokens accessible to non-technical users, WebChain provides a reference WordPress plugin. This plugin offers a full UI and shortcode interface for interacting with the Validator Layer.

Shortcode Interface

<!-- Example usage -->
[webchain_token_platform]
  • Network configuration for EVM wallets
  • Wallet address management
  • Token creation form
  • Token approval status chart
  • Token transfer functionality
  • Token minting capability
  • Validator approval interface (for validators)
  • Token balance display

Installation (WordPress Plugin)

  1. Install the WebChain Validator Plugin in WordPress
  2. On activation, required database tables are created automatically
  3. Add the shortcode [webchain_token_platform] on any page to display the interface
  4. Users must set their wallet address before creating tokens
  5. Validators can approve or reject token creation requests
The WordPress plugin is a reference implementation. The Validator Layer itself is protocol-level and requires the core WebChain blockchain to be installed and operational.

MetaMask Integration

Add WebChain to MetaMask with:

ParameterValue
Network NameWebChain
RPC URLhttps://rpc.webchain.e-talk.xyz
Chain ID1000001
Currency Nameikọbọ
Currency SymbolETK
Block Explorerhttps://e-talk.xyz/webchain/?tx=
Icon URLhttps://e-talk.xyz/wp-content/uploads/2025/01/e-talk-logo32-x-32-px.webp
Transaction submission form includes an “Add Network” button for automatic MetaMask configuration.

WooCommerce Integration

Process WooCommerce orders on WebChain via:

EndpointMethodDescription
/verify-validatorPOSTVerifies a user’s validator status
/process-orderPOSTProcesses WooCommerce orders on the blockchain

Order Data Structure

{
    "order_id": 123,
    "amount": 10.50,
    "currency": "USD",
    "customer": {
        "id": 456,
        "email": "user@example.com"
    },
    "items": [{
        "product_id": 789,
        "name": "Product Name",
        "quantity": 1,
        "price": 10.50
    }],
    "user_email": "validator@example.com",
    "wallet": "0x..."
}

Non-CMS Platform Integration

If your platform does not use WordPress, you can broadcast orders to WebChain using the HTTP request below. This works on any language or stack that can make HTTP requests.

### 1. Test WebChain Order Broadcast
POST https://rpc.webchain.e-talk.xyz/process-order
Content-Type: application/json

{
  "user_email": "validator@e-talk.xyz",
  "wallet": "0x1234567890abcdef1234567890abcdef12345678",
  "order_data": {
    "order_id": 9999,
    "amount": 10.50,
    "currency": "USD",
    "customer": {
      "id": 1204,
      "email": "test@e-talk.xyz"
    },
    "items": [
      {
        "product_id": 111,
        "name": "Test Product",
        "quantity": 1,
        "price": 10.50
      }
    ]
  }
}