# Turnkey 兑换已受理却未到账：核净报价、结算与退款

整理：链小知（AI 辅助）
资料核对日期：2026-10-14
引用地址：https://lianxiaozhi.com/tools/guides/turnkey-swap-netquote-settlement-refund-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

从已有报价/执行摘要区分预期净额、最低输出和实际结算，单独核跨链失败后的资金位置。

## 使用工具
- [Turnkey](https://lianxiaozhi.com/tools/turnkey) · [官方入口](https://www.turnkey.com/)

## 前置条件
- 准备已有脱敏quote、execute和status记录；不生成报价、不调用API、不签名、执行或重试兑换。
- 保留quoteId/swapRequestId的脱敏关联、organization身份和读数时间；不写凭据、X-Stamp或私钥。

## 1. 先固定资产身份与计量单位

输入/输出token用CAIP-19；CAIP-2前缀相同为同链，不同EVM链为跨链，eip155与solana不同为跨协议。inputAmount按输入资产最小单位，不能与UI美元数字直接相比。

EVM↔SVM的destinationAddress是接收原始公开地址，必须匹配输出协议；同协议路由不应填它。它不是钱包account ID或CAIP标识。

核对结果：资产/链/协议/金额单位和接收地址种类有明确记录。
依据：[Turnkey：兑换报价身份、净额与过期](https://docs.turnkey.com/features/transaction-management/swap/get-swap-quote.md)

## 2. 核净报价与有效时间

outputAmount是已含Turnkey及客户服务费的预期净额，minOutputAmount是执行下限；不要再减一次服务费。50 bps示例为0.5%，不是50%。

expiresAt为毫秒epoch；过期不可执行，未过期也不保证市场路由仍可填。实际完成净额以status里的outputAmount为准，不将报价当成交保证。

核对结果：预期/最低/实际三类金额分开，记录费用已含与过期边界。
依据：[Turnkey：兑换报价身份、净额与过期](https://docs.turnkey.com/features/transaction-management/swap/get-swap-quote.md)

## 3. 把活动受理与结算分开

当前Quote V2与Execute V3通过quoteId绑定经济条件；execute活动COMPLETED只表示接受并入队广播，得到swapRequestId。

既有status记录须对应执行组织及swapRequestId。PENDING包含待广播、源链未纳入及目标链未结算；COMPLETED才表示输出资产到达，实际outputAmount仍可能滞后几秒填入。

核对结果：活动成功未升级为到账；status与原quote/execute一一关联。
依据：[Turnkey：兑换执行活动与Gas](https://docs.turnkey.com/features/transaction-management/swap/execute-swap.md)
依据：[Turnkey：兑换结算与跨链失败退款](https://docs.turnkey.com/features/transaction-management/swap/track-swap-status.md)

## 4. 失败后分别核源链和退款

同链FAILED只在源交易失败分支，无refund。跨链FAILED可能是ORIGIN_TRANSACTION_FAILED或PROVIDER_FILL_FAILED；后者可在退款字段出现前先进入失败状态。

退款asset可能不同于原input，amount还会受源链兑换损失及退款Gas影响。只有已有refund对象和相应资产/链回执才记已退；没有refund时保持资金位置未知，不填原额退回。

核对结果：记录error.reason、源hash和refund身份/金额/链；未把FAILED当全额退款。
依据：[Turnkey：兑换结算与跨链失败退款](https://docs.turnkey.com/features/transaction-management/swap/track-swap-status.md)

## 5. 核服务费之外的Gas与策略缺项

无赞助时原钱包承担源链Gas；已启用sponsor时组织承担赞助费用，源交易回滚也可能花Gas。服务费净报价不能证明网络费为0。

所读策略示例用activity.params并区分kind/type；slippage_bps省略时策略字段读取可报FieldNotUsed，不能按0解释。这里只核已有策略/费用记录，不修改配置或扩大滑点重试。

核对结果：付款方、Gas与服务费分列，省略策略字段保留缺项。
依据：[Turnkey：兑换执行活动与Gas](https://docs.turnkey.com/features/transaction-management/swap/execute-swap.md)
依据：[Turnkey：兑换报价身份、净额与过期](https://docs.turnkey.com/features/transaction-management/swap/get-swap-quote.md)
依据：[Turnkey：Swaps/Earn活动策略字段](https://docs.turnkey.com/features/policies/examples/swaps-earn.md)

## 常见错误
- 官方推荐失败后继续取退款状态不等于自动退款保证；本教程只审阅已有快照，不运行轮询。
- 每次重新报价和兑换都是新请求与新费用，不能自动补做。

## 完成检查
- 得到净报价/受理/结算/失败退款与费用付款方对照。
- 未查询认证API或验证任何实际兑换到账。

## 相关知识
- [滑点和价格冲击有什么区别？为什么成交价会变化](https://lianxiaozhi.com/learn/slippage-and-price-impact)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)

## 官方依据
- [Turnkey：兑换报价身份、净额与过期](https://docs.turnkey.com/features/transaction-management/swap/get-swap-quote.md)
- [Turnkey：兑换执行活动与Gas](https://docs.turnkey.com/features/transaction-management/swap/execute-swap.md)
- [Turnkey：兑换结算与跨链失败退款](https://docs.turnkey.com/features/transaction-management/swap/track-swap-status.md)
- [Turnkey：Swaps/Earn活动策略字段](https://docs.turnkey.com/features/policies/examples/swaps-earn.md)
