Skip to content
VEYRA — Payments without borders
VEYRA / Developer Platform

§Developer Platform

Payments as an API you can reason about.

Resources with clear states, writes that are safe to retry, webhooks you can verify, versions that never change under your feet — and a sandbox that behaves like production, minus the money.

Base URL in sandbox: http://localhost:4610/v1

curl http://localhost:4610/v1/payment_intents \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: order-1042-attempt-1" \
  -H "Veyra-Version: 2026-10-01" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 12000,
    "currency": "EUR",
    "description": "Order #1042",
    "metadata": { "order_id": "1042" }
  }'
Style
REST, JSON, OpenAPI 3
Auth
Bearer secret keys, scoped keys
Version header
Veyra-Version: 2026-10-01
SDK
TypeScript available

01Design principles

The contract between your code and ours.

  • 01

    Idempotent by default

    Keys are kept for 24 hours. Reusing a key with a different body returns 409 idempotency_mismatch instead of guessing what you meant.

    • Idempotency-Key header
    • 24-hour retention
    • Body mismatch detected
  • 02

    Errors that tell you what to do

    Every error has the same shape, a stable machine-readable code and a message written for humans.

    • { error: { code, message, details } }
    • Stable codes
    • Request ID on every response
  • 03

    Webhooks you can trust

    Signed with HMAC-SHA256 and a timestamp, retried with exponential backoff for about three days, replayable from the dashboard.

    • Veyra-Signature header
    • 5-minute tolerance
    • Replay any event
  • 04

    Money without floats

    Amounts are integers in minor units with an ISO 4217 currency. 12.30 euro is 1230 — and JPY has no decimals at all.

    • Integer minor units
    • Per-currency exponent
    • No rounding surprises

02SDKs and plugins

Libraries, honestly labelled.

Libraries, honestly labelled.
LibraryStatus
TypeScript / Node.jsAvailable
PythonFoundations — in progress
PHPFoundations — in progress
JavaFoundations — in progress
Dart / FlutterFoundations — in progress
GoFoundations — in progress
WooCommerce pluginArchitecture defined, subject to platform requirements — not yet available
Shopify appArchitecture defined, subject to platform requirements — not yet available

?FAQ

Questions, answered

Is there an OpenAPI specification?

Yes. The sandbox API publishes its specification at /openapi.json, and the API reference on this site is generated from it.

How do I test webhooks locally?

Expose a local endpoint with a tunnel of your choice, register it in the dashboard, and use “Send test event” or replay a real sandbox event.

Are there rate limits?

Yes. When you exceed them you receive 429 rate_limited with a Retry-After header. Limits in the sandbox are generous enough for automated tests.

Get a test key and make your first call.

Your sk_test_ key is waiting in the dashboard.