# 生成凭证 (/zh/docs/pix-processamento/sandbox/credencial)

<QuickLinks>
  <QuickLink href="/docs/pix-processamento/sandbox" title="Sandbox" />

  <QuickLink href="/docs/pix-processamento/sandbox/cenarios" title="测试场景" />

  <QuickLink href="/docs/pix-processamento/sandbox/webhooks" title="沙盒中的 Webhook" />

  <QuickLink href="/docs/pix-processamento/authentication" title="认证" />
</QuickLinks>

沙盒凭证由一个 e-mail 和一个 6 位验证码签发。无需注册，也无需审核。

<Flow>
  <FlowNode title="E-mail" subtitle="无需注册" />

  <FlowArrow label="6 位验证码" />

  <FlowNode title="验证" subtitle="10 分钟，5 次尝试" />

  <FlowArrow label="POST /sandbox/credentials/verify" />

  <FlowNode title="sbx_..." subtitle="24 小时" />
</Flow>

## 通过表单生成 [#通过表单生成]

<SandboxCredential
  labels="{
  emailLabel: &#x22;E-mail&#x22;,
  emailPlaceholder: &#x22;dev@yourstore.com&#x22;,
  requestCode: &#x22;发送验证码&#x22;,
  sending: &#x22;发送中...&#x22;,
  codeSent: &#x22;验证码已发送至 {email}。有效期 10 分钟，最多尝试 5 次。&#x22;,
  codeLabel: &#x22;6 位验证码&#x22;,
  codePlaceholder: &#x22;000000&#x22;,
  generateCredential: &#x22;生成凭证&#x22;,
  generating: &#x22;生成中...&#x22;,
  changeEmail: &#x22;使用其他 e-mail&#x22;,
  tokenTitle: &#x22;你的沙盒凭证&#x22;,
  tokenWarning: &#x22;请立即复制。token 不会再次显示，有效期 24 小时。&#x22;,
  copy: &#x22;复制&#x22;,
  copied: &#x22;已复制!&#x22;,
  copyFailed: &#x22;复制失败&#x22;,
  curlsTitle: &#x22;第一批调用&#x22;,
  curlWebhook: &#x22;注册 webhook&#x22;,
  curlCharge: &#x22;创建收款&#x22;,
  curlLookup: &#x22;查询收款&#x22;,
  webhookUrlPlaceholder: &#x22;https://your-app.com/webhook&#x22;,
  captchaLoading: &#x22;正在加载 reCAPTCHA...&#x22;,
  captchaError: &#x22;无法加载 reCAPTCHA，请刷新页面。&#x22;,
  captchaRequired: &#x22;请先勾选 reCAPTCHA，再请求验证码。&#x22;,
  networkError: &#x22;无法连接沙盒。请检查网络后重试。&#x22;,
  unexpectedError: &#x22;沙盒返回了一个没有消息的错误。&#x22;,
  retryAfter: &#x22;请在 {seconds} 秒后重试。&#x22;,
  requestIdLabel: &#x22;requestId&#x22;,
}"
/>

验证码通过 e-mail 送达，有效期 10 分钟，最多尝试 5 次。每个 e-mail 每小时最多申请 3 个验证码。凭证初始带有 `DEPOSIT` 和 `WITHDRAW` 两个 scope，余额 R$ 10.000,00，手续费为零。在已认证的调用中携带 `Authorization: Bearer sbx_...`，与 [认证](/docs/pix-processamento/authentication) 中一致。两个预凭证路由无需 token：`POST /sandbox/credentials`（申请验证码，由 reCAPTCHA 保护）和 `POST /sandbox/credentials/verify`（用验证码换取凭证）。

<Callout type="warn">
  token 只显示一次。请像保管生产 token 一样保管它：放在环境变量中，不要进入代码仓库。
</Callout>

## 用 curl 换取凭证 [#用-curl-换取凭证]

申请验证码（`POST /sandbox/credentials`）需要 reCAPTCHA token，因此由上方的表单完成。用验证码换取凭证可以通过 curl 完成：

```bash
curl -X POST https://pix.sandbox.payzu.dev/sandbox/credentials/verify \
  -H "Content-Type: application/json" \
  -d '{"email":"dev@sualoja.com.br","code":"418302"}'
```

```json
{
  "id": "cmh211yjm03ohs601kf7672du",
  "token": "sbx_5f3a9c2e...",
  "status": "ACTIVE",
  "permissions": ["DEPOSIT", "WITHDRAW"],
  "createdAt": "2026-08-23T12:00:00.000Z",
  "updatedAt": "2026-08-23T12:00:00.000Z"
}
```

把 `token` 保存到 `SANDBOX_TOKEN`，供后续步骤使用：[测试场景](/docs/pix-processamento/sandbox/cenarios) 和 [沙盒中的 Webhook](/docs/pix-processamento/sandbox/webhooks)。