Build with
Lumo Wallet.
APIs, plugins, SDKs and webhooks to add Lumo Crypto Checkout to your store. Once Lumo Card Checkout is approved, card payment appears in the same plugins automatically.

Accept crypto in a few lines of code.
One call creates a unique payment address for an order. Lumo watches the chain and tells your server the moment it is paid.
- Get your keyCreate an
lk_live_key in your Lumo Business dashboard. - Create an invoiceSend the order amount and coin to
/merchant/wallet-address. - Get paidReceive
invoice.confirmedon your webhook and ship the order.
https://api.lumowallet.com/api/storesAuthx-api-key: lk_live_…curl -X POST https://api.lumowallet.com/api/stores/merchant/wallet-address \
-H "x-api-key: $LUMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"coinSymbol": "USDT",
"network": "tron",
"amount": "49.00",
"externalOrderId": "ORDER-1042"
}'// Create a payment address for one order
const res = await fetch("https://api.lumowallet.com/api/stores/merchant/wallet-address", {
method: "POST",
headers: {
"x-api-key": process.env.LUMO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
coinSymbol: "USDT",
network: "tron",
amount: "49.00",
externalOrderId: "ORDER-1042",
}),
});
const invoice = await res.json();
// Show invoice.walletAddress and the amount at checkout<?php
// Create a payment address for one order
$ch = curl_init('https://api.lumowallet.com/api/stores/merchant/wallet-address');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: ' . getenv('LUMO_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'coinSymbol' => 'USDT',
'network' => 'tron',
'amount' => '49.00',
'externalOrderId' => 'ORDER-1042',
]),
]);
$invoice = json_decode(curl_exec($ch), true);# Create a payment address for one order
import os, requests
res = requests.post(
"https://api.lumowallet.com/api/stores/merchant/wallet-address",
headers={"x-api-key": os.environ["LUMO_API_KEY"]},
json={
"coinSymbol": "USDT",
"network": "tron",
"amount": "49.00",
"externalOrderId": "ORDER-1042",
},
)
invoice = res.json()The merchant API.
JSON over HTTPS. Every request carries your store key in the x-api-key header, and every call is logged in your dashboard.
/merchant/activateActivate your store. Safe to call more than once./merchant/payment-detailsYour store details and the coins and networks you accept./merchant/wallet-addressCreate a unique payment address and invoice for one order./merchant/invoice/{invoiceId}Check an invoice: pending, detected, confirmed or expired./merchant/orders/external/{externalOrderId}Find an order by your own order number./capabilities/coinsEvery coin and network a store can accept.Signed, so you can trust every event.
Lumo sends invoice.detected and invoice.confirmed to your endpoint as JSON, signed with HMAC SHA-256 in the x-webhook-signature header. Check the signature, then fulfil the order.
{
"event": "invoice.confirmed",
"orderId": "inv_8f3a…",
"externalOrderId": "ORDER-1042",
"amount": "49.00",
"currency": "USDT",
"status": "confirmed",
"txHash": "a91c…",
"timestamp": "2026-09-27T12:00:00.000Z"
}import crypto from "node:crypto";
// Verify a Lumo webhook before you trust it
app.post("/lumo/webhook", express.raw({ type: "application/json" }), (req, res) => {
const expected = crypto
.createHmac("sha256", process.env.LUMO_WEBHOOK_SECRET)
.update(req.body)
.digest("hex");
const given = req.get("x-webhook-signature") || "";
if (given.length !== expected.length ||
!crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected))) {
return res.sendStatus(401);
}
const event = JSON.parse(req.body);
if (event.event === "invoice.confirmed") markOrderPaid(event.externalOrderId);
res.sendStatus(200);
});Drop in. Go live.
Official Lumo plugins for the platforms merchants already use. Paste your key, add your webhook, and card payments appear automatically once Lumo Card Checkout is approved.
Plugins and SDKs are in the Plugins section of your Lumo Business dashboard, with a setup guide for each one.
Real engineers, one call away.
Book a call with the people who build Lumo Business to talk through plugins, the API and your integration.
Plugins, APIs and checkout tools in one place.
Use an official plugin for your platform, or build directly with the Lumo Business API for custom checkout, invoices, merchant payments and payment callbacks.
- Official plugins for popular platforms
- Lumo Business API for custom flows
- Webhooks for every payment event
From sign-up to live.
Four steps to your first payment.
- 01
Apply for Lumo Business
Download Lumo on iPhone, Mac, Android or Windows. Go to Settings, then Lumo Business, and apply with the website you will integrate. Most applications are approved within 24 working hours.
- 02
Create your lk_ key
Sign in at lumowallet.com/business by scanning the QR code with the app. In API keys, tap +, add a label and create a key. It starts with lk_live_.
- 03
Install a plugin or call the API
Paste the key into your plugin settings, or send it in the x-api-key header. Add your webhook URL.
- 04
Add card payments
Apply for Lumo Card Checkout in the app. Once approved, within 48 working hours, card payment appears in your plugins automatically.
Apply for Lumo Business in the app.
Download Lumo, open Settings, then Lumo Business, and apply. Most businesses are approved within 24 working hours.

