# `orders.cargo.ship` Ship with the merchant's own carrier (manual tracking). - **method + path**: `POST /v1/orders/{ord}/cargo/ship` - **TR label**: Kargoya verildi (manuel) - **auth**: authenticated · scope gates: any of `admin`, `orders:read`, `orders:write` — “Siparişleri yalnızca mağaza sahibi görebilir”; then any of `admin`, `orders:write` — “Bu işlem için yetki yok” - **agentPolicy**: `propose` — a live mutation — an Ajan token's call is recorded into its open proposal (202 `proposed: true`); a Geliştirici token executes it directly. - **effects**: `db`, `mail` - **idempotency**: server — the platform derives the key - **wraps**: [`order.ship`](/reference/commands/order.ship) Machine-readable body schema: [/schemas/routes/orders.cargo.ship.json](/schemas/routes/orders.cargo.ship.json). ## Body ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "carrierCode": { "type": "string", "pattern": "^[A-Z0-9_]{2,32}$" }, "carrierName": { "type": "string", "minLength": 1, "maxLength": 60 }, "carrierVkn": { "type": "string", "pattern": "^\\d{10}$" }, "trackingNumber": { "type": "string", "minLength": 1, "maxLength": 64 }, "parcel": { "type": "object", "properties": { "weightGr": { "type": "integer", "minimum": 1, "maximum": 100000 }, "lengthCm": { "type": "integer", "minimum": 1, "maximum": 200 }, "widthCm": { "type": "integer", "minimum": 1, "maximum": 200 }, "heightCm": { "type": "integer", "minimum": 1, "maximum": 200 } }, "required": [ "weightGr", "lengthCm", "widthCm", "heightCm" ], "additionalProperties": false } }, "required": [ "carrierName" ], "additionalProperties": false } ```