BASE = http://localhost:4321
<script src="/embed.js"
data-address="DIA_CHI_NHAN_CUA_BAN"
data-amount="1.5"
data-label="Coffee ☕"
data-webhook="https://your-site.com/webhook"></script>
<img src="/api/qr?address=DIA_CHI&amount=1.5">
POST /api/pay
| | |
address | ✓ | |
amount | ✓ | |
description | | |
webhook | | |
curl -X POST /api/pay \
-H "Content-Type: application/json" \
-d '{"address":"DIA_CHI","amount":"2.5","description":"Order #123","webhook":"https://your-site.com/hook"}'
{
"ok": true,
"payId": "pay_ab12cd34...",
"status": "pending",
"amount": "2.5",
"uri": "rox:DIA_CHI?amount=2.5&memo=pay_ab12cd34...",
"payUrl": "/pay.html?id=pay_ab12cd34...",
"qrUrl": "/api/qr?data=..."
}
POST https://your-site.com/hook
{
"event": "payment.paid",
"payId": "pay_ab12cd34...",
"address": "DIA_CHI",
"amount": "2.5",
"txid": "8b4a7b32...",
"from": "SENDER_ADDRESS",
"blockIndex": 421,
"paidAt": 1783771150167
}
GET /api/pay/:payId
curl /api/pay/pay_ab12cd34...
{ "payId": "...", "status": "paid", "txid": "8b4a...", "blockIndex": 421, ... }
POST /api/verify
curl -X POST /api/verify \
-H "Content-Type: application/json" \
-d '{"txid":"8b4a...","payTo":"DIA_CHI","minAmount":"2.5","memo":"pay_ab12..."}'
{ "valid": true, "blockIndex": 421, "tx": { ... } }
| |
txid | |
payTo | |
minAmount | |
memo | |
GET /x402/premium
→ 402 { accepts:[{ payTo, maxAmountRequired, ... }] }
GET /x402/premium
X-PAYMENT: 8b4a7b32...
→ 200 { content: "..." }