Getting orders from shiphero via api

We have an API that we use to create orders in our system which are used by our shipping carrier. Is this possible that shiphero triggers our API whenever a new order is created. Then our shipping carrier will fulfill the order (pickup, deliver) via update order.

I have gone through the API documentation and found two things related to this scenario.

  1. Generate Label Webhook
  2. Shipment Update Webhook

We are not going for option 1 as label printing will be handled by our client, not us. Our carrier will just pick up the package and deliver it and update the order at shiphero’s end.

Is this possible with Shipment Update webhook? Will it trigger every time the shipment is created? If yes then we would be able to get the shipment, items, etc from the triggered request. We need these parameters for our order creation, are these available?

  1. pickup address
  2. dropoff address
  3. due time to deliver
  4. vehicle type (car, aeroplane, bike, truck, etc)
  5. start and end time (warehouse pickup availability time)
  6. start and end time (customer availability time)
  7. merchant order number
  8. Customer name
  9. “copy”: “A description for carrier”,
  10. “notification_method”: //,
  11. “confirm_image”: // true / false,
  12. “confirm_pin”: // true or false,
  13. “confirm_seal”: // true or false,
  14. “confirm_signature”: // true or false
  15. tracking id
    Are these all present? we cannot find vehicle id, and start and end times,

Also tell me do we have to implement all the webhooks or just one or two that we find relevant?

Hi @mumerhasan!

We don’t have an Order Creation webhook if that is what you were looking for.
The Shipment Update webhook will work only for when an order is Shipped, but not created. For that purpose, you might want to connect directly to your shop, or if you want to get the orders from ShipHero you might need to fetch the orders using the Orders query and filtering by a date range for example.

That query example has all the information related to the end customer. For the Warehouse information (pickup) you might want to use the account information and get the warehouse address:

query {
  account {
    request_id
    complexity
    data {
      warehouses {
        id
        legacy_id
        address {
          name
          address1
          address2
          city
          state
          country
          zip
          phone
        }
        account_id
        identifier
        dynamic_slotting
        invoice_email
        phone_number
        profile
      }
    }
  }
} 

As for times and vehicle ID we don’t store that kind of information, but you might want to check for the available fields that we have, should be available with our docs and schema: https://developer.shiphero.com/getting-started/#schemaanddocs and you can see if any of those work for your purpose.

Let me know if I can explain better or assist with anything else,
Thanks in advance!
Tom

Let me know this: Will shipment_update fire when a shipment is created via endeavor (when we print labels)?

If not then maybe the only possible solution is using generate label webhook as it will fire when labels are generated for shipment boxes and we have to implement this…we don’t want to periodically run orders query actually. Is there any other solution?

That is correct @mumerhasan, it will fire when the shipment is created on endeavour/shipping :+1:

OK that is great. So our carrier can now get their orders on their webhook when shipment is created.