快速开始
Moin.Cash 把驱动官网的同一套兑换引擎以 JSON API 的形式开放。本页用五次调用走完一次完整接入。
1. 创建 API Key
登录后打开控制台的 开发者 → API 密钥 页(/home/developer/keys;个人账户和你拥有开发者、管理员或所有者角色的企业都能用),点 创建 API 密钥:
- 联调用 沙箱(
ck_test_…:合成报价、模拟订单,不触达任何真实供应商),上线用 正式(ck_live_…); - 保留默认勾选的
exchange:read(币种、币对、订单状态)与exchange:write(报价、建单)。
创建 Key(沙箱或正式)需先通过你本人的个人身份认证(KYC);通过之前,控制台会先引导你完成认证。
完整 Key 只显示一次,请存入你的密钥管理系统。所有商户请求都带上:
Authorization: Bearer ck_test_xxxxxxxxxxxxxxxx2. 发现可兑换的资产
GET /cash/v1/merchant/exchange/currencies—— 全部可交易资产,含symbol、network、decimals、contractAddress、routeCount。GET /cash/v1/merchant/exchange/pairs?symbol=USDT&network=bsc—— 某发送资产可达的全部目标,已知时附限额。
3. 获取报价
POST /cash/v1/merchant/exchange/quotes,体为 { fromSymbol, fromNetwork, toSymbol, toNetwork, fromAmount, type }。type 取 FIXED(锁价至 expiresAt)或 FLOAT(入金确认时按市场结算)。响应含 quoteId、净到账 toAmount、feeBreakdown 与有效限额 commercialSnapshot.limits。
4. 创建订单
POST /cash/v1/merchant/exchange/orders,带 quoteId、客户 receivingAddress 与请求头 Idempotency-Key。响应明确告诉你要付什么:在 expiresAt 前把 paymentAmount 转到 paymentAddress(memo/tag 网络另有 paymentExtraId)。
5. 追踪订单
每 10 秒轮询 GET /cash/v1/merchant/exchange/orders/{orderId}。status 依次 pending → processing → completed(或 expired / failed)。结算后回填 paymentTxHash、deliveryTxHash、actualFromAmount、actualToAmount。用沙箱 Key 时,可以用模拟器自己推进状态(见 通用 → 沙箱与模拟器)。
约定
| 主题 | 规则 |
|---|---|
| Base URL | https://api.moin.cash/cash/v1 |
| 响应包 | 成功:{ "ok": true, "data": … };失败:{ "ok": false, "error": { "code", "message", "details" }, "requestId" },error.code 是稳定的业务码 |
| 金额 | 一律十进制字符串("50"、"145.014285"),禁止浮点数 |
| 时间 | createdAt / expiresAt 为毫秒时间戳;*Iso 为 ISO 8601 |
| 幂等 | 建单必须带唯一 Idempotency-Key;同 Key 重试返回同一订单 |
| 限流 | 报价按 Key 配额;遇 429 请退避 |
| Webhook | 收款(收单)事件会推送到你的回调地址,见 通用 → Webhook;兑换订单目前请轮询 |
完整业务码见 通用 → 错误与约定。