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

# 测试虚拟卡优惠

> 在预发环境可直接使用的虚拟卡优惠 ID，以及如何在运行时动态发现可用优惠。

在**预发**环境中使用这些优惠 ID 来签发虚拟卡。每张虚拟卡都基于一个\_offer\_创建，该对象决定卡计划（网络、BIN 和奖励）。下面的优惠 ID 已在预发环境启用，可直接传入 `createVirtualCard`。

<Warning>
  **请先完成 KYC**

  只有通过身份验证的账户才能签发虚拟卡。在账户（以及企业账户的受益所有人）通过 KYC/KYB 之前，`getVirtualCardOffers` 可能返回空结果，且 `createVirtualCard` 会失败。请在测试前先运行验证流程。参见 [用户 KYC 验证](/features/user-kyc-verification) 了解提交流程，并从 [测试 KYC 流程](/test-kyc-flows) 获取测试身份信息。
</Warning>

<Note>
  **仅限预发**

  这些优惠 ID 只在预发端点（`https://transactional-graph.staging.fluzapp.com/api/v1/graphql`）有效。在生产环境中会被拒绝，届时必须从 [获取虚拟卡优惠](/features/get-virtual-card-offers) 拉取实时优惠 ID。
</Note>

## 预发优惠 ID

| Offer ID                               | Program                                        | Network    |
| -------------------------------------- | ---------------------------------------------- | ---------- |
| `5b22153c-7c1e-4a66-9d2c-e786da7e9393` | Virtual Card - Mastercard Prepaid              | Mastercard |
| `e5d209d2-97b2-4636-9531-b3a459e34651` | Brand Locked Virtual Card - Mastercard Prepaid | Mastercard |
| `0a6f66ec-a615-47cb-a850-ef971f7054b8` | Single Load Virtual Card - Mastercard Prepaid  | Mastercard |
| `490032ad-2e67-4ef0-92ff-cd7071332716` | Reloadable Virtual Card - Mastercard Prepaid   | Mastercard |

## 应该选择哪个优惠？

各个计划都会签发 Mastercard 预付卡，但在可用场景和资金方式上有所不同。请选择与你想要测试的行为相匹配的计划：

<AccordionGroup>
  <Accordion title="Virtual Card" icon="credit-card">
    通用型计划——标准的多次使用预付卡，可在接受 Mastercard 的任意商户消费，受你设定的支出限额约束。如果你只是想走通端到端的“快乐路径”，从这里开始。
  </Accordion>

  <Accordion title="Brand Locked Virtual Card" icon="store">
    仅限单一商户或品牌使用的卡。在其他任何商户的交易都会被拒绝。用它来测试商户受限的支出控制——例如仅能在某个指定供应商使用的卡。
  </Accordion>

  <Accordion title="Single Load Virtual Card" icon="banknote">
    在创建时一次性注资的卡。余额预先充值后逐步消耗——之后无法再次充值。用它来测试固定面值、一次性使用的卡片流程，如单次供应商付款或发放款项。
  </Accordion>

  <Accordion title="Reloadable Virtual Card" icon="refresh-ccw">
    可在创建后继续充值的卡。用它来测试长期使用、可反复补充资金的卡——如周期性补贴、团队卡或持续性的订阅支出。
  </Accordion>
</AccordionGroup>

## 推荐流程

与其硬编码一个优惠 ID，我们建议在运行时动态发现优惠——返回列表会准确反映你的账户有权使用的内容。仅需两个快速调用。

<Steps>
  <Step title="列出可用优惠">
    调用 `getVirtualCardOffers`，并从响应中取一个 `offer_id`。
  </Step>

  <Step title="创建卡片">
    将该 `offer_id` 传给 `createVirtualCard`。成功响应会返回状态为 `ACTIVE` 的 `virtual_card_id`。
  </Step>
</Steps>

<CodeGroup>
  ```graphql Step 1 — Get offers theme={null}
  query {
    getVirtualCardOffers(input: {}) {
      offer_id
      program_name
      bank_name
      rewardValue
    }
  }
  ```

  ```graphql Step 2 — Create a card theme={null}
  mutation {
    createVirtualCard(input: {
      offerId: "5b22153c-7c1e-4a66-9d2c-e786da7e9393"
      spendLimit: 5.00
      idempotencyKey: "<any unique string>"
    }) {
      virtual_card_id
      status
      initial_amount
    }
  }
  ```
</CodeGroup>

<Tip>
  将 `spendLimit` 设为不高于你的可用余额——该卡从你的 Fluz 余额中注资，因此更高的限额会因余额不足而失败。建议先做一次 5 美元的测试。首次创建卡片时你可以省略账单地址以简化“快乐路径”；稍后可通过 [添加虚拟卡地址](/features/add-virtual-card-address) 补充。
</Tip>

## 后续步骤

<CardGroup cols={2}>
  <Card title="创建虚拟卡" icon="credit-card" href="/features/create-virtual-cards">
    完整的 `createVirtualCard` 参考——入参、资金和卡片生命周期。
  </Card>

  <Card title="测试 KYC 流程" icon="id-card" href="/test-kyc-flows">
    覆盖各类验证结果（通过、拒绝、重复）的测试身份。
  </Card>
</CardGroup>

**想了解更多？** 请联系 [partnerships@fluz.app](mailto:partnerships@fluz.app)。与我们的专家沟通以获取更多信息或申请演示。
