Common Issues
Authentication Issues
Authentication Issues
Invalid API Key
If you’re getting 401 Unauthorized errors:
- Verify your API key is correct and not expired
- Ensure you’re using the correct header:
API-Key(notX-API-Key) - Check that your account has been KYC verified
- Confirm your API key has the necessary permissions
Example Request
Order Creation Errors
Order Creation Errors
400 Bad Request
Common causes and solutions:
- Invalid amount: Amount must be a positive number
- Unsupported token: Check supported tokens in the resources section
- Invalid network: Ensure the network supports your chosen token
- Invalid Starknet address: For
network: "starknet", use felt hex (0x+ 63–64 hex digits), not an EVM checksum address - Invalid Tron address: For
network: "tron", use a Base58 address starting withT, not an EVM0xaddress - Invalid Solana address: For
network: "solana",refundAddress(off-ramp) anddestination.recipient.address(on-ramp) must be Solana Base58 public keys, not EVM0xaddresses - ”This network is available only via POST /v2/sender/orders”: v1 endpoints do not accept Tron or Solana. Create Tron and Solana orders with
POST /v2/sender/orders - ”recipient … token account does not exist …” (on-ramp to Solana): the recipient wallet has no token account for the stablecoin’s mint. Have the user create it, then retry
- ”Amount is below the minimum of 1 for this network”: the amount must be at least 1 unit of the stablecoin
- Invalid
senderFeeAddresson a Solana order: for Solana orders,senderFeeAddressmust be a Solana Base58 public key, like the order’s other addresses - Missing recipient details: All recipient fields are required
- Invalid institution: Check supported institutions for the currency
- Provider routing rejected:
providerIdsandproviderIdare mutually exclusive; off-ramp queues cap at 3 entries and on-ramp at 1; entries must name providers you can route to. See Pin a provider queue
503 “Network temporarily unavailable”
The message is one of:
- “This network is temporarily unavailable; retry shortly or use another network"
- "A quote for this amount is not available right now; retry shortly”
Nothing was created. Retry shortly, or create the order on another network.
The user’s wallet will not send the deposit (“insufficient funds for gas”)
Not a Paycrest error — the wallet is refusing before broadcast. providerAccount.amountToTransfer is the token amount to send; the network fee for the user’s own transfer is paid separately in the network’s native token.
- No native balance in the sending account: holding the token is not enough. Wallets show a combined balance across accounts, so the native token often sits in a different account than the one sending
- Solana — the receive address’s token account: a transfer to a new receive address also creates its token account, currently about 0.0015 SOL on top of the network fee, and not refunded
Deposit sent without the memo
When providerAccount.memo is present, the deposit must include it; without it the deposit cannot be credited. Contact support with the order ID and transaction hash.
”Recipient data too large for encryption”
The recipient object is capped at 500 bytes of JSON before encryption. The size check reserves room for a full 3-provider routing queue on every order — including orders that send no providerIds — because the aggregator may resolve one onto the order and it rides in the message hash at gateway submit.
- That reservation costs about 49 bytes (~41 when you pin a
providerId), leaving roughly 450 bytes foraccountIdentifier+accountName+memo+metadatacombined - Trim
memofirst, thenmetadata— keep onlyapiKeyand corridor-required keys likechannel accountNamefrom verify-account is often longer than what you supplied; count the resolved value
Example Error Response
Order Status Issues
Order Status Issues
Order Stuck in Pending
If your order has been in pending status for more than 10 minutes:
- Check if there are any network issues or maintenance
- Verify the recipient details are correct
- Contact support with your order ID
Order Refunded
Common reasons for a refund:
- Insufficient provider liquidity
- Recipient account issues
- Compliance or regulatory restrictions
- Network congestion or technical issues
Webhook Issues
Webhook Issues
Webhooks Not Receiving
Troubleshooting steps:
- Verify your webhook URL is publicly accessible
- Check that your server returns 200 OK responses
- Ensure your webhook endpoint can handle POST requests
- Verify webhook signature for security
Inspect and replay deliveries
You don’t need to re-trigger the order flow to recover a missed event. Every send is logged as a delivery you can audit and replay:
- List failed deliveries:
GET /v2/sender/webhooks?status=failed - Read the captured response body and error:
GET /v2/sender/webhooks/:id - Replay the original payload:
POST /v2/sender/webhooks/:id/retry(?sync=truereturns the HTTP result inline; otherwise it’s queued)
Failed deliveries (transport errors and non-2xx responses) are also retried automatically with exponential backoff for 24 hours before being marked expired. See the webhook delivery logs & retry guide.
Webhook Signature Verification
- JavaScript
- Python
- Go
Network Issues
Network Issues
Blockchain Network Problems
If you’re experiencing issues with specific networks:
- High gas fees: Consider using L2 networks like Base, Arbitrum, Polygon, Celo, or Lisk
- Slow confirmations: Some networks may have congestion
- Network maintenance: Check our Telegram community for updates
Supported Networks
Ethereum L2s
- Base
- Arbitrum One
- Polygon
- Celo
- Lisk
Other Networks
- Ethereum
- BNB Smart Chain
- Starknet
- Tron
Error Codes Reference
4xx Client Errors
- 400: Bad Request - Invalid parameters
- 401: Unauthorized - Invalid API key
- 403: Forbidden - Insufficient permissions
- 404: Not Found - Resource doesn’t exist
- 429: Too Many Requests - Rate limit exceeded
5xx Server Errors
- 500: Internal Server Error
- 502: Bad Gateway
- 503: Service Unavailable
- 504: Gateway Timeout
Rate Limits
Unauthenticated
- 20 requests/second
- Applies to requests without a valid API key
Authenticated
- 500 requests/second
- Applies to requests with a valid API key
Testing & Debugging
Enable Debug Logging
Check API Status
- Monitor response times and error rates
- Set up alerts for critical endpoints
- Join our Telegram community for real-time updates
Contact Support
- Email: [email protected]
- Telegram: Community Chat
- Include order IDs and error details
Best Practices
Error Handling
- Always check response status codes
- Implement exponential backoff for retries
- Log errors with context for debugging
- Handle network timeouts gracefully
Security
- Store API keys securely (use environment variables)
- Verify webhook signatures
- Use HTTPS for all API calls
- Rotate API keys regularly
Performance
- Cache supported currencies and institutions
- Use webhooks instead of polling
- Implement connection pooling
- Monitor rate limits
Monitoring
- Track order success/failure rates
- Monitor response times
- Set up alerts for critical failures
- Log important events for audit trails