GET - 获取发票
通过 trans_id 检索发票的当前状态和详情。返回支付状态、金额、代币/网络信息(如果已选择)和交易详情(如果已完成)。仅返回属于与 API Key 关联的商店的发票。
端点
GET https://api.payerscan.com/invoice/:trans_id
示例: GET https://api.payerscan.com/invoice/TID-ABC123DEF4567890
请求头
| 请求头 | 必需 | 说明 |
|---|---|---|
x-api-key | 是 | 商店的 API Key |
响应
成功 (HTTP 200)
基础响应(始终包含):
{
"status": "success",
"data": {
"trans_id": "TID-ABC123DEF4567890",
"request_id": "ORDER_123456",
"status": "waiting",
"amount": "100",
"name": "Top-up balance",
"description": "Top-up the balance for username: JohnDoe",
"created_at": 1738742400,
"expires_at": 1738746000
}
}
当客户在结账页面选择代币/网络后,data 包含额外字段:
{
"token_symbol": "USDT",
"network_symbol": "BSC",
"token_amount": "100.0026",
"token_price": "1",
"to_address": "0xc221460115e2CfCa5bF089A7e647b11cb9631efE"
}
当 status = "completed" 时,data 包含额外字段:
{
"transaction_hash": "0xd346b32b83b35376d42a2464598fbf565fffb39e...",
"from_address": "0x8894e0a0c962cb723c1976a4421c95949be2d4e3",
"fee_amount": "0.2",
"callback_status": "success"
}
字段说明
| 字段 | 说明 |
|---|---|
trans_id | 唯一发票代码。 |
request_id | 您的订单 ID(如果创建时提供)。 |
status | waiting | processing | completed | expired。 |
amount | USD 金额(字符串)。 |
name | 发票名称/标题(如果创建时提供)。 |
description | 发票描述(如果创建时提供)。 |
created_at | 创建时间(Unix 时间戳,秒)。 |
expires_at | 过期时间(Unix 时间戳,秒)。 |
token_symbol | 已选代币(如 USDT、BNB)。仅客户选择后显示。 |
network_symbol | 网络(如 BSC、TRC20、ETH、BINANCE_PAY)。仅客户选择后显示。 |
token_amount | 需转账的加密货币数量。仅客户选择后显示。 |
token_price | 选择时的汇率。仅客户选择后显示。 |
to_address | 收款钱包地址。仅客户选择后显示。 |
transaction_hash | 区块链交易哈希。仅当 status = "completed"。 |
from_address | 发送方钱包地址。仅当 status = "completed"。 |
fee_amount | 已扣手续费(USD)。仅当 status = "completed"。 |
callback_status | Webhook 发送状态:success | failed | null。仅当 status = "completed"。 |
错误 (4xx / 5xx)
| HTTP | error_code | 说明 |
|---|---|---|
| 400 | MISSING_TRANS_ID | URL 中缺少 trans_id。 |
| 400 | INVALID_TRANS_ID_FORMAT | trans_id 格式无效。要求:TID-XXXXXXXXXXXXXXXX(16 个大写字母数字字符)。details 有 trans_id 和 expected_format。 |
| 401 | MISSING_API_KEY | 未提供 x-api-key 请求头。 |
| 401 | INVALID_API_KEY | API key 无效或不存在。 |
| 403 | ACCOUNT_INACTIVE | 与此 API key 关联的账户已被禁用。 |
| 403 | STORE_INACTIVE | 与此 API key 关联的商店已被禁用。 |
| 404 | INVOICE_NOT_FOUND | 未找到发票或不属于此商店的 API Key。details.trans_id 包含发送的值。 |
| 429 | RATE_LIMIT_EXCEEDED | 超出请求限制。 |
| 500 | INTERNAL_ERROR | 服务器错误。 |
错误 body 格式:
{
"status": "error",
"message": "Invoice not found.",
"error_code": "INVOICE_NOT_FOUND",
"details": { "trans_id": "TID-ABC123DEF4567890" }
}
速率限制
- 突发: 20 请求/秒(每个 API Key 或 IP)。
- 持续: 200 请求/分钟(每个 API Key 或 IP)。
使用场景
- 轮询: 定期调用
GET https://api.payerscan.com/invoice/:trans_id更新 UI 状态(当不使用 webhook 作为主要来源时)。 - 对账: 通过邮件、工单等中的
trans_id查询发票。 - 状态显示页面: 客户付款后,从此 API 显示信息。