All requests require a valid API token.
Include your token in your request headers, as Authorization: Bearer {token}
(without the curly braces).
The account owner can generate API tokens from within the Goflow web app, by visiting Settings › API Tokens.
While browsing the documentation, you may see some endpoints marked as beta. These endpoints are available for you to test, but their exact details are still in flux, and may change at any time.
To access a beta endpoint, you must explicitly opt in by including a contact email address as an X-Beta-Contact
header:
X-Beta-Contact: contact@mydomain.com
We'll use this email address to contact you in case there are any changes to these beta endpoints that may affect your code.
Your privacy is of utmost importance to us. Your email address will never be shared with anyone outside of Goflow, and we will never send you anything that is not related to the API.
Our REST API endpoints are organized by resource type. You'll need to use different endpoints depending on your app's requirements.
All REST API endpoints follow this pattern:
https://{your_subdomain}.api.goflow.com/v1/{resource}
This subdomain is the same as the one used to access the general Goflow portal. For example, if you generally access Goflow at:
https://companyname.goflow.com
...then you would access the API at:
https://companyname.api.goflow.com/v1/{resource}
The API uses ISO 8601 for all dates. All dates returned from the API have both the date and time set, and are always in UTC. For example:
2025-01-31T18:30:20Z
We recommend that you follow the same pattern when sending dates to the API. For example, to filter a list of orders for a given date:
/orders?filters[date:gte]=2025-01-01T00:00:00Z&filters[date:lt]=2025-01-02T00:00:00Z
...will return all orders whose date
is January 1st 2025 in UTC, regardless of the time.
If you need to filter based on a different timezone, we recommend doing the timezone conversion on your end, before passing it to the API filters. For example, to apply the above filter based on EST, convert the start and end of the day from EST to UTC:
/orders?filters[date:gte]=2024-12-31T19:00:00Z&filters[date:lt]=2025-01-01T19:00:00Z
...will return all orders whose date
is January 1st 2025 in EST, regardless of the time.
Many list endpoints, which are accessed via a GET request to the root of the resource (such as /orders
), include support for passing along filters to narrow down the results. This section describes how filters work in general. Refer to the documentation for each resource to see the available filters for each specific endpoint.
The filters
query - All filters should be passed in via the filters
query parameter. For example:
/orders?filters[status]=shipped
...will only return orders whose status
is shipped
.
Multiple filters - To use multiple filters, you may set multiple fields on the filters
key. For example:
/orders?filters[status]=shipped&filters[invoice_number]=123
...will return orders whose status
is shipped
, but only if its invoice_number
is also 123
.
Multiple values - To filter for multiple values in the same field, you may set the same field multiple times to a different value. For example:
/orders?filters[status]=shipped&filters[status]=ready_for_pickup
...will return orders whose status
is either shipped
or ready_for_pickup
.
Nested fields - To filter based on a nested field, you can use "dot notation" as the key. For example:
/orders?filters[store.id]=123
...will return orders whose store ID is 123
.
Operators - In addition to regular key/value filters, many fields also support supplying an operator for the filter. For example:
/orders?filters[status:not]=shipped
...will only return orders whose status
is not shipped
.
To filter based on whether a given field is set or not, without checking for a specific value, use the special boolean exists
operator. For example:
/orders?filters[invoice_number:exists]=false
As you can see, operators are supplied as part of the key, separated from the field by a :
(colon). Here is a list of operators and their meaning:
Operator | Meaning |
---|---|
eq |
Equals (Default) |
not |
Not equals |
exists |
Exists |
gt |
Greater than |
lt |
Less than |
gte |
Greater than or equal to |
lte |
Less than or equal to |
For additional examples of operator usage, review the section on dates.
Support for these operators varies by endpoint and field type. As mentioned, refer to the documentation of each endpoint to see the list of supported filters and operators.
All list pages, which are accessed via a GET request to the root of the resource (such as /orders
), return their data as paginated chunks. The basic schema for the response is:
{
"data": [/* ... */],
"next": string|null
}
The actual chunk of records is returned in an array under the data
property. If there are more records after the current chunk, the next
property will contain a URL from which to fetch the next chunk. If this is the last chunk in the set, the next
property will be null
.
Some endpoints, such as PATCH requests, support partial updates. For these endpoints, you may completely omit any fields you do not intend to update.
For example, to update the tracking number of a shipment box, submit this JSON body as a PATCH request to the edit shipment box endpoint:
{
"tracking_number": "9274890388405702033589"
}
...and only the tracking_number
field will be updated. All other fields, such as cost
, weight
and dimensions
will remain unchanged.
Note: omitting a field is not the same as passing it as
null
. Omitting a field ignores that field entirely, whereas setting it tonull
will actually set the field tonull
in Goflow (or return a validation error, where applicable).
Some resources in the API support bulk actions using feeds, which let you post multiple API requests within a single HTTP request. For example, using the orders/shipments/feeds
endpoint, you may submit a whole list of order shipment requests at once.
Unlike other endpoints, the actions in a feed are processed asynchronously. The response will include a location
property, which contains the endpoint for this feed:
HTTP/1.1 202 Accepted
{
"id": 123,
"location": "https://domain.com/v1/orders/shipments/feeds/123"
}
Once all requests have been processed, the feed's endpoint will return the responses for each request, respectively:
HTTP/1.1 207 Multi-Status
{
"status": "pending" | "done"
"responses": null | [
{
"index": 0,
"status_code": 201|422, /* Or any other status code */
"request": { /* The original request */ },
"error": null | string
}
]
}
Note: For some feeds where there would be no details in the successful response, such as the Vendor Products feed, the
responses
array may only contain error responses, if any.
If the feed's status
is still pending
, then responses
will be null
. Once the feed is done
processing, the responses
will hold a list of responses, one for each request.
Expiry Note: Feed results are kept by Goflow for 12 hours after the feed is done processing. After that timeframe, the endpoint will return a 404.
Every endpoint in the API is rate limited, to prevent abuse and keep the API available to all users.
All REST API responses include X-Rate-Limit
headers, which show how many requests the client has made, and the total number allowed per minute.
When the limit has been exceeded, a 429
HTTP response code will be returned. It will also include a Retry-After
header with the number of seconds to wait until retrying your request.
The client doesn't have correct authentication credentials.
The client doesn't have the correct permissions for the given endpoint.
The requested resource was not found.
The request conflicts with another process. You may try the same request again.
The request body contains semantic errors, or doesn't pass validation. This is typically caused by incorrect formatting, omitting required fields, or logical errors such as attempting to ship an order that's already shipped.
HTTP/1.1 422 Unprocessable Entity
{
"message": "The given data is invalid",
"errors": [
"name": [
"Name required"
]
]
}
The client has exceeded the rate limit.
HTTP/1.1 429 Too Many Requests
{
"message": "API rate limit exceeded. See the rate-limiting section in our API documentation.",
"retry_after_seconds": 7.8832487
}
The Goflow API is temporarily unavailable, for scheduled maintenance.
An internal error occurred in Goflow.
The orders resource represents sales orders. Orders are generally imported directly from the channels, but may have also been entered manually, or uploaded from a file. No matter the source, Goflow standardizes the orders so they all look the same.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||||||||||||||||||||
sort | string Enum: id order_number date status_updated_at external_transactions.store_shipment_notification.sent_at … 2 more The field by which to sort the results. | ||||||||||||||||||||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_confirmation",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "source": "channel",
- "store": {
- "id": 0,
- "name": "string",
- "channel": "academy_sports"
}, - "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "cogs"
}
], - "consumer_financials": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "children": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": null,
- "exchange_rate": null
}, - "type": "cogs"
}
]
}
], - "customization": {
- "text": "string",
- "data": [
- {
- "group": "string",
- "key": "string",
- "value": "string"
}
]
}
}
], - "shipping_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "billing_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "notes": [
- {
- "created_by": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string",
- "is_private": true,
- "is_packing_instructions": true
}
], - "pick_list_number": 0,
- "invoice_number": "string",
- "purchase_order_number": "string",
- "is_gift": true,
- "is_pii_removed": true,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "shipped_at": "2019-08-24T14:15:22Z",
- "boxes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 0
}
]
}
]
}, - "ship_dates": {
- "earliest_ship": "2019-08-24T14:15:22Z",
- "latest_ship": "2019-08-24T14:15:22Z",
- "earliest_delivery": "2019-08-24T14:15:22Z",
- "latest_delivery": "2019-08-24T14:15:22Z",
- "store_provided_latest_ship": "2019-08-24T14:15:22Z",
- "store_provided_latest_delivery": "2019-08-24T14:15:22Z"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "gift_wrap"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "payment_fee"
}
], - "original_order_id": 0,
- "external_transactions": {
- "store_shipment_notification": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "store_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "accounting_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}
}, - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}
}
], - "next": "string"
}
required | object The order to create. |
object or null Miscellaneous options for the order. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "order": {
- "order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "store": {
- "id": 0
}, - "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "currency": {
- "code": "afn",
- "exchange_rate": 0
}, - "lines": [
- {
- "product": {
- "id": 0
}, - "listing": {
- "sku": "string"
}, - "quantity": {
- "amount": 1,
- "measure": {
- "abbreviation": "string"
}
}, - "charges": [
- {
- "type": "price",
- "amount": -10000000
}
], - "taxes": [
- {
- "type": "price",
- "amount": 10000000
}
], - "costs": [
- {
- "type": "commission",
- "amount": 10000000
}
], - "consumer_financials": [
- {
- "type": "price",
- "amount": -10000000
}
], - "customization": {
- "text": "string",
- "data": [
- {
- "group": "string",
- "key": "string",
- "value": "string"
}
]
}
}
], - "billing_address": {
- "first_name": "string",
- "last_name": "string",
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string"
}, - "shipping_address": {
- "first_name": "string",
- "last_name": "string",
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string"
}, - "purchase_order_number": "string",
- "is_gift": false,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "strin"
}, - "ship_dates": {
- "earliest_ship": "2019-08-24T14:15:22Z",
- "latest_ship": "2019-08-24T14:15:22Z",
- "earliest_delivery": "2019-08-24T14:15:22Z",
- "latest_delivery": "2019-08-24T14:15:22Z"
}, - "tags": [
- {
- "id": "string"
}
], - "charges": [
- {
- "type": "discount",
- "amount": -10000000
}
], - "taxes": [
- {
- "type": "gift_wrap",
- "amount": 10000000
}
], - "costs": [
- {
- "type": "payment_fee",
- "amount": 10000000
}
]
}, - "options": {
- "ship_service_level": "in_1_day"
}
}
{- "id": 0,
- "location": "string"
}
id required | string The internal ID for the order. |
id | integer <int64> The internal ID for the order. |
order_number | string The order number from the channel. |
date | string <date-time> The order date. Usually the date and time the order was placed by the customer. |
status | string Enum: awaiting_confirmation backorder canceled draft dropship … 12 more The current status of the order. |
status_updated_at | string <date-time> The date and time when the status was last updated. |
source | string Enum: channel manual api upload The source of the order. |
object The store to which this order belongs. | |
object The warehouse this order is assigned to. | |
Array of objects[ items ] A list of line items, each containing information about an item in the order. | |
object or null The address to which this order is shipped. | |
object or null The customer's billing address. | |
Array of objects[ items ] A list of arbitrary order notes. | |
pick_list_number | integer or null <int64> The order's pick list number (if the order is in a pick list). |
invoice_number | string or null The invoice number (used for invoicing the store and sending the order to accounting). |
purchase_order_number | string or null The customer's PO number. |
is_gift | boolean Whether this order is a gift. |
is_pii_removed | boolean Whether Personally Identifiable Information (PII) has been removed from the address. |
is_reserving_inventory | boolean or null Whether the order is set to reserve inventory. |
object Information about the order's shipment. | |
object Various ship-by and deliver-by dates. | |
Array of objects[ items ] A list of tags assigned to this order. | |
Array of objects[ items ] A list of charges on the order (in addition to the charges on the lines). | |
Array of objects[ items ] A list of taxes charged on the order (in addition to the taxes on the lines). | |
Array of objects[ items ] A list of costs associated with this order. | |
original_order_id | integer or null <int64> If this order was split from another order, this field will contain the original order's ID.
|
object Details about external transactions associated with this order. | |
object A summary of some order financials. |
{- "id": 0,
- "order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_confirmation",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "source": "channel",
- "store": {
- "id": 0,
- "name": "string",
- "channel": "academy_sports"
}, - "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "cogs"
}
], - "consumer_financials": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "children": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "cogs"
}
]
}
], - "customization": {
- "text": "string",
- "data": [
- {
- "group": "string",
- "key": "string",
- "value": "string"
}
]
}
}
], - "shipping_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "billing_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "notes": [
- {
- "created_by": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string",
- "is_private": true,
- "is_packing_instructions": true
}
], - "pick_list_number": 0,
- "invoice_number": "string",
- "purchase_order_number": "string",
- "is_gift": true,
- "is_pii_removed": true,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "shipped_at": "2019-08-24T14:15:22Z",
- "boxes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 0
}
]
}
]
}, - "ship_dates": {
- "earliest_ship": "2019-08-24T14:15:22Z",
- "latest_ship": "2019-08-24T14:15:22Z",
- "earliest_delivery": "2019-08-24T14:15:22Z",
- "latest_delivery": "2019-08-24T14:15:22Z",
- "store_provided_latest_ship": "2019-08-24T14:15:22Z",
- "store_provided_latest_delivery": "2019-08-24T14:15:22Z"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "gift_wrap"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "payment_fee"
}
], - "original_order_id": 0,
- "external_transactions": {
- "store_shipment_notification": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "store_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "accounting_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}
}, - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}
}
The Orders Documents resource returns URLs that point directly to specific order documents.
The URLs returned by this endpoint are publicly-accessible, and do not require authentication. They're valid for a limited time, after which they expire. You can always call this endpoint again to get fresh URLs.
id required | string The internal ID for the order. |
Array of objects[ items ] Packing slips. Generally speaking there's only a single packing slip. However, if the store has also sent us a packing slip, you may see 2 packing slips here. You probably only ever want to print one of them, so choose the one that makes the most sense for you. | |
object or null Bill of lading. | |
object or null Carton labels. | |
object or null Shipping labels. |
{- "packing_slips": [
- {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z",
- "source": "channel"
}
], - "bill_of_lading": {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}, - "carton_labels": {
- "all": {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}, - "singles": [
- {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}
]
}, - "shipping_labels": {
- "all": {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}, - "singles": [
- {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}
]
}
}
This endpoint lets you update the charges
of multiple lines in the same order.
id required | string The internal ID for the order. |
required | Array of objects non-empty [ items ] A list of lines to update. For groups, only the parent line can be updated. Existing lines not in this list will not be modified. |
{- "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "charges": [
- {
- "type": "price",
- "amount": -100000
}
]
}
]
}
The Order Warehouse resource represents the fulfillment warehouse for a given order.
If the order is set to reserve inventory, the warehouse's "reserved inventory" will include the product quantities in this order.
id required | string The internal ID for the order. |
warehouse_id required | string <uuid> The internal ID of the warehouse. |
{- "warehouse_id": "825f5f2b-307c-4cc1-9373-6d0c4692d478"
}
id required | string The internal ID for the order. |
notify_store | boolean or null Whether to send a shipment notification to the store. Defaults to
|
reason | string or null Enum: cannot_fulfill cannot_ship_to_country cannot_ship_to_address cannot_ship_to_alaska_or_hawaii cannot_ship_to_military … 23 more The reason for cancelling this order. Note: Some channels only accept a subset of these reasons. See Channel Integration Details. |
{- "notify_store": true,
- "reason": "cannot_fulfill"
}
The Order Splits resources allows you to split an order into multiple different orders. This is useful when you're planning to fulfill different parts of an order at different times, from different warehouses, or using different methods (i.e. Direct Fulfillment vs. Purchase to Order or Dropship).
If the order already has packed shipment boxes, they will carry over to the new orders, respectively.
Note: When splitting an order, the original order is deleted in Goflow. The new chunks are each saved as individual standalone orders. Each order will have its own
id
, but they'll all share the original order'sorder_number
. To tie them together, theiroriginal_order_id
will always contain the original order'sid
.
id required | string The internal ID for the order. |
required | Array of objects [ 2 .. 100 ] items [ items ] The list of new orders. |
Array of objects[ items ] The newly-created individual orders. |
{- "chunks": [
- {
- "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "quantity": 1
}
]
}, - {
- "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "quantity": 1
}
]
}
]
}
{- "orders": [
- {
- "id": 0,
- "order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_confirmation",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "source": "channel",
- "store": {
- "id": 0,
- "name": "string",
- "channel": "academy_sports"
}, - "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "cogs"
}
], - "consumer_financials": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "children": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": null,
- "exchange_rate": null
}, - "type": "cogs"
}
]
}
], - "customization": {
- "text": "string",
- "data": [
- {
- "group": "string",
- "key": "string",
- "value": "string"
}
]
}
}
], - "shipping_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "billing_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "notes": [
- {
- "created_by": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string",
- "is_private": true,
- "is_packing_instructions": true
}
], - "pick_list_number": 0,
- "invoice_number": "string",
- "purchase_order_number": "string",
- "is_gift": true,
- "is_pii_removed": true,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "shipped_at": "2019-08-24T14:15:22Z",
- "boxes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 0
}
]
}
]
}, - "ship_dates": {
- "earliest_ship": "2019-08-24T14:15:22Z",
- "latest_ship": "2019-08-24T14:15:22Z",
- "earliest_delivery": "2019-08-24T14:15:22Z",
- "latest_delivery": "2019-08-24T14:15:22Z",
- "store_provided_latest_ship": "2019-08-24T14:15:22Z",
- "store_provided_latest_delivery": "2019-08-24T14:15:22Z"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "gift_wrap"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "payment_fee"
}
], - "original_order_id": 0,
- "external_transactions": {
- "store_shipment_notification": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "store_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "accounting_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}
}, - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}
}
]
}
The Order Acknowledgment resource allows you to confirm or reject orders from specific channels.
Note: Order Acknowledgments are currently only supported in the API for the following channels:
amazon_vendor_usa
,amazon_vendor_mexico
, andamazon_vendor_canada
.
id required | string The internal ID for the order. |
required | Array of objects[ items ] A list of lines, each containing information about an acknowledgement to an order line. This list may contain the same |
Array of objects[ items ] The newly-created individual orders. If all actions on all lines are the same, this will just return the order as is. If there are different actions on some lines, the order will be automatically split into multiple new orders. Refer to the documentation on Order Splits for information on how splits are handled in Goflow. |
{- "lines": [
- {
- "line_id": "6cb02bfb-65d4-467b-864d-461e923db664",
- "quantity": {
- "amount": 1
}, - "action": "on_time",
- "ship_date": "2019-08-24T14:15:22Z",
- "cancel_reason": "cannot_fulfill"
}
]
}
{- "orders": [
- {
- "id": 0,
- "order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_confirmation",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "source": "channel",
- "store": {
- "id": 0,
- "name": "string",
- "channel": "academy_sports"
}, - "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "cogs"
}
], - "consumer_financials": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "price"
}
], - "children": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": null,
- "exchange_rate": null
}, - "type": "cogs"
}
]
}
], - "customization": {
- "text": "string",
- "data": [
- {
- "group": "string",
- "key": "string",
- "value": "string"
}
]
}
}
], - "shipping_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "billing_address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string"
}, - "notes": [
- {
- "created_by": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string",
- "is_private": true,
- "is_packing_instructions": true
}
], - "pick_list_number": 0,
- "invoice_number": "string",
- "purchase_order_number": "string",
- "is_gift": true,
- "is_pii_removed": true,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "shipped_at": "2019-08-24T14:15:22Z",
- "boxes": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 0
}
]
}
]
}, - "ship_dates": {
- "earliest_ship": "2019-08-24T14:15:22Z",
- "latest_ship": "2019-08-24T14:15:22Z",
- "earliest_delivery": "2019-08-24T14:15:22Z",
- "latest_delivery": "2019-08-24T14:15:22Z",
- "store_provided_latest_ship": "2019-08-24T14:15:22Z",
- "store_provided_latest_delivery": "2019-08-24T14:15:22Z"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "taxes": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "gift_wrap"
}
], - "costs": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "payment_fee"
}
], - "original_order_id": 0,
- "external_transactions": {
- "store_shipment_notification": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "store_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}, - "accounting_invoice": {
- "sent_at": "2019-08-24T14:15:22Z"
}
}, - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}
}
]
}
The Order Shipment resource lets you update the details about how an order is being shipped, such as the carrier, shipping method etc.
Note: This resource simply lets Goflow know how an order should be shipped.
To actually mark orders as shipped, submit a Shipments Feed instead.
id required | string The internal ID for the order. |
shipment_type required | string Enum: small_parcel ltl messenger pickup The type of shipment. |
carrier | string or null Enum: amazon_logistics amazon_partnered amazon_shipping apc asendia … 12 more The name of the carrier. Required if |
shipping_method | string or null Enum: amazon_logistics_us_bulk amazon_logistics_us_lma amazon_logistics_us_lma_air amazon_logistics_us_premium amazon_logistics_us_premium_air … 189 more The carrier's shipping method. Required if |
scac | string or null [ 2 .. 5 ] characters The "Standard Carrier Alpha Code". Required if |
{- "shipment_type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "strin"
}
The Order Shipment Boxes resource lets you pack orders into boxes, as well as unpack existing boxes.
After all boxes are packed, you may mark the order as shipped by submitting a Shipments Feed.
Note: Packing boxes individually through the API is primarily useful when your shipment requires carton labels. Packing each box in real-time allows fetching the box's carton label, so that it can be affixed to the correct box right away.
If you don't need labels in real-time, you may skip this step altogether and only mark orders shipped via a Shipments Feed directly.
Create a packed box containing some products from the order.
id required | string The internal ID for the order. |
object or null The shipping cost for this box. | |
tracking_number | string or null The tracking number or, for LTL orders, the PRO number. |
sscc | string or null^[0-9]{20}$ The "Serial Shipping Container Code" for this box. |
object or null The weight of this box. | |
object or null The dimensions of this box. | |
required | Array of objects non-empty [ items ] The products packed in this box. For group products, only list the group's children. |
box_id | string <uuid> The ID of the newly-created box. |
{- "cost": {
- "amount": 0.01
}, - "tracking_number": "string",
- "sscc": "string",
- "weight": {
- "measure": "pounds",
- "amount": 0.001
}, - "dimensions": {
- "measure": "inches",
- "length": 0.001,
- "width": 0.001,
- "height": 0.001
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 0
}
]
}
{- "box_id": "cc04d3e6-0274-4602-af5c-c924910fec95"
}
boxId required | string <uuid> The internal ID for the shipment box. |
id required | string The internal ID for the order. |
This endpoint supports partial updates. You may completely omit any fields you do not intend to update.
Refer to the general section on partial updates for more information.
object or null The shipping cost for this box. When updating cost, all fields in | |
tracking_number | string or null The tracking number or, for LTL orders, the PRO number. |
object or null The weight of this box. When updating weight, all fields in | |
object or null The dimensions of this box. When updating dimensions, all fields in |
{- "cost": {
- "amount": 10000
}, - "tracking_number": "string",
- "weight": {
- "measure": "pounds",
- "amount": 100000
}, - "dimensions": {
- "measure": "inches",
- "length": 0.001,
- "width": 0.001,
- "height": 0.001
}
}
This resource allows you to post shipments for orders that were shipped outside of Goflow.
Refer to the general feeds section for details on how to use feeds.
Note: Each order can only have a single shipment, and each order must be shipped in full.
To make partial shipments, you should first split the order.
This endpoint has a rate-limit of 6 requests per minute. Refer to the general rate-limiting section for details.
required | Array of objects [ 1 .. 1000 ] items [ items ] A list of order shipments. |
id | integer <int64> The ID of the new feed. |
location | string The URL from which to get the results. |
{- "requests": [
- {
- "order_id": 0,
- "notify_store": true,
- "shipment_type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "currency_code": "unknown",
- "boxes": [
- {
- "cost": {
- "amount": 0.01
}, - "tracking_number": "string",
- "sscc": "string",
- "weight": {
- "measure": "pounds",
- "amount": 0.001
}, - "dimensions": {
- "measure": "inches",
- "length": 0.001,
- "width": 0.001,
- "height": 0.001
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 1
}
]
}
]
}
]
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate-limit of 12 requests per minute. Refer to the general rate-limiting section for details.
id required | integer <int64> The ID of the feed |
status | string Enum: pending done |
Array of objects or null A list of responses, available once the feed is done processing. |
{- "status": "pending",
- "responses": [
- {
- "index": 0,
- "status_code": 0,
- "error": "string",
- "request": {
- "order_id": 0,
- "notify_store": true,
- "shipment_type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "currency_code": "unknown",
- "boxes": [
- {
- "cost": {
- "amount": 0.01
}, - "tracking_number": "string",
- "sscc": "string",
- "weight": {
- "measure": "pounds",
- "amount": 0.001
}, - "dimensions": {
- "measure": "inches",
- "length": 0.001,
- "width": 0.001,
- "height": 0.001
}, - "lines": [
- {
- "order_line_id": "bc9d0c12-1a56-474d-bb91-af19b2f06cc4",
- "quantity": 1
}
]
}
]
}
}
]
}
The Order Shipment Routing Request resource represents an inquiry to the channel asking for instructions on how to ship a given order.
Shipment Routing responses from the store are asynchronous: it may take several hours, or more, to receive a response from the store. After receiving a response from the store, Goflow updates all relevant order properties, such as shipment.carrier
, shipment.shipping_method
, shipment.ship_dates.latest_ship
etc.
To determine whether Goflow has already received a Shipment Routing response from the store, you may fetch the Shipment Routing Request and inspect its response
.
Note: Shipment Routing Requests are currently supported for the following channels:
amazon_vendor_usa
,amazon_vendor_mexico
, andwalmart_vendor_usa
.
Important: For
walmart_vendor_usa
orders, the user must first manually acknowledge the order on Walmart's portal. Routing requests for unacknowledged orders will silently fail.
id required | string The internal ID for the order. |
object or null The weight of the shipment. Required if the order is not packed in full. | |
object or null Information about the boxes. Required if the order is not packed in full. | |
object or null Information about the pallets. | |
object or null The cubic volume of the shipment. Required if the order is not packed in full. | |
freight_class | string or null The freight class of the shipment. Enum:
|
ready_for_pickup_at | string or null <date-time> The date and time the shipment will be ready for pickup.
|
{- "weight": {
- "measure": "pounds",
- "amount": 0.001
}, - "boxes": {
- "count": 1
}, - "pallets": {
- "count": 0,
- "is_stackable": true
}, - "cubic_volume": {
- "measure": "feet",
- "amount": 0.001
}, - "freight_class": "string",
- "ready_for_pickup_at": "2019-08-24T14:15:22Z"
}
id required | string The internal ID for the order. |
requested_at | string <date-time> The date and time the routing request was made. |
object The weight of the shipment. | |
object Information about the boxes. | |
object Information about the pallets. | |
object The cubic volume of the shipment. | |
freight_class | string or null The freight class of the shipment. Enum: |
ready_for_pickup_at | string or null <date-time> The date and time the shipment is ready for pickup. |
object or null The response received from the store for this routing request. This field is |
{- "requested_at": "2019-08-24T14:15:22Z",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "boxes": {
- "count": 0
}, - "pallets": {
- "count": 0,
- "is_stackable": true
}, - "cubic_volume": {
- "measure": "feet",
- "amount": 0
}, - "freight_class": "string",
- "ready_for_pickup_at": "2019-08-24T14:15:22Z",
- "response": {
- "routing_reference_number": "string",
- "responded_at": "2019-08-24T14:15:22Z",
- "expected_to_ship_at": "2019-08-24T14:15:22Z",
- "carrier": {
- "scac": "string",
- "contact": {
- "name": "string",
- "phone": "string",
- "email": "string"
}
}
}
}
The Order Invoice Number endpoint controls which invoice number to use when sending an invoice to the store or to your connected accounting system, where applicable.
Note: when an order is split, the existing
invoice_number
will be removed, unless an invoice has already been sent to the store (e.g. the order was unshipped and then split).If you split an order after having set its
invoice_number
, be sure to set new invoice numbers on the new orders.
id required | string The internal ID for the order. |
invoice_number required | string [ 1 .. 20 ] characters The invoice number. |
{- "invoice_number": "string"
}
The Orders Bulk Tags resource controls the list of tags on several orders at once.
The Purchase Orders resource represents purchase orders placed with your vendors.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||
sort | string Enum: id purchase_order_number date The field by which to sort the results. | ||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "type": "standard",
- "purchase_order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_receipt",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "vendor": {
- "id": 0,
- "name": "string"
}, - "vendor_purchase_order": {
- "purchase_order_number": "string",
- "is_submitted": true
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "shipment": {
- "expected_at": "2019-08-24T14:15:22Z",
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}, - "lines": [
- {
- "id": 0,
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "vendor_item_number": "string",
- "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "price": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "units_received": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}, - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
id required | string The internal ID for the purchase order. |
id | integer <int64> The internal ID for the purchase order. |
type | string Enum: standard dropship purchase_to_order The type of purchase order. |
purchase_order_number | string The purchase order number. |
date | string <date-time> The date on the purchase order. This is usually the date it was created in Goflow, but may be changed by the user. |
status | string Enum: awaiting_receipt receiving received_partial received closed … 1 more The current status of the purchase order. |
object The warehouse the purchase order is assigned to. | |
object The vendor from whom these products are being purchased. | |
object Information about the purchase order submitted to the vendor. | |
Array of objects[ items ] A list of charges on the purchase order (in addition to the charges on the lines). | |
object Information about the shipment of the purchase order. | |
Array of objects[ items ] A list of line items, each containing information about a product in the purchase order. | |
Array of objects[ items ] A list of tags assigned to the purchase order. | |
Array of objects[ items ] A list of notes. | |
object A summary of the purchase order financials. | |
object Meta information about the purchase order. |
{- "id": 0,
- "type": "standard",
- "purchase_order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "awaiting_receipt",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "vendor": {
- "id": 0,
- "name": "string"
}, - "vendor_purchase_order": {
- "purchase_order_number": "string",
- "is_submitted": true
}, - "charges": [
- {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}, - "type": "discount"
}
], - "shipment": {
- "expected_at": "2019-08-24T14:15:22Z",
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}, - "lines": [
- {
- "id": 0,
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "vendor_item_number": "string",
- "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "price": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "units_received": 0
}
], - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "summary": {
- "subtotal": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "total": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}
}, - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
The Purchase Orders Tags resource controls the list of tags on a given purchase order.
The Receipts resource represents products received from your vendors.
Can optionally be related to existing purchase orders.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||
sort | string Enum: id reference_number date vendor.id warehouse.id The field by which to sort the results. | ||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "reference_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "draft",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "vendor": {
- "id": 0,
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "description": "string",
- "purchase_order": {
- "id": 0,
- "purchase_order_number": "string",
- "line_id": 0,
- "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}
}, - "units_received": 0,
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "children": [
- {
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "description": "string",
- "units_received": 0
}
]
}
], - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
id required | string The internal ID for the receipt. |
id | integer <int64> The internal ID for the receipt. |
reference_number | string The user-specified reference number for the receipt. |
date | string <date-time> The date on the receipt. This is usually the date it was created in Goflow, but may be changed by the user. |
status | string Enum: draft completed The status of the receipt. |
object The warehouse at which these products were received. | |
object The vendor from which these products were purchased. | |
Array of objects[ items ] A list of line items, each containing information about a product in the receipt. | |
Array of objects[ items ] A list of tags assigned to the receipt. | |
Array of objects[ items ] A list of notes. | |
object Meta information about the receipt. |
{- "id": 0,
- "reference_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "draft",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "vendor": {
- "id": 0,
- "name": "string"
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "description": "string",
- "purchase_order": {
- "id": 0,
- "purchase_order_number": "string",
- "line_id": 0,
- "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}
}, - "units_received": 0,
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "children": [
- {
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "description": "string",
- "units_received": 0
}
]
}
], - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
The Products resource represents products in your catalog.
Products come in 3 different type
s:
standard
- A regular product, with inventory and recorded costs.
group
- A virtual product, which is a grouping of other products. The product's children
property holds the "recipe" that forms this group, including the quantities for each child.
Groups have no inventory of their own, and no associated costs of their own. They're merely a way to group products together to easily sell them as a single bundle.
kit
- A product that can be assembled from other products, and disassembled back into those products. The product's children
property holds the "recipe" that forms this kit, including the quantities for each child.
Kits have their own inventory and recorded cost, just like standard products. When assembling or disassembling a kit (using productions), the inventory and cost is automatically moved between the kit and its children.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||||||||
sort | string Enum: id item_number details.brand details.category details.condition … 1 more The field by which to sort the results. | ||||||||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "type": "standard",
- "item_number": "string",
- "status": "active",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "children": [
- {
- "product_id": 0,
- "quantity": 0
}
], - "details": {
- "name": "string",
- "description": "string",
- "brand": "string",
- "manufacturer": "string",
- "condition": "string",
- "category": "string",
- "is_perishable": true
}, - "pricing": {
- "default_cost": 0,
- "default_price": 0,
- "msrp": 0,
- "map": 0
}, - "settings": {
- "fulfillment_method": "warehouse",
- "is_purchasable": true,
- "is_sellable": true
}, - "units_of_measure": {
- "defaults": {
- "purchasing": "fe13c753-9b85-4153-9b6b-b43538883714",
- "sales": "3cd3cfaf-9b2d-49ab-a8f7-e121dfcccb4b",
- "shipping": "c7dce487-3172-461e-ada9-1450023e890a"
}, - "all": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "quantity": 0,
- "abbreviation": "string",
- "description": "string"
}
]
}, - "identifiers": [
- {
- "type": "string",
- "value": "string",
- "unit_of_measure_id": "6280affd-2ee1-4aac-ba20-4c65cbe194bb"
}
], - "shipping": {
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "insured_value": 0
}, - "customs": {
- "description": "string",
- "declared_value": 0,
- "hts_tariff_code": "string",
- "country_of_origin": "ad"
}
}
], - "next": "string"
}
type | string Default: standard Enum: standard group kit The type of product.
See the section description above for a detailed explanation. |
item_number required | string [ 1 .. 100 ] characters The user-defined item number, displayed everywhere in the app.
|
Array of objects or null <= 25 items A list of child products and quantities that make up the "recipe" for this product.
| |
object or null General details about the product. | |
object or null Pricing details for the product. | |
object or null General settings for the product. | |
object or null The product's units of measure. | |
Array of objects or null <= 25 items A list of identifiers (usually printed on barcodes) for this product. | |
object or null The product's packing & shipping properties. | |
object or null The product's customs & tariff properties. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "type": "standard",
- "item_number": "string",
- "children": [
- {
- "product_id": 0,
- "quantity": 1
}
], - "details": {
- "name": "string",
- "description": "string",
- "brand": "string",
- "manufacturer": "string",
- "condition": "string",
- "category": "string",
- "is_perishable": false
}, - "pricing": {
- "default_cost": 0.01,
- "default_price": 0.01,
- "msrp": 0.01,
- "map": 0.01
}, - "settings": {
- "fulfillment_method": "warehouse",
- "is_purchasable": true,
- "is_sellable": true
}, - "units_of_measure": {
- "all": [
- {
- "quantity": 2,
- "abbreviation": "string",
- "description": "string"
}
], - "defaults": {
- "purchasing": "string",
- "sales": "string",
- "shipping": "string"
}
}, - "identifiers": [
- {
- "type": "string",
- "value": "string",
- "unit_of_measure_abbreviation": "string"
}
], - "shipping": {
- "weight": {
- "measure": "pounds",
- "amount": 0.001
}, - "dimensions": {
- "measure": "inches",
- "length": 0.001,
- "width": 0.001,
- "height": 0.001
}, - "insured_value": 0.01
}, - "customs": {
- "description": "string",
- "declared_value": 0.01,
- "hts_tariff_code": "string",
- "country_of_origin": "ad"
}
}
{- "id": 0,
- "location": "string"
}
id required | string The internal ID for the product. |
id | integer <int64> The internal ID for the product. |
type | string Enum: standard group kit The type of product.
See the section description above for a detailed explanation. |
item_number | string The user-defined item number, displayed everywhere in the app.
|
status | string Enum: active inactive The current status of the product. |
Array of objects[ items ] A list of user-defined tags assigned to this product. | |
Array of objects[ items ] A list of child products and quantities that make up the "recipe" for this product.
| |
object General details about the product. | |
object Pricing details for the product. | |
object General settings for the product. | |
object The product's units of measure. | |
Array of objects[ items ] A list of identifiers (usually printed on barcodes) for this product. | |
object The product's packing & shipping properties. | |
object The product's customs & tariff properties. |
{- "id": 0,
- "type": "standard",
- "item_number": "string",
- "status": "active",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "children": [
- {
- "product_id": 0,
- "quantity": 0
}
], - "details": {
- "name": "string",
- "description": "string",
- "brand": "string",
- "manufacturer": "string",
- "condition": "string",
- "category": "string",
- "is_perishable": true
}, - "pricing": {
- "default_cost": 0,
- "default_price": 0,
- "msrp": 0,
- "map": 0
}, - "settings": {
- "fulfillment_method": "warehouse",
- "is_purchasable": true,
- "is_sellable": true
}, - "units_of_measure": {
- "defaults": {
- "purchasing": "fe13c753-9b85-4153-9b6b-b43538883714",
- "sales": "3cd3cfaf-9b2d-49ab-a8f7-e121dfcccb4b",
- "shipping": "c7dce487-3172-461e-ada9-1450023e890a"
}, - "all": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "quantity": 0,
- "abbreviation": "string",
- "description": "string"
}
]
}, - "identifiers": [
- {
- "type": "string",
- "value": "string",
- "unit_of_measure_id": "6280affd-2ee1-4aac-ba20-4c65cbe194bb"
}
], - "shipping": {
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "insured_value": 0
}, - "customs": {
- "description": "string",
- "declared_value": 0,
- "hts_tariff_code": "string",
- "country_of_origin": "ad"
}
}
The Products Pricing endpoint provides the ability to update pricing on a product.
id required | string The internal ID for the product. |
This endpoint supports partial updates. You may completely omit any fields you do not intend to update.
Refer to the general section on partial updates for more information.
default_cost | number or null <double> [ 0.01 .. 1000000 ] The default cost when creating purchase orders. |
default_price | number or null <double> [ 0.01 .. 1000000 ] The default price when manually creating sales orders. |
msrp | number or null <double> [ 0.01 .. 1000000 ] The manufacturer-suggested price. |
map | number or null <double> [ 0.01 .. 1000000 ] The manufacturer-provided minimum advertised price. |
{- "default_cost": 0.01,
- "default_price": 0.01,
- "msrp": 0.01,
- "map": 0.01
}
The adjustments resource represents inventory adjustments. Adjustments are manual, arbitrary changes to product inventory, which are not connected to any other transaction.
A single adjustment may contain adjustments for many different products.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||
sort | string Value: id The field by which to sort the results. | ||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "reference_number": "string",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "lines": [
- {
- "product_id": 0,
- "product_description": "string",
- "quantity": 0,
- "cost": 0,
- "reason": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
Adjustments may be created as one of two type
s: relative
and absolute
.
relative
adjustments treat the provided quantity
on each line as a change,
incrementing or decrementing the current "on hand" inventory number by the given quantity
.
absolute
adjustments treat the provided quantity
on each line as replacing
the current "on hand" inventory number. If the current "on hand" inventory number
is the same as the provided quantity
, that line will be ignored.
If the quantity
of every line is the same as the current "on hand" inventory
number for its product, respectively, then no adjustment document will be created.
The endpoint will return an empty response with a 204 status code.
Note:
absolute
adjustments are simply an easier way to create an adjustment, so that you don't have to first fetch the current "on hand" inventory number and calculate the difference. However, they are still recorded in a relative manner. The final adjustment transaction will always have itsquantity
set to the relative number that was actually adjusted.
type required | string Enum: absolute relative The type of |
warehouse_id required | string <uuid> The internal ID for the warehouse. |
reference_number | string or null The user-provided reference number for the adjustment. Leave empty to have the system assign an auto-incremented number. |
required | Array of objects [ 1 .. 2000 ] items [ items ] A list of lines, each containing information about an adjustment to a product. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "type": "absolute",
- "warehouse_id": "825f5f2b-307c-4cc1-9373-6d0c4692d478",
- "reference_number": "string",
- "lines": [
- {
- "product_id": 0,
- "quantity": -10000000,
- "cost": 0.01,
- "reason": "string"
}
]
}
{- "id": 0,
- "location": "string"
}
id required | string The internal ID for the adjustment. |
id | integer <int64> The internal ID for the adjustment. |
created_at | string <date-time> The time at which the adjustment was created. |
reference_number | string or null The user-provided reference number for the adjustment. |
object The warehouse to which this adjustment belongs. | |
Array of objects[ items ] A list of tags assigned to this adjustment. | |
Array of objects[ items ] A list of notes. | |
Array of objects[ items ] A list of lines, each containing information about an adjustment to a given product. | |
object Meta information about the adjustment. |
{- "id": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "reference_number": "string",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "lines": [
- {
- "product_id": 0,
- "product_description": "string",
- "quantity": 0,
- "cost": 0,
- "reason": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
The Adjustments Tags resource controls the list of tags on a given adjustment.
The productions resource represents kit product assemblies and disassemblies.
assembly
consumes the kit's children and produces the parent kit product.disassembly
consumes the parent kit product and produces the kit's children.object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||||
sort | string Enum: id reference_number date The field by which to sort the results. | ||||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "reference_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "type": "assembly",
- "status": "in_progress",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "children": [
- {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "units_per_parent": 0
}
]
}, - "fulfillments": [
- {
- "fulfilled_at": "2019-08-24T14:15:22Z",
- "units": 0
}
], - "is_reserving_inventory": true,
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
]
}
], - "next": "string"
}
id required | string The internal ID for the production. |
id | integer <int64> The internal ID for the production. |
reference_number | string The user-provided reference number for the production. |
date | string <date-time> The date on the production. This is usually the date it was created in Goflow, but may be changed by the user. |
type | string Enum: assembly disassembly The type of production. |
status | string Enum: in_progress completed closed unknown The status of the production. |
object The warehouse this production is assigned to. | |
object The amount of kits being assembled or disassembled. | |
object The kit product being assembled or disassembled. | |
Array of objects[ items ] A list production fulfillments. Each fulfillment represents kits that were assembled or disassembled at a specific time. | |
is_reserving_inventory | boolean or null Whether the production is set to reserve inventory. |
Array of objects[ items ] A list of tags assigned to this production. | |
Array of objects[ items ] A list of notes. |
{- "id": 0,
- "reference_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "type": "assembly",
- "status": "in_progress",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "children": [
- {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "units_per_parent": 0
}
]
}, - "fulfillments": [
- {
- "fulfilled_at": "2019-08-24T14:15:22Z",
- "units": 0
}
], - "is_reserving_inventory": true,
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
]
}
The Productions Tags resource controls the list of tags on a given production.
The Listings resource represents the items on your stores.
Before diving into listings, it's important to understand the difference between products and listings in Goflow:
Products in Goflow serve as your single master catalog. The product contains all the information about your items. You have only one catalog of products.
Listings are catalogs of your items with the store. For each store you partner with, you have a separate set of listings.
Products and listings are connected through listing mapping. Each listing is mapped to a single product.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||
sort | string Enum: store_provided_id sku store.id product.id The field by which to sort the results. | ||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "internal_id": "string",
- "status": "in_review",
- "store": {
- "id": 0,
- "name": "string",
- "channel": "academy_sports"
}, - "store_provided_id": "string",
- "store_page_url": "string",
- "sku": "string",
- "fulfillment_network_sku": "string",
- "title": "string",
- "description": "string",
- "price": {
- "amount": 0,
- "currency": {
- "code": "unknown"
}
}, - "product": {
- "id": 0,
- "item_number": "string"
}, - "fulfilled_by": "merchant",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
]
}
], - "next": "string"
}
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||||||
sort | string Enum: id reference_number date The field by which to sort the results. | ||||||||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "reference_number": "string",
- "external_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "ready_to_pick",
- "warehouses": {
- "from": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "external_id": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}, - "to": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "external_id": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "fulfillment_network_sku": "string"
}, - "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "units_received": 0,
- "units_reported_received": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "preparations": [
- {
- "instruction": "string",
- "warehouse": "from"
}
]
}
], - "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "shipped_at": "2019-08-24T14:15:22Z",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "boxes": [
- {
- "id": 0,
- "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "transfer_line_id": "b831114c-2bd7-413a-ab7f-ac2c1261a007",
- "quantity": 0
}
]
}
], - "pallets": [
- {
- "id": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}
}
]
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
id required | string The internal ID for the transfer. |
id | integer <int64> The internal ID for the transfer. |
reference_number | string or null The user-provided reference number for the transfer. |
external_id | string or null The external ID for the transfer. |
date | string <date-time> The date on the transfer. This is usually the date it was created in Goflow, but may be changed by the user. |
status | string Enum: ready_to_pick ready_for_plan ready_to_pack packing ready_to_ship … 11 more The status of the transfer. |
object The warehouses involved in the transfer. | |
Array of objects[ items ] A list of line items, each containing information about a product in the transfer. | |
object or null Information about the transfer's shipment. | |
Array of objects[ items ] A list of tags assigned to this transfer. | |
Array of objects[ items ] A list of notes. | |
object Meta information about the transfer. |
{- "id": 0,
- "reference_number": "string",
- "external_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "status": "ready_to_pick",
- "warehouses": {
- "from": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "external_id": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}, - "to": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "external_id": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}
}, - "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "fulfillment_network_sku": "string"
}, - "product": {
- "id": 0,
- "item_number": "string",
- "name": "string",
- "description": "string"
}, - "quantity": {
- "amount": 0,
- "measure": {
- "amount": 0,
- "abbreviation": "string"
}
}, - "units_received": 0,
- "units_reported_received": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "preparations": [
- {
- "instruction": "string",
- "warehouse": "from"
}
]
}
], - "shipment": {
- "type": "small_parcel",
- "carrier": "amazon_logistics",
- "shipping_method": "amazon_logistics_us_bulk",
- "shipped_at": "2019-08-24T14:15:22Z",
- "cost": {
- "amount": 0,
- "currency": {
- "code": "unknown",
- "exchange_rate": 0
}
}, - "boxes": [
- {
- "id": 0,
- "tracking_number": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}, - "lines": [
- {
- "transfer_line_id": "b831114c-2bd7-413a-ab7f-ac2c1261a007",
- "quantity": 0
}
]
}
], - "pallets": [
- {
- "id": "string",
- "weight": {
- "measure": "ounces",
- "amount": 0
}, - "dimensions": {
- "measure": "inches",
- "length": 0,
- "width": 0,
- "height": 0
}
}
]
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
The stores resource represents individual stores connected to Goflow.
Goflow generally imports store orders directly from the channel
, sends live inventory updates, and sends shipment notifications (ASNs) and invoices for shipped orders, where applicable.
object
Refer to the general filters section for details on how to use these filters. | |||||||||
sort | string Enum: id name The field by which to sort the results. | ||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "name": "string",
- "channel": "academy_sports",
- "status": "active",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "settings": {
- "capture_funds": true,
- "currency": "unknown",
- "imports": {
- "listings": true,
- "orders": true,
- "store_fulfilled_orders": true
}, - "fulfillment_warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "registered_warehouses": [
- {
- "store_code": "string",
- "store_title": "string",
- "fulfillment_warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
], - "store_warehouse_codes": {
- "list": [
- {
- "name": "string",
- "code": "string"
}
], - "mappings": [
- {
- "code": "string",
- "warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
]
}
}
}
], - "next": "string"
}
id required | string The internal ID for the store. |
id | integer <int64> The internal ID for the store. |
name | string The user-specified name for the store. |
channel | string Enum: academy_sports ace_hardware amazon_dropship_europe amazon_dropship_uk amazon_dropship_usa … 156 more The store type. |
status | string Enum: active inactive disconnected onboarding The current status of the store. |
status_updated_at | string or null <date-time> The date and time when the status was last updated. |
object General settings for the store. |
{- "id": 0,
- "name": "string",
- "channel": "academy_sports",
- "status": "active",
- "status_updated_at": "2019-08-24T14:15:22Z",
- "settings": {
- "capture_funds": true,
- "currency": "unknown",
- "imports": {
- "listings": true,
- "orders": true,
- "store_fulfilled_orders": true
}, - "fulfillment_warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "registered_warehouses": [
- {
- "store_code": "string",
- "store_title": "string",
- "fulfillment_warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
], - "store_warehouse_codes": {
- "list": [
- {
- "name": "string",
- "code": "string"
}
], - "mappings": [
- {
- "code": "string",
- "warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
]
}
}
}
The Store Channel endpoint returns details about requirements and feature support for the given store's channel integration.
id required | string The internal ID for the store. |
channel | string Enum: academy_sports ace_hardware amazon_dropship_europe amazon_dropship_uk amazon_dropship_usa … 156 more The store type. |
object Details about canceling orders via the Goflow integration. | |
object Details about acknowledging orders via the Goflow integration. |
{- "channel": "academy_sports",
- "order_cancellation": {
- "is_supported": true,
- "reasons": [
- "cannot_fulfill"
]
}, - "order_acknowledgment": {
- "is_supported": true,
- "actions": [
- "on_time"
], - "cancellation_reasons": [
- "cannot_fulfill"
]
}
}
The Warehouse resource represents warehouses that house physical products. Each product's inventory level is constantly kept up-to-date via different transactions (e.g. receipts, orders, transfers, productions, conversions, adjustments).
Warehouses in Goflow may represent your own warehouse, or a 3rd party's fulfillment center. See the type
property for details.
object
Refer to the general filters section for details on how to use these filters. | |||||||||
sort | string Enum: name type The field by which to sort the results. | ||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "settings": {
- "allows_fulfilling_transfers_without_inventory": true,
- "allows_receiving_without_purchase_order": true,
- "uses_inventory_locations": true
}, - "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}
], - "next": "string"
}
id required | string The internal ID for the warehouse. |
id | string <uuid> The internal ID for the warehouse. |
name | string The user-defined name for this warehouse.
|
type | string Enum: standard barrett castle_gate deliverr deposco … 12 more The type of warehouse. Either |
object General settings for the warehouse. | |
object The warehouse's physical address. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "standard",
- "settings": {
- "allows_fulfilling_transfers_without_inventory": true,
- "allows_receiving_without_purchase_order": true,
- "uses_inventory_locations": true
}, - "address": {
- "company": "string",
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "string",
- "phone": "string",
- "phone_extension": "string"
}
}
The vendors resource represents suppliers from which products are bought.
Vendors in Goflow are used for purchase orders, receipts and bills.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||
sort | string Enum: id name The field by which to sort the results. | ||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "id": 0,
- "name": "string",
- "status": "active",
- "currency": "unknown",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
]
}
], - "next": "string"
}
id required | string The internal ID for the vendor. |
id | integer <int64> The internal ID for the vendor. |
name | string The user-defined vendor name, displayed everywhere in the app. |
status | string Enum: active inactive The current status of the vendor. |
currency | string Enum: unknown afn all dzd aoa … 184 more The currency used on purchase orders for this vendor. |
Array of objects[ items ] A list of user-defined tags assigned to this vendor. | |
Array of objects[ items ] A list of notes. |
{- "id": 0,
- "name": "string",
- "status": "active",
- "currency": "unknown",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
], - "notes": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "text": "string"
}
]
}
The Vendor Products resource represents products in your vendors' catalog. Each product has your vendor's inventory level, letting Goflow constantly update your store listings with your vendor's inventory.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||
sort | string Enum: vendor_item_number vendor.id product.id inventory.expires_at updated_at The field by which to sort the results. | ||||||||||||||
sort_direction | string Enum: asc desc The direction of the sort. |
Array of objects[ items ] | |
next | string or null A link to the next page of results. |
{- "data": [
- {
- "vendor_item_number": "string",
- "vendor": {
- "id": 0,
- "name": "string"
}, - "product": {
- "id": 0,
- "item_number": "string"
}, - "inventory": {
- "quantity": 0,
- "expires_at": "2019-08-24T14:15:22Z"
}, - "cost": 0,
- "updated_at": "2019-08-24T14:15:22Z",
- "tags": [
- {
- "id": "string",
- "name": "string"
}
]
}
], - "next": "string"
}
This resource allows you to post vendor products. This includes vendor prices, vendor inventory etc.
The feed may include new vendor products, as well as updates to vendor products already in Goflow.
Refer to the general feeds section for details on how to use feeds.
This endpoint has a rate-limit of 6 requests per hour per
vendor-id
. Refer to the general rate-limiting section for details.
vendor-id required | string The internal ID of the vendor |
other_products | string Default: ignore Enum: ignore delete reset_to_zero Determines what to do with vendor products that are not included in this feed.
|
ignore_other_products_on_error | boolean Default: true Determines whether to ignore the When |
inventory_expires_at | string or null <date-time> The day until the From the day of expiration, Goflow will consider the vendor's
|
required | Array of objects [ 1 .. 25000 ] items [ items ] A list of vendor products to submit. |
id | integer <int64> The ID of the new feed. |
location | string The URL from which to get the results. |
{- "other_products": "ignore",
- "ignore_other_products_on_error": true,
- "inventory_expires_at": "2019-08-24T14:15:22Z",
- "requests": [
- {
- "vendor_item_number": "string",
- "mapped_product_id": 0,
- "inventory": {
- "quantity": 10000000
}, - "cost": {
- "amount": 0.01
}
}
]
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate-limit of 12 requests per minute per
vendor-id
. Refer to the general rate-limiting section for details.
id required | integer <int64> The ID of the feed |
vendor-id required | string The internal ID of the vendor |
status | string Enum: pending done |
Array of objects or null A list of error responses, if any, available once the feed is done processing. |
{- "status": "pending",
- "responses": [
- {
- "index": 0,
- "status_code": 0,
- "error": "string",
- "request": {
- "vendor_item_number": "string",
- "mapped_product_id": 0,
- "inventory": {
- "quantity": 10000000
}, - "cost": {
- "amount": 0.01
}
}
}
]
}