Developers

Go to market in minutes,
not weeks

Simple REST APIs that let you create payment flows without touching blockchain infrastructure.

1

Create an invoice

One POST request. Set the amount, the token and the network. You get back a checkout slug and a unique deposit address.

Name the token — USDT or USDC — and the customer pays in exactly that. Register your payout wallet in the dashboard first: until you do, this returns 400.

Request
curl -X POST https://api.vorixpay.com/api/v1/invoices \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Order #123",
    "amount": 50,
    "currency": "USDT",
    "chain": "bsc-testnet"
  }'
Response
{
  "slug": "xfmzFA9g4qXr",
  "txRef": "VXP_abc123...",
  "status": "PENDING",
  "depositAddress": "0x7a3F..."
}
2

Customer pays

Redirect them to vorixpay.com/pay/{slug}. They pay from their wallet, or send the exact token on the named network to the address shown.

Vorixpay reads new blocks every few seconds. Payments are detected automatically — no manual confirmation from anyone.

StatusCONFIRMING
Amount50.00 USDT
Received50.00 USDT
Confirmations8 / 15
3

Verify & fulfill

Your webhook receives invoice.completed. Check the signature, then confirm with a single GET call. If status === "COMPLETED", deliver the goods.

Always verify on your server. Never trust client-side data.

Webhook handler
// Raw body: the signature is over the exact bytes sent.
app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
  const rawBody = req.body.toString("utf8");
  if (!verifySignature(req.headers["vorixpay-signature"], rawBody)) {
    return res.status(401).send("Invalid signature"); // see the docs
  }

  const event = JSON.parse(rawBody);
  if (event.type === "invoice.completed") {
    fulfillOrder(event.data.txRef);
  }

  res.status(200).send("OK");
});

Webhook events

EventWhen it fires
payment.detectedA transfer was seen on-chain, not yet deep enough to trust
payment.confirmedPast the confirmation depth. For invoices, act on invoice.completed instead
payment.orphanedA chain reorganisation reversed it. Undo any credit given
invoice.completedPaid in full (within any tolerance), or accepted short by you. Fulfil on this
invoice.underpaidMoney arrived, but not enough yet
invoice.overpaidPaid in full and then some. Sent alongside completed
invoice.expiredThe deadline passed without enough arriving
invoice.cancelledYou cancelled it
sweep.completedFunds were collected into your payout wallet
wallet.registeredA payout wallet was registered on a chain
wallet.change_requestedA change was requested. Cancel it if it was not you
wallet.change_appliedThe change took effect after its timelock
wallet.change_cancelledA pending change was cancelled