Report events
Reports a batch of events. Collect events and send them together rather than one per request.
A 202 answers every event in the batch, in order: accepted,
duplicate, or refused with a reason. An invalid event never causes
the others to fail, so a batch in which every event was refused is
still a 202. Accepted events are stored shortly afterwards.
After a 500 or 503, or if the connection drops, resend the same
batch unchanged: events already accepted are answered duplicate.
By default each terminal may send 2 batches in quick succession, and
the allowance refills at 2 batches a minute. A batch beyond the
allowance is answered 429.
DeviceAuthAuthorizationBearer <dvc_<prefix>_<secret>>The terminal's device token, returned once by POST /device/v1/activations.
Send it as Authorization: Bearer <token> on every request except
activation.
application/json- body
By default, a batch holds 1 to 200 events in a body of at most 256 KiB. A
batch over either limit is refused with 400, and none of its events is
stored.
events*array<>The events. Narya checks each event on its own: an invalid event is refused
in the 202 response and never causes the rest of the batch to fail.
1 <= itemsEvery event answered. Accepted events are stored shortly afterwards.
application/json- response
received_at*stringWhen Narya received the batch.
date-timeresults*array<>One result per submitted event, in the order sent.
curl -X POST 'https://device-narya-staging.pmadvisors.my/device/v1/events' \ -H 'Content-Type: application/json' \ -d '{ "events": [ { "id": "01927c3e-5b7a-7c1e-9d2f-3a4b5c6d7e8f", "type": "printer.paper.jam", "application": "com.acme.pos", "occurred_at": "2026-09-27T08:15:02+08:00", "severity": "warning", "subject": "receipt-printer", "attributes": { "tray": 1, "retries": 2 } }, { "id": "01927c3e-5b7b-7a00-8c11-2b3c4d5e6f70", "type": "payment.host.timeout", "application": "com.acme.pos", "occurred_at": "2026-09-27T08:15:40Z", "severity": "error", "correlation_id": "7f1c2a" } ]}'{ "received_at": "2026-09-27T00:15:41.203Z", "results": [ { "id": "01927c3e-5b7a-7c1e-9d2f-3a4b5c6d7e8f", "status": "accepted" }, { "id": "01927c3e-5b7b-7a00-8c11-2b3c4d5e6f70", "status": "duplicate" } ]}