// Integration / Developer Hub

Build once. Reach every merchant.

A cloud-to-edge bridge with predictable REST endpoints, webhooks and a sandbox. Ship your integration without touching a single terminal.

create-merchant.sh
# Onboard a merchant into your portfolio
curl -X POST https://api.veslo.io/v1/merchants \
  -H "Authorization: Bearer $VESLO_KEY" \
  -d '{
    "legal_id": "SK2020123456",
    "brand":    "your-iso",
    "package":  "gastro",
    "device":   "pax-a920pro"
  }'

# → 201 Created
{
  "merchant_id": "mch_9f2a…",
  "status": "onboarding",
  "fiscalization": "ekasa_pending"
}
// Quickstart

Live in three calls.

Authenticate, create a merchant, and start receiving events. Same API in sandbox and production.

STEP 01

Get a key

Create a scoped API key in the Integration Hub — sandbox or live.

export VESLO_KEY="sk_live_…"
STEP 02

Create a merchant

POST a merchant with its legal ID; Veslo handles KYC and provisioning.

POST /v1/merchants
STEP 03

Listen to webhooks

Subscribe to lifecycle events — onboarding, settlement, device health.

POST /v1/webhooks
// Everything you need

One hub for the whole integration.

API

REST API

Versioned, predictable endpoints for merchants, devices, transactions and payouts.

Webhooks

Real-time events with signed payloads and automatic retries.

OAuth & SSO

Scoped tokens, partner-level access control and single sign-on.

Sandbox

Full test environment with mock devices and fiscal simulation.

Logs & audit

Every request and transaction, searchable and exportable.

{ }

SDKs

Typed client libraries so you write less boilerplate.

// API reference

A clean, resource-based API.

Model the whole merchant lifecycle with a handful of predictable resources. Full reference and schemas at api.veslo.io.

Open API reference
POST/v1/merchants
GET/v1/merchants/{id}
GET/v1/devices
POST/v1/devices/{id}/config
GET/v1/transactions
GET/v1/payouts
POST/v1/webhooks
// Webhooks

React to everything, in real time.

Signed, retried events for every meaningful change across the merchant lifecycle — no polling required.

  • merchant.onboarded
  • transaction.settled
  • device.health.changed
  • payout.created
merchant.onboarded
{
  "type": "merchant.onboarded",
  "created": "2026-07-27T09:14:22Z",
  "data": {
    "merchant_id": "mch_9f2a…",
    "brand": "your-iso",
    "device": "pax-a920pro",
    "fiscalization": "ekasa_active"
  }
}
// SDKs

Use your language.

Typed client libraries and a documented OpenAPI spec you can generate from.

Node.jsPythonPHPGoJavacURLOpenAPI spec
// Logs & audit

Full visibility, every request.

Inspect API calls, webhook deliveries and transaction events. Export a complete audit trail for compliance.

See the audit log
api.veslo.io/audit-logs
API audit logs
// Start building

Get your sandbox keys.

Spin up a sandbox in minutes and make your first call — no contract required to explore.