---
title: "Create or update feed configuration"
method: POST
path: "/api/orders/feed/config"
tags: ["Feed v3"]
---

# Create or update feed configuration

`POST /api/orders/feed/config`

The Orders Feed v3 is the best way to create order integrations. Below you can find details on the configuration API specification, and to know more see our [Feed v3 guide](https://developers.vtex.com/vtex-rest-api/docs/orders-feed) and our [order integration guide](https://developers.vtex.com/vtex-rest-api/docs/erp-integration-set-up-order-integration)

There are two types of filtering that can be used. The `FromWorkflow` type filters orders by status, whereas the `FromOrders` type uses JSONata expressions to filter orders according to any property in the orders JSON document. This enables stores to filter delivered orders and orders in which products have been added or removed, for example. To learn more, access the [JSONata documentation](https://docs.jsonata.org/overview.html) and test filtering JSONata expressions with our [Test JSONata expression](https://developers.vtex.com/docs/api-reference/orders-api#post-/api/orders/expressions/jsonata) endpoint.

## Permissions

Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:

| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| OMS | OMS Access | **Feed v3 and Hook view only** |
| OMS | OMS Access | **Feed v3 and Hook Admin** |

There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).

>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.

## Headers

- `Accept` string, required
- `Content-Type` string, required

## Request body

- object
  - `filter` object, required — Object with type and status that will filter feed orders.
    - `type` string, required — Determines what orders appear in the feed and how they are filtered. There are two possible values: -`FromWorkflow`: the feed will receive order updates only when order's statuses change and orders can be filtered by status, using the `status` field described below. -`FromOrders`: the feed gets updates whenever any change is made to an order. In this case, orders can be filtered by any property, according to JSONata expressions passed in the `expression` field described below.
    - `status` string[] — List of order statuses that should be included in the feed. This should only be used in case `type` is set to `FromWorkflow`. The status event will be removed, if it can't deliver a message more than 100 times, 4 days progressively. **Status available to filter** - order-created - on-order-completed - on-order-completed-ffm - payment-pending - waiting-for-order-authorization - approve-payment - payment-approved - request-cancel - waiting-for-seller-decision - waiting-ffmt-authorization - waiting-for-authorization - waiting-for-manual-authorization - authorize-fulfillment - order-create-error - order-creation-error - window-to-cancel - window-to-change-seller - waiting-for-mkt-authorization - waiting-seller-handling - ready-for-handling - start-handling - handling - invoice-after-cancellation-deny - order-accepted - invoice - invoiced - replaced - cancellation-requested - cancel - canceled.
    - `expression` string — JSONata query expression that defines what conditions must be met for an order to be included in the feed. This should only be used in case `type` is set to `FromOrders`.
    - `disableSingleFire` boolean — Sets a limit to how many times a specific order shows on the feed, after it first meets filtering conditions. Using the `FromOrders` type configuration with JSONata filtering expressions might cause orders to appear more than once on a feed, whenever changes are made to that order. If this field is `false` orders will appear in the feed only once.
  - `queue` object, required — Object with information about timeout and message retention.
    - `visibilityTimeoutInSeconds` integer, required — Period of time for which an item becomes invisible after it has been [retrieved](https://developers.vtex.com/vtex-rest-api/reference/feed-v3#getfeedorderstatus1). Measured in seconds.
    - `MessageRetentionPeriodInSeconds` integer, required — Maximum life span of an order update in the feed. When a feed item is on the feed for this period of time, it is removed from the feed. Measured in seconds. The maximum number accepted in this field is `1209600` seconds.

## Response `200`

OK

## Other responses

- `403` — Forbidden The credentials are not enabled to access the service.
- `404` — Not Found Value not found.
- `429` — Too Many Requests

---

[API](https://skmtc.net/vtex/apis/orders-api.md) · [All operations](https://skmtc.net/vtex/apis/orders-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vtex/orders-api/revisions/ea03e98721e5/schema)
