Worked request and response samples
Copy a request as written, substitute your own ids, and compare the response envelope. Errors follow Devotel Orbit’s{ error, ... } envelope with the error.code your client branches on. The chain a carrier/SMPP integrator runs: register → list the live bind → delete to retire it.
1. Register a carrier bind
POST /api/v1/messaging/smpp/carriersstatus='active'. Devotel reads the routing fields (scope, priority — lower wins) and reconciles the SMPP bind within about 30 seconds; once live, GET on this row reports the reconciler-observed bindStatus (BOUND / UNBOUND / BIND_FAILED) and lastSeenAt. The password you sent is never on the wire again — reads redact it to remotePasswordSet: true.
Most registrations on this platform connect to the inbound side (your SMSC binds to Orbit for MO and delivery receipts) — for that, create a credential (POST /api/v1/messaging/smpp/credentials) instead; a carrier is for outbound termination only.
2. List the live bind rows
GET /api/v1/messaging/smpp/carriersdata as an array of the full wire shape (see step 1 for every field). Rows come back in priority order, then newest-first within the same priority. There is no pagination envelope on this endpoint — the row set is a small per-tenant list. Filter status='active' client-side to find the routes currently eligible for outbound traffic.
3. Delete the carrier (204, hinted rebind)
DELETE /api/v1/messaging/smpp/carriers/{id}204 No Content
Delete is a soft delete — the row stays in your tenant for the audit chain with status='inactive', and routing stops sending through the carrier once the reconciler’s next ~30-second tick removes the underlying connector. Retired it by mistake? Re-activate with PATCH /api/v1/messaging/smpp/carriers/{id} and {"status": "active"} — a hinted rebind, no re-registration needed.
4. Unknown carrier id → 404
Reading, updating, testing, or deleting an id that is not a carrier in your tenant returns the 404 error envelope:404