DropManager

API

Run payment, shipping and processing in your own systems. Read your orders and customers, push payment status and tracking back, and trigger the buyer-facing WhatsApp messages — all over a simple REST API.

Building an integration with an AI tool? There’s a copy-paste, machine-readable version of this reference at /llms.txt.

Authentication

Create a key in Settings → API (owner only). The full key is shown once — store it securely. Send it on every request:

Authorization: Bearer dwk_live_…

Base URL: https://dropmanager.nl/api/v1. Request bodies are JSON. Your account needs an active (or complimentary) plan, otherwise requests return 402.

Conventions

  • Errors return { "error": { "code", "message" } } with an HTTP status (400 bad request, 401 invalid key, 402 no plan, 404 not found, 422 not deliverable, 5xx server/provider).
  • List endpoints support limit (≤ 200), offset, and since (ISO-8601, on updated_at) — poll since to pick up changes.
  • An order is a sale: it carries the items, buyer, customer, payment, and shipment.
  • WhatsApp messages reach only buyers with a real phone number on WhatsApp; otherwise the response notes it. Action endpoints accept "notify": false to skip the message.

Orders

  • GET /orders — list. Filters: status, paid, external_id, window_id, customer_id, since.
  • GET /orders/:id — one order.
  • PATCH /orders/:id — set external_id, notes, or status (payment_received, refunded, payment_failed). Marking paid stamps the time and DMs the buyer.
  • POST /orders/:id/payment-link — create a Mollie/Stripe link and WhatsApp it to the buyer.
  • POST /orders/:id/payment-reminder — re-send the existing link.
  • POST /orders/:id/tracking — attach carrier + tracking_code (+ optional tracking_url, status) and DM track & trace.
  • POST /orders/:id/message — send a free-form WhatsApp DM (text) to the buyer.

Customers & products

  • GET /customers, POST /customers (create — name required), GET /customers/:id, PATCH /customers/:id (contact + address).
  • GET /products, POST /products (create — name + unit_price_cents required), PATCH /products/:id — set an external_id (your SKU / product id) so matching against your catalogue is easy.

Examples

# new orders not yet paid, changed since a timestamp
curl -H "Authorization: Bearer $KEY" \
  "https://dropmanager.nl/api/v1/orders?paid=false&since=2026-06-12T00:00:00Z"

# create + send a payment link
curl -X POST -H "Authorization: Bearer $KEY" \
  https://dropmanager.nl/api/v1/orders/$ID/payment-link

# mark paid after charging in your own system
curl -X PATCH -H "Authorization: Bearer $KEY" -H "content-type: application/json" \
  -d '{"status":"payment_received","external_id":"SHOP-1042"}' \
  https://dropmanager.nl/api/v1/orders/$ID

# push tracking after shipping with your own carrier
curl -X POST -H "Authorization: Bearer $KEY" -H "content-type: application/json" \
  -d '{"carrier":"dhl","tracking_code":"JD0002","tracking_url":"https://track/JD0002"}' \
  https://dropmanager.nl/api/v1/orders/$ID/tracking

Full machine reference: /llms.txt. Questions? arno@webroots.nl, or see the getting-started docs.

API · DropManager