Sandbox & Testing
Is there a sandbox?
v1.2 does not ship a separate sandbox. Use your real account in production with small test amounts.
| Item | Value |
|---|---|
| Production base URL | https://api.coinepay.net |
| Sandbox base URL | None |
| Local dev | http://localhost:8801 (your machine only) |
Recommended Testing Flow
1. Create dedicated test credentials
Don't test with production credentials. Generate independent AppID/Secret in the dashboard for testing.
2. Receive webhooks via webhook.site
https://webhook.site provides free temporary receiver URLs that show full request headers/body.
bash
# Open webhook.site in browser, copy the unique URL, e.g.:
WEBHOOK_URL="https://webhook.site/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# Configure via dashboard or set_webhook endpoint3. Walk through "list headers → list configs → apply → webhook → info"
The most complete happy path. See Quick Start.
4. Test amount tips
| Item | Recommendation |
|---|---|
| Initial deposit | Pick the cheapest package (typically $5-10) |
| Test recharge | Use the package's min_recharge |
| Multiple iterations | Open new cards each time — closing has fees |
Available card_types
| card_type | Description |
|---|---|
virtual_l | Virtual card class L |
virtual_p | Virtual card class P |
virtual_v | Virtual card class V (VISA) |
virtual_r | Virtual card class R |
virtual_g | Virtual card class G |
virtual_a | Virtual card class A |
Account-dependent
Not every account has every card_type enabled. The header_id values returned from card_headers/list are your actual range — don't hardcode.
Credential Lifecycle
| Item | Value |
|---|---|
| Validity | Indefinite (until reset / disabled) |
| Per-user limit | 1 active credential pair (v1) |
| After reset | Old SECRET immediately invalid; AppID unchanged |
| After disable | 401 invalid_credentials; can re-enable any time |
Verify a Captured Webhook
Copy the request from webhook.site, run it through the verification snippet locally, and confirm verify_ok = true.
When to Contact Support
| Symptom | Self-check first |
|---|---|
| Persistent 401 | See Auth — handling 401 |
| No webhook received | Verify URL is public HTTPS, firewall, 5s response, check webhook_events/list |
Card stuck in pending | It's async; wait for webhook. Contact if > 30 min. |
| No recharge response | Check webhook_events/list; query by transaction_id |
Support email: [email protected]