Shipments

Look Up Shipment

Changed on

Finds the delivery for a purchase from an account with customer tracking turned on, using exactly one order or tracking number plus the buyer's current receipt email. No authentication is required and no sign-in or session is created. Email matching ignores case and surrounding whitespace, but dots and +tags must match. Every miss returns the same 404: an unknown account, tracking turned off, a wrong number or email, an unpaid order or a purchase with nothing to ship. shipment is null while a paid physical purchase has no tracking yet. Limited to 30 attempts per five minutes per client IP. Responses are never cached or replayed with Idempotency-Key.

post/shipments/lookup

Request

  • Base URL
    https://api.whop.com/api/v1
  • URL
    https://api.whop.com/api/v1/shipments/lookup
  • Auth
    none required

Headers

Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383

A unique key that makes this request safe to retry. See Idempotent requests.

Request body

account_idstring required

The selling account, prefixed biz_.

emailstring email required

The buyer's current receipt email.

order_numberstring

The payment ID prefixed pay_, or the order number printed on the receipt (optional leading #). Supply this or tracking_number, not both.

tracking_numberstring

The exact carrier tracking number. Supply this or order_number, not both.

Example request

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "email": "marcus@shinetime.example",
  "order_number": "pay_xxxxxxxxxxxxxx"
}

Response

shipment found

payment_idstring required

The matching payment, prefixed pay_.

Example response

{
  "payment_id": "pay_xxxxxxxxxxxxxx",
  "shipment": {
    "account_id": "biz_xxxxxxxxxxxxxx",
    "carrier": "ups",
    "checkpoints": [
      {
        "location": "PHILADELPHIA, PA",
        "message": "Picked up",
        "status": "in_transit",
        "timestamp": "2026-01-01T12:00:00.000Z"
      }
    ],
    "created_at": "2026-01-01T12:00:00.000Z",
    "id": "ship_xxxxxxxxxxxxxx",
    "payment_id": "pay_xxxxxxxxxxxxxx",
    "status": "in_transit",
    "tracking_number": "1Z999AA10123456784",
    "tracking_url": "https://track.aftership.com/xxxxxxxxxxxxxxxxxx",
    "updated_at": "2026-01-01T12:00:00.000Z"
  }
}

Changes