POST /api/provider/v1/floorplan/import. NowOS creates the draft
(rooms, tables, decorations — the canvas is coordinate-compatible) and
the response hands you the mapping you need:
tableId against your own table records (EatNow:
pos_table_id) in the same transaction as the import call — it is
the only table reference every other endpoint and webhook uses. There is
no manual mapping screen anywhere.
The flow end to end:
POST /floorplan/import→ store the mapping.- The operator reviews and publishes the plan in the NowOS backoffice (the import only fills the draft).
- You receive
floorplan.published→GET /floorplanand verify your mapping still resolves (published tables can be renamed or deactivated, never deleted).
- The import is refused with
draft_not_emptywhen the location already has rooms — re-send with"replaceDraft": trueto overwrite a draft that was never published. - After the first publish, the import path closes permanently (published table ids may already be referenced by orders and by your reservations). Later corrections happen in the backoffice editor.
- Geometry: abstract canvas units (default room 1000×1000), tables carry
x/y/rotation, the footprint derives fromshape+seatCount.