Azure Standard Public API (1.0.0-oas3)

Download OpenAPI specification:Download

Azure Standard Customer Service: info@azurestandard.com URL: https://azurestandard.com/customer-service License: MIT

The public API behind Azure's website.

Notes:

  • Query parameter arrays should be formatted as comma-separated lists. Example:
    https://api.azurestandard.com/stops?inline=drop,pickup,truckloadId

Authentication

basic

Security Scheme Type HTTP
HTTP Authorization Scheme basic

sessionCookie

Security Scheme Type API Key
Header parameter name: cookie

affiliate-referral

Returns all affiliate referrals for the given referring user, in descending order of the date the referred person's account was created

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

person
required
integer <int64>

Person ID of the referring user.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

bartender

Returns all BarTender hosts from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new BarTender host

Authorizations:
Request Body schema: application/json

BarTender host to add.

code
required
string

Slug for stable reference (e.g. "bt1").

name
required
string

Human readable name (e.g. "Bar Tender 1").

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Returns a BarTender host based on a single code, if the user has access to it

Authorizations:
path Parameters
code
required
string

Code of BarTender host to fetch.

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Update an existing BarTender host

Authorizations:
path Parameters
code
required
string

Code of BarTender host to update.

Request Body schema: application/json

Updated BarTender host parameters (can optionally include 'code').

code
required
string

Slug for stable reference (e.g. "bt1").

name
required
string

Human readable name (e.g. "Bar Tender 1").

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Delete an existing BarTender host

Authorizations:
path Parameters
code
required
string

Code of BarTender host to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Returns all BarTender templates from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new BarTender template

Authorizations:
Request Body schema: application/json

BarTender template to add.

id
required
integer <int64>
path
required
string

Path to the BarTender template on the BarTender host filesystem.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "path": "string"
}

Returns a BarTender template based on a single ID, if the user has access to it

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender template to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "path": "string"
}

Update an existing BarTender template

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender template to update.

Request Body schema: application/json

Updated BarTender template parameters (can optionally include 'id').

id
required
integer <int64>
path
required
string

Path to the BarTender template on the BarTender host filesystem.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "path": "string"
}

Delete an existing BarTender template

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender template to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Returns all BarTender print configurations from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new BarTender print configuration

Authorizations:
Request Body schema: application/json

BarTender print configuration to add.

host
required
string

The BarTender host's code.

id
required
integer <int64>
printer
required
integer <int64>

The printer ID. The referenced printer must support the bartender format and delivery methods.

template
required
integer <int64>

The BarTender template ID.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "host": "string",
  • "printer": 0,
  • "template": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "host": "string",
  • "printer": 0,
  • "template": 0
}

Returns a BarTender print configuration based on a single ID, if the user has access to it

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender print configuration to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "host": "string",
  • "printer": 0,
  • "template": 0
}

Update an existing BarTender print configuration

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender print configuration to update.

Request Body schema: application/json

Updated BarTender print configuration parameters (can optionally include 'id').

host
required
string

The BarTender host's code.

id
required
integer <int64>
printer
required
integer <int64>

The printer ID. The referenced printer must support the bartender format and delivery methods.

template
required
integer <int64>

The BarTender template ID.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "host": "string",
  • "printer": 0,
  • "template": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "host": "string",
  • "printer": 0,
  • "template": 0
}

Delete an existing BarTender print configuration

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender print configuration to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Create a test BarTender print request

Create a test BarTender print request using this print configuration. The print request uses hard-coded dummy data if a stock ID is not provided.

Authorizations:
path Parameters
id
required
integer <int64>

ID of BarTender print configuration to test.

Request Body schema: application/json

Test data to use in the test print request. The payload must be a JSON object, but the stock property is optional.

stock
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "stock": 0
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

brand

Returns all brands (no authorization required)

query Parameters
integer or string

Maximum number of results to return.

name
string

Only return brands whose name contains this value (case insensitive).

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a brand (no authorization required)

path Parameters
id
required
integer <int64>

ID of brand to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "url": "string",
  • "slug": "string"
}

company-directory

Search company directory

Authorizations:
query Parameters
department
string

Filter by department. If this parameter is used then department will be ignored in the query-field parameter. This parameter is case insensitive.

limit
integer <int32>

Maximum number of results to return.

query
string

Query to perform within the directory. The use of a * at the beginning or end of the string is treated as a wildcard. This parameter is case insensitive.

query-field
Array of strings

Fields to search. Any property included in a companyDirectoryEntry response may be queried. Defaults to full-name, first-name, last-name, title, department.name, phone-number, phone-ext, mobile, email, and office.

sort
Array of strings

Order results by this field. Any property included in a companyDirectoryEntry response may be used here. Defaults to department.name, first-name and last-name.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns all departments in the company directory

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

report

Returns all reports from the system that the user has access to

Authorizations:
query Parameters
category
Array of integers <int64>

Report category IDs to filter by. null may be used to return reports that are uncategorized.

limit
integer <int32>

Maximum number of results to return.

query
string

Query terms to filter by (currently searches name only).

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a report based on an ID, if the user has access to it

Authorizations:
path Parameters
id
required
string

ID of report to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "category": "string"
}

Returns all report categories from the system that the user has access to

Authorizations:
query Parameters
customer-pricing
boolean

Filter categories by whether or not they contain customer pricing groups.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new report category

Authorizations:
Request Body schema: application/json

Report category to add.

customer-pricing
required
boolean

Whether or not reports in this category are customer pricing groups (for use in the pricing module).

id
required
integer <int64>
name
required
string

The category name.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "customer-pricing": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "customer-pricing": true
}

Returns a report category based on an ID, if the user has access to it

Authorizations:
path Parameters
id
required
string

ID of report category to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "customer-pricing": true
}

Update an existing report category

Authorizations:
path Parameters
id
required
string

ID of report category to update.

Request Body schema: application/json

Updated report category parameters.

customer-pricing
required
boolean

Whether or not reports in this category are customer pricing groups (for use in the pricing module).

id
required
integer <int64>
name
required
string

The category name.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "customer-pricing": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "customer-pricing": true
}

Delete an existing report category

Authorizations:
path Parameters
id
required
string

ID of report category to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

drop

Returns all drops from the system that the user has access to

Authorizations:
query Parameters
active
boolean

Only return (in)active drops.

exclusivity
Array of strings
Items Enum: "open" "semi-open" "closed"

Types of exclusivity to filter by.

filter-person
Array of integers <int64>

Person IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

route
Array of strings

Route names to filter by.

sort
string

Order results by this field. Only one special sort field is supported, distance(lat:45.45|lon:-121.13), which will sort drops by increasing distance from the lat and lon combination.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

trip
Array of integers <int64>

Trip IDs to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new drop

Authorizations:
Request Body schema: application/json

Drop to add.

active
required
boolean

Whether or not this drop is actively ordering.

exclusivity
required
string
Enum: "open" "semi-open" "closed"
required
object (geo)

A geographical coordinate.

id
required
integer <int64>
members
required
integer <int32>

Number of customers on this drop.

name
required
string
timezone
required
string

The drop's timezone (e.g. America/Los_Angeles).

accounts-payable-contact
string

Name of the drop employee Azure's accounts-payable should contact, if different from the primary contact.

object (address)

An address following the convention of http://microformats.org/wiki/h-adr and https://tools.ietf.org/html/rfc6350#section-6.3.1, with an additional name property.

after-hours-phone
string

E.123 telephone number Azure should call if we need to contact the drop after business hours.

business-hours
string

Regular business hours for the drop (e.g. "8:30-6 Mon-Fri, 9-5 Sat, closed Sun").

business-type
Array of strings
Items Enum: "clinics-practitioner" "manufacturing-business" "online-store" "restaurant" "retail-store" "seasonal" "wholesale-distributor"

What type of business do you run?.

buyer
string

Name of the drop employee who usually places orders for this drop, if different from the primary contact.

contact-person
string
contact-type
Array of strings
Items Enum: "phone" "email" "other"

How can customers contact you?.

contact-type-other-notes
string

Description of the alternative contact method. Available when contact-type includes "other".

contact-type-phone
string

E.123 telephone number customers should call to contact this drop. Available when contact-type includes "phone".

coordinators
Array of integers <int32>

Coordinators for this drop. The first entry is the primary contact.

directions
string

Driving directions for a truck approaching this drop (e.g. avoiding low bridges, tight turns, etc. on more obvious routes).

driver-callable-phone
string

E.123 telephone number for a driver approaching this drop.

object (dropFees)

Additional costs for members receiving at a drop.

food-stamps
string
Enum: "yes" "no" "limited"

Does your drop accept food stamps? Business preference.

food-stamps-limited-notes
string

Description of limited food-stamp acceptance. Business preference. Only available when food-stamps is "limited".

hold-time
string

How long will you hold a customer's order? For example, "24 hours", "three days for dry, frozen by arrangement", etc. Retail preference. Only available when how-members-receive is "can-hold-sometimes" or "can-hold".

how-members-receive
string
Enum: "must-show" "can-hold-sometimes" "can-hold"

How do your members receive their items? Retail preference.

invoice-always
boolean

Always print paper invoices, regardless of the customer's invoice-delivery preference.

notes
string

Free-form Markdown notes for any member-oriented drop information that doesn't fit into an existing field. This information is public for open and semi-open drops, and visible to all members for closed drops.

okay-to-text-phone
boolean

Can the driver send text messages to the driver-callable phone?.

object

Order counts for this drop over the past year.

order-minimum
number <float>

The minimum total order value (in dollars) required to ship a particular trip to this drop. For example, if the minimum is $400 and there are three $100 orders placed for a stop, that stop will be under-minimum, and the orders will not be shipped. If, on the other hand, there were four $100 orders placed for a stop, that stop would be (just) over-minimum, and the orders would be shipped.

parking
string
Enum: "home" "business" "non-profit" "public" "other-building"

Parking location ownership for this drop.

pickup-contact
string
Enum: "yes" "no" "first-time-only"

Do customers need to contact you to pick up their orders? Retail preference. Only available when how-members-receive is "can-hold-sometimes" or "can-hold".

sells-finished-goods-to-azure
boolean

Do you also sell your finished good to Azure? Only available if business-type includes "manufacturing-business".

special-orders
boolean

Do you take special orders for Azure products from customers? Wholesale preference.

storage
Array of strings (storage)
Items Enum: "dry" "chilled" "frozen" "greenhouse"

Storage environments available at this drop.

uses-azure-to-drop-ship
boolean

Do you drop ship Azure orders (have Azure ship directly to your customers)? Only available if business-type includes "online-store".

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "coordinators": [
    ],
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "accounts-payable-contact": "string",
  • "after-hours-phone": "string",
  • "business-hours": "string",
  • "business-type": [
    ],
  • "buyer": "string",
  • "pickup-contact": "yes",
  • "contact-person": "string",
  • "contact-type": [
    ],
  • "contact-type-other-notes": "string",
  • "contact-type-phone": "string",
  • "directions": "string",
  • "driver-callable-phone": "string",
  • "exclusivity": "open",
  • "food-stamps": "yes",
  • "food-stamps-limited-notes": "string",
  • "hold-time": "string",
  • "how-members-receive": "must-show",
  • "invoice-always": true,
  • "okay-to-text-phone": true,
  • "parking": "home",
  • "special-orders": true,
  • "storage": [
    ],
  • "fees": {
    },
  • "order-minimum": 0,
  • "members": 0,
  • "order-frequency": {
    },
  • "notes": "string",
  • "sells-finished-goods-to-azure": true,
  • "uses-azure-to-drop-ship": true,
  • "timezone": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "coordinators": [
    ],
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "accounts-payable-contact": "string",
  • "after-hours-phone": "string",
  • "business-hours": "string",
  • "business-type": [
    ],
  • "buyer": "string",
  • "pickup-contact": "yes",
  • "contact-person": "string",
  • "contact-type": [
    ],
  • "contact-type-other-notes": "string",
  • "contact-type-phone": "string",
  • "directions": "string",
  • "driver-callable-phone": "string",
  • "exclusivity": "open",
  • "food-stamps": "yes",
  • "food-stamps-limited-notes": "string",
  • "hold-time": "string",
  • "how-members-receive": "must-show",
  • "invoice-always": true,
  • "okay-to-text-phone": true,
  • "parking": "home",
  • "special-orders": true,
  • "storage": [
    ],
  • "fees": {
    },
  • "order-minimum": 0,
  • "members": 0,
  • "order-frequency": {
    },
  • "notes": "string",
  • "sells-finished-goods-to-azure": true,
  • "uses-azure-to-drop-ship": true,
  • "timezone": "string"
}

Returns a drop based on a single ID, if the user has access to the drop

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "coordinators": [
    ],
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "accounts-payable-contact": "string",
  • "after-hours-phone": "string",
  • "business-hours": "string",
  • "business-type": [
    ],
  • "buyer": "string",
  • "pickup-contact": "yes",
  • "contact-person": "string",
  • "contact-type": [
    ],
  • "contact-type-other-notes": "string",
  • "contact-type-phone": "string",
  • "directions": "string",
  • "driver-callable-phone": "string",
  • "exclusivity": "open",
  • "food-stamps": "yes",
  • "food-stamps-limited-notes": "string",
  • "hold-time": "string",
  • "how-members-receive": "must-show",
  • "invoice-always": true,
  • "okay-to-text-phone": true,
  • "parking": "home",
  • "special-orders": true,
  • "storage": [
    ],
  • "fees": {
    },
  • "order-minimum": 0,
  • "members": 0,
  • "order-frequency": {
    },
  • "notes": "string",
  • "sells-finished-goods-to-azure": true,
  • "uses-azure-to-drop-ship": true,
  • "timezone": "string"
}

Update an existing drop

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop to update.

Request Body schema: application/json

Updated drop parameters (can optionally include 'id').

active
required
boolean

Whether or not this drop is actively ordering.

name
required
string
object (address)

An address following the convention of http://microformats.org/wiki/h-adr and https://tools.ietf.org/html/rfc6350#section-6.3.1, with an additional name property.

object (dropFees)

Additional costs for members receiving at a drop.

object (geo)

A geographical coordinate.

id
integer <int64>
notes
string

Free-form Markdown notes for any member-oriented drop information that doesn't fit into an existing field. This information is public for open and semi-open drops, and visible to all members for closed drops.

parking
string
Enum: "home" "business" "non-profit" "public"

Parking location ownership for this drop.

storage
Array of strings (storage)
Items Enum: "dry" "chilled" "frozen" "greenhouse"

Storage environments available at this drop.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "parking": "home",
  • "storage": [
    ],
  • "fees": {
    },
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "coordinators": [
    ],
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "accounts-payable-contact": "string",
  • "after-hours-phone": "string",
  • "business-hours": "string",
  • "business-type": [
    ],
  • "buyer": "string",
  • "pickup-contact": "yes",
  • "contact-person": "string",
  • "contact-type": [
    ],
  • "contact-type-other-notes": "string",
  • "contact-type-phone": "string",
  • "directions": "string",
  • "driver-callable-phone": "string",
  • "exclusivity": "open",
  • "food-stamps": "yes",
  • "food-stamps-limited-notes": "string",
  • "hold-time": "string",
  • "how-members-receive": "must-show",
  • "invoice-always": true,
  • "okay-to-text-phone": true,
  • "parking": "home",
  • "special-orders": true,
  • "storage": [
    ],
  • "fees": {
    },
  • "order-minimum": 0,
  • "members": 0,
  • "order-frequency": {
    },
  • "notes": "string",
  • "sells-finished-goods-to-azure": true,
  • "uses-azure-to-drop-ship": true,
  • "timezone": "string"
}

Delete an existing drop

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Returns an array of locations for all active drops that the user has access to

For example, you can use this to draw markers on map.

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

drop-membership

Returns all drop memberships from the system that the user has access to

Authorizations:
query Parameters
active
boolean

Only return (in)active memberships.

customerHasPlacedOrderOnDrop
boolean

Return only drop memberships where the customer has placed an order on the drop.

Notes:

  • Only supported when filtering for a single drop.
  • Does not support passing false (value must be true).
drop
Array of integers <int64>

Drop IDs to filter by.

filter-person
Array of integers <int64>

Person IDs to filter by.

inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "customer", "customer.email", "drop", and "gratitude-total".

limit
integer <int32>

Maximum number of results to return.

pending
boolean

Only return pending (true) or accepted (false) memberships.

sort
string

Order results by this field. Supported fields: customer.name, drop.name.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new drop membership

Authorizations:
Request Body schema: application/json

Drop membership to add.

active
required
boolean

Whether or not this membership is active.

customer
required
integer <int64>

Customer that has the drop membership.

drop
required
integer <int64>

The drop this membership is for.

heavy
boolean

Whether the member can get pallets, totes, barrels, and other heavy objects off a truck (defaults to false).

object (dropMembershipNotifications)

Configure if and how a user receives per-drop notifications.

pending
boolean

Whether the membership is pending (true) or accepted (false).

Responses

Request samples

Content type
application/json
{
  • "customer": 0,
  • "drop": 0,
  • "active": true,
  • "pending": true,
  • "heavy": true,
  • "notifications": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "customer": 0,
  • "drop": 0,
  • "active": true,
  • "pending": true,
  • "created": "2019-08-24T14:15:22Z",
  • "heavy": true,
  • "notifications": {
    },
  • "gratitude-total": 0,
  • "computed": {
    }
}

Returns a drop membership based on a single membership ID, if the user has access

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop membership to fetch.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "customer", "drop", and "gratitude-total".

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "customer": 0,
  • "drop": 0,
  • "active": true,
  • "pending": true,
  • "created": "2019-08-24T14:15:22Z",
  • "heavy": true,
  • "notifications": {
    },
  • "gratitude-total": 0,
  • "computed": {
    }
}

Update an existing drop membership if the user has the access

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop membership to update.

Request Body schema: application/json

Updated drop membership parameters.

active
required
boolean

Whether or not this membership is active.

customer
required
integer <int64>

Customer that has the drop membership.

drop
required
integer <int64>

The drop this membership is for.

heavy
boolean

Whether the member can get pallets, totes, barrels, and other heavy objects off a truck (defaults to false).

object (dropMembershipNotifications)

Configure if and how a user receives per-drop notifications.

pending
boolean

Whether the membership is pending (true) or accepted (false).

Responses

Request samples

Content type
application/json
{
  • "customer": 0,
  • "drop": 0,
  • "active": true,
  • "pending": true,
  • "heavy": true,
  • "notifications": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "customer": 0,
  • "drop": 0,
  • "active": true,
  • "pending": true,
  • "created": "2019-08-24T14:15:22Z",
  • "heavy": true,
  • "notifications": {
    },
  • "gratitude-total": 0,
  • "computed": {
    }
}

Delete an existing drop membership

Authorizations:
path Parameters
id
required
integer <int64>

ID of drop membership to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

file

Returns all files from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new file

Authorizations:
Request Body schema: application/json

File to add. The payload is the raw content, not a JSON object.

string

Responses

Request samples

Content type
application/json
"string"

Response samples

Content type
application/json
{
  • "id": "string"
}

Delete an existing file

Note: This may fail if there are any internal references to the file.

Authorizations:
path Parameters
id
required
string

ID of the file to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

pickup

Returns all pickups from the system that the user has access to

Authorizations:
query Parameters
active
boolean

Only return (in)active pickups.

limit
integer <int32>

Maximum number of results to return.

route
Array of strings

Route names to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

trip
Array of integers <int64>

Trip IDs to filter by.

vendor
Array of integers <int64>

Vendor IDs to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a pickup based on a single ID, if the user has access to the pickup

Authorizations:
path Parameters
id
required
integer <int64>

ID of pickup to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "vendors": [
    ],
  • "address": {
    },
  • "geo": {
    },
  • "active": true,
  • "notes": "string",
  • "timezone": "string"
}

route

Returns all routes from the system that the user has access to

Authorizations:
query Parameters
drop
Array of integers <int64>

Drop IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new route

Authorizations:
Request Body schema: application/json

Route to add.

cutoff-frequency
required
integer <int32>

Number of days between cutoffs.

delivery-offset
required
integer <int32>

Number of days after cutoff before the first stop.

driverName
required
string

Truck driver's name.

driverPhone
required
string

Truck driver's phone.

hub
required
boolean

A hub route is one that occurs after we ship an entire route to a distribution hub (such as a big loading dock in Kansas City). The route is unloaded at the hub and reloaded onto another carrier's truck for actual delivery.

In terms of Customer Care, it is a one-way route; the truck, trailer, and any shipped goods refused by a customer never return to the warehouse.

internal
required
boolean

Is the route for internal use? This controls whether customers can access the route via the API (they can't if this is true).

isActive
required
boolean
isDrivable
required
boolean

This is true for most routes. Routes that are not drivable are essentially ones that use the route construct in ways contrary to the intended purpose of a route (e.g. the "H" (parcel carrier) route, will-call routes, the "Glyphosate Free Living" route, etc).

name
required
string
notes
required
string

General notes about the route.

backhaul-cost-per-pickup
number <float>

Route backhaul cost per pickup.

backhaul-cost-per-pound
number <float>

Route backhaul cost per pound.

description
string
id
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "cutoff-frequency": 0,
  • "delivery-offset": 0,
  • "internal": true,
  • "backhaul-cost-per-pound": 0,
  • "backhaul-cost-per-pickup": 0,
  • "hub": true,
  • "driverName": "string",
  • "driverPhone": "string",
  • "notes": "string",
  • "isActive": true,
  • "isDrivable": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "cutoff-frequency": 0,
  • "delivery-offset": 0,
  • "internal": true,
  • "backhaul-cost-per-pound": 0,
  • "backhaul-cost-per-pickup": 0,
  • "hub": true,
  • "driverName": "string",
  • "driverPhone": "string",
  • "notes": "string",
  • "isActive": true,
  • "isDrivable": true
}

Returns a route based on a single ID, if the user has access to the route

Authorizations:
path Parameters
name
required
string

Name of route to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "cutoff-frequency": 0,
  • "delivery-offset": 0,
  • "internal": true,
  • "backhaul-cost-per-pound": 0,
  • "backhaul-cost-per-pickup": 0,
  • "hub": true,
  • "driverName": "string",
  • "driverPhone": "string",
  • "notes": "string",
  • "isActive": true,
  • "isDrivable": true
}

Update an existing route

Authorizations:
path Parameters
name
required
string

Name of route to update.

Request Body schema: application/json

Update route parameters.

cutoff-frequency
required
integer <int32>

Number of days between cutoffs.

delivery-offset
required
integer <int32>

Number of days after cutoff before the first stop.

internal
required
boolean

Is the route for internal use? This controls whether customers can access the route via the API (they can't if internal is true).

backhaul-cost-per-pickup
number <float>

Route backhaul cost per pickup.

backhaul-cost-per-pound
number <float>

Route backhaul cost per pound.

description
string
driverName
string

Truck drivers name.

driverPhone
string

Truck drivers phone.

hub
boolean

A hub route is a delivery route that occurs after we ship an entire route to a distribution hub (such as a big loading dock in Kansas City). The route is unloaded at the hub and reloaded onto another carrier's truck for actual delivery. In terms of Customer Care, It is a one-way route; the truck, trailer, and any shipped goods refused by a customer never return to the warehouse.

notes
string

General notes about the route.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "cutoff-frequency": 0,
  • "delivery-offset": 0,
  • "internal": true,
  • "backhaul-cost-per-pound": 0,
  • "backhaul-cost-per-pickup": 0,
  • "hub": true,
  • "driverName": "string",
  • "driverPhone": "string",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "cutoff-frequency": 0,
  • "delivery-offset": 0,
  • "internal": true,
  • "backhaul-cost-per-pound": 0,
  • "backhaul-cost-per-pickup": 0,
  • "hub": true,
  • "driverName": "string",
  • "driverPhone": "string",
  • "notes": "string",
  • "isActive": true,
  • "isDrivable": true
}

Delete an existing route

Authorizations:
path Parameters
name
required
string

Name of route to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

trip

Returns all trips from the system that the user has access to

Trips are ordered for decreasing cutoff time.

Authorizations:
query Parameters
confirmed
boolean

Only return (un)confirmed trips.

cutoff-after
string <date-time>

Only return trips with cutoffs after or on this date.

cutoff-before
string <date-time>

Only return trips with cutoffs before this date.

drop
Array of integers <int64>

Drop IDs to filter by.

inline
any

For convenience, include additional information. Currently supports "truckloads" as described in the trip model.

limit
integer <int32>

Maximum number of results to return.

route
Array of strings

Route names to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

stop
Array of integers <int64>

Stop IDs to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates a trip for a route, if the user has permissions

Authorizations:
Request Body schema: application/json

Trip to create.

cutoff
required
string <date-time>

Cutoff for placing orders on this trip.

delivery-start
required
string <date-time>

Estimated stop-time for the first stop.

route
required
string

Name of the followed route.

backhaul-end
string <date-time>

Estimated date-time for the last backhaul.

backhaul-start
string <date-time>

Estimated date-time for the first backhaul.

delivery-end
string <date-time>

Estimated stop-time for the last stop.

pick-date
string <date-time>

Date-time that orders for this trip should be picked.

warehouse-arrival
string <date-time>

Estimated date-time for warehouse arrival.

Responses

Request samples

Content type
application/json
{
  • "route": "string",
  • "cutoff": "2019-08-24T14:15:22Z",
  • "pick-date": "2019-08-24T14:15:22Z",
  • "delivery-start": "2019-08-24T14:15:22Z",
  • "delivery-end": "2019-08-24T14:15:22Z",
  • "backhaul-start": "2019-08-24T14:15:22Z",
  • "backhaul-end": "2019-08-24T14:15:22Z",
  • "warehouse-arrival": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "route": "string",
  • "cutoff": "2019-08-24T14:15:22Z",
  • "confirmed": "2019-08-24T14:15:22Z",
  • "pick-date": "2019-08-24T14:15:22Z",
  • "shipped": "2019-08-24T14:15:22Z",
  • "delivery-start": "2019-08-24T14:15:22Z",
  • "delivery-end": "2019-08-24T14:15:22Z",
  • "backhaul-start": "2019-08-24T14:15:22Z",
  • "backhaul-end": "2019-08-24T14:15:22Z",
  • "warehouse-arrival": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "status": "new",
  • "truckloads": [
    ]
}

Returns a trip based on a single ID, if the user has access to the trip

Authorizations:
path Parameters
id
required
integer <int64>

ID of trip to fetch.

query Parameters
inline
array

For convenience, include additional information. Currently supports "truckloads" as described in the trip model.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "route": "string",
  • "cutoff": "2019-08-24T14:15:22Z",
  • "confirmed": "2019-08-24T14:15:22Z",
  • "pick-date": "2019-08-24T14:15:22Z",
  • "shipped": "2019-08-24T14:15:22Z",
  • "delivery-start": "2019-08-24T14:15:22Z",
  • "delivery-end": "2019-08-24T14:15:22Z",
  • "backhaul-start": "2019-08-24T14:15:22Z",
  • "backhaul-end": "2019-08-24T14:15:22Z",
  • "warehouse-arrival": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "status": "new",
  • "truckloads": [
    ]
}

Updates a trip for a route, if the user has permissions

Authorizations:
path Parameters
id
required
integer <int64>

ID of trip to update.

Request Body schema: application/json

Trip to update.

cutoff
required
string <date-time>

Cutoff for placing orders on this trip.

delivery-start
required
string <date-time>

Estimated stop-time for the first stop.

route
required
string

Name of the followed route.

backhaul-end
string <date-time>

Estimated date-time for the last backhaul.

backhaul-start
string <date-time>

Estimated date-time for the first backhaul.

delivery-end
string <date-time>

Estimated stop-time for the last stop.

pick-date
string <date-time>

Date-time that orders for this trip should be picked.

warehouse-arrival
string <date-time>

Estimated date-time for warehouse arrival.

Responses

Request samples

Content type
application/json
{
  • "route": "string",
  • "cutoff": "2019-08-24T14:15:22Z",
  • "pick-date": "2019-08-24T14:15:22Z",
  • "delivery-start": "2019-08-24T14:15:22Z",
  • "delivery-end": "2019-08-24T14:15:22Z",
  • "backhaul-start": "2019-08-24T14:15:22Z",
  • "backhaul-end": "2019-08-24T14:15:22Z",
  • "warehouse-arrival": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "route": "string",
  • "cutoff": "2019-08-24T14:15:22Z",
  • "confirmed": "2019-08-24T14:15:22Z",
  • "pick-date": "2019-08-24T14:15:22Z",
  • "shipped": "2019-08-24T14:15:22Z",
  • "delivery-start": "2019-08-24T14:15:22Z",
  • "delivery-end": "2019-08-24T14:15:22Z",
  • "backhaul-start": "2019-08-24T14:15:22Z",
  • "backhaul-end": "2019-08-24T14:15:22Z",
  • "warehouse-arrival": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "status": "new",
  • "truckloads": [
    ]
}

Deletes a trip for a route, if the user has permissions

Authorizations:
path Parameters
id
required
integer <int64>

ID of trip to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

stop

Returns all stops from the system that the user has access to

Stops are ordered for decreasing target time.

Authorizations:
query Parameters
drop
Array of integers <int64>

Drop IDs to filter by.

estimatedDeliveryAfter
string <date-time>

Only return stops with an estimated time after or on this date.

estimatedDeliveryBefore
string <date-time>

Only return stops with an estimated time before this date.

inline
Array of strings
Items Enum: "drop" "pickup" "truckload" "truckDriver"

Optional properties returned if specified in the request.

limit
integer <int32>

Maximum number of results to return.

pickup
Array of integers <int64>

Pickup IDs to filter by.

route
Array of strings

Route names to filter by.

short-drop
boolean

Only return stops which have (not) had short-drop warnings sent.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

trip
Array of integers <int64>

Trip IDs names to filter by.

truckloadId
integer <int32>

Truckload (pickset) ID to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new stop on a trip

Authorizations:
query Parameters
persist
boolean

If true, calculate the offset between the trip's delivery start and this stop's estimated time. For any pre-cutoff trips associated with this stop's trip's route which cutoff later than this stop's trip, create a stop for this location (drop or pickup) if it does not already exist and update that stop's target and estimated times to have the same offset from that stop's trip's delivery start. Also create a route-stop association, if it does not already exist, for this location on this stop's trip's route and update that route-stop with the same delivery offset. API users should always pass persist=true if there are estimated delivery changes. For finalized and/or actual delivery changes, passing persist=true will not actually persist them but will slow down the response.

Request Body schema: application/json

Stop to add.

actualDeliveryBackdated
required
boolean

The actual delivery was manually set to a datetime in the past.

estimatedDelivery
required
string <date-time>

Editable until verification.

finalizedDelivery
required
string <date-time>

Editable between verification and delivery.

trip
required
integer <int64>

Trip ID for the stop.

actualDelivery
string <date-time>

When the stop is actually reached.

drop
integer <int64>

Drop ID for the stop.

pickup
integer <int64>

Pickup ID for the stop.

Responses

Request samples

Content type
application/json
{
  • "trip": 0,
  • "drop": 0,
  • "pickup": 0,
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "actualDeliveryBackdated": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "trip": 0,
  • "dropId": 0,
  • "short-drop": true,
  • "pickupId": 0,
  • "timezone": "string",
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "drop-shipping-fee": {
    },
  • "actualDeliveryBackdated": true,
  • "drop": {
    },
  • "pickup": {
    },
  • "truckload": {
    },
  • "truckDriver": {
    },
  • "finalizedDeliveryFlag": "driverWillCall"
}

Returns a stop based on a single ID, if the user has access to the stop

Authorizations:
path Parameters
id
required
integer <int64>

ID of stop to fetch.

query Parameters
inline
Array of strings
Items Enum: "drop" "pickup" "truckload" "truckDriver"

Optional properties returned if specified in the request.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "trip": 0,
  • "dropId": 0,
  • "short-drop": true,
  • "pickupId": 0,
  • "timezone": "string",
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "drop-shipping-fee": {
    },
  • "actualDeliveryBackdated": true,
  • "drop": {
    },
  • "pickup": {
    },
  • "truckload": {
    },
  • "truckDriver": {
    },
  • "finalizedDeliveryFlag": "driverWillCall"
}

Update an existing stop

Authorizations:
path Parameters
id
required
integer <int64>

ID of stop to update.

query Parameters
persist
boolean

This option is only relevant for estimated delivery changes on future trips. If true, calculate the offset between the trips's delivery start and this stop's estimated time. For any pre-cutoff trips associated with this stop's trip's route which cutoff later than this stop's trip, create a stop for this location (drop or pickup) if it does not already exist and update that stop's target and estimated times to have the same offset from that stops's trip's delivery start. Also create a route-stop association, if it does not already exist, for this location on this stop's trip's route and update that route-stop with the same delivery offset. If propagate is set, apply the persistance logic to the later stops on the trip as well. For finalized and/or actual delivery changes, passing persist=true will not actually persist them but will slow down the response.

propagate
boolean

If true, calculate the change from the existing estimated time. Shift the estimated time of all later stops on the trip by the same amount. For pre-cutoff trips, also shift the target times.

Request Body schema: application/json

Stop to update.

actualDeliveryBackdated
required
boolean

The actual delivery was manually set to a datetime in the past.

estimatedDelivery
required
string <date-time>

Editable until verification.

finalizedDelivery
required
string <date-time>

Editable between verification and delivery.

trip
required
integer <int64>

Trip ID for the stop.

actualDelivery
string <date-time>

When the stop is actually reached.

drop
integer <int64>

Drop ID for the stop.

pickup
integer <int64>

Pickup ID for the stop.

Responses

Request samples

Content type
application/json
{
  • "trip": 0,
  • "drop": 0,
  • "pickup": 0,
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "actualDeliveryBackdated": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "trip": 0,
  • "dropId": 0,
  • "short-drop": true,
  • "pickupId": 0,
  • "timezone": "string",
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "drop-shipping-fee": {
    },
  • "actualDeliveryBackdated": true,
  • "drop": {
    },
  • "pickup": {
    },
  • "truckload": {
    },
  • "truckDriver": {
    },
  • "finalizedDeliveryFlag": "driverWillCall"
}

Delete an existing stop

Authorizations:
path Parameters
id
required
integer <int64>

ID of stop to delete.

query Parameters
persist
boolean

If true, for any pre-cutoff trips associated with this stop's trip's route which cutoff later than this stop's trip, delete any stops for this location (drop or pickup). Also delete any route-stop associations for this location on this stop's trip's route.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Partially update an existing stop.

The stop to partially update.

Authorizations:
path Parameters
id
required
integer <int64>

ID of the stop to update.

query Parameters
persist
boolean

If true, calculate the offset between the trip's delivery start and this stop's estimated time. For any pre-cutoff trips associated with this stop's trip's route which cutoff later than this stop's trip, create a stop for this location (drop or pickup) if it does not already exist and update that stop's target and estimated times to have the same offset from that stops's trip's delivery start. Also create a route-stop association, if it does not already exist, for this location on this stop's trip's route and update that route-stop with the same delivery offset. If propagate is set, apply the persistence logic to the later stops on the trip as well. API users should always pass persist=true if there are estimated delivery changes. For finalized and/or actual delivery changes, passing persist=true will not actually persist them but will slow down the response.

Request Body schema: application/json
actualDelivery
string <date-time>

Set or update the stop's actual delivery datetime. The API only allows this before the deliveryEnd of the stop's trip.

actualDeliveryBackdated
boolean

Set or update whether the stop's actual delivery time was manually set to a datetime in the past.

estimatedDelivery
string <date-time>

Set or update the stop's estimated delivery datetime. This is editable until verification.

finalizedDelivery
string <date-time>

Set or update the stop's finalized delivery datetime. This is editable between verification and delivery.

truckloadId
integer <int64>

Update the stop's truckload (pickset) by passing the ID of the truckload to change it to. This works regardless of whether the stop is a pickup or a drop.

Responses

Request samples

Content type
application/json
{
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "actualDeliveryBackdated": true,
  • "truckloadId": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "trip": 0,
  • "dropId": 0,
  • "short-drop": true,
  • "pickupId": 0,
  • "timezone": "string",
  • "estimatedDelivery": "2019-08-24T14:15:22Z",
  • "finalizedDelivery": "2019-08-24T14:15:22Z",
  • "actualDelivery": "2019-08-24T14:15:22Z",
  • "drop-shipping-fee": {
    },
  • "actualDeliveryBackdated": true,
  • "drop": {
    },
  • "pickup": {
    },
  • "truckload": {
    },
  • "truckDriver": {
    },
  • "finalizedDeliveryFlag": "driverWillCall"
}

truckload

Returns all truckloads (picksets) from the system that the user has access to

Truckloads (picksets) are ordered by the associated trip's pick date and then truck number.

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a truckload (pickset) based on a single ID, if the user has access to it

Authorizations:
path Parameters
id
required
integer <int64>

ID of truckload (pickset) to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "truckNumber": 0,
  • "truckDriverId": 0
}

Updates a truckload (pickset), if the user has permissions

Authorizations:
path Parameters
id
required
integer <int64>

ID of truckload (pickset) to update.

Request Body schema: application/json

Truckload to update.

id
required
integer <int64>
truckDriverId
required
int64

Truck Driver id of truck.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "truckDriverId": null
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "truckNumber": 0,
  • "truckDriverId": 0
}

audit

Returns all products and their packaging from the system (for audit)

Authorizations:
query Parameters
audited
string

Filter for products that have or haven't been audited. When set, only products that contain (un)audited packaging are returned, and their packaging array only contains (un)audited packaging.

limit
integer <int32>

Maximum number of results to return.

packaged-product
string

Packaged-product codes to filter by.

search
string

Search string for filtering products. The logic behind this is left up to the implementation, but it should at least match words in the product name, and may optionally match the product description or other characteristics.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a product based on a single ID (for audit)

Authorizations:
path Parameters
id
required
string

ID of product to fetch.

query Parameters
audited
string

When set, the packaging array only contains (un)audited packaging.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "packaging": [
    ]
}

Audit an existing packaged-product

Authorizations:
path Parameters
id
required
integer <int64>

Id of packaged product being audited.

Request Body schema: application/json

Packaged product to update.

packs
required
string

The new dimensions of package sizes (e.g. "4", "4x32.5", or "2x4x32.5").

unit
required
string

The new unit of measurement. Ideally one of "", or "", but you can use another unit if none of those fit.

clear-audited
boolean

If true, clear the audited date-time for this packaged-product. If false (the default), set the audited date-time to the current time.

size
string

Override the auto-generated size (based on packs and unit) with a custom name. This can be useful for adding packaging information (e.g. "32 floz glass" to distinguish glass from plastic vinegar bottles).

Responses

Request samples

Content type
application/json
{
  • "packs": "string",
  • "unit": "string",
  • "size": "string",
  • "clear-audited": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "size": "string",
  • "packs": "string",
  • "unit": "string",
  • "audited": "string"
}

product

Returns all products from the system that the user has access to

Authorizations:
query Parameters
ancestor-category
Array of integers <int64>

Category IDs to filter by (for products associated with the categories or their descendants).

annotate-person
integer <int64>

Person ID for associating additional metadata with results (e.g. whether this person has favorited a given packaged-product). If unset and you're authenticated, defaults to your authenticated ID.

brand
Array of integers <int64>

Brand IDs to filter by.

category
Array of integers <int64>

Category IDs to filter by (for products directly associated with the categories).

filter-person
Array of integers <int64>

Person IDs to filter by (selects their favorite products).

gtin13
Array of integers <int64>

Packaged-product 13-digit Global Trade Item Numbers to filter by.

id
Array of integers <int64>

Product IDs to filter by.

inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports the local "description", "favorites", and "substitutions" as well as "brand", "packaging", "vendors", and descendants.

limit
integer <int32>

Maximum number of results to return.

packaged-product
Array of strings

Packaged product codes to filter by.

primary-category
Array of integers <int64>

Primary-category IDs to filter by (for products directly associated with the categories).

search
string

Search string for filtering products. The logic behind this is left up to the implementation, but it should at least match words in the product name, and may optionally match the product description or other characteristics.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

tag
Array of strings

Tags to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a product based on a single ID, if the user has access to the product

Authorizations:
path Parameters
id
required
string

ID of product to fetch.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports the local "description", "favorites", and "substitutions" as well as "brand", "packaging", "vendors", and descendants.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "slug": "string",
  • "treatAsActive": true,
  • "storageClimate": "dry",
  • "isShippableUps": true,
  • "maxStorageDays": 0,
  • "isOrganic": true,
  • "isGeneticallyModified": true,
  • "allergens": [
    ],
  • "seoName": "string",
  • "packaging": [
    ],
  • "brand": 0,
  • "keywords": "string",
  • "description": "string",
  • "shortDescription": "string",
  • "inactiveDescription": "string",
  • "directions": "string",
  • "ingredients": "string",
  • "nutritionFacts": {
    },
  • "substitutions": {
    },
  • "favorites": 0,
  • "vendors": [
    ],
  • "links": [
    ],
  • "countryOfOrigin": "string"
}

Returns aggregated information about packaged products ordered by the given customer within the last two years

Authorizations:
path Parameters
id
required
integer <int64>

The ID of the person whose ordered packaged products should be fetched.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

packaged-product

Returns all packaged products from the system that the user has access to

Authorizations:
query Parameters
ancestor-category
Array of integers <int64>

Category IDs to filter by (for packaged products associated with the categories or their descendants).

annotate-person
integer <int64>

Person ID for associating additional metadata with results (e.g. whether this person has favorited a given packaged-product). If unset and you're authenticated, defaults to your authenticated ID.

brand
Array of integers <int64>

Brand IDs to filter by.

category
Array of integers <int64>

Category IDs to filter by (for products directly associated with the categories).

code
Array of strings

Packaged product codes to filter by.

filter-person
Array of integers <int64>

Person IDs to filter by (selects their favorite packaged products).

gtin13
Array of integers <int64>

13-digit Global Trade Item Numbers to filter by.

inline
Array of strings
Items Enum: "favorites" "next-purchase-arrival" "quantity-on-next-purchase" "product" "vendors"

For convenience, include a full representation of the inlined property.

limit
integer <int32>

Maximum number of results to return.

primary-category
Array of integers <int64>

Primary-category IDs to filter by (for products directly associated with the categories).

product
Array of integers <int64>

Product IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

tag
Array of strings

Tags to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a packaged product based on a single ID, if the user has access to the packaged product

Authorizations:
path Parameters
code
required
string

Code of the packaged product to fetch.

query Parameters
inline
Array of strings
Items Enum: "favorites" "next-purchase-arrival" "quantity-on-next-purchase" "product" "vendors"

For convenience, include a full representation of the inlined property.

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "gtin13": "string",
  • "size": "string",
  • "packs": "string",
  • "unit": "string",
  • "weight": {
    },
  • "volume": 0,
  • "price": {
    },
  • "stock": 0,
  • "favorite": true,
  • "favorites": 0,
  • "tags": [
    ],
  • "bargain-bin-notes": "string",
  • "statusReason": "string",
  • "limitPerOrder": 0,
  • "servings-per-container": "string",
  • "product": 0,
  • "primary-category": 0,
  • "next-purchase-arrival": "2019-08-24T14:15:22Z",
  • "quantity-on-next-purchase": 0,
  • "images": [
    ],
  • "vendors": [
    ]
}

packaged-product-image

Returns all packaged product images from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

packaged-product
Array of strings

Packaged product codes to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a packaged product image

Authorizations:
Request Body schema: application/json

Packaged product image to add.

id
required
integer <int64>
image
required
string

File ID for the associated image.

packaged-product
required
string

Code for the associated packaged product.

order
integer <int32>

Ordering precedence among other entries associated with this packaged product. Defaults to zero.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "packaged-product": "string",
  • "image": "string",
  • "order": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "packaged-product": "string",
  • "image": "string",
  • "order": 0
}

Returns a packaged product image based on a single ID, if the user has access to that object

Authorizations:
path Parameters
id
required
string

ID of packaged product image to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "packaged-product": "string",
  • "image": "string",
  • "order": 0
}

Update a packaged product image

Authorizations:
path Parameters
id
required
integer <int64>

ID of packaged product image to update.

Request Body schema: application/json

Packaged product image to update.

id
required
integer <int64>
image
required
string

File ID for the associated image.

packaged-product
required
string

Code for the associated packaged product.

order
integer <int32>

Ordering precedence among other entries associated with this packaged product. Defaults to zero.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "packaged-product": "string",
  • "image": "string",
  • "order": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "packaged-product": "string",
  • "image": "string",
  • "order": 0
}

Delete a packaged product image

Authorizations:
path Parameters
id
required
integer <int64>

Packaged product image to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

packaged-product-tag

Returns all packaged product tags from the system that the user has access to

Authorizations:
query Parameters
category
Array of strings

Categories to filter by.

internal
boolean

If true, only return internal tags (that the user has access to). If false, only return public tags (regardless of the user's access to internal tags). If unset, don't filter based on the tag visibility.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Return packaged product tag filter preferences for a person

Authorizations:
query Parameters
filter-person
required
integer <int64>

Person ID to filter by.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a tag to a person's packaged product tag filter preferences

Authorizations:
Request Body schema: application/json

Packaged-product tag association to add.

id
required
integer <int64>
person
required
integer <int64>
tag
required
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "person": 0,
  • "tag": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "person": 0,
  • "tag": "string"
}

Delete a packaged product tag association from a person's filter preferences

Authorizations:
path Parameters
id
required
integer <int64>

Packaged product tag association ID to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

category

Returns all categories from the system, ordered by decreasing `featured` values

query Parameters
active
boolean

Only return (in)active categories.

inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports ancestors and depth.

limit
integer <int32>

Maximum number of results to return.

packaged-product
Array of strings

Packaged product codes to filter by.

parent
Array of integers <int64>

Category IDs to filter by.

product
Array of integers <int64>

Product IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new category

Authorizations:
Request Body schema: application/json

Category to create.

name
required
string

A phrase naming the category. This should be understandable (but not necessarily unique) without any further context. It must be unique for categories sharing a given parent.

active
boolean

Is this category active?.

description
string

A sentence or two with a stand-alone category description. When this is unset, the nearest ancestor description is a reasonable fallback.

featured
integer <int32>

Ordering precedence for likely customer interest. Defaults to zero.

image
string

A picture of this category. When set for a fetched category, the value will be a URL. When set for an uploaded category, file IDs and media URLs can be used interchangeably.

keywords
Array of strings
parent
integer <int64>

Category ID for the parent category.

primary
boolean

Is this a primary category?.

seo-name
string

An SEO-optimized name for the category. A lengthened version of the full name that includes additional keywords or rephrasing, suitable for use in a title tag. When this is unset, the name is a reasonable fallback.

short-name
string

A word or two naming the category. A shortened version of the full name that drops any words already contained in the category's ancestors' short names. This will be used in places where the ancestor short names are in close proximity (e.g. URL slugs) to avoid having the same word many times. When this is unset, the name is a reasonable fallback.

slug
string

A slug generated from the category short-name (or name if short-name is not defined).

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "short-name": "string",
  • "seo-name": "string",
  • "description": "string",
  • "image": "string",
  • "parent": 0,
  • "primary": true,
  • "active": true,
  • "keywords": [
    ],
  • "featured": 0,
  • "slug": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "short-name": "string",
  • "seo-name": "string",
  • "description": "string",
  • "image": "string",
  • "parent": 0,
  • "ancestors": [
    ],
  • "depth": 0,
  • "primary": true,
  • "active": true,
  • "keywords": [
    ],
  • "featured": 0,
  • "slug": "string"
}

Returns a category based on a single ID

path Parameters
id
required
integer <int64>

ID of category to fetch.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "ancestors" and "depth".

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "short-name": "string",
  • "seo-name": "string",
  • "description": "string",
  • "image": "string",
  • "parent": 0,
  • "ancestors": [
    ],
  • "depth": 0,
  • "primary": true,
  • "active": true,
  • "keywords": [
    ],
  • "featured": 0,
  • "slug": "string"
}

Update a category

Authorizations:
path Parameters
id
required
integer <int64>

ID of category to update.

Request Body schema: application/json

Category to update.

name
required
string

A phrase naming the category. This should be understandable (but not necessarily unique) without any further context. It must be unique for categories sharing a given parent.

active
boolean

Is this category active?.

description
string

A sentence or two with a stand-alone category description. When this is unset, the nearest ancestor description is a reasonable fallback.

featured
integer <int32>

Ordering precedence for likely customer interest. Defaults to zero.

image
string

A picture of this category. When set for a fetched category, the value will be a URL. When set for an uploaded category, file IDs and media URLs can be used interchangeably.

keywords
Array of strings
parent
integer <int64>

Category ID for the parent category.

primary
boolean

Is this a primary category?.

seo-name
string

An SEO-optimized name for the category. A lengthened version of the full name that includes additional keywords or rephrasing, suitable for use in a title tag. When this is unset, the name is a reasonable fallback.

short-name
string

A word or two naming the category. A shortened version of the full name that drops any words already contained in the category's ancestors' short names. This will be used in places where the ancestor short names are in close proximity (e.g. URL slugs) to avoid having the same word many times. When this is unset, the name is a reasonable fallback.

slug
string

A slug generated from the category short-name (or name if short-name is not defined).

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "short-name": "string",
  • "seo-name": "string",
  • "description": "string",
  • "image": "string",
  • "parent": 0,
  • "primary": true,
  • "active": true,
  • "keywords": [
    ],
  • "featured": 0,
  • "slug": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "short-name": "string",
  • "seo-name": "string",
  • "description": "string",
  • "image": "string",
  • "parent": 0,
  • "ancestors": [
    ],
  • "depth": 0,
  • "primary": true,
  • "active": true,
  • "keywords": [
    ],
  • "featured": 0,
  • "slug": "string"
}

purchase

Returns all purchases from the system that the user has access to

Purchases are ordered for increasing ID (creation time).

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

pickup
Array of integers <int64>

Pickup IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

status
Array of strings
Items Enum: "open" "submitted" "confirmed" "shipped" "delivered" "reconciled" "paid"

Purchase-status string to filter by.

trip
Array of integers <int64>

Trip IDs to filter by.

vendor
Array of integers <int64>

Vendor IDs to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a purchase based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of purchase to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "vendor": 0,
  • "status": "open",
  • "submitted": "2019-08-24T14:15:22Z",
  • "confirmed": "2019-08-24T14:15:22Z",
  • "delivered": "2019-08-24T14:15:22Z",
  • "reconciled": "2019-08-24T14:15:22Z",
  • "pickup": 0,
  • "trip": 0,
  • "notes": "string"
}

order

Get all orders

Only returns orders that the user has access to.

Authorizations:
query Parameters
drop
Array of integers <int64>

Drop IDs to filter by.

email
Array of strings <email>

Email addresses to filter by.

filter-person
Array of integers <int64>

Person IDs to filter by.

inline
Array of strings
Items Enum: "dropMembershipId" "customer"

Optional properties returned if specified in the request.

limit
integer <int32>

Maximum number of results to return.

packaged-product
Array of strings

Packaged product codes to filter by.

product
Array of integers <int64>

Product IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

status
Array of strings
Items Enum: "open" "placed" "confirmed" "shipped" "lost"

Order-status string to filter by.

trip
Array of integers <int64>

Trip IDs to filter by.

truckloadId
integer <int32>

Truckload (pickset) ID to filter by.

username
Array of strings

Usernames to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new order

Authorizations:
Request Body schema: application/json

Order to add.

customer
required
integer <int64>

Customer making the order.

status
required
string
Enum: "open" "placed" "shipped" "lost"

Order's lifecycle stage.

object (address)

An address following the convention of http://microformats.org/wiki/h-adr and https://tools.ietf.org/html/rfc6350#section-6.3.1, with an additional name property.

object (payment)

A payment instance where an amount will be (or has been) charged via a payment-method.

drop
integer <int64>

Drop the order is destined for (unset for parcel-carrier orders).

holdShipmentUntilStockAvailable
boolean

If true, the customer has requested to hold shipment of the order until all requested stock is available.

notes
string

Additional information about the order, including special instructions for Azure's pickers.

object (orderParcelCarrierServices)

Parcel carrier services selected for an order.

parcelCarrierShipByDate
string <date>

For parcel carrier orders, this is the date the order needs to ship by. Since we are using ISO format, the string can either be a date or datetime but it will be stored on the backend as a date.

perishable-shipping-warning-accepted
boolean

If true, the customer has accepted the warning regarding shipping perishable product.

trip
integer <int64>

Trip delivering the order (automatically populated for parcel-carrier orders).

Responses

Request samples

Content type
application/json
{
  • "customer": 0,
  • "status": "open",
  • "checkout-payment": {
    },
  • "drop": 0,
  • "trip": 0,
  • "address": {
    },
  • "parcel-carrier-services": {
    },
  • "perishable-shipping-warning-accepted": true,
  • "notes": "string",
  • "holdShipmentUntilStockAvailable": true,
  • "parcelCarrierShipByDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "customerId": 0,
  • "customer": {
    },
  • "dropMembershipId": 0,
  • "status": "open",
  • "placed": "2019-08-24T14:15:22Z",
  • "shipped": "2019-08-24T14:15:22Z",
  • "target-delivery": "2019-08-24T14:15:22Z",
  • "estimated-delivery": "2019-08-24T14:15:22Z",
  • "delivered": "2019-08-24T14:15:22Z",
  • "checkout-payment": {
    },
  • "rewards-allocation": 0,
  • "drop": 0,
  • "trip": 0,
  • "address": {
    },
  • "parcel-carrier-services": {
    },
  • "perishable-shipping-warning-accepted": true,
  • "cases-shipped": 0,
  • "casesShippedBreakdown": {
    },
  • "notes": "string",
  • "lastApiUpdate": "string",
  • "holdShipmentUntilStockAvailable": true,
  • "parcelCarrierShipByDate": "2019-08-24",
  • "computed": {
    }
}

Get single order by ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order to fetch.

query Parameters
accept
string

Override the HTTP Accept header to chose the response type. Empty and unrecognized values will result in application/json.

inline
Array of strings
Items Enum: "dropMembershipId" "customer"

Optional properties returned if specified in the request.

Responses

Response samples

Content type
{
  • "id": 0,
  • "customerId": 0,
  • "customer": {
    },
  • "dropMembershipId": 0,
  • "status": "open",
  • "placed": "2019-08-24T14:15:22Z",
  • "shipped": "2019-08-24T14:15:22Z",
  • "target-delivery": "2019-08-24T14:15:22Z",
  • "estimated-delivery": "2019-08-24T14:15:22Z",
  • "delivered": "2019-08-24T14:15:22Z",
  • "checkout-payment": {
    },
  • "rewards-allocation": 0,
  • "drop": 0,
  • "trip": 0,
  • "address": {
    },
  • "parcel-carrier-services": {
    },
  • "perishable-shipping-warning-accepted": true,
  • "cases-shipped": 0,
  • "casesShippedBreakdown": {
    },
  • "notes": "string",
  • "lastApiUpdate": "string",
  • "holdShipmentUntilStockAvailable": true,
  • "parcelCarrierShipByDate": "2019-08-24",
  • "computed": {
    }
}

Update an existing order

Authorizations:
path Parameters
id
required
integer <int64>

ID of order to update.

query Parameters
save
boolean

Whether to save the result of the PUT or not (defaults to true). Set to false if you want to preview the side-effects of a change before going through with an update.

Request Body schema: application/json

Updated order parameters (can optionally include 'id').

customer
required
integer <int64>

Customer making the order.

status
required
string
Enum: "open" "placed" "shipped" "lost"

Order's lifecycle stage.

object (address)

An address following the convention of http://microformats.org/wiki/h-adr and https://tools.ietf.org/html/rfc6350#section-6.3.1, with an additional name property.

object (payment)

A payment instance where an amount will be (or has been) charged via a payment-method.

drop
integer <int64>

Drop the order is destined for (unset for parcel-carrier orders).

holdShipmentUntilStockAvailable
boolean

If true, the customer has requested to hold shipment of the order until all requested stock is available.

notes
string

Additional information about the order, including special instructions for Azure's pickers.

object (orderParcelCarrierServices)

Parcel carrier services selected for an order.

parcelCarrierShipByDate
string <date>

For parcel carrier orders, this is the date the order needs to ship by. Since we are using ISO format, the string can either be a date or datetime but it will be stored on the backend as a date.

perishable-shipping-warning-accepted
boolean

If true, the customer has accepted the warning regarding shipping perishable product.

trip
integer <int64>

Trip delivering the order (automatically populated for parcel-carrier orders).

Responses

Request samples

Content type
application/json
{
  • "customer": 0,
  • "status": "open",
  • "checkout-payment": {
    },
  • "drop": 0,
  • "trip": 0,
  • "address": {
    },
  • "parcel-carrier-services": {
    },
  • "perishable-shipping-warning-accepted": true,
  • "notes": "string",
  • "holdShipmentUntilStockAvailable": true,
  • "parcelCarrierShipByDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "order": {
    },
  • "changes": [
    ]
}

Delete an existing order

Authorizations:
path Parameters
id
required
integer <int64>

ID of order to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Returns all order-lines from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

order
Array of integers <int64>

Order IDs to filter by.

packaged-product
Array of strings

Packaged product codes to filter by.

product
Array of integers <int64>

Product IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new order-line

Authorizations:
Request Body schema: application/json

Order-line to add.

order
required
integer <int64>

Order that the order-line belongs to.

quantity-ordered
required
integer <int32>

Number of product instances requested.

customerNote
string

A string of text concerning the customer to whom the order-line is associated.

internalNote
string

A string of text concerning the customer to whom the order-line is associated entered internally by a superuser.

name
string

Most order lines are for packaged products, but Azure sometimes bills for less concrete items like catalog ads. This field holds a brief description of the line, and should be used for invoices instead of following packaged-product (which may not be set).

packaged-product
string

Packaged product code that is being ordered.

Responses

Request samples

Content type
application/json
{
  • "order": 0,
  • "packaged-product": "string",
  • "name": "string",
  • "quantity-ordered": 0,
  • "customerNote": "string",
  • "internalNote": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "name": "string",
  • "quantity-ordered": 0,
  • "quantity-shipped": 0,
  • "weight": 0,
  • "volume": 0,
  • "price": 0,
  • "rewards": 0,
  • "warnings": [
    ],
  • "customerNote": "string",
  • "internalNote": "string"
}

Returns an order-line based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order-line to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "order": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "name": "string",
  • "quantity-ordered": 0,
  • "quantity-shipped": 0,
  • "weight": 0,
  • "volume": 0,
  • "price": 0,
  • "rewards": 0,
  • "warnings": [
    ],
  • "customerNote": "string",
  • "internalNote": "string"
}

Update an existing order-line

Authorizations:
path Parameters
id
required
integer <int64>

ID of order-line to update.

Request Body schema: application/json

Updated order-line parameters (can optionally include 'id').

order
required
integer <int64>

Order that the order-line belongs to.

quantity-ordered
required
integer <int32>

Number of product instances requested.

customerNote
string

A string of text concerning the customer to whom the order-line is associated.

internalNote
string

A string of text concerning the customer to whom the order-line is associated entered internally by a superuser.

name
string

Most order lines are for packaged products, but Azure sometimes bills for less concrete items like catalog ads. This field holds a brief description of the line, and should be used for invoices instead of following packaged-product (which may not be set).

packaged-product
string

Packaged product code that is being ordered.

Responses

Request samples

Content type
application/json
{
  • "order": 0,
  • "packaged-product": "string",
  • "name": "string",
  • "quantity-ordered": 0,
  • "customerNote": "string",
  • "internalNote": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "order": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "name": "string",
  • "quantity-ordered": 0,
  • "quantity-shipped": 0,
  • "weight": 0,
  • "volume": 0,
  • "price": 0,
  • "rewards": 0,
  • "warnings": [
    ],
  • "customerNote": "string",
  • "internalNote": "string"
}

Delete an existing order-line

Authorizations:
path Parameters
id
required
integer <int64>

ID of order-line to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Returns all order fees from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

order
Array of integers <int64>

Order IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns an order fee based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order fee to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "order": 0,
  • "type": "shipping",
  • "amount": 0,
  • "climate": "all",
  • "shipping-service": "UPS 2nd Day Air",
  • "notes": "string"
}

Returns all parcel carrier shipping options and their costs for an order ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order to retrieve parcel carrier options for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns all order promo codes from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

order
Array of integers <int64>

Order IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a promo code to an order

Adds a promo code to an order. Can also be used to replace an order's existing promo code.

Authorizations:
query Parameters
replace
boolean

Used for replacing the order's promo code with the one passed in the request.

Request Body schema: application/json

Order Promo Code to add.

code
required
string
orderId
required
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "orderId": 0,
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "code": "string",
  • "description": "string",
  • "orderId": 0,
  • "invalidReasonType": {
    },
  • "discountAmount": 0
}

Returns an order promo code based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order promo code.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "code": "string",
  • "description": "string",
  • "orderId": 0,
  • "invalidReasonType": {
    },
  • "discountAmount": 0
}

Delete a promo code from an order

Authorizations:
path Parameters
id
required
integer <int64>

ID of order promo code to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

parcel-carrier

Returns all parcel carrier shipping options and their costs for an order ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of order to retrieve parcel carrier options for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

vendor

Returns all vendors from the system that the user has access to

Vendors are ordered for increasing ID (creation time).

Authorizations:
query Parameters
active
boolean

Only return (in)active vendors.

buyer
Array of integers <int64>

Person IDs to filter by, selecting vendors that these Azure employees buy from.

limit
integer <int32>

Maximum number of results to return.

manager
Array of integers <int64>

Person IDs to filter by, selecting vendors that these vendor employees manage.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a vendor based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of vendor to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "url": "string",
  • "indie": true,
  • "account": "string"
}

account

Returns all dollar credits and debits from the system that the user has access to

Results are ordered by increasing settled dates, falling back to IDs when multiple entries settled on the same day.

Authorizations:
query Parameters
balance
boolean

Add the balance property to returned entries.

date-after
string <date>

Only return entries with dates after this date (inclusive).

date-before
string <date>

Only return entries with dates before this date (exclusive).

filter-person
Array of integers <int64>

Person IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

reason
Array of strings
Items Value: "affiliate-referral"

The reason slugs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a dollar credit or debit based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of account entry to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "person": 0,
  • "amount": 0,
  • "date": "2019-08-24",
  • "notes": "string",
  • "balance": 0
}

Returns all reward credits and debits from the system that the user has access to

Results are ordered by increasing settled times, falling back to ID for pending debits.

Authorizations:
query Parameters
date-after
string <date-time>

Only return entries with dates after this date (inclusive).

date-before
string <date-time>

Only return entries with dates before this date (exclusive).

filter-person
Array of integers <int64>

Person IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

order
Array of integers <int64>

Order IDs to filter by.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

status
Array of strings
Items Enum: "pending" "settled"

Reward status to filter by.

totals
boolean

Add the total-credit, total-debit, and total-pending properties to returned entries.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a reward credit or debit based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of reward to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "person": 0,
  • "amount": 0,
  • "type": "earned",
  • "settled": "2019-08-24T14:15:22Z",
  • "order": 0,
  • "account-entry": 0,
  • "total-credit": 0,
  • "total-debit": 0,
  • "total-pending": 0
}

payment

Create a new payment (settled immediately)

Authorizations:
Request Body schema: application/json

Payment to create. Amount and payment-method are both required.

payment-method
required
integer <int64>

Payment-method ID to use (or which was used).

amount
number <float>

Amount to charge (or which was charged) in dollars.

last-four
string

The last four digits of the credit card used. Only included if the payment type is Credit Card.

paid
boolean

Has the payment been charged?.

type
string

The type of payment used.

Responses

Request samples

Content type
application/json
{
  • "payment-method": 0,
  • "type": "string",
  • "last-four": "string",
  • "amount": 0,
  • "paid": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "person": 0,
  • "amount": 0,
  • "date": "2019-08-24",
  • "notes": "string",
  • "balance": 0
}

Returns all payment methods from the system that the user has access to

Methods associated with a person are ordered by decreasing preference. The ordering between methods associated with different people is undefined.

Authorizations:
query Parameters
active
boolean

Only return (in)active payment methods.

filter-person
Array of integers <int64>

Person IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new payment method

Authorizations:
Request Body schema: application/json

Payment method to add.

Any of
address
required
integer <int64>

Billing address associated with this credit card.

expiration
required
string <date>

Expiration date. We only use the month and year and ignore the day (which you should set to '01').

name
required
string

Billing name (which may differ from the associated person's name).

number
required
string

Card number.

person
required
integer <int64>

Person associated with this payment method.

security-code
required
string

Security code (also known as the verification value).

type
required
string
Value: "credit-card"

String identifying this payment method.

active
boolean

Whether or not this payment method is available for further activity. Defaults to true.

Responses

Request samples

Content type
application/json
{
  • "type": "credit-card",
  • "active": true,
  • "person": 0,
  • "name": "string",
  • "address": 0,
  • "number": "string",
  • "security-code": "string",
  • "expiration": "2019-08-24"
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "type": "credit-card",
  • "active": true,
  • "person": 0,
  • "name": "string",
  • "address": {
    },
  • "issuer": "string",
  • "last-four": "string",
  • "expiration": "2019-08-24"
}

Returns a payment method based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of payment method to fetch.

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "type": "credit-card",
  • "active": true,
  • "person": 0,
  • "name": "string",
  • "address": {
    },
  • "issuer": "string",
  • "last-four": "string",
  • "expiration": "2019-08-24"
}

Deactivates a payment method based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of payment method to deactivate.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

address

Returns all addresses from the system that the user has access to

Addresses associated with a person are ordered by decreasing preference. The ordering between addresses associated with different people or (for the same person) with the same preference value is undefined.

Authorizations:
query Parameters
filter-person
Array of integers <int64>

Person IDs to filter by.

inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "country", "person", and descendants.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new address

Authorizations:
query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "country", "person", and descendants.

Request Body schema: application/json

Address to add.

country
required
string

ISO 3166-1 alpha-3 code for the country. On push, you can set the alpha-2 code or case-insensitive name instead, or you can use an inline country object.

locality
required
string
extended-address
string
name
string

Contact name for this address (e.g. "Mr. John Q. Public, Esq.").

post-office-box
string
postal-code
string
preference
integer <int32>

Ordering precedence for the findAddresses. Defaults to zero.

region
string

Required for the United States and Canada, optional for other countries.

street-address
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "post-office-box": "string",
  • "extended-address": "string",
  • "street-address": "string",
  • "locality": "string",
  • "region": "string",
  • "postal-code": "string",
  • "country": "string",
  • "preference": 0
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "post-office-box": "string",
  • "extended-address": "string",
  • "street-address": "string",
  • "locality": "string",
  • "region": "string",
  • "postal-code": "string",
  • "country": "string",
  • "preference": 0
}

Returns a address based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of address to fetch.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "country", "person", and descendants.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "post-office-box": "string",
  • "extended-address": "string",
  • "street-address": "string",
  • "locality": "string",
  • "region": "string",
  • "postal-code": "string",
  • "country": "string",
  • "preference": 0
}

Update an existing address

Authorizations:
path Parameters
id
required
integer <int64>

ID of address to update.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "country", "person", and descendants.

Request Body schema: application/json

Address to update.

country
required
string

ISO 3166-1 alpha-3 code for the country. On push, you can set the alpha-2 code or case-insensitive name instead, or you can use an inline country object.

locality
required
string
extended-address
string
name
string

Contact name for this address (e.g. "Mr. John Q. Public, Esq.").

post-office-box
string
postal-code
string
preference
integer <int32>

Ordering precedence for the findAddresses. Defaults to zero.

region
string

Required for the United States and Canada, optional for other countries.

street-address
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "post-office-box": "string",
  • "extended-address": "string",
  • "street-address": "string",
  • "locality": "string",
  • "region": "string",
  • "postal-code": "string",
  • "country": "string",
  • "preference": 0
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "post-office-box": "string",
  • "extended-address": "string",
  • "street-address": "string",
  • "locality": "string",
  • "region": "string",
  • "postal-code": "string",
  • "country": "string",
  • "preference": 0
}

Delete an existing address

Authorizations:
path Parameters
id
required
integer <int64>

ID of address to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

country

Returns all countries from the system

Countries that are allowed to be used with addresses, ordered by name.

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

region

Returns all country regions from the system

Regions that are allowed to be used with addresses in the United States and Canada, ordered alphabetically. Other countries may use any string values for their regions.

Authorizations:
query Parameters
country
string

Country to filter by.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

email

Returns all emails from the system that the user has access to.

Emails associated with a person are ordered by decreasing preference. The ordering between emails associated with different people or (for the same person) with the same preference value is undefined.

Authorizations:
query Parameters
filter-person
Array of integers <int64>

Person IDs to filter by.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new email

Authorizations:
Request Body schema: application/json

Email to add.

required
object (email)

An email address.

user-password
string

The authenticated person's password. Required for users with a usable password.

Responses

Request samples

Content type
application/json
{
  • "email": {
    },
  • "user-password": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "address": "user@example.com",
  • "person": 0,
  • "error": "string",
  • "preference": 0
}

Returns a email based on a single ID

Authorizations:
path Parameters
id
required
integer <int64>

ID of email to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "address": "user@example.com",
  • "person": 0,
  • "error": "string",
  • "preference": 0
}

Update an existing email

Authorizations:
path Parameters
id
required
integer <int64>

ID of email to update.

Request Body schema: application/json

Email to update.

required
object (email)

An email address.

user-password
string

The authenticated person's password. Required for users with a usable password.

Responses

Request samples

Content type
application/json
{
  • "email": {
    },
  • "user-password": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "address": "user@example.com",
  • "person": 0,
  • "error": "string",
  • "preference": 0
}

Delete an existing email

Authorizations:
path Parameters
id
required
integer <int64>

ID of email to delete.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

person

Returns all people from the system that the user has access to

Authorizations:
query Parameters
customerType
Array of strings

Customer types of the customers.

drop
Array of integers <int64>

Drop IDs to filter by.

inline
Array of strings

For convenience, include additional information. Currently supports "email" as described in the email model, "order-place-issue", and "is-drop-coordinator".

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns an affiliate code based on a marketing slug (no authorization required)

Authorizations:
path Parameters
marketing-slug
required
string

Marketing slug of affiliate code to fetch.

Responses

Response samples

Content type
application/json
{
  • "marketing-slug": "string",
  • "affiliate-code": "string"
}

Returns a person based on a single ID, if the user has access to the person

Authorizations:
path Parameters
id
required
integer <int64>

ID of person to fetch.

query Parameters
inline
Array of strings

For convenience, include additional information. Currently supports "email" as described in the email model, "order-place-issue", and "is-drop-coordinator".

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "password-usable": true,
  • "email": "user@example.com",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "price-level": "retail",
  • "rewards-rate": 0,
  • "notifications": {
    },
  • "permissions": [
    ],
  • "order-place-issue": "outstanding-balance-contact",
  • "internal-notes": "string",
  • "affiliate-code": "string",
  • "affiliate-username": "user@example.com",
  • "is-allowed-to-be-affiliate": true,
  • "affiliate-campaign": "lead",
  • "marketing-slug": "string",
  • "recency": 1,
  • "frequency": 1,
  • "monetary": 1,
  • "first-order-placed": "2019-08-24T14:15:22Z",
  • "last-order-placed": "2019-08-24T14:15:22Z",
  • "is-drop-coordinator": true,
  • "hasCreditCardTerms": true
}

Update an existing person

Authorizations:
path Parameters
id
required
integer <int64>

ID of person to update.

Request Body schema: application/json

Person to update.

allow-social-media
boolean

Does this person want social media links to display.

can-email
boolean

Can Azure contact this person for reasons other than registration.

company
string

Employer name.

name
string
object (personNotifications)

Configure if and how a user receives per-user notifications.

password
string

Password for authentication.

sale-magazine
boolean

Subscribed to receive the sale magazine.

user-password
string

The authenticated person's password. Required when changing password for users with a usable password.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "password": "string",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "user-password": "string",
  • "notifications": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "password-usable": true,
  • "email": "user@example.com",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "price-level": "retail",
  • "rewards-rate": 0,
  • "notifications": {
    },
  • "permissions": [
    ],
  • "order-place-issue": "outstanding-balance-contact",
  • "internal-notes": "string",
  • "affiliate-code": "string",
  • "affiliate-username": "user@example.com",
  • "is-allowed-to-be-affiliate": true,
  • "affiliate-campaign": "lead",
  • "marketing-slug": "string",
  • "recency": 1,
  • "frequency": 1,
  • "monetary": 1,
  • "first-order-placed": "2019-08-24T14:15:22Z",
  • "last-order-placed": "2019-08-24T14:15:22Z",
  • "is-drop-coordinator": true,
  • "hasCreditCardTerms": true
}

Returns the authenticated person (yourself)

Authorizations:
query Parameters
inline
Array of strings

For convenience, include additional information. Currently supports "email" as described in the email model and "order-place-issue".

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "password-usable": true,
  • "email": "user@example.com",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "price-level": "retail",
  • "rewards-rate": 0,
  • "notifications": {
    },
  • "permissions": [
    ],
  • "order-place-issue": "outstanding-balance-contact",
  • "internal-notes": "string",
  • "affiliate-code": "string",
  • "affiliate-username": "user@example.com",
  • "is-allowed-to-be-affiliate": true,
  • "affiliate-campaign": "lead",
  • "marketing-slug": "string",
  • "recency": 1,
  • "frequency": 1,
  • "monetary": 1,
  • "first-order-placed": "2019-08-24T14:15:22Z",
  • "last-order-placed": "2019-08-24T14:15:22Z",
  • "is-drop-coordinator": true,
  • "hasCreditCardTerms": true
}

Update the authenticated person (yourself)

Authorizations:
Request Body schema: application/json

Person to update.

allow-social-media
boolean

Does this person want social media links to display.

can-email
boolean

Can Azure contact this person for reasons other than registration.

company
string

Employer name.

name
string
object (personNotifications)

Configure if and how a user receives per-user notifications.

password
string

Password for authentication.

sale-magazine
boolean

Subscribed to receive the sale magazine.

user-password
string

The authenticated person's password. Required when changing password for users with a usable password.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "password": "string",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "user-password": "string",
  • "notifications": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "password-usable": true,
  • "email": "user@example.com",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "price-level": "retail",
  • "rewards-rate": 0,
  • "notifications": {
    },
  • "permissions": [
    ],
  • "order-place-issue": "outstanding-balance-contact",
  • "internal-notes": "string",
  • "affiliate-code": "string",
  • "affiliate-username": "user@example.com",
  • "is-allowed-to-be-affiliate": true,
  • "affiliate-campaign": "lead",
  • "marketing-slug": "string",
  • "recency": 1,
  • "frequency": 1,
  • "monetary": 1,
  • "first-order-placed": "2019-08-24T14:15:22Z",
  • "last-order-placed": "2019-08-24T14:15:22Z",
  • "is-drop-coordinator": true,
  • "hasCreditCardTerms": true
}

Returns aggregated information about packaged products ordered by the given customer within the last two years

Authorizations:
path Parameters
id
required
integer <int64>

The ID of the person whose ordered packaged products should be fetched.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

session

Returns information about the current cookie-based session

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "person": 0,
  • "expires": "2019-08-24T14:15:22Z"
}

Authenticate and receive a session cookie

Authorizations:
Request Body schema: application/json
One of
password
required
string

Password for authentication.

username
required
string

Username for authentication. Instead of your username, you could also use your primary email address or your person ID here.

Responses

Request samples

Content type
application/json
Example
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "person": 0,
  • "expires": "2019-08-24T14:15:22Z"
}

Clears the current cookie-based session

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "person": 0,
  • "expires": "2019-08-24T14:15:22Z"
}

registration

Register a new person

When the user provides an email address, check for existing accounts which use that email address.

  • If an inactive account using the email address is found, send an inactive-member email pointing the user at customer service. Do not authenticate the user.

  • If an active account using the email address is found, send an active-member email with an authenticating URL with an authentication token. Following that URL will (possibly indirectly) send the token to this API's login endpoint to authenticate the bearer.

  • If no account using that email address is found, create a new account and immediately authenticate the user. If they provided an email address or SMS number, potentially send a welcome-aboard notification.

Authorizations:
query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "session.person" and descendants.

Request Body schema: application/json
authentication-base-url
required
string <url>

Redirect URL for the authentication UI. The authentication notification points customers at {authentication-base-url}{authentication-token} to authenticate a new session.

email
required
string <email>

The registrant's primary email address. Will have a preference level of 100.

required
object (updatePerson)

A person (customer, vendor, employee, ..).

object (address)

An address following the convention of http://microformats.org/wiki/h-adr and https://tools.ietf.org/html/rfc6350#section-6.3.1, with an additional name property.

catalog
boolean

Set to true to receive the catalog after registration.

context
string (registrationContext)
Enum: "registration" "checkout" "catalog-request"

The context in which the registration request is being made (to select between available notification templates). Defaults to "registration".

drop
integer <int64>

The registrant's chosen drop.

object (postAffiliatePro)

Business logic around the affiliate program is handled by Beehive. If Beehive determines the referrer is due credit then this information is passed on to Post Affiliate Pro as a sale.

Array of objects (telephone)

The registrant's telephone numbers (currently only supports 'voice' and 'text' types).

Responses

Request samples

Content type
application/json
{
  • "person": {
    },
  • "catalog": true,
  • "address": {
    },
  • "email": "user@example.com",
  • "telephone": [
    ],
  • "drop": 0,
  • "context": "registration",
  • "authentication-base-url": "string",
  • "post-affiliate-pro": {
    }
}

Response samples

Content type
application/json
{
  • "session": {
    },
  • "auth-token": "string",
  • "resend-token": "string"
}

Resend the registration notification to the user

Authorizations:
Request Body schema: application/json
authentication-base-url
required
string <url>

Redirect URL for the authentication UI. The authentication notification points customers at {authentication-base-url}{authentication-token} to authenticate a new session.

token
required
string

The registrant's resend token.

context
string (registrationContext)
Enum: "registration" "checkout" "catalog-request"

The context in which the registration request is being made (to select between available notification templates). Defaults to "registration".

Responses

Request samples

Content type
application/json
{
  • "context": "registration",
  • "authentication-base-url": "string",
  • "token": "string"
}

Response samples

Content type
application/json
null

password

Initiate a password reset, to be completed by a call to /password/confirm

Authorizations:
Request Body schema: application/json
base-url
required
string <url>

Redirect URL for the password reset UI. The password reset email points customers at {base-url}{confirmation-token} to confirm their password reset.

email
required
string

The email address for the person whose password will be reset. Instead of the email address, you may also use your username or person ID here.

Responses

Request samples

Content type
application/json
{
  • "base-url": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Complete an in-progress password reset

Authorizations:
Request Body schema: application/json

The registrant's confirmation token.

password
required
string

The new password.

token
required
string

The password-reset confirmation token.

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "password-usable": true,
  • "email": "user@example.com",
  • "can-email": true,
  • "sale-magazine": true,
  • "company": "string",
  • "allow-social-media": true,
  • "price-level": "retail",
  • "rewards-rate": 0,
  • "notifications": {
    },
  • "permissions": [
    ],
  • "order-place-issue": "outstanding-balance-contact",
  • "internal-notes": "string",
  • "affiliate-code": "string",
  • "affiliate-username": "user@example.com",
  • "is-allowed-to-be-affiliate": true,
  • "affiliate-campaign": "lead",
  • "marketing-slug": "string",
  • "recency": 1,
  • "frequency": 1,
  • "monetary": 1,
  • "first-order-placed": "2019-08-24T14:15:22Z",
  • "last-order-placed": "2019-08-24T14:15:22Z",
  • "is-drop-coordinator": true,
  • "hasCreditCardTerms": true
}

notification

Returns all notifications from the system that the user has access to

Authorizations:
query Parameters
active
boolean

Only return (in)active notifications.

annotate-person
integer <int64>

Add a boolean dismissed field to the results with whether or not the annotate-person has dismissed this notification, required with dismissed.

dismissed
boolean

Only return notifications that are (not) dismissed by the annotate-person.

filter-person
Array of integers <int64>

Person IDs to filter by.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a notification dismissal (a user may only dismiss notifications for himself)

Authorizations:
Request Body schema: application/json

Notification dismissal to add.

notification
required
integer <int64>
person
required
integer <int64>
id
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "notification": 0,
  • "person": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "notification": 0,
  • "person": 0
}

favorite

Returns a list of all customer's packaged product favorites

Authorizations:
query Parameters
active
boolean

Only return favorites associated with (in)active packaged products. For example, we sometimes discontinue products and then pick them back up later. In this context, "active" means "for sale to at least some customers".

filter-person
Array of integers <int64>

Person IDs to filter by.

inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "packaged-product" and descendants.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Creates and returns a customer favorite

Authorizations:
Request Body schema: application/json

Favorite to create.

customer
required
integer <int64>
packaged-product
required
string
quantity
required
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "quantity": 0,
  • "packaged-product": "string",
  • "customer": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "quantity": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "customer": 0
}

Returns a single customer favorite

Authorizations:
path Parameters
id
required
integer <int64>

ID of favorite to fetch.

query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "packaged-product" and descendants.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "quantity": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "customer": 0
}

Updates and returns a customer favorite

Authorizations:
path Parameters
id
required
integer <int64>

ID of favorite to update.

Request Body schema: application/json

Favorite to update.

customer
required
integer <int64>
packaged-product
required
string
quantity
required
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "quantity": 0,
  • "packaged-product": "string",
  • "customer": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "quantity": 0,
  • "packaged-product": "string",
  • "product": 0,
  • "customer": 0
}

Deletes a customer favorite

Authorizations:
path Parameters
id
required
integer <int64>

ID of favorite to update.

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

printer

Returns all printers from the system that the user has access to

Authorizations:
query Parameters
delivery
Array of strings
Items Enum: "http" "cups" "bartender"

Printer delivery method.

format
Array of strings
Items Enum: "pdf" "epl2" "bartender"

Printer format.

limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a printer based on a single ID, if the user has access to it

Authorizations:
path Parameters
id
required
integer <int32>

ID of printer to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "delivery": "http",
  • "format": "pdf",
  • "warehouse": "string"
}

warehouse

Returns all warehouses from the system that the user has access to

Authorizations:
query Parameters
limit
integer <int32>

Maximum number of results to return.

start
integer <int32>

Offset to the first result to return. Use negative numbers to offset from the end of the result list.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Returns a warehouse based on a single code, if the user has access to it

Authorizations:
path Parameters
code
required
string

Code of warehouse to fetch.

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "name": "string"
}

Returns location data for the requesting ip address

Authorizations:
query Parameters
inline
Array of strings

For convenience, include a full representation of the inlined property. Currently supports "address.country".

Responses

Response samples

Content type
application/json
{
  • "address": {
    },
  • "geo": {
    }
}

Get a customer order frequency

Returns 'active' if the customer has ordered within the last 120 days, 'activeag' (for "active aging") if they've ordered before but not within 120 days, activereg if they've never ordered. If no customer exists, returns new.

Authorizations:
query Parameters
email
required
string

Email of the person to look up.

Responses

Response samples

Content type
application/json
{
  • "email": "string",
  • "orderFrequencySegment": "new"
}

Move drop(s) to a different route

Move one or more drops from one route to another.

Authorizations:
Request Body schema: application/json
dropIds
Array of integers

The IDs of drops to be moved.

sourceRouteId
integer

The ID of the route that the drop(s) are currently on.

targetRouteId
integer

The ID of the route that the drop(s) should be moved to.

Request samples

Content type
application/json
{
  • "sourceRouteId": 0,
  • "targetRouteId": 0,
  • "dropIds": [
    ]
}

Email drops on a trip

Sends one or more emails to the drop coordinators (and customers, optionally) of one or more drops on a specific trip.

Notes:

  • This requires that the trip not have a status of future.
Authorizations:
path Parameters
tripId
required
string
query Parameters
customers
boolean

By default, an email is sent to the coordinator(s) of each drop. If this is true, the email is also sent to the customers of each drop.

drop
Array of int

The dropIds of the drops that should receive the email.

message
string

The email's content.

subject
string

The email's subject.

target
string

The email addresses to send the test message to (for previewing). Including this parameter will prevent the email from being sent to the intended recipients (its intended use is for sending previews).

Responses

Email drops on a route

Sends one or more emails to the drop coordinators (and members, optionally) of one or more drops on a specific route.

Authorizations:
path Parameters
routeName
required
string
query Parameters
customers
boolean

By default, an email is sent to the coordinator(s) of each drop. If this is true, the email is also sent to the customers of each drop.

drop
Array of int

The dropIds of the drops that should receive the email.

message
string

The email's content.

subject
string

The email's subject.

target
string

The email addresses to send the test message to (for previewing). Including this parameter will prevent the email from being sent to the intended recipients (its intended use is for sending previews).

Responses