The most reliable way to automate order printing: pair a phone to your Print Bridge account once, then push orders to it automatically, in the background, from your e-commerce backend, POS, or automation tool - even while the app is closed.
Unlike every other integration in this guide, Order Print doesn't need the app open, doesn't show any UI, and doesn't need a human on the phone at print time. Once paired, jobs are delivered by push notification to a background worker on the phone, which prints and reports the outcome back to your dashboard - so it's the right choice for "a customer places an order on my website โ a receipt prints automatically at the shop."
POST https://printbridge.bluetoothprinter.in/api/v1/print/order with an X-API-Key header from your backend.curl -X POST https://printbridge.bluetoothprinter.in/api/v1/print/order \
-H "X-API-Key: prk_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from my POS!"}'
This is Order Print's main shape - send order data, not a pre-formatted receipt, and Bluetooth Printer+ lays it out as a proper itemized receipt on the phone:
curl -X POST https://printbridge.bluetoothprinter.in/api/v1/print/order \
-H "X-API-Key: prk_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"order": {
"orderNumber": "A-1042",
"customerName": "John Doe",
"items": [
{"name": "Cheeseburger", "qty": 2, "price": 5.99},
{"name": "Fries", "qty": 1, "price": 2.50}
],
"notes": "No onions"
}
}'
Free-form formatted lines (bold/dividers/alignment) are also available via the plain-text field using **bold**/[center]/divider markup, or via MCP's print_formatted tool for a structured version.
Not supported. Order Print is a background, unattended path - there's no on-screen prompt to fill in a dynamic value, so [[name]] / #[[name]] tokens are not resolved here. Send the final values directly in your JSON (as shown above with customerName, item names, etc.) instead of a template string. If you need placeholder-style templates filled in on the phone itself, use Intent Printer or Deep Link Print instead.
Add "strictMode": true to the request body (or inside order) to have the phone render the job as a dithered image instead of raw text - pixel-for-pixel what a formatted on-screen template would look like, independent of whatever the phone's Settings screen has Strict Mode set to. Doesn't apply to an image/PDF payload (already an image).
curl -X POST https://printbridge.bluetoothprinter.in/api/v1/print/order \
-H "X-API-Key: prk_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"text":"[center]**MY STORE**[/center]\nThank you!", "strictMode": true}'
Slower and heavier than normal text printing, so leave it off unless formatting fidelity matters more than speed.
| Endpoint | Body |
|---|---|
POST /api/v1/print/order | {deviceId?, order: {orderNumber?, customerName?, items:[{name,qty,price}], notes?, strictMode?}, printerAddress?} or {deviceId?, text:"...", strictMode?} |
GET /api/v1/print/jobs | Your 50 most recent jobs and their status |
GET /api/v1/print/jobs/{id} | Check one job by id |
Omit deviceId to fan out the order to every active paired device on your account (one print per device - useful for multiple printer stations). Job status moves through PENDING โ SENT โ PRINTING โ PRINTED | FAILED | EXPIRED.
[[placeholder]] resolution - send final text/values, not templates (see above)./api/v1/print/adhoc endpoint) are capped around 3MB base64.