POST /apiv2/depots/savedepot

Creates or updates a depot. Pass id = null to create, or an existing id to update.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
deliveryCarrierIds[] Array No

IDs of carriers allowed to route deliveries to this depot. Affects route generation.

isDisabled Boolean No

When true the depot is hidden from the depot picker and unavailable for routing.

companyId Integer No

ID of the Root Company that owns this depot. On save: leave at 0 (the int default) to auto-populate from the caller's session; a non-zero value that doesn't match the caller's session company throws.

carrierId Integer No

ID of the managing/owning carrier. Null for depots not tied to a specific carrier.

pickupCarrierIds[] Array No

IDs of carriers that use this depot for pickups. Stored only — no routing logic reads this in BF-5.

latitude Number No

Latitude of the depot's suburb centre point (from Locations.CentrePoint). Already fetched during haversine distance calculation — returned at no extra cost. Used by the frontend to render map pins in the depot picker map view.

carrierName String No

Display name of the managing/owning carrier.

id Integer No

Depot ID. Null when creating a new depot.

name String No

Depot display name (e.g. "Brisbane Depot"). Distinct from Address.Name, which is the name of the address itself and is unused for depots.

longitude Number No

Longitude of the depot's suburb centre point. See Machship.Common.Models.ApiV2Models.Depots.DepotV2.Latitude.

specialInstructions String No

Any special instructions for deliveries to this depot. Bounded to 500 characters (BF-170).

operatingHours[] Array No

Operating hours for the depot. Always contains exactly 7 entries — one per day of the week (Monday–Sunday). Public holidays and exceptions are not supported in BF-5. Stored only in BF-5; no routing logic reads this yet.

operatingHours[].operatingTime Object No

A clock-time window (Open, Close) for a single day. Uses System.TimeOnly rather than System.TimeSpan because TimeSpan can exceed 24 hours; an operating window can't. Both endpoints are required — callers represent "no window" (closed all day or open 24 hours) with a null OperatingTime? instead, disambiguated by the surrounding IsOpen flag.

operatingHours[].operatingTime.close Object No
operatingHours[].operatingTime.close.millisecond Integer No
operatingHours[].operatingTime.close.nanosecond Integer No
operatingHours[].operatingTime.close.minute Integer No
operatingHours[].operatingTime.close.second Integer No
operatingHours[].operatingTime.close.microsecond Integer No
operatingHours[].operatingTime.close.ticks Integer No
operatingHours[].operatingTime.close.hour Integer No
operatingHours[].operatingTime.open Object No
operatingHours[].operatingTime.open.millisecond Integer No
operatingHours[].operatingTime.open.nanosecond Integer No
operatingHours[].operatingTime.open.minute Integer No
operatingHours[].operatingTime.open.second Integer No
operatingHours[].operatingTime.open.microsecond Integer No
operatingHours[].operatingTime.open.ticks Integer No
operatingHours[].operatingTime.open.hour Integer No
operatingHours[].dayOfWeek Integer No

0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday

Valid values:

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
operatingHours[].isOpen Boolean No

Whether the depot is open on this day.

address Object No

Depot-specific Machship.Common.Models.Locations.Address that bounds the two address lines to the depot column lengths (BF-170: Depots.AddressLine1/AddressLine2 are nvarchar(256)). The constraint lives on this subclass — not the shared Machship.Common.Models.Locations.Address — so every other Machship.Common.Models.Locations.Address consumer (routes, carrier integrations, tracking email, consolidation) stays unbounded.

The shadowed properties use new (the established V2 idiom — see CreateConsignmentExistingV2). Newtonsoft resolves shadowed members to the most-derived type, so the wire shape (property names) is unchanged; the only requirement is that depot code references this property through the DepotAddressV2 static type so the constrained backing field is the one read/written.

address.contact String No

The contact name for this address

address.name String No

The name of the addresss

address.email String No

The email address associated with this addresss

address.location Object No
address.location.locationType Integer No

0 = Suburb, 1 = PostOfficeBox, 2 = International

Valid values:

  • 0
  • 1
  • 2
address.location.searchStr String No

used if the user only passed in a string for the location. Location Service will then try to find location based on str

address.location.description String No
address.location.locationAliases[] Array No
address.location.locationAliases[].id Integer No
address.location.locationAliases[].locationId Integer No
address.location.locationAliases[].name String No
address.location.locationAliases[].location No
address.location.suburb String No
address.location.postcode String No
address.location.stateId Integer No
address.location.isFrom Boolean No
address.location.state Object No
address.location.state.id Integer No
address.location.state.name String No
address.location.state.code String No
address.location.countryCode String No

The country code is used to determine the international location

address.location.id Integer No
address.location.descriptionShort String No
address.location.countryId Integer No
address.location.timeZoneId Integer No
address.location.country Object No
address.location.country.id Integer No
address.location.country.currencyCode String No
address.location.country.name String No
address.location.country.numeric String No
address.location.country.taxPercentage Number No
address.location.country.displayName String No
address.location.country.code3 String No
address.location.country.code2 String No
address.location.subLocality String No
address.location.timeZone Object No
address.location.timeZone.id Integer No
address.location.timeZone.jsName String No
address.location.timeZone.name String No
address.phone String No

The phone number associated with this address

address.addressLine1 String No

The first line of the depot address. Bounded to 256 characters (BF-170).

address.addressLine2 String No

The (optional) second line of the depot address. Bounded to 256 characters (BF-170).

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.