POST or PUT), Trackstar forwards that request directly to the underlying integration in real time. We respond immediately with the success or error status from the integration, including any error messages or validation feedback provided by the integration itself. This ensures transparency and helps with rapid debugging and resolution when issues arise.
We have done the heavy lifting to unify the body of each action across integrations, so you can write data in a consistent way across all of them. For each resource, we call this the “Base Schema”. See the Create Order Base Schema as an example.
The required and optional fields may vary depending on the integration you are writing to. Additionally, some integrations may require a field that is unique to them. To handle these cases, we have also included each integration’s schema in the reference. See Extensiv’s Create Order Schema for an example.
On the API side, we have created an endpoint that will return the required and optional fields for a given integration.
The /write-info endpoint
The GET Write Info endpoint returns information on our supported integrations in standard OpenAPI format. The required and optional fields are denoted in the response. If you choose to pass in the optional access token, you will also get any connection-specific information you might need about writing data. Here’s an example from hitting/integrations/wms/ongoing (truncated for just Returns):
Write endpoints your org has disabled return a
403 (e.g. create_order is disabled for this connection) without reaching the integration.Example Create Return Request
Based on the response from the/write-info endpoint, the required and optional fields to create an order in the Some WMS integration are as follows:
Let’s send in all of the fields for this request:
Non Nullable Fields
All fields in the write body are non-nullable. You cannot send anull / "none" / empty string for any field. This is because nulls are ambiguous: they could mean you want the field blank on purpose, or maybe you’re just using a default. The underlying systems also disagree on what a null should do (some clear the field, some reject the request, some ignore it). Rather than guess and risk writing data you didn’t intend, we reject the request up front. If you don’t mean to set a field, leave it out of the body entirely.
For example, tracking_number and tracking_url are optional fields. Sending in the following request will result in a 422 error response:
Don’t See a Field You Need?
If the field is part of Trackstar’s schema (thinkorder_number, carrier_name, expected_arrival_date etc) then reach out to us and we’ll gladly expose it for you if the integration allows.