# Troubleshooting "Couldn't Create Payment" Error

When you choose a cryptocurrency tender (e.g., Bitcoin, Ethereum, USDC) in **Sandbox**, the checkout performs two actions:

1. **Create the payment** in Bead’s sandbox gateway.
2. **Generate a QR code** that the consumer scans with their crypto wallet to run a *test transaction* on the correct test-net or partner sandbox.

If step 1 fails—usually because the downstream test-net or processor is temporarily unavailable—the UI shows the *Couldn’t Create Payment* dialog instead of the QR code.

<figure><img src="/files/Zzy2If4IpQV7SFwtrxtx" alt=""><figcaption></figcaption></figure>

### Why it happens

| Cause                                                    | Where it originates       | Typical duration                  |
| -------------------------------------------------------- | ------------------------- | --------------------------------- |
| Test-net instability (e.g., Bitcoin Testnet)             | External blockchain nodes | Minutes to a few hours            |
| Third-party sandbox outage (processor / wallet provider) | External service          | Varies by provider                |
| Config drift in our crypto sandbox gateway               | Bead Sandbox              | Rare; fixed quickly once detected |

Our Sandbox relies on external networks and partner sandboxes for QR-code payloads, so any hiccup downstream bubbles up here.

### Recommended workflow

1. **Switch to a known-good tender**
   * Use another payment tender to keep testing moving.
2. **Retry later**
   * Most blockchain test-nets recover on their own.
3. **Let us know**
   * Send a support ticket with merchantId and terminalId
   * We’ll confirm if we also see downstream issues and post status updates.

### Impact on production

Production uses main-net rails and HA processor clusters, so this error is limited to **Sandbox**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.bead.xyz/faqs-and-troubleshooting/payments-faqs/troubleshooting-couldnt-create-payment-error.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
