> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用某个币种之前必须先开通吗？

> 币种和支付方式如何在 Waffo 账户上变为可用：订单币种与用户币种的区别、在哪里查看你已开通的内容、未开通的币种实际返回哪个错误码、开通是按商户 ID 还是按整个账户、同一支付方式能否在一个市场用本地币种定价而在另一个市场用 USD 定价，以及新增支付方式是否影响已在运行的支付方式。

简短回答：\*\*没有单独的"开通此币种"开关。\*\*一个币种只要在你的某一份支付方式协议上，就可以使用，所以"我的币种开通了吗？"
和"我开通了这个支付方式吗？"其实是同一个问题问了两遍。本页逐一梳理由此带来的影响，包括那个让所有人都栽跟头的错误码。

金额格式、小数位规则和完整币种列表见已发布的[币种处理](/docs/zh/developer-docs/core-concepts/currency)；定价策略本身见
[定价与币种](/docs/zh/developer-docs/use-cases/pricing-currency)。订单的多个金额字段中该核对哪个、按哪个发货、按哪个对账——
以及为什么 `finalDealAmount` 与 `orderAmount` 不同是合理的——见
[我该检查哪些金额和币种字段？](/docs/zh/support/order-amount-and-currency-fields-faq)。下文讲的是开通，不是字段或格式。

## 一笔订单有哪两个币种？

每份 Payin 协议都同时带有这两个币种，它们的作用不同：

| 币种 | 是什么 | 在哪里传 |
| - | - | - |
| **订单币种** | 你定价并用于记账的币种 | 创建订单时的 `orderCurrency` |
| **用户币种** | 付款人实际被扣款的币种 | `userCurrency`，可选 |

两者相同时，订单是同币种订单。两者不同时，是跨币种订单，会应用汇率——见[汇率](/docs/zh/support/exchange-rates-faq)。

这一区分对开通很重要，因为**两者是分别检查的**：你的协议必须带有订单币种，并且——如果你自己固定了用户币种——
该币种对也必须已签约。

## 我在哪里能看到我能用哪些币种？

同一份配置的三个视图：

| 视图 | 显示内容 |
| - | - |
| Portal 中的 **Service → Payin** | 每个已签约组合一行，带有 `Order Currency` 和 `User Currency` 两列 |
| `POST /api/v1/paymethodconfig/inquiry` | 从代码侧看到的同一集合——每份合约一个条目，各带其 `currency` 以及 `orderAmountMin` / `orderAmountMax` |
| 已发布的[支付方式](/docs/zh/essentials/payment-methods) | 每个支付方式一般以哪种支付币种提供——适合做规划，**不是**关于你账户的声明 |

用前两个来回答"我今天能不能这样做"，而且只用这两个。逐列解读见
[Payin 协议与交易限额](/docs/zh/support/payin-agreements-and-limits-faq)；响应字段见
[支付方式配置与限额](/docs/zh/support/payment-method-config-and-limits-faq)。

## 某个支付方式接受 USD，还是只接受本地币种？

取决于行，而不是支付方式。同一支付方式可以以多个订单币种签约，一个支付方式在 Service → Payin 上出现多次是正常的——
每个币种一行——各行限额不同。

所以这个问题要按行回答：找到该支付方式，读取它的 `Order Currency`，如果你打算固定付款人被扣款的币种，也读取它的
`User Currency`。不要从一个市场推广到另一个市场，也不要在你的对接中缓存答案——从 inquiry 调用中读取。

## 我传了一个没有签约的币种，会收到哪个错误？

**`A0018`**——*"Payment method in merchant order does not match with current merchant contract."*
不是一个币种专属的错误码。这是币种开通中最具误导性的一点：消息说的是支付方式，但拒绝原因可能完全出在币种上。

三种因币种导致 `A0018` 的方式：

| 你传了什么 | 为什么失败 |
| - | - |
| 一个你任何协议都不带有的 `orderCurrency` | 查找按订单币种精确匹配；没有匹配项，所以没有协议留下 |
| 一个该支付方式未签约的 `userCurrency` | 用户币种维度同样精确匹配 |
| 一个无法应用汇率的跨币种对 | 协议存在，但订单无法定价 |

把 `A0018` 理解为"支付方式错了"会让你去检查错误的地方。请把它当作"**我的协议没有一份能匹配这整个请求**"，
然后逐个维度排查——见[订单被拒绝时我该检查什么？](/docs/zh/support/order-rejection-self-diagnosis-faq)。

## 怎么避免这个错误的币种对版本？

\*\*不传 `userCurrency`。\*\*如果你不固定它，收银台会自行决定付款人被扣款的币种，并按当前汇率转换你的订单金额，这样你只需要
订单币种那一半已签约。只有当你有理由自己固定面向付款人的币种时才传 `userCurrency`，而且只针对你在 Service → Payin 上
能看到的币种对。

同一错误码从支付方式角度的现有指引见[常见错误排查](/docs/zh/support/errors-troubleshooting-guide)；付款人最终以哪个币种被扣款、
以及为什么会让你意外，见[收银台跳转与操作类型](/docs/zh/support/cashier-redirect-and-action-type-faq)。

## 我能在一个市场用本地币种定价，在另一个市场用 USD 定价吗？

可以。定价记录在协议行上，而行是按国家和币种划分的，所以不同市场可以设置得不同——有的用本地币种定价，有的用单一全球币种——
包括同一支付方式。没有一个账户级设置会强制所有市场采用同一选择。

你不能做的是按请求决定：你传的 `orderCurrency` 必须是你某一行所带有的。如果某个市场只以本地币种签约，那么该市场一笔以 USD
定价的订单会得到 `A0018`，解决办法是变更合约，而不是改参数。

三种定价形态及各自隐含的参数见已发布的[定价与币种](/docs/zh/developer-docs/use-cases/pricing-currency)。

## 我收到结算款的币种是同一回事吗？

不是——结算币种是第三个独立的维度，配置在你的结算设置上，而不是 Payin 协议上。一笔订单可以用一种币种定价，
以第二种币种向付款人扣款，再以第三种币种结算给你。见[结算账户结构](/docs/zh/support/settlement-account-structure-faq)和
[结算计算详解](/docs/zh/support/settlement-calculation-explained)。

## 支付方式是对我整个账户开通，还是按商户 ID 开通？

\*\*按商户 ID。\*\*一份协议属于一个商户 ID，创建订单时按你签名请求所用的商户 ID 查找协议。所以为你的一个商户 ID 开通某支付方式
并不会为另一个开通；如果你有多个商户 ID——每条业务线一个、每个地区一个——申请时请把需要的每个商户 ID 都列出来。

实际影响：

* 在一个商户 ID 上能成功的同一请求，在另一个商户 ID 上可能返回 `A0018`。在怀疑请求体之前，先确认你的 API 密钥属于哪个商户 ID。
* Service → Payin 和 inquiry 调用每次只回答一个商户 ID 的情况。
* 如果你收到了一个指明你商户 ID 的参数错误，那么不匹配的是请求体中的 ID 和密钥所属的 ID——见
  [支付方式配置与限额](/docs/zh/support/payment-method-config-and-limits-faq)。

## 我能按地区而不是按国家开通吗？

协议行上的维度是**国家**，另加一个独立的 **Global** 条目，用于不属于任何单一国家的支付方式。中间没有地区这一层级，
所以"欧洲"或"日韩"要表达为你想要的一组国家，每个国家成为各自的行。

规划上线时这一点值得了解：申请时给出国家列表而不是地区名称，并预期生成的 Service → Payin 页面按每个国家和币种组合一行，
而不是每个地区一行。

## 新增支付方式会干扰我已经在运行的支付方式吗？

不会，也不涉及停机。协议是彼此独立的行：新增一份会创建新行，不会改动你现有各行的状态、限额和退款规则。
新支付方式设置期间，你已运行支付方式上的实时流量不受影响。

在你这边也不需要任何改动——除非你想显式指定新支付方式。如果你让收银台展示你签约的一切，新的 `Active` 行会直接开始出现；
如果你自己传 `payMethodName` / `payMethodType`，则由你决定何时开始发送新值。新签约的支付方式在收银台上出现的位置见
[收银台展示规则](/docs/zh/support/cashier-display-rules-faq)；申请如何推进见[支付开通](/docs/zh/support/payment-enrollment-faq)。

## 我在 sandbox 看到的限额和币种，在 production 里是一样的吗？

不一样——你在 sandbox 中读到的任何内容都不应被当作 production 值或报价。请从你的 production Portal 读取 production 值，
或使用 production 凭据调用 `/api/v1/paymethodconfig/inquiry`，并在创建订单前据此校验。sandbox 的数字为何存在、它们能
和不能证明什么，见 [Sandbox 环境与访问](/docs/zh/support/sandbox-environment-and-access-faq)。

费率是商业条款，只出现在你自己的 Payin 页面上——不会在任何地方公开。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.