ETP POS
ETP POS scans at checkout. A cashier’s Start opens a scan session and the lane reader streams EPCs into it. Stop completes the session, returns the EPCs, and POS resolves them to SKUs and bills.
Before you start
Section titled “Before you start”- API key issued. Authentication: TBD.
- Your checkout activity defined in the dashboard, e.g.
POS_SALE. - Lane readers registered in the dashboard.
Implementation
Section titled “Implementation”-
Authenticate. Every call below sends
x-api-key. Authentication: TBD. -
Find your reader’s
deviceId. List readers and take theidof the lane reader at this counter.// GET /rfid-readers?status=ACTIVE{"statusCode": 200,"message": "Success","data": [{ "id": "5f3b9d2a-1c44-4e8a-9b77-2a6f0d1e3c88", "name": "Lane 3 flatbed", "status": "ACTIVE" }]} -
Find your activity’s
id. YourPOS_SALEactivity is already defined in the dashboard. Look it up once at startup and cache theid.// GET /scan-activities?isActive=true{"statusCode": 200,"message": "Success","data": [{ "id": "7e2f9a10-4b3d-4c2a-8f61-1a9d6e4b2c10", "code": "POS_SALE", "name": "POS Sale", "isActive": true }]} -
Cashier taps Start. Open a session with the activity and reader from steps 2-3, plus your own bill/order number as
transactionReference.// POST /epc-scan-processing/sessions// request{ "scanActivityId": "7e2f9a10-4b3d-4c2a-8f61-1a9d6e4b2c10", "deviceId": "5f3b9d2a-1c44-4e8a-9b77-2a6f0d1e3c88", "transactionReference": "TXN-001" }// 201{"statusCode": 201,"message": "Success","data": {"id": "38a7393e-7750-4437-9c0f-b69db6e247b5","status": "OPEN","uniqueCount": 0,"epcs": []}}The reader turns on as soon as this returns.
-
Show the live count. Poll while the session is
OPENto update the counter on screen.// GET /epc-scan-processing/sessions/38a7393e-7750-4437-9c0f-b69db6e247b5{ "statusCode": 200, "message": "Success", "data": { "status": "OPEN", "uniqueCount": 2, "epcs": ["3034F4A9…01", "3034F4A9…02"] } } -
Cashier taps Stop. Complete the session, take the final
epcs, resolve each to a SKU, and bill.// POST /epc-scan-processing/sessions/38a7393e-7750-4437-9c0f-b69db6e247b5/complete{ "statusCode": 200, "message": "Success", "data": { "status": "COMPLETED", "uniqueCount": 2, "epcs": ["3034F4A9…01", "3034F4A9…02"] } } -
Order abandoned instead? Call
/cancelon the same session in place of/complete. No billing, no EPC resolution.
Exceptions you might see
Section titled “Exceptions you might see”| type | when |
|---|---|
UNKNOWN_EPC |
A scanned EPC has no matching master data. |
POSTING_FAILED |
The sale didn’t post downstream. |
DEACTIVATION_FAILED |
Tag deactivation after sale didn’t complete. |
Quick reference
Section titled “Quick reference”| Activity | POS_SALE, looked up through GET /scan-activities. |
| Reader | deviceId = the lane flatbed reader’s id, from GET /rfid-readers. |
transactionReference |
POS bill / order number. |
| Start | POST /epc-scan-processing/sessions on cashier Start. |
| Progress | Poll GET /epc-scan-processing/sessions/:id to show the live count. |
| Stop | POST …/complete, then resolve the returned epcs to SKUs and bill. |
| Abandon | POST …/cancel. |

