P Paya

API Docs

REST + JWT auth. Idempotency keys on writes. HMAC-signed webhooks. Built for production from day one.

OpenAPI 3.1 JSON Swagger UI SDK source

Base URL

https://paya.fund/api/v1

Authentication

All endpoints except registration, login, and the public payment-link / shared-invoice viewers require a Bearer token.

$ curl https://paya.fund/api/v1/auth/login \
    -H "Content-Type: application/json" \
    -d '{"email": "you@example.com", "password": "…"}'

 {"token": "eyJ0eXAi…", "refresh_token": "…"}

Use the token in subsequent requests: Authorization: Bearer <token>.

Endpoint groups

Idempotency

Pass Idempotency-Key: <your-uuid> on POST /payments to safely retry on network failure.

Webhook signing

X-Paya-Event: payment.completed
X-Paya-Signature: 7c4a8d09ca3762af61e59520943dc26494f8941b
Content-Type: application/json

{"id": "…", "amount": 120.50, "status": "completed"}

Verify: hmac_sha256(secret, body) == X-Paya-Signature. Constant-time compare.

Rate limits

Errors

JSON: {"error": {"code": "fraud_blocked", "message": "…"}}. Status codes follow REST conventions; 5xx never leak server detail.


Need help? dev@paya.fund.