50 lines of code.
Beautiful receipts.
A single REST API call turns your transaction data into printer-ready ESC/POS bytes or responsive HTML. No receipt formatting logic in your POS code.
const response = await fetch('http://edge:8081/api/v1/render', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
transactionType: 'SALE',
renderTargets: ['THERMAL', 'DIGITAL'],
transactionPayload: saleData,
}),
});
const { renders } = await response.json();
// renders[0].payload = base64 ESC/POS bytes
// renders[1].payload = base64 HTML string
sendToPrinter(atob(renders[0].payload)); REST API
Single endpoint. Send transaction JSON, get back rendered output in your requested formats.
POS Mapper Plugins
Built-in mappers for Flooid, Oracle Retail, NCR. Or send data in RFDM format directly.
< 20MB Binary
The edge runtime is a single Go binary. No JVM, no Node.js, no containers required.
SQLite + In-Memory
Templates cached locally. Zero network dependency at render time. Works offline.
Open AST Format
RML templates compile to JSON AST. Build your own emitters, validators, or tools.
Expression Engine
40+ functions. CONCAT, FORMAT_CURRENCY, IF, COALESCE, FILTER, SORT. Sandboxed evaluation.
Try the API Sandbox
Get an API key and start rendering receipts in minutes. Full documentation, sample transactions, and Postman collection included.