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, like all public API endpoints, are fully production-ready, have been thoroughly tested and are running on production hardware with full availability.
The beta designation is primarily for transparency. These endpoints haven't been in production long enough for us to be confident that the schema is set in stone. We may still need to tweak it a tiny bit in the future (though we very rarely do).
Rest assured that if any changes are necessary, we'll reach out to you directly to ensure a smooth transition.
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.
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}
Note: The Goflow API is only accessible over HTTPS. For extra security, accessing the API over plain-text HTTP does not automatically redirect to HTTPS. You will get an error that we only support HTTPS.
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.
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.
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.
Note on whitespace: All input strings in the API are trimmed of any surrounding whitespace. This prevents errors when you're passing user input directly to the API.
As a side effect, in the rare case where an existing record has a field with surrounding whitespace, you will not be able to search for it in the API. Your query string term will be trimmed and won't match the record's value.
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.
In addition to rate limits, some asynchronous requests, particularly reports, are subject to quota limits.
Quota limits differ from rate limits. While rate limits cap the number of requests within a period, quota limits restrict the number of records generated asynchronously within a given period. Upon reaching the quota, any additional requests are queued for processing when the quota replenishes.
When processing a given request, the full result-set will be generated, even if it exceeds the current quota limit. Any overage will roll over, reducing the available quota for the next period.
Example: Consider a report with a quota limit of 100 records per day. If a report generates 250 records, no additional reports of that type will be processed today or tomorrow. On the day after tomorrow, any queued requests, along with new requests, will begin processing.
This example uses smaller numbers for clarity, but the actual quota limits are significantly higher.
Refer to the documentation of each endpoint to see its exact quota limit. Furthermore, the Report Quotas endpoint provides comprehensive information on quota policies for each report type, along with real-time data on current quota usage.
Reports are generated asynchronously, similar to responses of Feeds for Bulk Actions. Request to generate a report, and the response will include a location
property, which contains the endpoint for this report:
HTTP/1.1 202 Accepted
{
"id": 123,
"location": "https://domain.com/v1/reports/123"
}
The report is generated and stored in a file with the format of your choosing (json
, jsonl
, or csv
). You may fetch the report status and metadata from the endpoint returned in the above-mentioned location
URL.
Once the report was successfully generated, the report's endpoint will return the file_url
of the generated file:
HTTP/1.1 200 OK
{
/* Partial */
"status": "completed",
"completed": {
"records_count": 265,
"file_url": "https://path-to-file.jsonl",
},
}
Note: the above is a partial view of the response. Refer to the report endpoint's documentation for the full details.
If the report's status
is still queued
or processing
, then completed
will be null
. Once the report is fully generated, completed.file_url
will point to the URL from which to fetch the generated report file.
The URL at completed.file_url
will redirect you to the actual file on our CDN. Make sure to follow the HTTP redirect header when downloading the file.
Expiry Note: Generated reports are kept by Goflow for 12 hours from when the report was fully generated. After that timeframe, the endpoint will return a 404.
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.
This endpoint has a rate limit of 60 requests per minute.
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",
- "fulfilled_by": "merchant",
- "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
}
]
}
], - "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}, - "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": "price"
}
], - "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"
}
This endpoint has a rate limit of 30 requests per minute.
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": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string",
- "company": "string"
}, - "shipping_address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string",
- "first_name": "string",
- "last_name": "string",
- "company": "string"
}, - "purchase_order_number": "string",
- "is_gift": false,
- "is_reserving_inventory": true,
- "shipment": {
- "type": "small_parcel",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}, - "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": "price",
- "amount": 10000000
}
], - "costs": [
- {
- "type": "payment_fee",
- "amount": 10000000
}
]
}, - "options": {
- "ship_service_level": "in_1_day"
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 60 requests per minute.
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. |
fulfilled_by | string Enum: merchant store The party responsible to fulfill 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",
- "fulfilled_by": "merchant",
- "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
}
]
}
], - "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}, - "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": "price"
}
], - "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.
This endpoint has a rate limit of 60 requests per minute.
id required | string The internal ID for the order. |
object or null Bill of lading. | |
object or null Carton labels. | |
object or null Commercial invoice. | |
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 Pallet labels. | |
object or null Shipping labels. |
{- "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"
}
]
}, - "commercial_invoice": {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z"
}, - "packing_slips": [
- {
- "url": "string",
- "format": "pdf",
- "url_expires_at": "2019-08-24T14:15:22Z",
- "source": "channel"
}
], - "pallet_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 has a rate limit of 30 requests per minute.
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.
This endpoint has a rate limit of 30 requests per minute.
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"
}
This endpoint has a rate limit of 30 requests per minute.
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"
}
This endpoint has a rate limit of 30 requests per minute.
id required | string The internal ID for the order. |
This endpoint has a rate limit of 30 requests per minute.
id required | string The internal ID for the order. |
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
.
This endpoint has a rate limit of 30 requests per minute.
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",
- "fulfilled_by": "merchant",
- "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
}
]
}
], - "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}, - "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": "price"
}
], - "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
.
This endpoint has a rate limit of 30 requests per minute.
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",
- "fulfilled_by": "merchant",
- "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
}
]
}
], - "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}, - "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": "price"
}
], - "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.
This endpoint has a rate limit of 30 requests per minute.
id required | string The internal ID for the order. |
shipment_type required | string Enum: small_parcel ltl messenger pickup The type of shipment. |
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 … 210 more The carrier's shipping method. Required when |
scac | string or null^[A-Za-z\d\-&]{2,5}(_[A-Za-z\d]{2})?(_[A-Za-z... The "Standard Carrier Alpha Code". Required when |
object or null The 3rd party account to use when shipping this order, if any. Only allowed when
|
{- "shipment_type": "small_parcel",
- "shipping_method": "amazon_logistics_us_bulk",
- "scac": "string",
- "third_party_account": {
- "account_number": "string",
- "address": {
- "company": "string",
- "street1": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad"
}
}
}
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.
This endpoint has a rate limit of 30 requests per minute.
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"
}
This endpoint has a rate limit of 30 requests per minute.
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 endpoint has a rate limit of 30 requests per minute.
Delete a packed box from the order.
boxId required | string <uuid> The internal ID for the shipment box. |
id required | string The internal ID for the order. |
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.
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.
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
.
This endpoint has a rate limit of 30 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
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"
}
}
}
}
This endpoint has a rate limit of 30 requests per minute.
Deleting the routing request does not cancel it at the channel. It only deletes it in Goflow, so that it can be requested again.
id required | string The internal ID for the order. |
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.
This endpoint has a rate limit of 30 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 30 requests per minute.
required | object The purchase order to create. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "purchase_order": {
- "purchase_order_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "warehouse": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "vendor": {
- "id": 0
}, - "vendor_purchase_order": {
- "purchase_order_number": "string",
- "is_submitted": false
}, - "currency": {
- "code": "afn",
- "exchange_rate": 0
}, - "lines": [
- {
- "product": {
- "id": 0,
- "name": "string"
}, - "quantity": {
- "amount": 1,
- "measure": {
- "abbreviation": "string"
}
}, - "price": {
- "amount": 1000000
}
}
], - "charges": [
- {
- "type": "discount",
- "amount": -10000000
}
], - "shipment": {
- "expected_at": "2019-08-24T14:15:22Z",
- "type": "small_parcel",
- "shipping_method": "amazon_logistics_us_bulk",
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string",
- "company": "string"
}
}, - "tags": [
- {
- "id": "string"
}
]
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 60 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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",
- "purchase_name": "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"
}
This endpoint has a rate limit of 30 requests per minute.
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",
- "purchase_name": "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"
}
This endpoint has a rate limit of 60 requests per minute.
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",
- "purchase_name": "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.
This endpoint has a rate limit of 30 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 30 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
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.This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
object
Refer to the general filters section for details on how to use these filters. | |||||||||||||||||||||||
sort | string Enum: id reference_number external_id 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",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "fulfillment_network_sku": "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
}
}
]
}, - "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"
}
], - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
This endpoint has a rate limit of 30 requests per minute.
required | object The transfer to create. |
object or null Miscellaneous options for the transfer. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "transfer": {
- "reference_number": "string",
- "date": "2019-08-24T14:15:22Z",
- "warehouses": {
- "from": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "address": {
- "street1": "string",
- "street2": "string",
- "city": "string",
- "state": "string",
- "zip_code": "string",
- "country_code": "ad",
- "email": "user@example.com",
- "phone": "string",
- "phone_extension": "string",
- "company": "string"
}
}, - "to": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}, - "lines": [
- {
- "product": {
- "id": 0
}, - "listing": {
- "sku": "string"
}, - "quantity": {
- "amount": 1
}
}
], - "is_reserving_inventory": true,
- "tags": [
- {
- "id": "string"
}
]
}, - "options": {
- "save_as": "open"
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 60 requests per minute.
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. | |
is_reserving_inventory | boolean or null Whether the transfer should reserve inventory in the |
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",
- "product": {
- "id": 0,
- "item_number": "string",
- "name": "string"
}, - "listing": {
- "store_provided_id": "string",
- "sku": "string",
- "fulfillment_network_sku": "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
}
}
]
}, - "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"
}
], - "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.
This endpoint has a rate limit of 60 requests per minute.
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"
}
], - "store_warehouse_codes": {
- "list": [
- {
- "name": "string",
- "code": "string"
}
], - "mappings": [
- {
- "code": "string",
- "warehouses": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
]
}
]
}
}
}
], - "next": "string"
}
This endpoint has a rate limit of 60 requests per minute.
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 … 163 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"
}
], - "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.
This endpoint has a rate limit of 60 requests per minute.
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 … 163 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.
This endpoint has a rate limit of 60 requests per minute.
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"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
]
}
], - "next": "string"
}
This endpoint has a rate limit of 60 requests per minute.
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 … 14 more The type of warehouse. Either |
object General settings for the warehouse. | |
object The warehouse's physical address. | |
Array of objects[ items ] A list of user-defined tags assigned to this warehouse. |
{- "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"
}, - "tags": [
- {
- "id": "string",
- "name": "string"
}
]
}
The vendors resource represents suppliers from which products are bought.
Vendors in Goflow are used for purchase orders, receipts and bills.
This endpoint has a rate limit of 60 requests per minute.
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"
}
This endpoint has a rate limit of 60 requests per minute.
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.
This endpoint has a rate limit of 60 requests per minute.
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
.
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": 1000000
}
}
]
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 12 requests per minute per
vendor-id
.
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": 1000000
}
}
}
]
}
The tags resource represents the list of user-defined tags that are available for each resource type.
Note: A maximum of 200 tags may be created for each resource type.
The reports resource provides the status and metadata for requested reports, along with a link to the generated report file.
Refer to the general reports section for details on how to generate and download reports.
This endpoint has a rate limit of 60 requests per minute.
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,
- "status": "queued",
- "request": {
- "url": "string",
- "body": { }
}, - "error": {
- "at": "2019-08-24T14:15:22Z",
- "message": "string"
}, - "completed": {
- "records_count": 0,
- "file_url": "string",
- "at": "2019-08-24T14:15:22Z",
- "available_until": "2019-08-24T14:15:22Z",
- "recorded_at": "2019-08-24T14:15:22Z"
}, - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
], - "next": "string"
}
This endpoint has a rate limit of 60 requests per minute.
id required | string The ID of the report |
id | integer <int64> The ID of the report. |
status | string Enum: queued processing completed error The current status of the report. |
object Details about the original request to generate the report. | |
object or null Details about any error that occured while generating the report. Provided when | |
object or null Details about the completed, generated report. Provided when | |
object Meta information about the report. |
{- "id": 0,
- "status": "queued",
- "request": {
- "url": "string",
- "body": { }
}, - "error": {
- "at": "2019-08-24T14:15:22Z",
- "message": "string"
}, - "completed": {
- "records_count": 0,
- "file_url": "string",
- "at": "2019-08-24T14:15:22Z",
- "available_until": "2019-08-24T14:15:22Z",
- "recorded_at": "2019-08-24T14:15:22Z"
}, - "meta": {
- "created": {
- "at": "2019-08-24T14:15:22Z",
- "by": {
- "type": "user",
- "user": {
- "username": "string"
}
}
}
}
}
This endpoint has a rate limit of 30 requests per minute.
Note: Reports that are currently
processing
cannot be deleted.
id required | string The ID of the report |
The inventory reports resource provides the ability to request multiple different inventory reports.
Reports are generated asynchronously. Refer to the general reports section for details on how to generate and download reports.
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 1,000,000 records per day.
Generate a report on inventory counts.
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
object or null Filters by which to constrain the report records. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
object or null Miscellaneous options for the report. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "warehouse_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "product_brand": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_buyer_user_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_category": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_item_number": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_manufacturer": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_status": {
- "values": [
- "active"
], - "operator": "in"
}, - "warehouse_name": {
- "values": [
- "string"
], - "operator": "in"
}
}, - "options": {
- "include_zeros": true
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 200,000 records per day.
Generate a report on the duration that products have been sitting in inventory.
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||||||||||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||||||||||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||||||||||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||||||||||||||||||||||||||||
object or null Filters by which to constrain the report records. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "product_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "product_brand": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_buyer_user_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_category": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_item_number": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_manufacturer": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_status": {
- "values": [
- "active"
], - "operator": "in"
}
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 200,000 records per day.
Generate a report on the cost of current inventory.
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||||||||||||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||||||||||||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||||||||||||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||||||||||||||||||||||||||||||
object or null Filters by which to constrain the report records. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "warehouse_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "product_brand": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_buyer_user_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_category": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_item_number": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_manufacturer": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_status": {
- "values": [
- "active"
], - "operator": "in"
}, - "warehouse_name": {
- "values": [
- "string"
], - "operator": "in"
}
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 100,000 records per day.
Generate a report on FIFO batches of inventory.
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||||||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||||||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||||||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||||||||||||||||||||||||
object or null Filters by which to constrain the report records. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "product_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "product_brand": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_buyer_user_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_category": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_item_number": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_manufacturer": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_status": {
- "values": [
- "active"
], - "operator": "in"
}, - "warehouse_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "status": {
- "values": [
- "open"
], - "operator": "in"
}, - "transaction_type": {
- "values": [
- "adjustment"
], - "operator": "in"
}
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 100,000 records per day.
Generate a report based on historical snapshots of daily inventory for a specific product.
id required | integer <int64> The internal ID of the product |
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||
object or null Filters by which to constrain the report records. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "warehouse_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "warehouse_name": {
- "values": [
- "string"
], - "operator": "in"
}
}
}
{- "id": 0,
- "location": "string"
}
This endpoint has a rate limit of 6 requests per hour.
This report has a quota limit of 1,000,000 records per day.
Generate a report based on historical snapshots of inventory for a specific date.
date required | string <date-time> The date of the snapshot |
columns required | Array of strings non-empty The columns to include in the report.
| ||||||||||||||||||||||||||||||||||
Array of objects or null A list of fields by which to sort the results. | |||||||||||||||||||||||||||||||||||
limit | integer <int32> [ 1 .. 1000000 ] Default: 1000000 The maximum number of records to generate in the report. Reports do not use pagination, so this field is primarily useful for testing purposes, allowing you to limit results and conserve your quota while experimenting with the API. | ||||||||||||||||||||||||||||||||||
format | string Default: json Enum: json jsonl csv The format in which to return the results. Note: | ||||||||||||||||||||||||||||||||||
object or null Filters by which to constrain the report records. | |||||||||||||||||||||||||||||||||||
object or null Miscellaneous options for the report. |
id | integer <int64> The internal ID of the newly-created resource. |
location | string The URL from which to get the resource. |
{- "columns": [
- "string"
], - "order_by": [
- {
- "field": "warehouse_id",
- "direction": "asc"
}
], - "limit": 1000000,
- "format": "json",
- "filters": {
- "product_brand": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_buyer_user_name": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_category": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_item_number": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_manufacturer": {
- "values": [
- "string"
], - "operator": "in"
}, - "product_status": {
- "values": [
- "active"
], - "operator": "in"
}, - "warehouse_name": {
- "values": [
- "string"
], - "operator": "in"
}
}, - "options": {
- "include_zeros": true
}
}
{- "id": 0,
- "location": "string"
}
The reports quotas resource returns ongoing details about the current state of the quotas for each report. It describes how many records are allowed per period, how many were already generated, how many are still available etc.
Refer to the general reports section for details on how to use reports.
This endpoint has a rate limit of 60 requests per minute.
type required | string Enum: inventory_counts inventory_aging inventory_values inventory_batches inventory_history_by_product … 1 more |
object The quota policy for this report type. | |
consumed | integer <int64> The amount of records that were generated within the current period (see |
available | integer <int64> The amount of records still available within the current period (see |
replenishes_at | string <date-time> The time at which the next period starts (see |
{- "quota": {
- "allowance": 0,
- "per_period": "day"
}, - "consumed": 0,
- "available": 0,
- "replenishes_at": "2019-08-24T14:15:22Z"
}