Skip to main content
This guide walks you through placing a real shipment with the Now Shipping API. There are two paths depending on how your account is configured. Pick the one that matches your use case — most platform integrators should follow the Company Integrator path.
Never send fee fields (orderFees, pickupFees, fee, shippingFee, amountOfFees) in any create or update request. Fees are always computed server-side and the authoritative value is always returned in the response.

Choose your path

Single Business — You operate one store and your API key belongs directly to that business. No merchant routing is needed. Company Integrator — You run a multi-tenant platform (e.g. an e-commerce SaaS) where multiple merchants ship through your integration. One API key serves all merchants; you identify each one per-request with X-Merchant-Id.
API keys are shown once. When a Now Shipping admin creates your API key, the full nsk_live_... string is displayed one time only. Copy it to a secrets manager immediately — it cannot be recovered after you close the creation dialog. If you lose it, you must revoke the old key and issue a new one.
Zone values must be exact. Every zone field in an order or merchant pickup address must be a value string taken verbatim from GET /delivery-zones. Free-text strings like "Nasr City" are rejected with a validation error. Build your address picker from the zone catalog.
Company integrators: your single nsk_live_... API key serves all merchants on your platform. Include the X-Merchant-Id header on every order and pickup request to route it to the correct merchant. Omitting it on a company key returns 400 MERCHANT_REQUIRED.

Single Business

If your account is a standard single-business account, the workflow is straightforward:
  1. GET /delivery-zones — Fetch the zone catalog and build your address picker from governorates[].areas[].value
  2. POST /fees/calculate — Optionally preview the shipping fee before creating the order
  3. POST /orders — Create the order; the response contains the server-computed orderFees
  4. GET /orders/{orderNumber}/awb — Download the AWB shipping label PDF (A4 or A5)
  5. POST /pickups — Schedule a courier pickup at your address
You do not need X-Merchant-Id on any of these requests.

Company Integrator (Multi-Tenant)

This is the primary path for platform integrators. Your API key operates on behalf of many merchant sub-accounts. Include X-Merchant-Id on every order and pickup request to route it to the correct merchant.

Next steps

Now that you have a working flow, explore the full reference documentation to handle edge cases and advanced scenarios:
  • Authentication — key rotation, scopes, and the /ping health check
  • Multi-Tenant Model — deeper explanation of X-Merchant-Id routing, accepted identifier formats, and company account architecture
  • Error Reference — all error codes, HTTP statuses, and a troubleshooting checklist for the most common failures