Developer Space / Order Print
Integration guide 5 of 7

Order Print Background / Server-to-Server

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.

What it is

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."

Setup

  1. Sign in at printbridge.bluetoothprinter.in (Google sign-in or an email link - no password).
  2. Copy your account's API key from the dashboard's "API key" card (shown in full only once - use "Regenerate" if you've lost it).
  3. In the app: Developer Space โ†’ Order Print (Auto Pairing tab) โ†’ paste the API key โ†’ Connect. The phone registers permanently and stays paired until you revoke it from the dashboard.
  4. Push orders to POST https://printbridge.bluetoothprinter.in/api/v1/print/order with an X-API-Key header from your backend.
๐Ÿ“ธ Screenshot: Developer Space โ†’ Order Print tab, showing the API key field and "Connected" status
๐Ÿ“ธ Screenshot: dashboard "API key" card at printbridge.bluetoothprinter.in

Examples

Plain text

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!"}'

Rich text (structured order)

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.

Placeholder

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.

Strict Mode Optional

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.

Reference

EndpointBody
POST /api/v1/print/order{deviceId?, order: {orderNumber?, customerName?, items:[{name,qty,price}], notes?, strictMode?}, printerAddress?} or {deviceId?, text:"...", strictMode?}
GET /api/v1/print/jobsYour 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.

Limitations