Create Source
post
https://api.flxpoint.com/sourcesUse this when you want to create source 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.
Create a new source. This endpoint requires an Account level API token
Request
Body
application/jsonnamestringrequireddescriptionstringtypeHandlestringrequiredallowed
data_sourceinternal_warehouseexternal_warehousevendor_warehouseaddressobjectRequest to create a new address if it does not already exist. State/State Code and Country/Country Code can be populated based on the data available. (i.e. "FL" could be passed to "stateCode" to derive the "state" value "Florida" - also works in the opposite direction).
namestringIf `name` is provided and `firstName` and `lastName` are not provided, we will split this into a `firstName` and `lastName` fields
firstNamestringlastNamestringaddressLine1stringcitystringpostalstringPostal / Zip Code
addressLine2stringstatestringIf "state code" is provided, this field will automatically be populated for US States.
countrystringIf "country code" is populated, this will automatically be populated for most countries.
stateCodestringIf "state" is populated, this will automatically be populated for US States.
countryCodestringIf "country" is populated, this will automatically be populated for most countries. ISO 3166 format
emailstring (email)phonestringcompanyNamestringrateShoppingbooleanThe 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.
vendorIdintegerThe `Vendor` ID associated to a Source
commitStockbooleanWhen `true` purchase orders generated to this source will automatically have stock committed for the relevant inventory variants.
allowBackordersbooleanIt will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock.
containsFirearmsbooleanExample request
post
/sourcescurl -X POST "https://api.flxpoint.com/sources" \
-H "Accept: application/json" \
-H "X-API-TOKEN: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"description": "string",
"typeHandle": "data_source",
"address": {
"name": "Joe Smith",
"firstName": "Joe",
"lastName": "Smith",
"addressLine1": "1000 1st Lane",
"city": "Jacksonville",
"postal": "12345",
"addressLine2": "Suite 123",
"state": "Florida",
"country": "United States",
"stateCode": "FL",
"countryCode": "US",
"email": "person@example.com",
"phone": "1-555-123-4567",
"companyName": "string"
},
"rateShopping": true,
"releaseCommittedStockOnShipmentAdded": true,
"releaseCommittedStockOnQuantityUpdate": true,
"vendorId": 0,
"commitStock": true,
"allowBackorders": true,
"containsFirearms": true
}'Example body · application/json
{
"name": "string",
"description": "string",
"typeHandle": "data_source",
"address": {
"name": "Joe Smith",
"firstName": "Joe",
"lastName": "Smith",
"addressLine1": "1000 1st Lane",
"city": "Jacksonville",
"postal": "12345",
"addressLine2": "Suite 123",
"state": "Florida",
"country": "United States",
"stateCode": "FL",
"countryCode": "US",
"email": "person@example.com",
"phone": "1-555-123-4567",
"companyName": "string"
},
"rateShopping": true,
"releaseCommittedStockOnShipmentAdded": true,
"releaseCommittedStockOnQuantityUpdate": true,
"vendorId": 0,
"commitStock": true,
"allowBackorders": true,
"containsFirearms": true
}Responses
200OKapplication/json
idintegerrequirednamestringdescriptionstringinsertedAtstring (date-time)addressIdintegerrateShoppingbooleanThe 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.
vendorIdintegerThe `Vendor` ID associated to a Source
typeobjectidintegernamestringallowed
Data SourceInternal WarehouseExternal WarehouseVendor Warehousehandlestringallowed
data_sourceinternal_warehouseexternal_warehousevendor_warehousecurrencyobjectidintegerrequiredcodestringrequirednamestringsymbolstringunicodeDecimalstringaddressobjectidintegernamestringField created real-time by concatenating "firstName" and "lastName"
addressLine1stringaddressLine2stringcitystringstatestringcountrystringstateCodestringcountryCodestringpostalstringPostal / Zip Code of address
emailstringphonestringFree form string field, format isn't enforced
companyNamestringfirstNamestringlastNamestringredactedbooleanRepresents 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.
hashstringRepresents a unique hash of this address.
commitStockbooleanWhen `true` purchase orders generated to this source will automatically have stock committed for the relevant inventory variants.
allowBackordersbooleanIt will allow the variants to be fulfilled/routed to during PO generation regardless of whether or not it is in stock.
vendorobjectA `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
idintegerThe ID of the Vendor
createdByUserIdintegerWhen 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.
namestringdescriptionstringportalEnabledbooleanThis 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.
containsFirearmsWorkflowEventIdintegercontainsFirearmsbooleanshippingCostWorkflowEventIdintegerdropshipFeeWorkflowEventIdintegerintegrationsarray[any]settingsarray[SourceSetting]idintegerrequiredThe `SourceSetting` ID
settingobjectrequiredidintegerthe `Setting` ID
namestringrequiredA friendly name or title for the Setting
handlestringrequiredThe `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`
typestringrequiredThe 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
allowed
imgbooleantime_interval_thresholdemailstringtextselectnumberradiomultijsonvalueTypestringrequiredThe 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
allowed
integerbooleantime_interval_thresholdstringselectemaildecimalnumbermultijsonplaceholderstringAn 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.
defaultValuestringThe `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.
descriptionstringDescription of the setting - this will appear below the setting name in the UI when a user is configuring it.
optionsstringA 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.
parentSettingIdintegerIf 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.
categoryobjectidintegerhandlestringallowed
supplier.settingsdealer.invoice.settingsaccount.settingsnotificationsaccount.b2bchannel.settingsfeature_flagsdealer.channel.settingssource.settingsvendor.settingsnamestringsourceIdintegerId of channel this channel setting belong to.
valuestringrequiredThe setting value that is configured
insertedAtstring (date-time)updatedAtstring (date-time)autoCreateListingsWorkflowEventIdintegerautoRebuildEnabledOnstring (date-time)autoRebuildConfirmedByUserstringautoListEnabledOnstring (date-time)autoListConfirmedByUserstringautoCreateListingsForAllInventoriesbooleanautoCreateListingsForSpecificInventoriesbooleanautoGenerateInvoiceWorkflowIdintegerExample response
{
"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": 0,
"setting": {
"id": 0,
"name": "string",
"handle": "string",
"type": "img",
"valueType": "integer",
"placeholder": "string",
"defaultValue": "string",
"description": "string",
"options": "string",
"parentSettingId": 0,
"category": {
"id": null,
"handle": null,
"name": null
}
},
"sourceId": 0,
"value": "string",
"insertedAt": "2026-04-20T00:00:00Z",
"updatedAt": "2026-04-20T00:00:00Z"
}
],
"autoCreateListingsWorkflowEventId": 0,
"autoRebuildEnabledOn": "2026-04-20T00:00:00Z",
"autoRebuildConfirmedByUser": "string",
"autoListEnabledOn": "2026-04-20T00:00:00Z",
"autoListConfirmedByUser": "string",
"autoCreateListingsForAllInventories": true,
"autoCreateListingsForSpecificInventories": true,
"autoGenerateInvoiceWorkflowId": 0
}401Unauthorized
No schema documented for this status.
OpenAPI fragment
{
"post": {
"summary": "Create Source",
"description": "Create a new source. This endpoint requires an Account level API token",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateSourceRequest"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Source"
}
}
}
},
"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