Developers

APIs That Work The Way You Think

A pure REST API with predictable conventions, OpenAPI 3.0 spec, and comprehensive documentation. Use any HTTP client, in any language — no SDK required.

Comprehensive Docs

Full API reference, guides, tutorials, and integration patterns for every product.

Sandbox Environment

Isolated test environment with simulated card transactions, redemptions, and payouts.

Webhook Events

Receive real-time event notifications. Retries, signatures, and delivery guarantees built-in.

API Keys & Auth

API key management with granular scopes, IP allowlists, and automatic key rotation.

Idempotency Built-In

All write endpoints support idempotency keys to safely retry failed requests.

OpenAPI 3.0 Spec

Download our OpenAPI spec to generate client code, mock servers, or import into Postman.

Quick Start

Up and Running in 5 Minutes

Authenticate with your API key and make your first REST call. No SDK to install — any HTTP client works.

  1. 1

    Get your API key

    Request access and retrieve your key from the ClvrPay dashboard.

  2. 2

    Make an authenticated request

    Pass your key as a Bearer token in the Authorization header.

  3. 3

    Subscribe to webhooks

    Receive real-time events for transactions, payouts, and redemptions.

quickstart.js
// Pure REST — no SDK needed. Works from any language.
const response = await fetch('https://api.clvrpay.com/v1/cards', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.CLVRPAY_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    type: 'virtual',
    network: 'visa',
    currency: 'USD',
    spend_controls: {
      spend_limit: 10000, // $100
      interval: 'monthly',
    },
  }),
});

const card = await response.json();

console.log('Card issued!', {
  id: card.id,
  last4: card.last4,
  status: card.status, // 'active'
});
Language Support

Works From Any Language

The ClvrPay API is plain REST over HTTPS. Use whichever HTTP client your stack already has — no library to install, no lock-in.

cURLshell
curl -X POST https://api.clvrpay.com/v1/cards \
  -H "Authorization: Bearer $CLVRPAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"virtual","network":"visa","currency":"USD"}'
Pythonpython
import requests

res = requests.post(
  "https://api.clvrpay.com/v1/cards",
  headers={"Authorization": f"Bearer {API_KEY}"},
  json={"type": "virtual", "network": "visa", "currency": "USD"},
)
card = res.json()
PHPphp
$ch = curl_init('https://api.clvrpay.com/v1/cards');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiKey,
  'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS,
  json_encode(['type'=>'virtual','network'=>'visa'])
);
$card = json_decode(curl_exec($ch), true);
Webhooks

React to Events in Real Time

Subscribe to events across all products. Every card transaction, voucher redemption, and payout status change triggers a signed webhook to your endpoint.

  • HMAC-SHA256 signature verification
  • Automatic retry with exponential backoff
  • Event delivery guaranteed at-least-once
  • 30-day event log for replay
  • Webhook testing from dashboard
Webhook Event Payload
{
  "id": "evt_01J9ABCXYZ",
  "type": "card.transaction.authorized",
  "created": 1731200000,
  "data": {
    "card_id": "card_01J8K9XYZ",
    "transaction_id": "txn_01J9ABD",
    "amount": 4999,
    "currency": "USD",
    "merchant": {
      "name": "Google Ads",
      "category": "advertising",
      "mcc": "7311"
    },
    "status": "authorized",
    "metadata": {
      "user_id": "usr_123"
    }
  },
  "signature": "sha256=3b7d8..."
}

Ready to Start Building?

Get sandbox API access in minutes and start integrating NEXPOINTSOLUTION into your product today.