Printen als een API-aanroep.
Alles wat een printkoppeling je normaal kost — papiermaten, marges, ESC/POS-bytes, afsnijden, opnieuw proberen — gebeurt aan onze kant. Jij stuurt een templatenaam en de waarden die erin gaan.
Het model
Printers hebben namen
Geen poorten, geen serienummers, geen IP-adressen. Je richt je op "Kassa balie". Gaat dat apparaat stuk, dan neemt de vervanger de naam over en merkt je code er niets van.
Templates dragen de opmaak
Ontworpen in de browser, opgeslagen op de server, benoemd met een naam. Jouw verzoek is een plat object met waarden, plus arrays voor herhalende regels zoals de artikelen op een bon.
Opdrachten gaan in een wachtrij
Je krijgt een id en een status terug. De printer kan uit staan; daar hoort je afrekenproces niet op te wachten. Wil je het toch meteen weten, geef dan ?wait=true mee.
De sleutel bepaalt de klant
Niet iets uit het verzoek. Een testsleutel rendert en plant in zonder te printen.
Beginnen in vijf minuten
Maak een sleutel aan in het dashboard onder Sleutels. Gebruik een lbl_test_-sleutel tijdens het bouwen: die rendert en plant in, maar er beweegt geen papier.
Vraag daarna op wat er is, en print ernaartoe.
curl https://instntprint.com/v1/printers \
-H "Authorization: Bearer $KEY"
curl -X POST https://instntprint.com/v1/jobs \
-H "Authorization: Bearer $KEY" \
-H "Idempotency-Key: order-2026-1042" \
-H "Content-Type: application/json" \
-d '{
"printer": "Front counter",
"template": "Kassabon",
"data": { "bonnummer": "1042", "totaal": "17,45" }
}'
Wat ermee gebouwd wordt
Kassa's
Bonnen met artikelregels, btw-regels en een kassalade-puls. Idempotentiesleutels voorkomen dat twee keer drukken twee bonnen oplevert.
Webshops en fulfilment
Pakbonnen aan de inpaktafel, adreslabels op de LabelWriter, en een hele CSV aan bestellingen in één aanroep.
Keukens en balies
Eén bestelling, meerdere printers: eten naar de keuken, drank naar de bar, een afhaalbon naar voren. Elk met een eigen idempotentiesleutel.
Backoffice en archief
Doorlopende nummering, QR-codes die terugwijzen naar je eigen systeem, en labels die de software overleven die ze maakte.
Een werkende koppeling om te lezen
Op de pagina's per branche tekent een printer wat jouw aanroep oplevert, live en zonder account. Log je in, dan krijg je de voorbeeldwinkel erbij: een kassa, een bestellingenscherm en een archief die via diezelfde API printen — geen framework, geen buildstap, de hele koppeling één bestand van zo'n tweehonderd regels.
De randen, vooraf
Twee printers per bridge, één tegelijk
Usb-hubs achter de bridge blijken in de praktijk onbetrouwbaar. Eén printer per bridge is de opstelling waar we vandaag achter staan.
Bonnen ontwerp je achter een bureau
Bonnen bestaan uit blokken en die maak je in de browser. De iOS-app kan ze gebruiken en invullen, niet ontwerpen.
Webhooks zijn er nog niet
De status van een opdracht vraag je nu op. Uitgaande webhooks, inkomende hooks met veldkoppeling, een Make-module en Home Assistant staan als volgende op de rol.
Kopbreedtes van zeldzame modellen
Bekende DYMO- en Epson-modellen zijn nagemeten. Een onbekend model valt terug op een verstandige aanname en zegt dat er ook bij, in plaats van stilletjes op de verkeerde breedte te printen.
Zelf draaien
De server is één Python-proces met SQLite erachter. Wijs een bridge naar je eigen host en er gaat niets buiten je netwerk. Handig als het beleid van een klant zegt dat printgegevens niet naar een derde partij mogen.