REST · HMAC · SSE · OPENAPI 3.1
An API built for engineers.
Official SDKs in six languages, an unlimited sandbox and HMAC-SHA256-signed webhooks. Under the hood, Solana and Sui run on our gRPC node backbone for ultra-fast on-chain dispatch.
Developers
Three lines. One payment.
Official SDKs in JavaScript, TypeScript, Python, PHP, Go, Rust. REST API everywhere, plus gRPC endpoints for Solana and Sui.
- TypeScript first
- HMAC-SHA256 signed webhooks
- Hosted checkout pages
- Embeddable Elements
- Unlimited free sandbox
- gRPC for low-latency
api · v1
// npm i @abyxo/node
import Abyxo from "@abyxo/node";
const abyxo = new Abyxo("sk_live_…");
const session = await abyxo.checkout.sessions.create({
amount: 4990, // 49,90 €
currency: "EUR",
accept: ["BTC", "ETH", "USDC", "SUI"],
success_url: "https://shop.io/ok",
});
res.redirect(session.url); Documentation
Everything you need.
OpenAPI 3.1 spec, Postman collection, copy-paste examples in six languages, and the gRPC endpoint documented in Protobuf.
Webhooks · HMAC-SHA256
Server-side validation.
Compute an HMAC-SHA256 over the raw body using your webhook secret, then constant-time compare with the Abyxo-Signature header.
// Express.js — HMAC validation
import crypto from "node:crypto";
app.post("/webhook", express.raw({ type: "*/*" }), (req, res) => {
const sig = req.headers["abyxo-signature"];
if (typeof sig !== "string") return res.status(401).end();
const expected = crypto
.createHmac("sha256", process.env.ABYXO_WHSEC)
.update(req.body)
.digest("hex");
const a = Buffer.from(sig, "hex");
const b = Buffer.from(expected, "hex");
if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
return res.status(401).end();
}
// + replay-check via Abyxo-Timestamp
const event = JSON.parse(req.body.toString("utf8"));
if (event.type === "checkout.completed") {
// Fulfill the order
}
res.json({ ok: true });
}); Changelog
Recent releases.
Ready to collect crypto ?
Create your account in 60 seconds. Unlimited free trial, no card required.