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_xxxxxxxxxxxxxxxxCreate 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.succeededpayment.failedpayment.refunded
Rate limits
60 requests per minute per API key. Exceeding returns HTTP 429.
