Developers

A clean REST API, signed webhooks, test mode, and a hosted checkout you can drop in today.

Authentication

Create test or live API keys from the Developers tab in the dashboard. Pass them as a bearer token.

Authorization: Bearer vp_test_xxxxxxxxxxxxxxxx

Create a payment

curl https://api.vaultpay.example/api/public/v1/payments \
  -H "Authorization: Bearer vp_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1999,
    "currency": "GBP",
    "description": "Order #1234",
    "customer": { "email": "buyer@example.com", "country": "GB" }
  }'

Retrieve a payment

curl https://api.vaultpay.example/api/public/v1/payments/pay_123 \
  -H "Authorization: Bearer vp_test_..."

Refund a payment

curl -X POST https://api.vaultpay.example/api/public/v1/payments/pay_123/refund \
  -H "Authorization: Bearer vp_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "amount": 500, "reason": "customer_request" }'

Webhooks

Add an endpoint in the dashboard. We sign every delivery with HMAC-SHA256 in the X-VaultPay-Signature header and retry with exponential backoff. Events:

  • payment.succeeded
  • payment.failed
  • payment.refunded

Rate limits

60 requests per minute per API key. Exceeding returns HTTP 429.