REST API

Complete reference for the ClawPay REST API.

Base URL

Production: https://api.useclawpay.app/v1
Sandbox:    https://api.sandbox.useclawpay.app/v1

Authentication

All requests require an API key in the Authorization header:

Authorization: Bearer sk_live_your_api_key

Vaults

Vaults are treasury accounts that hold your digital assets.

Create Vault

POST /v1/vaults

Request Body:

{
  "name": "Company Treasury",
  "currency": "USDC",
  "network": "solana",
  "initialDeposit": 10000.00,
  "metadata": {
    "department": "Finance",
    "costCenter": "CC-001"
  }
}

Response:

List Vaults

Query Parameters:

Parameter
Type
Description

limit

integer

Number of results (1-100, default: 10)

startingAfter

string

Cursor for pagination

currency

string

Filter by currency (USDC, SOL, etc.)

status

string

Filter by status (active, frozen, closed)

Response:

Retrieve Vault

Update Vault

Request Body:

Freeze Vault

Temporarily freezes all transactions. Useful for security incidents.

Close Vault

Withdraws remaining balance and permanently closes the vault.

Cards

Virtual debit cards linked to vaults.

Create Card

Request Body:

Response:

List Cards

Reveal Card Details

Returns full card number and CVV. Requires 2FA if enabled.

Freeze Card

Temporarily blocks transactions. Can be unfrozen later.

Cancel Card

Permanently cancels the card. Cannot be reversed.

Transactions

View transaction history and details.

List Transactions

Query Parameters:

Parameter
Type
Description

vaultId

string

Filter by vault

cardId

string

Filter by card

status

string

pending, completed, failed, declined

minAmount

number

Minimum transaction amount

maxAmount

number

Maximum transaction amount

startDate

string

ISO 8601 date

endDate

string

ISO 8601 date

limit

integer

Results per page (1-100)

Response:

Retrieve Transaction

Transaction Metadata

View zero-knowledge encrypted metadata:

Only accessible to vault owners and transaction counterparties.

Authorization Policies

Define spending rules for vaults.

Set Authorization Policy

Request Body:

Get Authorization Policy

Delete Authorization Policy

Removes all restrictions (not recommended for production).

Transfers

Move funds between vaults or to external addresses.

Create Transfer

Request Body:

Response:

External Transfer

Transfer to an external Solana address:

Webhooks

Configure webhook endpoints to receive real-time events.

Create Webhook

Request Body:

List Webhooks

Delete Webhook

Test Webhook

Sends a test event to verify your endpoint.

Balances

Query real-time balance information.

Get Vault Balance

Response:

Get Balance History

Returns daily balance snapshots.

Rate Limits

Check your current rate limit status:

Response:

Errors

All errors follow this format:

Error Types

Type
Description

authentication_error

Invalid API key or expired session

invalid_request_error

Malformed request or invalid parameters

permission_error

Insufficient permissions for operation

rate_limit_error

Too many requests

server_error

Internal server error (contact support)

Common Error Codes

  • vault_not_found - Vault ID doesn't exist

  • insufficient_balance - Not enough funds for operation

  • card_declined - Card transaction declined

  • authorization_failed - Transaction violates authorization policy

  • invalid_currency - Unsupported currency

  • duplicate_idempotency_key - Request already processed

Idempotency

Prevent duplicate requests by including an idempotency key:

If the same key is used within 24 hours, the original response is returned without creating a duplicate.

Pagination

List endpoints support cursor-based pagination:

Use nextCursor for the next page:

Versioning

The API version is included in the URL: /v1/

Breaking changes will be released in new versions (/v2/, etc.). Non-breaking changes are added to existing versions.

Next Steps

Last updated