API & integrations

Get paid from your own code.

A REST API, signed webhooks and a checkout you can embed. Take payments, send invoices and keep your clients in sync, and build in test mode from day one.

Your server
POST /merchant/secure-payments
Idempotency-Key: order_1042
{
"amount": 49.99,
"currency": "USD",
"title": "Order #1042"
}
201securePayment.url → checkout
Your customer
ASAtlas Studio
Order #1042
$49.99
4242 4242 4242 4242
Pay $49.99
VisaMastercardAmerican ExpressApple PayGoogle Pay
Your server
POST /webhooks/vezmo
event payment.success
amount 49.99 USD
status CAPTURED
Signature verified200
Order #1042 fulfilled
API resources
9
API resources
webhook events
24
webhook events
payment methods
10
payment methods
buyer currencies
9
buyer currencies

Ways to integrate

From a link to your own checkout.

Every option takes the same payment methods and lands in the same dashboard. Start with no code and move along the scale when you need more control.

No codeFull control

Payment links

No code

Create a link in your dashboard, or with one API call, and share it anywhere. Customers pay on a page in your logo and colour.

  • Fixed amounts, expiry dates and client details
  • Reusable subscribe links with seat quantities
POST /merchant/paylinks
curl https://api.vezmo.com/api/v1/merchant/paylinks \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "title": "Brand workshop", "amount": 450,
"currency": "USD", "dueDate": "2026-11-30" }'
Read the payment links guide
user.vezmo.com/checkout/payments-links/…
ASAtlas Studio
Brand workshop
$450.00
CardBankWallet
Card number
4242 4242 4242 4242
Expiry
12 / 28
CVC
•••
Pay $450.00

The API

One API for payments and the work around them.

Payments, links, invoices, clients, products, proposals and contracts, with the same authentication, responses and errors. Pick a resource and an endpoint to see what comes back.

api.vezmo.com/api/v1TEST MODE

Payments

Create payment sessions, then list, refund or cancel payments.

Reference
POST/merchant/secure-payments201 Created
Authorization: Bearer eyJhbGciOi…
{
"success": true,
"data": {
"id": "cm2x8f0k20001",
"amount": 49.99,
"currency": "USD",
"status": "CAPTURED",
"method": "card",
"livemode": true
}
}

Webhooks

Know the moment something happens.

Choose the events you care about and we send each one to your server as it happens: a payment succeeds, an invoice goes out, a dispute opens, a payout lands.

  • SignedEach delivery carries an HMAC-SHA256 signature of its body, made with your endpoint’s secret.
  • RetriedA failed delivery is tried again after 6, 12 and 24 hours.
  • LoggedEvery attempt, with its response code and time, and the payload you can open.
  • One URL for both modesTest and live events arrive at the same endpoint, marked with livemode.
Deliverieshttps://shop.example/webhooks/vezmoLive
  • subscription.renewed158 ms200
  • proposal.accepted167 ms200
  • payout.paid201 ms200
  • invoice.sent142 ms200
  • payment.success184 ms200
Signed with your whsec_ secret · HMAC-SHA256
Verify a delivery · Node.js
const expected = crypto
.createHmac("sha256", process.env.VEZMO_WEBHOOK_SECRET)
.update(rawBody)
.digest("hex");
if (req.get("X-Webhook-Signature") !== expected) {
return res.sendStatus(400);
}
Select events
4 of 24 selected for this endpoint
Payments
Subscriptions
Disputes
Proposals
Payouts
Invoices

Test mode

Build it all before you go live.

Test keys work as soon as you sign up, before your business is approved. Run whole flows with test cards, see them in your dashboard in Test mode, then switch keys to go live.

Test mode: these payments aren’t real
TransactionsTest mode
CardAmountStatus
  • Visa•••• 4242$49.99Succeeded
  • Visa•••• 3220$120.00Succeeded
  • Visa•••• 0002$18.00Failed
  • Visa•••• 9995$64.00Failed
  • Visa•••• 0259$240.00Disputed
Test cardsAny future date · any CVC
  • 4242 4242 4242 4242Succeeds
  • 4000 0000 0000 3220Asks for 3D Secure
  • 4000 0000 0000 0002Declined
  • 4000 0000 0000 9995Insufficient funds
  • 4000 0000 0000 0259Succeeds, then disputed
Bank (ACH): routing 110000000, account 000123456789

Built for developers

Predictable, so you write less code.

One request and its response, with notes. Hover a note to see where it shows up.

One payment, request and response
POST /merchant/secure-payments
Authorization: Bearer eyJhbGciOi…
Idempotency-Key: order_1042
Origin: https://shop.example
{ "amount": 49.99, "currency": "USD" }
201 Created
{
"success": true,
"message": "Secure payment created",
"data": {
"securePayment": { "url": "…", "clientToken": "eyJ…" }
},
"requestId": "3f2a91c4-…",
"timestamp": "2026-10-19T09:41:02Z"
}
GET /merchant/payment?page=2&limit=50

Integrations and docs

Everything around your integration.

WooCommerce plugin

Take cards, wallets and bank payments in your store. Connect with one click and an email code; your key, webhook and trusted origin are set up for you.

WordPress 6.0+ · WooCommerce 8.0+ · classic and Blocks checkout

Settings › Payments
VezmoPayConnected
✓API key created
✓Webhook for payment.success
✓Store added to trusted origins
Connect with VezmoPay
XeroQuickBooksSage

Accounting apps

Connect Xero, QuickBooks or Sage from Settings › Apps and your payments sync on their own. No code needed.

  • XeroInvoice, payment and journalSynced
  • QuickBooksSales receiptSynced
  • SageSales invoice and receiptSynced

Docs you can try as you read

  • A Try it console on every endpoint
  • cURL, Node.js, PHP and Python samples
  • Copy any page as text for your notes or AI assistant
POST/merchant/secure-payments
cURLNodePHPPythonTry it!
await axios.post(url, body, {
headers: { Authorization },
});
201 Created · test mode

FAQ

Developer questions.

More in the Help center and the API docs.

How do I get API keys?

In your dashboard, open VezmoPay › Developers › API keys and generate a test key. You get an API key and a secret, shown once. Live keys work once your business is approved.

Authentication guide

Can I build before my account is approved?

Yes. Test keys work from the start. Test payments, clients and webhooks stay in test mode, and nothing moves real money.

How do I authenticate requests?

Exchange your key and secret at POST /merchant/api-auth/login for an access token, then send it as a Bearer token. Tokens last 30 minutes; refresh them for up to 7 days.

Which payment methods can I accept through the API?

Cards, Apple Pay, Google Pay and US bank accounts (ACH), plus Klarna, Affirm, Afterpay, Cash App Pay, Amazon Pay and UPI if you switch them on. Buyers can pay in their own currency while you’re paid in US dollars.

How do webhooks work?

Add an endpoint in VezmoPay › Developers › Webhooks and choose its events. Each delivery is signed with your endpoint’s secret; check the X-Webhook-Signature header, then reply with a 2xx.

Webhooks guide

Which languages do the docs cover?

Every endpoint has samples in cURL, Node.js, PHP and Python, and a Try it console you can run in test mode.

Do you have a plugin for my store?

We have a WooCommerce plugin. For other platforms, use hosted checkout, embedded checkout or the API.

WooCommerce guide

Where can I get help?

Write to support@vezmo.com and our team will help with your integration.

One platform, worldwide

Get paid from anywhere. Pay out everywhere.

Payments today; accounts, cards, stablecoin and worldwide payouts in early access. One platform for your business.