Error Codes

Comprehensive guide to ClawPay API errors and how to handle them.

Error Response Format

All API errors follow this structure:

{
  "error": {
    "type": "invalid_request_error",
    "code": "vault_not_found",
    "message": "No vault found with ID vault_123",
    "param": "vaultId",
    "requestId": "req_abc123xyz",
    "statusCode": 404
  }
}

Error Types

authentication_error

Invalid or missing API key.

Status Code: 401

Common causes:

  • Missing Authorization header

  • Invalid API key format

  • Expired or revoked API key

  • Using test key in production

How to fix:

invalid_request_error

Malformed request or invalid parameters.

Status Code: 400

Common codes:

  • missing_required_param - Required field not provided

  • invalid_param_value - Parameter has invalid value

  • invalid_currency - Unsupported currency

  • invalid_amount - Amount format invalid

How to fix:

permission_error

Insufficient permissions for the operation.

Status Code: 403

Common causes:

  • Using restricted key with insufficient scope

  • Attempting to access another user's resources

  • Operation requires 2FA but not provided

How to fix:

rate_limit_error

Too many requests in a short period.

Status Code: 429

How to handle:

resource_error

Resource-specific errors.

Status Code: 404, 409, 422

Common codes:

  • vault_not_found - Vault doesn't exist

  • card_not_found - Card doesn't exist

  • insufficient_balance - Not enough funds

  • vault_frozen - Vault is frozen

  • card_cancelled - Card is cancelled

  • duplicate_idempotency_key - Request already processed

How to handle:

server_error

Internal server error.

Status Code: 500, 502, 503

What to do:

  1. Retry the request with exponential backoff

  2. If persistent, contact support with requestId

Error Codes Reference

Authentication Errors

Code
Description
Fix

invalid_api_key

API key is invalid

Verify key is correct

expired_api_key

API key has expired

Generate new key

revoked_api_key

API key was revoked

Create new key

invalid_session

Session token expired

Re-authenticate

2fa_required

Operation needs 2FA

Complete 2FA flow

Vault Errors

Code
Description
Fix

vault_not_found

Vault doesn't exist

Check vault ID

vault_frozen

Vault is frozen

Unfreeze or contact support

vault_closed

Vault is closed

Cannot reopen, create new

insufficient_balance

Not enough funds

Deposit more funds

invalid_currency

Currency not supported

Use USDC, SOL, etc.

minimum_balance

Below minimum balance

Deposit to meet minimum

Card Errors

Code
Description
Fix

card_not_found

Card doesn't exist

Check card ID

card_frozen

Card is frozen

Unfreeze card

card_cancelled

Card is cancelled

Issue new card

card_expired

Card has expired

Issue replacement

daily_limit_exceeded

Daily spend limit hit

Wait or increase limit

monthly_limit_exceeded

Monthly limit hit

Wait or increase limit

merchant_blocked

Merchant not allowed

Update whitelist

category_blocked

Category not allowed

Update allowed categories

Transaction Errors

Code
Description
Fix

transaction_declined

Transaction declined

Check decline reason

authorization_failed

Failed authorization checks

Review policy rules

approval_required

Needs manual approval

Approve transaction

approval_timeout

Approval timed out

Retry with longer timeout

invalid_amount

Amount invalid

Check amount format

duplicate_transaction

Duplicate detected

Use different idempotency key

Transfer Errors

Code
Description
Fix

invalid_address

Blockchain address invalid

Verify address format

network_congestion

Network is congested

Retry with higher priority

transfer_failed

Transfer failed onchain

Check blockchain explorer

same_vault_transfer

Source = destination

Use different vaults

SDK Error Handling

TypeScript

Python

Go

Best Practices

1. Always Handle Errors

2. Use Specific Error Handlers

3. Log Request IDs

4. Implement Retry Logic

5. Validate Before Calling API

Monitoring Errors

Error Rate Tracking

Alert on Critical Errors

Getting Help

If you encounter persistent errors:

  1. Search Documentation: docs.useclawpay.apparrow-up-right

  2. Contact Support: [email protected]

    • Include requestId from error response

    • Describe steps to reproduce

    • Include relevant code snippets

Next Steps

Last updated