iTrade Steel Supplier API (1.0.0)

Download OpenAPI specification:

Welcome to the iTrade Steel Supplier API. This API has been designed to provide suppliers with a straightforward and reliable way to integrate their own systems directly with the iTrade Steel platform. Whether you are updating product pricing, reporting on order manufacturing progress, uploading shipping documentation, or setting key logistics details, this API offers a clean and consistent interface for each of these workflows.

The API follows RESTful conventions and uses JSON for request and response bodies (with the exception of document uploads, which use multipart form data). Authentication is handled via a simple API key that iTrade Steel will provide to you. You include this key in every request as a header, and it takes care of both identifying your organisation and authorising access to the resources that belong to you. If you have any questions about getting started or need your API key, please reach out to your iTrade Steel account manager.

All endpoints are scoped to the supplier associated with your API key, so you will only ever see and modify your own products, pricing, orders, and documents. The API is designed to be predictable: successful responses return the updated or created resource, and errors follow a consistent structure with a machine-readable code, a human-readable message, and optional details to help you diagnose issues quickly.

Authentication

All requests to the iTrade Steel Supplier API must be authenticated using an API key. Your API key is provisioned on request by the iTrade Steel team — simply reach out to your account manager and one will be generated for your organisation. Once you have your key, include it in every request as the X-Api-Key HTTP header. No other authentication mechanism is required; there are no OAuth flows, token exchanges, or session cookies to manage.

Your API key is tied to your supplier account, which means it controls both who you are and what you can access. Every request you make is automatically scoped to your organisation's resources, so you will only ever see your own products, orders, and documents. Because the key grants full access to your supplier account, it should be treated as a secret. Store it securely in your system's configuration or secrets manager, and never expose it in client-side code, version control, or logs. If you believe your API key has been compromised, contact iTrade Steel immediately and a new key will be issued while the old one is revoked.

Products

The Products endpoints allow you to browse and search the catalogue of products that are available to your organisation on the iTrade Steel platform. Each product represents a specific combination of material, profile, grade, coating class, and dimensions such as base material thickness (BMT) and width. You can use these endpoints to look up product identifiers, which are required when updating pricing or performing other product-related operations.

Products are maintained by iTrade Steel and reflect the current catalogue offerings. By listing products, you can confirm which items are available, verify their specifications, and retrieve the product IDs needed for downstream API calls such as pricing updates. Filtering options are provided so that you can narrow results by profile, material, grade, or other attributes, making it easy to find exactly what you need without scrolling through the entire catalogue.

List products

Returns a paginated list of products available to your organisation on the iTrade Steel platform. Each product in the response includes its key specifications such as material, profile, grade, coating class, base material thickness, and width, along with identifiers that you can use in other API calls. This endpoint is particularly useful for discovering product IDs that are required when updating pricing.

You can filter results using query parameters to narrow the list down to specific profiles, materials, grades, or coating classes. If no filters are provided, all products available to your organisation are returned. Results are paginated, so for large catalogues you should use the page and per_page parameters to step through the full list. The response includes pagination metadata to help you navigate through the result set.

Authorizations:
ApiKeyAuth
query Parameters
profile
string
Example: profile=coil

Filter products by their profile name. Only products matching the specified profile will be returned in the results.

material
string
Example: material=colorbond

Filter products by their material name. Only products with a matching material will be included in the response.

grade
string
Example: grade=G550

Filter products by steel grade. This allows you to narrow results to a specific grade such as G550 or G300.

coating_class
string
Example: coating_class=AZ150

Filter products by their coating classification. Use this to find products with a specific coating such as AZ150 or Z275.

page
integer >= 1
Default: 1

The page number to retrieve when paginating through results. Defaults to 1 if not specified.

per_page
integer [ 1 .. 100 ]
Default: 25

The number of products to return per page. Defaults to 25 and cannot exceed 100.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Pricing

The Pricing endpoints enable you to update mill direct pricing for your products on the iTrade Steel platform. Keeping your pricing current is essential for ensuring that customers see accurate quotes when they browse and order products. Rather than relying on manual spreadsheet uploads or email exchanges, this API lets you push price updates directly from your own systems whenever your pricing changes.

Each pricing update is associated with a specific product and can include optional attributes that affect the final price, such as paint technology, paint type, and whether the product is single-sided or double-sided. You can also set an expiry date on your pricing so that it automatically becomes invalid after a certain point. This helps prevent stale pricing from persisting on the platform and gives you full control over the lifecycle of each price point.

Update mill direct pricing for a product

Updates the pricing details for a specific product in a single request. You must provide the base unit price, and you can optionally include an expiry date, a colour identifier, and price-affecting attributes that influence the final quoted price. Price-affecting attributes let you capture options such as paint technology (e.g. SADP, RMP, epoxy), paint type (standard or patterned), and whether the finish is single-sided or double-sided.

The pricing you submit here will be used by the iTrade Steel platform when generating quotes for customers. It is important to keep your pricing up to date so that customers receive accurate and competitive quotes. If you set a valid_to date, the pricing will automatically expire at that time and will no longer be used for new quotes. You can update pricing as frequently as you need, and each update fully replaces the previous pricing values for the specified product and attribute combination.

Authorizations:
ApiKeyAuth
path Parameters
product_id
required
integer >= 1

The unique identifier of the product. You can obtain product IDs by using the list products endpoint.

Request Body schema: application/json
required
unit_base_price
required
number

The base unit price for the product, expressed in the supplier's agreed currency. This is the foundational price before any adjustments for paint, colour, or other attributes.

valid_to
string or null <date-time>

An optional expiry time for this pricing. After this date and time, the pricing will no longer be used for new customer quotes. If set to null or omitted, the pricing remains valid indefinitely until replaced by a new update.

colour_id
integer or null

An optional colour identifier that links this pricing to a specific colour. When provided, this pricing applies only to the product in the specified colour.

object (PriceAffectingAttributes)

Responses

Request samples

Content type
application/json
{
  • "unit_base_price": 980.5,
  • "valid_to": "2026-01-31T23:59:59Z",
  • "price_affecting_attributes": {
    }
}

Response samples

Content type
application/json
{
  • "id": 310,
  • "product_id": 42,
  • "unit_base_price": 980.5,
  • "valid_to": "2026-01-31T23:59:59Z",
  • "colour_id": 12,
  • "price_affecting_attributes": {
    },
  • "updated_at": "2026-01-04T01:23:45Z"
}

Documents

The Documents endpoints provide a single, consistent upload flow for attaching shipping and trade documents to orders. Throughout the lifecycle of an order, various documents need to be provided, ranging from draft shipping documents like the bill of lading, weight list, and packing list, through to final documents such as the fumigation certificate, certificate of origin, and mill test certificate.

When you upload a document, you specify the document type so that iTrade Steel can route it to the correct processing workflow automatically. Each uploaded file is associated with the relevant order and can be tracked by its status. This removes the need for email-based document exchanges and gives both you and iTrade Steel a clear, auditable record of every document that has been provided for each shipment.

Upload an order document

Uploads a shipping or trade document and attaches it to the specified order. You must indicate the type of document you are uploading using the document_type field, which tells the platform how to categorise and process the file. Supported document types include bill of lading, weight list, packing list, commercial invoice, mill test certificate, fumigation certificate, certificate of origin, packing declaration, container list, insurance policy, beneficiary certificate, and a general-purpose "other" category.

The file should be uploaded as binary data using multipart form encoding. You can optionally provide the original filename, which will be preserved alongside the system-generated filename for reference. Once uploaded, the document is immediately associated with the order and assigned a status of "uploaded". The response returns the full document record, including its unique identifier and timestamps, so you can confirm the upload was successful and reference the document in future communications.

Authorizations:
ApiKeyAuth
path Parameters
order_id
required
integer >= 1

The unique identifier of the order. This corresponds to the order ID shown in the iTrade Steel platform and in order-related communications.

Request Body schema: multipart/form-data
required
document_type
required
string (DocumentType)
Enum: "bill_of_lading" "weight_list" "packing_list" "commercial_invoice" "mill_test_certificate" "fumigation_certificate" "certificate_of_origin" "packing_declaration" "container_list" "insurance_policy" "beneficiary_certificate" "other"
file
required
string <binary>

The document file to upload. This should be the raw binary content of the file, typically a PDF. The file is sent as part of a multipart form data request.

original_filename
string or null

The original filename of the document as it exists in your system. This is optional but helpful for record-keeping, as it allows both you and iTrade Steel to identify the file by its original name in addition to the system-generated identifier.

Responses

Request samples

Content type
multipart/form-data
{
  "document_type": "bill_of_lading",
  "file": "binary-data",
  "original_filename": "BL_1234.pdf"
}

Response samples

Content type
application/json
{
  • "id": 981,
  • "order_id": 5521,
  • "document_type": "bill_of_lading",
  • "filename": "BL_1234.pdf",
  • "original_filename": "BL_1234.pdf",
  • "status": "uploaded",
  • "created_at": "2026-01-04T01:23:45Z",
  • "updated_at": "2026-01-04T01:24:10Z"
}

Manufacturing

The Manufacturing endpoints allow you to report on the production progress of orders by updating the status of individual manufacturing steps. Each order moves through a series of defined stages, from raw material preparation through processing, packaging, and loading onto a vessel. By setting planned and actual timestamps for each step, you give iTrade Steel and the end customer clear visibility into where an order stands in the production pipeline.

Keeping manufacturing status up to date is valuable for everyone involved in the supply chain. Customers appreciate being able to see real-time progress on their orders, and iTrade Steel can proactively manage logistics and expectations based on accurate production data. If a step is completed ahead of or behind schedule, simply update the actual timestamp and the platform will reflect the latest information immediately.

Update manufacturing status for an order

Updates the planned and actual timestamps for a specific manufacturing step on an order. Manufacturing steps represent the key stages of production, including raw material preparation, processing, packaging, and loading onto a vessel. By providing timestamps for each step, you create a detailed timeline of the order's journey through your production facility.

You identify the step to update using the step_title field, and then provide either a planned_at timestamp, an actual_at timestamp, or both. The planned_at timestamp indicates when you expect the step to be completed, while the actual_at timestamp records when the step was actually finished. Setting the actual_at timestamp effectively marks that step as complete. You can update these timestamps as many times as needed, for example to revise a planned date or to correct an actual completion time.

Authorizations:
ApiKeyAuth
path Parameters
order_id
required
integer >= 1

The unique identifier of the order. This corresponds to the order ID shown in the iTrade Steel platform and in order-related communications.

Request Body schema: application/json
required
step_title
required
string (ManufacturingStepTitle)
Enum: "Raw Material" "Processing" "Packaging" "Loading Ship"
planned_at
string or null <date-time>

The planned completion time for this manufacturing step. Set this to indicate when you expect the step to be finished. You can update this value if your production schedule changes.

actual_at
string or null <date-time>

The actual completion time for this manufacturing step. Setting this value indicates that the step has been completed. If the step was completed ahead of or behind schedule, this timestamp captures the real completion time.

Responses

Request samples

Content type
application/json
{
  • "step_title": "Processing",
  • "planned_at": "2026-01-12T00:00:00Z",
  • "actual_at": "2026-01-10T00:00:00Z"
}

Response samples

Content type
application/json
{
  • "id": 145,
  • "order_id": 5521,
  • "title": "Processing",
  • "planned_at": "2026-01-12T00:00:00Z",
  • "actual_at": "2026-01-10T00:00:00Z"
}

Shipping

The Shipping endpoints let you provide key logistics details for orders that are ready to ship or are already in transit. This includes the vessel name, the bill of lading or booking number, and the estimated time of departure (ETD). These details are essential for iTrade Steel to coordinate customs clearance, arrange port logistics, and keep customers informed about when their goods will arrive.

You can update shipping information at any point before or during transit. For example, you might initially set the vessel name and ETD when the booking is confirmed, and then update the bill of lading number once the cargo has been loaded and the carrier has issued the document. Each update replaces the previous values, so the platform always reflects the most current shipping details for the order.

Set shipping information for an order

Updates the shipping details for a specific order. You can provide the vessel name, the bill of lading or booking number, and the estimated time of departure (ETD). These details are critical for iTrade Steel to manage downstream logistics, including customs clearance, port coordination, and customer notifications about expected delivery windows.

All three fields are optional on each request, so you can update them incrementally as information becomes available. For example, you might set the vessel name and ETD when the booking is first confirmed, and then add the bill of lading number once the goods have been loaded. Each call replaces the values you provide while leaving unspecified fields unchanged. The response returns the complete, up-to-date shipping information for the order so you can verify what is currently recorded.

Authorizations:
ApiKeyAuth
path Parameters
order_id
required
integer >= 1

The unique identifier of the order. This corresponds to the order ID shown in the iTrade Steel platform and in order-related communications.

Request Body schema: application/json
required
vessel_name
string or null

The name of the vessel that will carry or is carrying the shipment. Set this when the booking is confirmed and the vessel has been assigned.

bill_of_lading_number
string or null

The bill of lading or booking reference number issued by the shipping line. This is typically available once the cargo has been loaded onto the vessel.

etd
string or null <date-time>

The estimated time of departure for the vessel from the port of loading. This helps iTrade Steel coordinate downstream logistics and communicate expected arrival windows to customers.

Responses

Request samples

Content type
application/json
{
  • "vessel_name": "Pacific Trader",
  • "bill_of_lading_number": "BL-2026-00123",
  • "etd": "2026-02-03T00:00:00Z"
}

Response samples

Content type
application/json
{
  • "order_id": 5521,
  • "vessel_name": "Pacific Trader",
  • "bill_of_lading_number": "BL-2026-00123",
  • "etd": "2026-02-03T00:00:00Z",
  • "updated_at": "2026-02-01T01:23:45Z"
}