Purolator Pickup Virtual Sandbox
API for scheduling, modifying, and managing courier pickup requests.
The Purolator Pickup API allows developers to programmatically manage shipment pickups. It supports scheduling new pickups, modifying existing requests, retrieving pickup history, and voiding scheduled pickups, providing a complete lifecycle management tool for logistics integration.
Use this hosted sandbox to simulate Purolator Pickup APIs without authentication, API keys, or extra dependencies. Point your code or SDK to the Beeceptor base URL, preferably through an environment variable or feature flag, and switch back to the production API when ready.
This keeps your integration code consistent across local development, QA, demos, and production.
Use cases:
Use this sandbox to validate pickup scheduling payloads, address validation logic, time-window availability, modification request workflows, and error handling for voiding or retrieving historical pickup data before integrating with Purolator production systems.
pickup(4 operations)
POST
| Header Name | Example |
|---|---|
x-api-key* | "anim eu voluptate in occaecat" |
Language* | "FR" |
RequestReference | "qui et" |
{
"contactInfo": {
"company": "Lind, Sanford and Gulgowski",
"name": "Felicia Mann",
"phoneExtension": "8",
"phoneNumber": "+19147912948"
},
"freight": {
"accessorialParameters": [
{
"keyword": "ID",
"keywordValue": true
},
{
"keyword": "ID",
"keywordValue": true
},
{
"keyword": "ID",
"keywordValue": true
}
],
"codAmount": 112.09,
"customerReferences": {
"0": "PO",
"1": "BOL"
},
"declaredValue": 15.38,
"lineItemDetails": [
{
"description": "Apparel",
"freightClass": "70",
"handlingUnit": 1,
"handlingUnitType": "BOX",
"height": 21.19,
"length": 33.54,
"lineNumber": 8,
"pieces": 35,
"weight": 3.47,
"width": 26.76
},
{
"description": "Furniture",
"freightClass": "85",
"handlingUnit": 7,
"handlingUnitType": "BOX",
"height": 43.85,
"length": 36.49,
"lineNumber": 5,
"pieces": 23,
"weight": 91.64,
"width": 46.08
},
{
"description": "Furniture",
"freightClass": "60",
"handlingUnit": 10,
"handlingUnitType": "BOX",
"height": 24.62,
"length": 48.61,
"lineNumber": 8,
"pieces": 35,
"weight": 77.3,
"width": 41.37
},
{
"description": "Electronics",
"freightClass": "70",
"handlingUnit": 9,
"handlingUnitType": "BOX",
"height": 22.79,
"length": 6.65,
"lineNumber": 1,
"pieces": 35,
"weight": 30.95,
"width": 17.47
}
],
"paymentInfo": {
"billingAccountNumber": "9",
"paymentType": "Sender"
},
"pickUpOptions": "Oversize"
},
"lineOfBusiness": "Courier",
"pickupAddress": {
"address": {
"0": "123 Main St"
},
"city": "Goldentown",
"country": "CA",
"postalCode": "G7G 5H7",
"province": "ON"
},
"pickupInstructions": {
"additionalInstructions": "Fragile contents",
"anyTimeAfter": "12:00",
"date": "2026-11-14T00:00:00.0Z",
"loadingDockAvailable": true,
"measurementUnit": "Imperial",
"numberOfSkids": 11,
"pickupLocation": "FrontDesk",
"shipmentOnSkids": false,
"supplyRequestCodes": {
"0": "ExpressEnvelope"
},
"totalWeight": 436.2,
"trailerAccessible": true,
"untilTime": "18:00"
},
"pickupNotificationEmail": "Henri70@gmail.com",
"registeredAccountNumber": "2",
"shipmentSummary": [
{
"destinationCode": "USA",
"modeOfTransport": "Ground",
"totalPieces": 3,
"totalWeight": 122.1
},
{
"destinationCode": "DOM",
"modeOfTransport": "Ground",
"totalPieces": 24,
"totalWeight": 19.8
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 70,
"totalWeight": 89.8
},
{
"destinationCode": "DOM",
"modeOfTransport": "Ground",
"totalPieces": 76,
"totalWeight": 124.9
},
{
"destinationCode": "DOM",
"modeOfTransport": "Ground",
"totalPieces": 11,
"totalWeight": 64.5
}
]
}{
"pickupConfirmationNumber": "7"
}{
"errors": [
{
"code": "9001-19",
"description": "Service currently unavailable."
},
{
"code": "9001-21",
"description": "Shipment summary is required."
},
{
"code": "9001-21",
"description": "Service currently unavailable."
}
]
}{
"message": "User is not authorized to access this resource."
}{
"code": "9001-73",
"description": "There is an unknown internal server error. Please try again later."
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.PUT
| Header Name | Example |
|---|---|
x-api-key* | "dolor dolor aliqua veniam" |
Language* | "EN" |
RequestReference | "dolore Ut cillum" |
{
"pickupConfirmationNumber": "7",
"pickupInstructions": {
"additionalInstructions": "Gate code 1234",
"measurementUnit": "imperial",
"pickupLocation": "FrontDesk",
"supplyRequestCodes": [
"ExpressEnvelope"
],
"untilTime": "16:00"
},
"registeredAccountNumber": "9",
"shipmentSummary": [
{
"destinationCode": "USA",
"totalPieces": 39,
"totalWeight": 59.4
},
{
"destinationCode": "INTL",
"totalPieces": 25,
"totalWeight": 32
}
]
}{
"pickupConfirmationNumber": "3"
}{
"errors": [
{
"code": "9001-21",
"description": "Shipment summary is required."
},
{
"code": "9001-20",
"description": "Invalid account number."
},
{
"code": "9001-21",
"description": "Shipment summary is required."
},
{
"code": "9001-19",
"description": "Invalid account number."
},
{
"code": "9001-19",
"description": "Invalid account number."
}
]
}{
"message": "User is not authorized to access this resource."
}{
"code": "9001-73",
"description": "There is an unknown internal server error. Please try again later."
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.POST
| Header Name | Example |
|---|---|
x-api-key* | "id sint nisi est" |
Language* | "FR" |
RequestReference | "consectetur" |
{
"fromDate": "2026-01-08T00:00:00.0Z",
"lineOfBusiness": "Courier",
"pickupConfirmationNumber": [
"2214236",
"3326587"
],
"registeredAccountNumber": "5",
"status": "PickedUp",
"toDate": "2026-07-01T00:00:00.0Z"
}{
"pickupDetails": [
{
"contactInfo": {
"company": "Moen and Sons",
"name": "Darren Simonis",
"phoneExtension": "8",
"phoneNumber": "+15423360975"
},
"lineOfBusiness": "Courier",
"pickupAddress": {
"address": {
"0": "123 Main St"
},
"city": "Bismarck",
"country": "CA",
"postalCode": "Z2Z 4T3",
"province": "ON"
},
"pickupConfirmationNumber": "1",
"pickupInstructions": {
"additionalInstructions": "Please call upon arrival",
"anyTimeAfter": "10:00",
"date": "2027-04-15T00:00:00.0Z",
"loadingDockAvailable": true,
"measurementUnit": "Imperial",
"numberOfSkids": 3,
"pickupLocation": "FrontDesk",
"shipmentOnSkids": false,
"supplyRequestCodes": {
"0": "ExpressEnvelope"
},
"totalWeight": 364.7,
"trailerAccessible": true,
"untilTime": "17:00"
},
"pickupNotificationEmail": "Owen_Ebert53@hotmail.com",
"pickupStatus": "PickedUp",
"registeredAccountNumber": "2",
"shipmentSummary": [
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 36,
"totalWeight": 65.6
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 86,
"totalWeight": 85
}
]
},
{
"contactInfo": {
"company": "Torp - Kozey",
"name": "Shelley Kunde",
"phoneExtension": "3",
"phoneNumber": "+13275203944"
},
"lineOfBusiness": "Courier",
"pickupAddress": {
"address": {
"0": "123 Main St"
},
"city": "Blue Springs",
"country": "CA",
"postalCode": "A6S 2M0",
"province": "ON"
},
"pickupConfirmationNumber": "2",
"pickupInstructions": {
"additionalInstructions": "Please call upon arrival",
"anyTimeAfter": "09:00",
"date": "2026-11-12T00:00:00.0Z",
"loadingDockAvailable": false,
"measurementUnit": "Imperial",
"numberOfSkids": 9,
"pickupLocation": "FrontDesk",
"shipmentOnSkids": false,
"supplyRequestCodes": {
"0": "ExpressEnvelope"
},
"totalWeight": 461.8,
"trailerAccessible": true,
"untilTime": "17:00"
},
"pickupNotificationEmail": "Manley.Hodkiewicz26@gmail.com",
"pickupStatus": "PickedUp",
"registeredAccountNumber": "7",
"shipmentSummary": [
{
"destinationCode": "USA",
"modeOfTransport": "Ground",
"totalPieces": 77,
"totalWeight": 61.5
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 30,
"totalWeight": 143.1
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 87,
"totalWeight": 120.2
}
]
},
{
"contactInfo": {
"company": "Beier, Breitenberg and Franeck",
"name": "Cory Farrell",
"phoneExtension": "0",
"phoneNumber": "+15459859750"
},
"freight": {
"accessorialParameters": [
{
"keyword": "ID",
"keywordValue": false
}
],
"codAmount": 115.47,
"customerReferences": {
"0": "PO",
"1": "BOL"
},
"declaredValue": 187.44,
"lineItemDetails": [
{
"description": "Electronics",
"freightClass": "60",
"handlingUnit": 6,
"handlingUnitType": "BOX",
"height": 13.59,
"length": 18.52,
"lineNumber": 4,
"pieces": 20,
"weight": 71.46,
"width": 12.55
},
{
"description": "Books",
"freightClass": "70",
"handlingUnit": 3,
"handlingUnitType": "BOX",
"height": 17.55,
"length": 33.49,
"lineNumber": 10,
"pieces": 42,
"weight": 22.32,
"width": 9.83
}
],
"paymentInfo": {
"billingAccountNumber": "6",
"paymentType": "Sender"
},
"pickUpOptions": "Oversize"
},
"lineOfBusiness": "Courier",
"pickupAddress": {
"address": {
"0": "123 Main St"
},
"city": "Manteshire",
"country": "CA",
"postalCode": "H2Z 5S1",
"province": "ON"
},
"pickupConfirmationNumber": "4",
"pickupInstructions": {
"additionalInstructions": "Please call upon arrival",
"anyTimeAfter": "08:00",
"date": "2026-07-13T00:00:00.0Z",
"loadingDockAvailable": true,
"measurementUnit": "Imperial",
"numberOfSkids": 14,
"pickupLocation": "FrontDesk",
"shipmentOnSkids": false,
"supplyRequestCodes": {
"0": "ExpressEnvelope"
},
"totalWeight": 235.3,
"trailerAccessible": true,
"untilTime": "19:00"
},
"pickupNotificationEmail": "Eino.Tromp52@gmail.com",
"pickupStatus": "PickedUp",
"registeredAccountNumber": "1",
"shipmentSummary": [
{
"destinationCode": "USA",
"modeOfTransport": "Ground",
"totalPieces": 52,
"totalWeight": 30
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 33,
"totalWeight": 134.8
}
]
},
{
"contactInfo": {
"company": "Conroy - Schamberger",
"name": "Shannon Wolf-Medhurst",
"phoneExtension": "5",
"phoneNumber": "+17167763560"
},
"lineOfBusiness": "Courier",
"pickupAddress": {
"address": {
"0": "123 Main St"
},
"city": "New Jennifer",
"country": "CA",
"postalCode": "S8L 6A3",
"province": "ON"
},
"pickupConfirmationNumber": "1",
"pickupInstructions": {
"additionalInstructions": "Please call upon arrival",
"anyTimeAfter": "09:00",
"date": "2026-09-18T00:00:00.0Z",
"loadingDockAvailable": true,
"measurementUnit": "Imperial",
"numberOfSkids": 9,
"pickupLocation": "FrontDesk",
"shipmentOnSkids": false,
"supplyRequestCodes": {
"0": "ExpressEnvelope"
},
"totalWeight": 250.1,
"trailerAccessible": false,
"untilTime": "19:00"
},
"pickupNotificationEmail": "Karen_Williamson@yahoo.com",
"pickupStatus": "PickedUp",
"registeredAccountNumber": "6",
"shipmentSummary": [
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 65,
"totalWeight": 132.8
},
{
"destinationCode": "USA",
"modeOfTransport": "Ground",
"totalPieces": 15,
"totalWeight": 90.8
},
{
"destinationCode": "DOM",
"modeOfTransport": "Ground",
"totalPieces": 14,
"totalWeight": 97.6
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 38,
"totalWeight": 147.7
},
{
"destinationCode": "INTL",
"modeOfTransport": "Ground",
"totalPieces": 47,
"totalWeight": 57.8
}
]
}
]
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.{
"errors": [
{
"code": "9001-21",
"description": "Invalid account number."
},
{
"code": "9001-21",
"description": "Service currently unavailable."
},
{
"code": "9001-19",
"description": "Service currently unavailable."
}
]
}{
"message": "User is not authorized to access this resource."
}{
"code": "9001-73",
"description": "There is an unknown internal server error. Please try again later."
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.PUT
| Header Name | Example |
|---|---|
x-api-key* | "officia irure sit" |
Language* | "EN" |
RequestReference | "deserunt velit sed ea" |
{
"lineOfBusiness": "Courier",
"pickupConfirmationNumber": "2"
}{
"pickupVoided": true
}{
"errors": [
{
"code": "9001-20",
"description": "Invalid account number."
},
{
"code": "9001-21",
"description": "Shipment summary is required."
},
{
"code": "9001-21",
"description": "Invalid account number."
},
{
"code": "9001-19",
"description": "Shipment summary is required."
}
]
}{
"message": "User is not authorized to access this resource."
}{
"code": "9001-73",
"description": "There is an unknown internal server error. Please try again later."
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Service Homepage: developer.purolator.com/
purolatorlogisticsshippingpickupcourier