Get started

Introduction

The Shop.mn × PickPack API powers the delivery integration between Shop.mn vendors and the PickPack courier network. This reference describes every endpoint and webhook PickPack will use to receive, fulfil, and report on shipments.

Who this is for#

This documentation is written for engineers at PickPack who will integrate their courier operations system with Shop.mn. It assumes familiarity with REST APIs, JSON payloads, and HMAC-signed webhooks.

If you are a Shop.mn vendor looking for help managing your shipments inside the Vendor Panel, please use the in-app support chat instead — this site is the technical contract between the two platforms.

Shipment lifecycle#

The integration is built around a single primary object: the shipment. A shipment moves through four states from creation to delivery:

  1. Created. A Shop.mn vendor confirms an order in the Vendor Panel. Shop.mn calls POST /shipments on the PickPack API to register a pickup request.
  2. Picked up. A PickPack courier collects the parcel from the vendor and emits a shipment.picked_up webhook back to Shop.mn.
  3. In transit. Status changes are streamed back as webhooks so the vendor and customer see live updates in the Shop.mn order page.
  4. Delivered or failed. A terminal state is reported via shipment.delivered or shipment.failed, which closes the shipment.

Environments#

Two environments are available. Sandbox is isolated from production — credentials, IDs, and webhook subscriptions do not cross over. Use sandbox for development and integration testing.

  • Productionhttps://api.shop.mn/pickpack/v1
  • Sandboxhttps://pickpack.api.demo.mn/pickpack/v1

Versioning#

All endpoints are versioned via the URL prefix (currently /v1). Backwards-incompatible changes are introduced under a new major version. Additive changes — new optional fields, new event types, new endpoints — are rolled out within the existing version and announced in the changelog.

Draft status
These docs describe the integration as it is currently being designed. Endpoint shapes, field names, and webhook payloads should be considered draft until the changelog publishes a v1.0.0 — Stable entry.