Vezmo App

Getting Started

Introduction

One REST API for everything Vezmo does for a business: card and bank payments, invoices and paylinks, subscriptions, proposals and contracts, and a signed webhook for every event.

Base URLhttps://api.vezmo.com/api/v1

Start building

Pick the surface that fits your product. Every path below ends in the same payment object, the same webhooks and the same dashboard.

Make your first request

Three steps take you from a fresh account to a real response. Start with a test key: it runs the whole integration against the sandbox and works before your account is approved.

  1. Create a pair of keys

    In the dashboard open VezmoPay → Developers → API keys and create a test key. You get an x-api-key and an x-api-secret; the secret is shown once, so store it somewhere safe.

  2. Exchange them for a token

    Send both headers to the login endpoint. The bearer token is at data.accessToken.token in the response and is short-lived; renew it with the refresh token instead of logging in again.

    Request
    curl --request POST \
      --url https://api.vezmo.com/api/v1/merchant/api-auth/login \
      -H "x-api-key: vzm_test_..." \
      -H "x-api-secret: sk_test_..." \
      -H "Content-Type: application/json"
  3. Call the API

    Pass the token as a bearer on every request. Responses are wrapped as { success, message, data }, so the payload you want is always under data.

    Request
    curl --request GET \
      --url https://api.vezmo.com/api/v1/merchant/payment \
      -H "Authorization: Bearer $ACCESS_TOKEN"

Test and live modes

Both modes share the same base URL. The key you send selects the mode, and nothing crosses between them.

Test keySandbox

Runs sessions, checkout, webhooks and refunds against an isolated sandbox. No real money moves, nothing appears in your live dashboard (flip Test mode in the console to see it), and it works before your account is approved. Sandbox webhooks carry livemode: false.

Live keyLive

Moves real money and needs an approved, charges-enabled VezmoPay account. Keys and data are mode-locked: a test key can never act on a live object, and crossing modes returns a 404 as if the object did not exist.

Why Vezmo

Business workflows are usually fragmented: proposals in one tool, invoices in another, payments tracked elsewhere and reporting done by hand. Vezmo puts the whole lifecycle behind one API.

Unified by design

Proposals, contracts, invoices, payments and reporting are one system, so an id from one call is valid in the next.

Built for developers

Predictable REST resources, one response envelope, and copy-ready samples on every page.

Secure by default

Card data never touches your servers with hosted, embedded or Elements checkout, and every webhook is signed.

Grows with you

The same API serves a freelancer sending a first invoice and a platform routing thousands of payments.

Who this is for

Developers

Integrating Vezmo into an application, a marketplace or a SaaS product.

Businesses automating finance

Replacing manual invoicing, collection and reconciliation with API calls.

Agencies at scale

Managing clients, billing and reporting for many accounts at once.

Teams building internal tools

Wiring payments and documents into back-office systems you already run.

Need help?