FlxpointAPI Help CenterBeta

Add Routing Group Sources

puthttps://api.flxpoint.com/routing-groups/{id}/sources

Use this when you want to replace routing data through the API.

🔑 X-API-TOKEN⏱ 2 req/sToken: Account · Source · Channel

This page explains the endpoint. To send a live test request, use the interactive tester in Stoplight or your own Postman / HTTP client.

Allows you to PUT `RoutingGroupSource`s into a `RoutingGroup`.

If the `sourceId` provided in the `PutRoutingGroupSource` already exists for a given `RoutingGroup`, that PUT entry will update the contents of that matching `RoutingGroupSource`.

Otherwise, this PUT entry will create a new `RoutingGroupSource` for any new `sourceId`s provided.

This requires Account-level Token privileges.

Request

Bodyapplication/json
array[PutRoutingGroupSource]
array of routing group sources
sourceIdinteger
The `Source` ID for this `RoutingGroupSource`
eligibleboolean
If this is set to `true` the Source will be eligible for receiving POs/FRs (meaning that source will be considered during the Order Routing process) If this is set to `false` OR a Source does not have an RoutingGroupSource entry for this routing group - the source will not be eligible for receiving POs/FRs. Default `true`.
default true
priorityinteger
When using the `Preferred Sources` `RoutingPriority` - this determines the "most preferred" Source. `1` is the **most** important / preferred `999` is the **least** important / preferred
default 999
shippingAddressIdinteger
(Optional) This allows you to overwrite the Shipping Address for any POs/FRs that are routing through this RoutingGroupSource. Scenario : Perhaps an Order needs to be routed through your warehouse before it reaches the customer. You can create a RoutingGroup dedicated to this and use this shippingAddressId on all RoutingGroupSource entries to ship the Order to your warehouse first.
suppressTrackingboolean
If you are leveraging the shippingAddressId, this flag will set the PurchaseOrder flag suppressTracking to true when it's generated through this RoutingGroupSource. This will ensure that any Shipments that are added will not be synced back to the Channel. The primary use case behind this is in conjunction with the shippingAddressId override : "don't send a tracking # to the end customer when it's for my warehouse"
default false

Example request

put/routing-groups/{id}/sources
curl -X PUT "https://api.flxpoint.com/routing-groups/{id}/sources" \
  -H "Accept: application/json" \
  -H "X-API-TOKEN: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[
         {
           "sourceId": 0,
           "eligible": true,
           "priority": 0,
           "shippingAddressId": 0,
           "suppressTracking": true
         }
       ]'
Example body · application/json
[
  {
    "sourceId": 0,
    "eligible": true,
    "priority": 0,
    "shippingAddressId": 0,
    "suppressTracking": true
  }
]

Responses

200OKapplication/json
array[RoutingGroupSource]
array of routing group sources
idinteger
The `RoutingGroupSource` ID
routingGroupIdinteger
The `RoutingGroup` ID
sourceIdinteger
The `Source` ID
eligibleboolean
If this is set to `true` the Source will be eligible for receiving POs/FRs (meaning that source will be considered during the Order Routing process) If this is set to `false` OR a Source does not have an `RoutingGroupSource` entry for this routing group - the source will not be eligible for receiving POs/FRs.
priorityinteger
When using the `Preferred Sources` `RoutingPriority` - this determines the "most preferred" Source. `1` is the **most** important / preferred `999` is the **least** important / preferred
default 999
shippingAddressIdinteger
(Optional) This allows you to overwrite the Shipping Address for any POs/FRs that are routing through this `RoutingGroupSource`. Scenario : Perhaps an Order needs to be routed through your warehouse before it reaches the customer. You can create a `RoutingGroup` dedicated to this and use this `shippingAddressId` on all `RoutingGroupSource` entries to ship the Order to your warehouse first.
suppressTrackingboolean
If you are leveraging the `shippingAddressId`, this flag will set the `PurchaseOrder` flag `suppressTracking` to true when it's generated through this `RoutingGroupSource`. This will ensure that any `Shipment`s that are added will not be synced back to the Channel. The primary use case behind this is in conjunction with the `shippingAddressId` override : "don't send a tracking # to the end customer when it's for my warehouse"
sourceobject
This object represents the basic properties of a Source. To learn more about sources, visit https://docs.flxpoint.com/flxpoint/sources. Note : Some of these properties (i.e. "address") may not be populated if the Source is being returned as a supporting property (i.e. the "/jobs" endpoint)
idintegerrequired
namestring
descriptionstring
insertedAtstring (date-time)
addressIdinteger
rateShoppingboolean
The setting that determines if this Source attempts to use Rate Shopping (for all requirements of Rate Shopping, see https://docs.flxpoint.com/flxpoint/rate-shopping)
releaseCommittedStockOnShipmentAddedbooleandeprecated
**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as Shipments are added. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes.
releaseCommittedStockOnQuantityUpdatebooleandeprecated
**(This setting is deprecated, please reach out to our team before using)** If `true`, committed stock will be released as soon as inventory variant quantity is changed. If `false`, committed stock will be released after Shipments are added AND Inventory quantity changes.
vendorIdinteger
The `Vendor` ID associated to a Source
typeobject
idinteger
namestring
allowedData SourceInternal WarehouseExternal WarehouseVendor Warehouse
handlestring
alloweddata_sourceinternal_warehouseexternal_warehousevendor_warehouse
currencyobject
idintegerrequired
codestringrequired
namestring
symbolstring
unicodeDecimalstring
addressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
commitStockboolean
When `true` purchase orders generated to this source will automatically have stock committed for the relevant inventory variants.
allowBackordersboolean
It will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock.
vendorobject
A `Vendor` represents a fulfillment partner you interact with. A `Vendor` can have multiple `Source`s associated to it. One way to think of "Vendors" and "Sources" is a Vendor with multiple fulfillment centers (i.e. East & West Warehouses are 2 Sources associated to a single Vendor). Vendors can have a "Vendor Portal" enabled to allow the Vendor to perform manual interactions (like updating inventory or shipping POs sent to them). For more information, visit our documentation : https://docs.flxpoint.com/flxpoint/vendor-management
idinteger
The ID of the Vendor
createdByUserIdinteger
When a Vendor is created in-app, a `User` ID is tracked.
createdAtstring (date-time)
Timestamp of when the Vendor was created.
deletedAtstring (date-time)
Timestamp of when the Vendor was deleted/archived.
namestring
descriptionstring
portalEnabledboolean
This flag determines if the Vendor can access a Vendor Portal to manually interact with Inventory/PO flows. If this flag is `true` - there is still a requirement to ensure you have a portal configured. To configure a Vendor Portal, you have to setup a subdomain such as : `example.vendors.flxpoint.com` You can either do this via the UI (feature launching in late 2021) or via a ticket to our Support Team.
containsFirearmsWorkflowEventIdinteger
containsFirearmsboolean
shippingCostWorkflowEventIdinteger
dropshipFeeWorkflowEventIdinteger
integrationsarray[any]
settingsarray[SourceSetting]
idintegerrequired
The `SourceSetting` ID
settingobjectrequired
idinteger
the `Setting` ID
namestringrequired
A friendly name or title for the Setting
handlestringrequired
The `handle` represents a quick human-readable version of the `id` to understand what a setting relates to. Some example handles can be found below. To retrieve a complete list of setting handles, retrieve back a list of Settings and leverage the retrieved handles. - `source.send_po_from_vendor_portal` - `source.cancel_unacknowledged_items` - `source.upload_inventory_from_vendor_portal` - `source.upload_shipment_from_vendor_portal` - `source.upload_invoice_from_vendor_portal`
typestringrequired
The type of setting. This determines how you may present the selection or setting to a user. - `string` = a short text input - `text` = a long text input - `number` = a numeric input - `img` = an image link input - `email` = a valid email address input - `boolean` = a true/false toggle choice - `select` = some form of selection, select settings means the `options` field must be populated with possible selections
allowedimgbooleantime_interval_thresholdemailstringtextselectnumberradiomultijson
valueTypestringrequired
The type of value the setting is expecting. - `integer` = a whole number value - `decimal` = a decimal number value - `string` = a short text value - `boolean` = a true/false value
allowedintegerbooleantime_interval_thresholdstringselectemaildecimalnumbermultijson
placeholderstring
An optional "placeholder" that will be used for text or numeric based inputs. Note : a placeholder is different than "defaultValue". Placeholders simply suggest a value. Often times placeholders might be used to suggest a value on an input that we cannot default for other reasons.
defaultValuestring
The `defaultValue` represents our recommended selection for a given Setting. For example, the "Protect Against Duplicate Orders" setting has a `defaultValue : true` to promote all new users to leverage this functionality by default.
descriptionstring
Description of the setting - this will appear below the setting name in the UI when a user is configuring it.
optionsstring
A field expecting a `JSON Array` in the format : `[{ "[value]" : "[descriptor]"}]` where : - `[value]` = the value of the selection that will be stored in the `value` field when saved - `[descriptor]` = a way to describe the selection to users so they know what they are choosing. An example for this is : - `payment_provider` setting - `options` : `{"1" :"Stripe" ,"2" : "Square"}` `Stripe` and `Square` appear in a dropdown. When a user chooses `Stripe` we store `1` in the `value` field.
parentSettingIdinteger
If the setting is associated to another setting, this field may be populated. For example, you may choose to `Override PO Cancellations` notifications to go to a separate email address. To do this you may configure the `notification.purchase_order_canceled.override_email` setting. This override setting has a `parentSettingId` to the standard email notification `notification.purchase_order_canceled` This field is primarily used for UI purposes to nest additional settings below a parent setting.
categoryobject
idinteger
handlestring
allowedsupplier.settingsdealer.invoice.settingsaccount.settingsnotificationsaccount.b2bchannel.settingsfeature_flagsdealer.channel.settingssource.settingsvendor.settings
namestring
sourceIdinteger
Id of channel this channel setting belong to.
valuestringrequired
The setting value that is configured
insertedAtstring (date-time)
updatedAtstring (date-time)
autoCreateListingsWorkflowEventIdinteger
autoRebuildEnabledOnstring (date-time)
autoRebuildConfirmedByUserstring
autoListEnabledOnstring (date-time)
autoListConfirmedByUserstring
autoCreateListingsForAllInventoriesboolean
autoCreateListingsForSpecificInventoriesboolean
autoGenerateInvoiceWorkflowIdinteger
shippingAddressobject
idinteger
namestring
Field created real-time by concatenating "firstName" and "lastName"
addressLine1string
addressLine2string
citystring
statestring
countrystring
stateCodestring
countryCodestring
postalstring
Postal / Zip Code of address
emailstring
phonestring
Free form string field, format isn't enforced
companyNamestring
firstNamestring
lastNamestring
redactedboolean
Represents if the address information was related to an Order with a PII (Personably Identifiable Information) retention policy attached. If the Order exceeds the PII retention period, this address will have information redacted.
hashstring
Represents a unique hash of this address.
Example response
[
  {
    "id": 0,
    "routingGroupId": 0,
    "sourceId": 0,
    "eligible": true,
    "priority": 0,
    "shippingAddressId": 0,
    "suppressTracking": true,
    "source": {
      "id": 0,
      "name": "string",
      "description": "string",
      "insertedAt": "2026-04-20T00:00:00Z",
      "addressId": 0,
      "rateShopping": true,
      "releaseCommittedStockOnShipmentAdded": true,
      "releaseCommittedStockOnQuantityUpdate": true,
      "vendorId": 0,
      "type": {
        "id": 0,
        "name": "Data Source",
        "handle": "data_source"
      },
      "currency": {
        "id": 0,
        "code": "string",
        "name": "string",
        "symbol": "string",
        "unicodeDecimal": "string"
      },
      "address": {
        "id": 0,
        "name": "Joe Smith",
        "addressLine1": "120 1st Lane",
        "addressLine2": "Suite 123",
        "city": "Jacksonville",
        "state": "Florida",
        "country": "United States",
        "stateCode": "FL",
        "countryCode": "US",
        "postal": "12345",
        "email": "person@example.com",
        "phone": "1-555-123-4567",
        "companyName": "string",
        "firstName": "Joe",
        "lastName": "Smith",
        "redacted": true,
        "hash": "string"
      },
      "commitStock": true,
      "allowBackorders": true,
      "vendor": {
        "id": 0,
        "createdByUserId": 0,
        "createdAt": "2026-04-20T00:00:00Z",
        "deletedAt": "2026-04-20T00:00:00Z",
        "name": "string",
        "description": "string",
        "portalEnabled": true
      },
      "containsFirearmsWorkflowEventId": 0,
      "containsFirearms": true,
      "shippingCostWorkflowEventId": 0,
      "dropshipFeeWorkflowEventId": 0,
      "integrations": [
        null
      ],
      "settings": [
        {
          "id": null,
          "setting": null,
          "sourceId": null,
          "value": null,
          "insertedAt": null,
          "updatedAt": null
        }
      ],
      "autoCreateListingsWorkflowEventId": 0,
      "autoRebuildEnabledOn": "2026-04-20T00:00:00Z",
      "autoRebuildConfirmedByUser": "string",
      "autoListEnabledOn": "2026-04-20T00:00:00Z",
      "autoListConfirmedByUser": "string",
      "autoCreateListingsForAllInventories": true,
      "autoCreateListingsForSpecificInventories": true,
      "autoGenerateInvoiceWorkflowId": 0
    },
    "shippingAddress": {
      "id": 0,
      "name": "Joe Smith",
      "addressLine1": "120 1st Lane",
      "addressLine2": "Suite 123",
      "city": "Jacksonville",
      "state": "Florida",
      "country": "United States",
      "stateCode": "FL",
      "countryCode": "US",
      "postal": "12345",
      "email": "person@example.com",
      "phone": "1-555-123-4567",
      "companyName": "string",
      "firstName": "Joe",
      "lastName": "Smith",
      "redacted": true,
      "hash": "string"
    }
  }
]
400Bad Request

No schema documented for this status.

401Unauthorized

No schema documented for this status.

OpenAPI fragment
{
  "put": {
    "summary": "Add Routing Group Sources",
    "description": "Allows you to PUT `RoutingGroupSource`s into a `RoutingGroup`. \n\nIf the `sourceId` provided in the `PutRoutingGroupSource` already exists for a given `RoutingGroup`, that PUT entry will update the contents of that matching `RoutingGroupSource`. \n\nOtherwise, this PUT entry will create a new `RoutingGroupSource` for any new `sourceId`s provided. \n\nThis requires Account-level Token privileges. ",
    "parameters": [],
    "requestBody": {
      "description": "",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "description": "array of routing group sources",
            "items": {
              "$ref": "#/components/schemas/PutRoutingGroupSource"
            }
          },
          "examples": {
            "example-1": {
              "value": [
                {
                  "sourceId": 0,
                  "eligible": true,
                  "priority": 999,
                  "shippingAddressId": 0,
                  "suppressTracking": true
                }
              ]
            }
          }
        }
      }
    },
    "responses": {
      "200": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "description": "array of routing group sources",
              "items": {
                "$ref": "#/components/schemas/RoutingGroupSource"
              }
            },
            "examples": {
              "example-1": {
                "value": [
                  {
                    "id": 0,
                    "routingGroupId": 0,
                    "sourceId": 0,
                    "eligible": true,
                    "shippingAddressId": 0,
                    "suppressTracking": true
                  }
                ]
              }
            }
          }
        }
      },
      "400": {
        "description": "Bad Request"
      },
      "401": {
        "description": "Unauthorized"
      }
    }
  }
}
Ready to run it? Send the curl from your terminal or Postman, or use the interactive tester in Stoplight.Open in Stoplight