---
title: "Schedule a Pickup"
method: POST
path: "/ship/pickup/"
tags: ["Pickups"]
---

# Schedule a Pickup

`POST /ship/pickup/`

Schedule a carrier pickup at a specified address and time window so a driver collects your packages.

**When to use:** Call this endpoint after generating labels when you need the carrier to pick up packages from your warehouse or location instead of dropping them off at a service point.

**Prerequisites:**
- Valid JWT authentication token (Bearer)
- At least one generated shipment label (tracking number)
- A pickup origin address
- A preferred pickup date and time window

**Key behaviors:**
- Returns a pickup confirmation number on success
- Pickup availability and time windows depend on the carrier and location
- You can include multiple tracking numbers in a single pickup request
- Some carriers require a minimum number of packages or weight for pickup eligibility
- Pickup rules vary by carrier — consult the [Pickups concept guide](https://docs.envia.com/docs/pickups) for details

## Request body

- object
  - `origin` object, required — Pickup address information
    - `category_id` integer — Address category ID
    - `name` string, required — Name of the person
    - `company` string — Company name
    - `phone` string, required — Phone number
    - `phone_code` string — Country phone code
    - `email` string, email — Email address
    - `country` string, required — Country code
    - `district` string — District or neighborhood
    - `postal_code` string — Postal code (legacy field)
    - `postalCode` string, required — Postal code
    - `city` string, required — City name
    - `number` string — Street number
    - `street` string, required — Street address
    - `interior_number` string — Interior number
    - `state` string, required — State code
    - `category` integer — Address category
    - `reference` string — Reference information
    - `identificationNumber` string — Tax identification number
  - `shipment` object, required — Shipment information
    - `type` integer, required — Shipment type
    - `carrier` string, required — Carrier name
    - `pickup` object, required — Pickup details
      - `weightUnit` 'KG' | 'LB', required — Weight unit
      - `totalWeight` number, required — Total weight
      - `totalPackages` integer, required — Total number of packages
      - `date` string, date, required — Pickup date
      - `timeFrom` integer, required — Pickup time from (hour)
      - `timeTo` integer, required — Pickup time to (hour)
      - `carrier` string, required — Carrier name
      - `instructions` string — Special pickup instructions
      - `trackingNumbers` string[], required — Array of tracking numbers to pickup

## Response `200`

Pickup scheduled successfully

---

[API](https://skmtc.net/envia/apis/envia-shipping-api-complete-documentation.md) · [All operations](https://skmtc.net/envia/apis/envia-shipping-api-complete-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/envia/envia-shipping-api-complete-documentation/revisions/39f9208959d6/schema)
