Lists service requests assigned to the authenticated provider.
Scope: requests:read
Optional query parameters: status, per_page (1–100, default 25).
Developers
Server-to-server JSON API for professional customers and transport providers.
Production base URL
Requests and responses use JSON unless otherwise specified. Send Accept: application/json and, for POST requests, Content-Type: application/json.
API credentials are created in the Business or Provider automation area. Tokens begin with nk_, are shown once, hashed at rest and may be revoked or rotated.
| Surface | Scopes currently used by routes | Reserved/account scopes |
|---|---|---|
| Provider | requests:read, requests:write, tours:read, drivers:read, drivers:write, tracking:write, proofs:write | tracking:read |
API v1 is limited to 120 requests per minute per bearer token by default. The deployment may change this value through configuration. A rate-limited request returns HTTP 429.
The Provider API is bidirectional. A TMS can read assigned work, synchronize drivers and report operational actions back to Noukarivé without bypassing the same lifecycle, proof, customer validation and financial-release rules used by the Provider portal.
Idempotency-Key header. Reusing the same key with the same request replays the original response; reusing it with a different payload returns HTTP 409.Lists service requests assigned to the authenticated provider.
Scope: requests:read
Optional query parameters: status, per_page (1–100, default 25).
Returns one assigned request including category, driver, payment, shipment and delivery proofs. Requests assigned to another provider return 404.
Scope: requests:read
Returns provider tour occurrences, including vehicle and stops.
Scope: tours:read
| Method | Path | Scope | Purpose |
|---|---|---|---|
| POST | /provider/requests/{id}/accept | requests:write | Accept the mission and trigger the normal Noukarivé acceptance lifecycle. |
| POST | /provider/requests/{id}/reject | requests:write | Reject an unstarted mission and return it to pending allocation. |
| POST | /provider/requests/{id}/pickup | requests:write | Confirm physical pickup. Optional occurred_at. |
| POST | /provider/requests/{id}/delivery | requests:write | Confirm physical delivery. Customer validation remains independent. |
| POST | /provider/requests/{id}/complete | requests:write | Mark carrier-side completion and refresh financial release eligibility. |
| PATCH | /provider/requests/{id}/status | tracking:write | Normalize common TMS states without exposing raw database status mutation. |
PATCH /provider/requests/{id}/status accepts the normalized statuses picked_up, in_progress, out_for_delivery, arrived, delivery_attempted, delivered and completed. Terminal actions are routed through the same pickup/delivery/completion services instead of directly changing the request status field.
POST /provider/requests/{id}/events accepts safe timeline events departed, arrived, out_for_delivery, delivery_attempted and note, with optional timestamp, title, description, location and visibility.
Lists drivers owned by the authenticated provider.
Scope: drivers:read
Upserts up to 500 TMS drivers using a stable external_id and source (for example onfleet).
Scope: drivers:write
Assigns or unassigns an active provider driver by Noukarivé ID or by external_driver_id + external_source.
Scope: requests:write
Uploads a pickup/delivery/other proof as multipart form data. Maximum file size: 10 MB.
Scope: proofs:write
Fields: proof_stage, type, proof_file, optional notes.
| HTTP | Meaning |
|---|---|
| 401 | Missing, invalid or expired bearer credential. |
| 403 | Credential lacks the requested scope, or the account subscription does not include API access. |
| 404 | Resource not found inside the authenticated account boundary. |
| 422 | Laravel validation error. The response includes a field-level errors object when JSON is requested. |
| 429 | Rate limit exceeded. |
Provider writes: Idempotency-Key is mandatory (8–255 characters). Successful non-5xx responses are retained for 30 days. Retry the exact same operation with the exact same key after a timeout.
A replay returns Idempotency-Replayed: true. Reusing the same key with a different method/path/payload returns HTTP 409.
POST /business/orders still does not provide the same contractual replay guarantee. Do not blindly retry an ambiguous Business order creation timeout.