Upsert Tank Many Ep
POST/v1/store/tank/upsert_many
Tank Upsert Many Endpoint
Handles the upsert (update or insert) request for tank information associated with a specific store, detailing both the request parameters and the expected response structure. Request parameters include tank and store identifiers, product details, tank capacity and dimensions, and inventory management strategies. The response indicates the success or failure of the upsert operation, including details on completed updates and errors encountered.
Request
store_id: str
Identifier of the store the tank belongs to.
store_number: str | None = None
Number of the site the tank belongs to. Use in place of store_id to identify the site by
its store number.
source_id: str | None = None
If received from integration, the identifier used for this tank within the source system.
source_system_id: str | None = None
If received from integration, the source system identifier.
tank_id: Annotated[int, Field(gt=-1)]
Positive integer that uniquely identifies the tank.
island: ConStr(strip_whitespace=True) | None = None
Specific drop area at a store for a set of products, delineating different drop points.
icon: TankLidEnum | None = None
Icon mapped to the product that shows on the tank lid.
product_id: str | None = None
Tank’s product identifier.
product: str
Tank’s product name.
description: ConStr(max_length=1000) | None = None
Tank description with a maximum length of 1000 characters.
tank_chart: str | None = None
Name of the tank chart file.
storage_max: float | None = None
Maximum amount of the product the tank can hold.
tank_size: float | None = None
Tank volume size.
fuel_bottom: float | None = None
Pumpable minimum amount of product the tank should hold.
manufacturer: str | None = None
Manufacturer of the tank.
dimensions: str | None = None
Tank dimensions (e.g., “10 X 47”).
tank_color: str | None = None
Color of the tank.
minimum_load_size: int | None = None
Minimum size of a load that can be dropped at a tank.
maximum_load_size: int | None = None
Maximum size of a load that can be dropped at a tank.
strapping_table: str | None = None
Identifier for the tank's sticking strapping table.
target_min: float | None = None
The goal minimum level of product inside the tank.
target_max: float | None = None
The goal maximum level of product inside the tank.
inventory_strategy: str | None = None
Strategy for scheduling tank supply. Supported strategies include “Keep Full”, “Keep Min”, and “Manual”.
load_tags: List[str] = []
Named load groups for order generation.
filter_tags: List[str] = []
Strings for grouping and filtering tanks in the UI.
split_me: bool | None = None
Indicates if the tank is marked for splitting.
water_reading_requirement: str | None = None
Indicates if a driver is required to enter a water measurement for the tank.
Show Water Reading Requirements
none
Drivers are not able to enter a water stick reading.
optional
Drivers are not required to enter a water stick reading, but they are able to.
required
Drivers are required to enter a water stick reading.
carrier_id: str | None = None
The unique identifier of the carrier used for the order.
carrier: str | None = None
Name of the carrier counterparty involved in the freight.
preferred_additive_id: str | None = None
Identifier of the additive product (configured in Additive Management) that should be used when
this tank requires additive treatment. None or omitted means the tank does not require additive.
extra_data: dict = {}
Any additional data provided or managed by the client through integration endpoints.
active: bool = True
Indicates whether the tank is active.
manifold_id: str | None = None
Parent manifold identifier if the tank is part of a manifold.
compliance_hold: bool | None = None
Indicates whether the tank is under compliance hold.
requires_pump: bool | None = None
Whether delivering to this tank requires a tractor with a pump.
freight_only: bool | None = None
When True, the tank is tracked for freight purposes only and is skipped by automated
order generation.
hide_tank_alerts: bool | None = None
When True, flags and runout times for this tank are suppressed. Also settable at the site
level, where it applies to every tank.
apportion_percentage: float | None = None
This tank's share of a manifold's volume, used to split an allocation across the manifold's
tanks. Shares are normalized against the other apportioned tanks in the manifold, so they
need not sum to 100.
required_gal_per_hour_for_drop: int | None = None
Minimum gallons-per-hour flow rate used to validate that a drop into this tank actually
happened. Falls back to the system-wide drop-validation setting when unset.
demand_model_tank_profile: str | None = None
Name of the demand-model tank profile used when forecasting this tank's sales.
sales_variance_percent_threshold: float | None = None
Percentage variance between forecast and actual sales that triggers a sales-variance alert
for this tank. Must be >= 0. Falls back to the system-wide threshold when unset.
sales_variance_absolute_threshold: float | None = None
Absolute volume variance between forecast and actual sales that triggers a sales-variance
alert for this tank. Must be >= 0. Falls back to the system-wide threshold when unset.
attributes: dict[str, bool | float | str] = {}
Custom attributes applied to the tank, keyed by attribute definition id.
Attribute definitions are managed in the application; each definition fixes the value type of
its entry (boolean, number, string, or presence-only exists).
Response
status: str
Indicates if the upsert was a success ("success") or failed ("fail").
completed: list[dict]
Tanks upserted successfully, including id, store_id, and tank_id.
errors: list[dict]
Errors encountered during the upsert process, including id, store_id, tank_id, and error description.
Responses
- 200
- 422
Successful Response
Validation Error
- application/json
- Example (from schema)
{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string"
}
]
}