1. Shipments
MyCourier Order API
  • Introduction
  • Shipments
    • Check coverage
      POST
    • Place orders
      POST
    • Get shipment details
      GET
    • Get last status
      GET
    • Cancel shipment
      POST
    • Get shipments count
      GET
    • List shipments
      POST
    • Get label
      GET
  • Locations
    • Get countries
      GET
    • Get cities
      GET
  • Webhook
    • Shipment status update
      POST
  • Schemas
    • Error
    • ServiceType
    • TrackingStatus
    • Price
    • CheckCoverageRequest
    • CoverageOption
    • CheckCoverageResponse
    • CoverageError
    • OrderAddress
    • OrderItem
    • Order
    • PlaceBulkRequest
    • AcceptedOrder
    • DeniedOrder
    • PlaceBulkResponse
    • Address
    • Recipient
    • PickupLocation
    • Driver
    • ShipmentSummary
    • ShipmentDetails
    • AllShipmentsRequest
    • ShipmentsCount
    • WebhookEvent
  1. Shipments

Place orders

POST
/api/order/PlaceBulk
Places 1 to 1,000 orders in one request. Every order is judged on its own: a refused order never stops the others. The reply lists the acceptedOrders and the deniedOrders, each with its shipperRef.
Your own reference. shipperRef is your order number and must be unique. An order whose shipperRef is already saved is denied, so sending a request again never creates an order twice.
Items or totals. Describe the parcels with items (weight in kilograms and size in centimetres, both per unit), or, without items, with numberOfPieces and totalOrderWeight (grams). packages is the number of boxes the order is packed in (1 to 9999, 1 when left out); it does not depend on the item quantities.
Where the order goes. Send latitude and longitude together and the address is used as given. Leave both out and MyCourier looks the address up, then checks it in the background. Sending only one of the two denies the order.
After a cut-off. When the service you asked for is no longer possible for today, the order is denied with options. Send it again with the serviceType and expectedDeliveryDate of one of the options.
One request per merchant runs at a time. A second request while the first is still running answers 429 with a Retry-After header. The label is prepared in the background; read its links with Get label.

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
Body Params application/jsonRequired

Examples
{
    "list": [
        {
            "shipperRef": "SHOP-10458",
            "externalLocationId": "ITPU1",
            "serviceType": "NEXT_DAY",
            "expectedDeliveryDate": "2026-10-28",
            "recipientName": "Jane Doe",
            "mobileNumber": "+14165550101",
            "email": "jane@example.com",
            "signatureRequired": true,
            "ageVerification": false,
            "remarks": "Ring the buzzer",
            "packages": 2,
            "address": {
                "streetAddress1": "290 Bremner Blvd",
                "streetAddress2": "Suite 5",
                "city": "Toronto",
                "postalCode": "M5V 3L9",
                "country": "Canada",
                "latitude": 43.6426,
                "longitude": -79.3871
            },
            "items": [
                {
                    "itemName": "Pharmacy bag",
                    "quantity": 2,
                    "weight": 1.5,
                    "length": 30,
                    "width": 20,
                    "height": 10
                },
                {
                    "itemName": "Small box",
                    "quantity": 1,
                    "weight": 2
                }
            ]
        }
    ]
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://flype-ops-panel-dev.web.app/api/order/PlaceBulk' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "list": [
        {
            "shipperRef": "SHOP-10458",
            "externalLocationId": "ITPU1",
            "serviceType": "NEXT_DAY",
            "expectedDeliveryDate": "2026-10-28",
            "recipientName": "Jane Doe",
            "mobileNumber": "+14165550101",
            "email": "jane@example.com",
            "signatureRequired": true,
            "ageVerification": false,
            "remarks": "Ring the buzzer",
            "packages": 2,
            "address": {
                "streetAddress1": "290 Bremner Blvd",
                "streetAddress2": "Suite 5",
                "city": "Toronto",
                "postalCode": "M5V 3L9",
                "country": "Canada",
                "latitude": 43.6426,
                "longitude": -79.3871
            },
            "items": [
                {
                    "itemName": "Pharmacy bag",
                    "quantity": 2,
                    "weight": 1.5,
                    "length": 30,
                    "width": 20,
                    "height": 10
                },
                {
                    "itemName": "Small box",
                    "quantity": 1,
                    "weight": 2
                }
            ]
        }
    ]
}'

Responses

🟢200
application/json
Every order was judged. Check acceptedOrders and deniedOrders.
Bodyapplication/json

Example
{
    "acceptedOrders": [
        {
            "status": "success",
            "shipperRef": "SHOP-10458",
            "trackingNumber": "FQ3UFIZ6RQWU",
            "orderNumber": 2902924,
            "trackingUrl": "https://track.example.com/ca/FQ3UFIZ6RQWU",
            "pickupDate": "2026-10-27",
            "pickupTime": "2026-10-28T04:30:00.000Z",
            "expectedDeliveryDate": "2026-10-28",
            "serviceType": "NEXT_DAY",
            "externalLocationId": "ITPU1",
            "packages": 2,
            "signatureRequired": true,
            "ageVerification": false,
            "price": {
                "total": 17,
                "tax": 0,
                "currency": "CAD"
            }
        }
    ],
    "deniedOrders": [
        {
            "shipperRef": "SHOP-10460",
            "reason": "Phone number '123' isn't valid. Example: +14165550101."
        },
        {
            "shipperRef": "SHOP-10461",
            "reason": "Pickup code 'NOPE' isn't one of your active pickup locations."
        },
        {
            "shipperRef": "SHOP-10462",
            "reason": "Enter latitude and longitude together, or leave both empty."
        }
    ]
}
🟠400
🟠401
🟠403
🟠422
🟠429
Modified at 2026-10-28 04:52:40
Previous
Check coverage
Next
Get shipment details
Built with