sPayment
CODE API

import requests
headers = {
    'Content-Type': 'application/json',
}

json_data = {
    'MerchantCode': '479795237',
    'MerchantKey': '3eba4f22-eb44-4b94-b76e-70f190e08aae',
    'Address': 'TMqDrZa5kEebg5wi3W3wusVZ6ZF2w6JczH',
    'name': 'Hóa đơn test',
    'description': 'Thanh toán dịch vụ',
    'amount': '10000',
    'success_url': 'http://example.com/success',
    'cancel_url': 'http://example.com/cancel',
    'callback_url': 'http://example.com/callback',
}

response = requests.post('https://spayment.net/api/AddInvoice', headers=headers, json=json_data)
print(response.json())
                                    

Response

{
    "success": true,
    "message": "Thêm hóa đơn thành công",
    "data": {
        "username": "kienit2005uy1",
        "Name": "Hóa đơn test",
        "NameHoaDon": "Hóa đơn test",
        "MerchantID": "479795237",
        "MerchantKey": "3eba4f22-eb44-4b94-b76e-70f190e08aae",
        "MerchantSecret": "6ea38599-29c4-459b-9db0-5f7555a3b432",
        "MerchantCode": "479795237",
        "Address": "TMqDrZa5kEebg5wi3W3wusVZ6ZF2w6JczH",
        "Network": "TRC20",
        "Amount": "10000.002",
        "Amount_Real": "10000",
        "Total_Phi": "100",
        "OrderId": "SPAYMENT40868320127687",
        "hash_OrderId": "5eb099dc5e9d3ea5f03eb3eb31688a38cc84738df72267d139fef8315f8cf323",
        "type": "deposit",
        "Token": "USDT",
        "description": "Thanh toán dịch vụ",
        "callback_url": "http://example.com/callback",
        "success_url": "http://example.com/success",
        "cancel_url": "http://example.com/cancel",
        "time_update": "1744415760403441",
        "time_create": "1744415760403457",
        "status": "waiting",
        "_id": "67f4a730db3ff58b839b76e2",
        "createdAt": "2025-04-08T04:33:52.034Z",
        "updatedAt": "2025-04-08T04:33:52.034Z",
        "__v": 0
    }
}
                            

URL API

// Nhận request từ callback
$request_data = $_GET;

// Lọc chuỗi để tránh SQL Injection và XSS
function sanitize_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
    return $data;
}

// Kiểm tra các tham số callback nhận được
if (!isset($request_data['MerchantID'], $request_data['MerchantKey'], $request_data['Amount'], $request_data['OrderId'], $request_data['status'])) {
    http_response_code(400);
    echo json_encode([
        'status' => 'error',
        'message' => 'Thiếu tham số callback.'
    ]);
    exit;
}

$merchant_id = sanitize_input($request_data['MerchantID']);    // ID cửa hàng tạo hóa đơn (Không được để lộ ra ngoài)
$api_key = sanitize_input($request_data['MerchantKey']);            // API KEY của cửa hàng tạo hóa đơn (Không được để lộ ra ngoài)
$amount = sanitize_input($request_data['Amount']);              // Số lượng USDT lúc bạn tạo hóa đơn
$received = sanitize_input($request_data['OrderId']);          // Số lượng USDT thực nhận được
$status = sanitize_input($request_data['status']);              // Trạng thái giao dịch bao gồm: waiting, expired, completed
$Sender = isset($request_data['Sender']) ? sanitize_input($request_data['Sender']) : null;        // Địa chỉ USDT gửi tiền trong trường hợp hóa đơn completed
$TxnHash = isset($request_data['TxnHash']) ? sanitize_input($request_data['TxnHash']) : null;  // Mã giao dịch trong blockchain trong trường hợp hóa đơn completed
$Receiver = isset($request_data['Receiver']) ? sanitize_input($request_data['Receiver']) : null;  // Địa chỉ USDT nhận tiền trong trường hợp hóa đơn completed
$Blockno = isset($request_data['Blockno']) ? sanitize_input($request_data['Blockno']) : null;  // Block number trong blockchain trong trường hợp hóa đơn completed
$DateTime = isset($request_data['DateTime']) ? sanitize_input($request_data['DateTime']) : null;  // Thời gian giao dịch trong blockchain trong trường hợp hóa đơn completed
// Xác minh tính hợp lệ của callback tránh giả mạo callback
$expected_merchant_id = 'YOUR_MERCHANT_ID'; // Thay bằng Merchant ID của bạn
$expected_api_key = 'YOUR_API_KEY'; // Thay bằng API Key của bạn
if ($merchant_id !== $expected_merchant_id || $api_key !== $expected_api_key) {
    http_response_code(403);
    echo json_encode([
        'status' => 'error',
        'message' => 'Merchant ID hoặc API Key không hợp lệ.'
    ]);
    exit;
}

// Xử lý trạng thái giao dịch
switch ($status) {
    case 'waiting':
        // Giao dịch đang chờ thực hiện
        // Thêm code để xử lý trạng thái đang chờ
        break;
    case 'expired':
        // Giao dịch đã hết hạn
        // Thêm code để xử lý khi giao dịch hết hạn
        break;
    case 'completed':
        // Giao dịch đã hoàn tất
        // Thêm code để cập nhật trạng thái giao dịch hoặc ghi nhận giao dịch
        break;
    default:
        http_response_code(400);
        echo json_encode([
            'status' => 'error',
            'message' => 'Trạng thái giao dịch không hợp lệ.'
        ]);
        exit;
}

// Phản hồi callback thành công
http_response_code(200);
echo json_encode([
    'status' => 'success',
    'message' => 'Callback đã được xử lý thành công.'
]);

                                    

Response


const callbackData = {
  MerchantID: 'your_merchant_id',
  MerchantKey: 'your_merchant_key',
  Amount: '100',
  OrderId: 'ORD123456',
  status: 'completed',
  Sender: 'TUSSenderAddressHere',
  TxnHash: '0x1234567890abcdef',
  Receiver: 'TUSReceiverAddressHere',
  Blockno: '12345678',
  DateTime: '2025-04-08T12:34:56Z'
};
                            

URL API

import requests

params = {
    'orderId': 'SPAYMENT40910558013601', // ma giao dich tra ve khi tao hoa don
}

response = requests.get('https://spayment.net/api/bill/status', params=params)
print(response.json())
                                            

Response

{
    "success": false,
    "status": "waiting",
    "msg": "Đang Chờ Xác Nhận Từ Blockchain",
    "redect": false
}
// dang cho xac nhan tu blockchain
// da xac nhan tu blockchain
{
message: 'Giao dịch thành công',
success: true,
status: 'complate',
data: {
    TxnHash: transactionHash,
    Blockno: blockNumber,
    Amount: amount,
    Token: tokenSymbol,
    Sender: fromAddress,
    Receiver: toAddress,
    DateTime: moment.unix(timeStamp).format('YYYY-MM-DD HH:mm:ss'),
},
success_url: check.success_url,
cancel_url: check.cancel_url
}
                            

URL API

import requests

response = requests.get('https://spayment.net/api/block-network', params=params)
print(response.json())
                                            

Response

    {
    "status": "success",
    "message": "Danh sách các API Block",
    "data": [
        {
        "name": "TRC20",
        "description": "API cho mạng TRON"
        },
        {
        "name": "ERC20",
        "description": "API cho mạng Ethereum"
        },
        {
        "name": "BEP20",
        "description": "API cho mạng Binance Smart Chain"
        },
        {
        "name": "APTOS",
        "description": "API cho mạng APTOS"
        },
        {
        "name": "POS",
        "description": "API cho mạng POS"
        }
    ]
    }
                            

URL API

import requests
headers = {
    'Content-Type': 'application/json
}
params = {
    'type': 'BEP20',
    'token': '288A129F-7263-40D6-B50C-13E49B76B9E2', // lay tai : https://spayment.net/auth/account
    'address': '0x19b8959B6ad1F50C65560C16B260b980e58f3Cc9',
}

response = requests.get('http://127.0.0.1:5000/api/block', headers=headers, params=params)
print(response.json())
                                            

Response


  "success": true,
  "status": "success",
  "msg": "Lấy dữ liệu thành công",
  "data": [
    {
      "Blockno": "56259422",
      "TxnHash": "0xaa51566088dca4651db6fef8944d7d219e39831509a8e6c5ea2b6f3363a412f3",
      "Amount": "1.52",
      "Token": "BSC-USD",
      "Sender": "0x0dfaab7cda3bca3d51cee52efe37edc7a27d418b",
      "Receiver": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "DateTime": "2025-08-03T03:43:18.000Z",
      "microtime": "1754192598",
      "Type": "IN",
      "gas_fee": 0.0000034862
    },
    {
      "Blockno": "56227809",
      "TxnHash": "0x49b350f20450ba763d2ec2fb0c41e55d8bd19d3666d7e6ba5e7bfc1126708006",
      "Amount": "46123.00",
      "Token": "FIG",
      "Sender": "0x45e3a3ea33a2529de82b7e64cbcfc84850679b1d",
      "Receiver": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "DateTime": "2025-08-02T21:08:08.000Z",
      "microtime": "1754168888",
      "Type": "IN",
      "gas_fee": 0.000364093
    },
    {
      "Blockno": "56182204",
      "TxnHash": "0x30943726fb459d5b1edb927af7ca117879764fbd6da27986acd6694aca72e7d5",
      "Amount": "6.00",
      "Token": "BSC-USD",
      "Sender": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "Receiver": "0x4c887816bd3dba549fe5744bcffff5ed20cb78dc",
      "DateTime": "2025-08-02T11:38:03.000Z",
      "microtime": "1754134683",
      "Type": "OUT",
      "gas_fee": 0
    },
    {
      "Blockno": "56163861",
      "TxnHash": "0x0896c891ee24f9745d46dc252817c5be0cbad30fde57f6ecf577de3181144249",
      "Amount": "0.29",
      "Token": "BSC-USD",
      "Sender": "0x7fa8b97ef89a751f150fdda98a71088dbae64bbc",
      "Receiver": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "DateTime": "2025-08-02T07:48:45.000Z",
      "microtime": "1754120925",
      "Type": "IN",
      "gas_fee": 0.000081
    },
    {
      "Blockno": "56151047",
      "TxnHash": "0x63b9816ae164c4613001a5e02a423366944e0429969412a5d3aa7480d9c588ce",
      "Amount": "3.00",
      "Token": "BSC-USD",
      "Sender": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "Receiver": "0xe61be38c0b55b1acbd124975964378f1fb227ab3",
      "DateTime": "2025-08-02T05:08:35.000Z",
      "microtime": "1754111315",
      "Type": "OUT",
      "gas_fee": 0
    },
    {
      "Blockno": "56151047",
      "TxnHash": "0x63b9816ae164c4613001a5e02a423366944e0429969412a5d3aa7480d9c588ce",
      "Amount": "3.00",
      "Token": "BSC-USD",
      "Sender": "0x19b8959b6ad1f50c65560c16b260b980e58f3cc9",
      "Receiver": "0xe61be38c0b55b1acbd124975964378f1fb227ab3",
      "DateTime": "2025-08-02T05:08:35.000Z",
      "microtime": "1754111315",
      "Type": "OUT",
      "gas_fee": 0
    }
    ]