Carrier’s official API

SEKO Logistics API: integration guide

SEKO Logistics publishes its parcel integration documentation for OmniParcel, SEKO's outbound consignment management system for domestic and cross-border eCommerce shipping. The OmniParcel REST/JSON API creates consignments and returns carrier labels, checks available rates, manifests and deletes consignments, and delivers tracking by API, webhook or CSV file. It is aimed at retailers, marketplaces and the order or warehouse systems that ship parcels through a SEKO OmniParcel account. Other SEKO services (air, ocean and domestic freight forwarding) are not covered by this public documentation.

This guide covers SEKO Logistics’s own API (api.omniparcel.com). Credentials come from SEKO Logistics, not from FreightAPIs, and we are not affiliated with them.

Want one API key for carrier terminals, NMFC and ports instead? SEKO Logistics location API · FreightAPIs API docs →

Interface REST/JSONEndpoints 6Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierSEKO Logistics
TypeFreight forwarder & cross-border eCommerce parcel shipper
InterfaceREST/JSON
AuthenticationStatic access key in a request header
CapabilitiesConsignment creation & labels, Available rates, Manifest, Consignment delete, Label reprint, Tracking

Getting access

  • You need a SEKO OmniParcel account. The OmniParcel FAQ says API keys are issued through your SEKO account manager; there is no self-service signup.
  • Testing uses a separate staging environment with its own account and its own API key. Ask your account manager for a staging login and key.
  • Every consignment is created under a "site" account. If OmniParcel needs to push print jobs to several printers, each printer needs its own access key.
  • The FAQ says you do not need to whitelist IP addresses.
  • The public documentation lives in the "SEKO Omni Retailer Support Centre" knowledge base. It does not list API pricing.

Authentication

Static access key in a request header.

  • Send your key in an `access_key` HTTP header on every request, together with `Content-Type: application/json; charset=utf-8`.
  • There is no token exchange or expiry step in the documentation. The key identifies your OmniParcel site account.
  • Staging and live use different keys. A live key will not work against the staging host and vice versa.
  • SEKO asks integrators not to hard-code the key in their system.
  • For the tracking webhook the direction is reversed: you give SEKO a username and password, and OmniParcel sends them as basic authentication when it calls your endpoint.

Environments

Livehttps://api.omniparcel.com
Staging / testhttps://staging.omniparcel.com

Endpoints

Consignment creation & labels

Creates a consignment (shipment) and returns the consignment number (connote), tracking URL, cost and label files in the formats you request. You can also have OmniParcel send the label straight to a printer through its Print Agent. Commodity data is required, and is mandatory with HS codes for international shipments.

POST/labels/printshipmentCreate a consignment and return its connote, cost and labels.
Key inputsDeliveryReference (required, max 50 chars; usually your order number)Origin and Destination (Name, ContactPerson, PhoneNumber, Email, Address: StreetAddress, Suburb, City, PostCode, CountryCode)Packages[] (Length, Width, Height in cm; Kg; Type such as Box, Satchel, Pallet)Commodities[] (Description, HarmonizedCode, Units, UnitValue, UnitKg, Currency, Country, itemSKU)Outputs (e.g. LABEL_PDF_100X150, LABEL_PNG_100X150, LABEL_ZPL_100X150)Carrier and Service (e.g. "eCommerce Express Tracked") when more than one option existsDutiesAndTaxesByReceiver (required for international: true = DDU, false = DDP)TaxIds[] (IdType, IdNumber), IncludeLineDetails, SendTrackingEmail, issignaturerequired
Key outputsConsignments[].Connote, TrackingUrl, Cost, ConsignmentIdConsignments[].OutputFiles (base64 label data per requested format)Consignments[].Items[] (TrackingNo, Barcode) when IncludeLineDetails is trueCarrierName, Message, Errors[]CommodityChanges[] (suggested descriptions and HS codes)

Available rates

Returns the services and prices available for a destination and set of packages before you create the consignment. Results are grouped into available, hidden (filtered by your preferences or cost centre) and rejected, with a reason for each rejection.

POST/ratesqueryv1/availableratesList available, hidden and rejected rates for a prospective shipment.
Key inputsDeliveryReferenceDestinationPackages[]Commodities[]IsSignatureRequired, IsSaturdayDelivery, DutiesAndTaxesByReceiver (optional)
Key outputsQuoteIdCarrierNameDeliveryTypeCostCarrierservicetypeIsRuralDeliveryReason (for rejected rates)ValidationErrors (Key, Value)

Manifest

Tells OmniParcel and SEKO operations that a batch of consignments is ready for collection. You send a JSON array of connotes and get back a manifest number, the connotes it covers and a PDF manifest report as base64.

POST/v2/publishmanifestv4Manifest a list of consignment numbers and return the manifest PDF.
Key inputsJSON array of connote numbers
Key outputsOutboundManifest[].ManifestNumberManifestedConnotesManifestContent (base64 PDF)UnManifestedConnotesStatusCode, Error

Consignment delete

Deletes consignments that have not yet been manifested, up to 50 per call. The response maps each connote to an outcome such as Deleted or "Cannot be deleted. Already manifested."

POST/labels/deleteDelete up to 50 unmanifested consignments.
Key inputsJSON array of connote numbers (max 50)
Key outputsObject keyed by connote with the outcome for each

Label reprint

Sends the label for an existing consignment to the printer configured on your OmniParcel account. It does not return the label, and the documentation says it only works in the live environment.

POST/labels/reprintconnote?consignmentno={connote}Re-send a consignment label to your configured printer.
Key inputsconsignmentno

Tracking

Returns the current status and event history for a list of connotes. Each event carries a carrier code and a normalised OmniParcel code (OP-codes). SEKO recommends the push options for volume: a webhook that posts the same event structure to your endpoint, or a CSV file shared over FTP every 15 minutes when there are new events.

POST/labels/statusv2Get status and tracking events for one or more connotes.
Key inputsJSON array of connote numbers
Key outputsConsignmentNo, Status, Picked, Delivered, Tracking (URL), Reference1Events[] (EventDT, Code, OmniCode, Description, Location, Part)

Example request

Create a consignment and get a 4x6 PDF labelbash
curl -X POST "https://staging.omniparcel.com/labels/printshipment" \ -H "access_key: YOUR_STAGING_ACCESS_KEY" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "DeliveryReference": "ORDER-1001", "Destination": { "Name": "Jane Doe", "ContactPerson": "Jane Doe", "PhoneNumber": "310-555-0100", "Email": "jane@example.com", "Address": { "StreetAddress": "100 Example Ave", "Suburb": "Carson", "City": "CA", "PostCode": "90746", "CountryCode": "US" } }, "Packages": [ { "Length": 30, "Width": 20, "Height": 10, "Kg": 1.2, "Type": "Box" } ], "Commodities": [ { "Description": "Cotton t-shirt", "HarmonizedCode": "6109100012", "Units": 2, "UnitValue": 25.00, "UnitKg": 0.3, "Currency": "USD", "Country": "CN", "itemSKU": "TS-001" } ], "DutiesAndTaxesByReceiver": false, "IncludeLineDetails": true, "Outputs": [ "LABEL_PDF_100X150" ] }'

Origin is optional in the documented parameters. Save the Connote from the response: you need it to manifest, delete or track the consignment.

Integration notes

  • Addresses follow the New Zealand pattern of Suburb + City. Map the smaller unit to Suburb and the larger to City: for a US address that means city in Suburb and the state abbreviation in City. For Canada, put the province in City. Use GB, not UK.
  • Units are metric only: package dimensions in centimetres and weights in kilograms, with a minimum of 0.01 kg and 1 x 1 x 1 cm.
  • Creating a consignment is not enough. You must also call the manifest API, and only manifested consignments are released to SEKO operations. After a successful manifest, mark those connotes as manifested in your own system so you never resend them.
  • A consignment can be deleted only before it is manifested. Once manifested it counts as in transit, and the address cannot be changed either; delete and recreate before manifesting instead.
  • The tracking API is throttled to 100 requests per minute. For any real volume use the webhook or the 15-minute CSV feed instead of polling.
  • If your webhook endpoint returns five failures in a row, OmniParcel deactivates the webhook and emails you. Return proper HTTP status codes (200 on success).
  • The reprint API cannot give you a label back. Store the label data from the printshipment response when you first receive it.
  • Special characters are not accepted in address fields, and some carriers reject non-English characters. Shipments to the US need 10-digit HS codes and itemSKU, plus manufacturer details (ManufacturerMID or name and address).

FAQ

Does SEKO Logistics have a public API?

SEKO publicly documents the OmniParcel REST API for its eCommerce parcel service: consignment and label creation, available rates, manifests, deletes and tracking. Access requires an OmniParcel account and an API key from your SEKO account manager.

How do I get a SEKO OmniParcel API key?

Ask your SEKO account manager. Staging and live use separate keys, so request a staging account and key for testing as well.

How does authentication work on the OmniParcel API?

Send your key in an access_key request header on every call. There is no token exchange step in the documentation.

How do I track SEKO OmniParcel shipments by API?

POST a JSON array of connote numbers to /labels/statusv2. The tracking API is limited to 100 requests per minute, so SEKO recommends its tracking webhook or CSV feed for higher volumes.

On FreightAPIs

Official resources

Written from SEKO Logistics’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with SEKO Logistics; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.

Other carrier API guides