Reference · built on requestConnectorShipping & logistics

Flexport

Shipments, bookings, purchase orders, customs entries, and invoices from Flexport, with milestone webhooks.

About

Flexport is a freight forwarder and customs broker. Its client platform holds the shipments it moves by ocean, air, truck, rail, and barge, together with the bookings that created them, the purchase orders behind them, customs entries, commercial invoices, and the invoices Flexport bills. The public API (v2) exposes each of these as a resource and pushes milestone events to webhook endpoints you register.

Through Fibric, an operator watches those events and records, then proposes what to do next: warn a warehouse that a container's arrival slipped, chase a purchase order past its cargo ready date, or amend a booking. You approve. The connector makes the call once and leaves a receipt: what changed, why, and how to undo it.

This is a reference listing. It documents what Fibric would read from Flexport and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • Shipments through GET /shipments, with status (seller_location, in_transit_to_arrival_port, arrival_port, final_destination), transportation_mode, legs, and containers
  • Estimated dates on each shipment: estimated_departure_date, estimated_arrival_date, and estimated_delivered_in_full_date
  • Transit webhook events such as /shipment_leg#updated_estimated_time_of_arrival, /shipment_leg#departed, /shipment_leg#arrived, and /shipment#delivered_in_full
  • Container events for ocean moves: /ocean/shipment_container#free_time_to_expire, #free_time_expired, and #empty_returned
  • Customs entries through GET /customs_entries with entry_number, release_status (cleared, customs_hold, pending), and release_date
  • Invoices through GET /invoices with status (outstanding, past_due, paid, void, payment_pending), due_date, total, balance, and items
  • Purchase orders through GET /purchase_orders with status, cargo_ready_date, must_arrive_date, and incoterm; this endpoint needs special permission

Proposed actions

  • Target capability: propose a new booking through POST /bookings, with shipper, consignee, mode, cargo ready date, and cargo details
  • Target capability: propose a change to an existing booking through POST /booking_amendments
  • Target capability: propose tagging a shipment with your own reference keys through PATCH /shipments/{id}, which accepts metadata only
  • Target capability: propose a product record or HS classification update through POST /products and PATCH /products/{id}

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Warn the warehouse when an inbound container slips

    A /shipment_leg#updated_estimated_time_of_arrival event moves a container's arrival past the receiving plan. The operator recomputes the inbound date, proposes a note to the warehouse and a new receiving slot, and cites the event.

    With Inbound Delay

  • Clear a customs hold before free time runs out

    When a customs entry shows release_status customs_hold and /ocean/shipment_container#free_time_to_expire fires, the operator assembles the entry, the commercial invoice, and the products' HS classifications, and proposes what the broker needs from you.

    With Customs Declaration

  • Match a Flexport invoice to the shipment it bills

    Each invoice arrives with items, total, balance, and due_date. The operator ties it to the shipment and purchase order, checks the charges against the booking, and flags a past_due or disputed line for review.

    With Freight Audit

  • Chase a purchase order past its cargo ready date

    A purchase order whose cargo_ready_date has passed without a booking, or whose /purchase_order#updated event moved must_arrive_date, gets a proposed supplier follow-up with the dates side by side.

    With PO Chase

Requirements

  • An active Flexport client account with an administrator who can create API credentials under Your Business, Settings, API Credentials
  • A client ID and client secret for the OAuth 2.0 client credentials grant against https://api.flexport.com/oauth/token
  • The API version your account defaults to, or a Flexport-Version header set to v2 or v3 on each request
  • A webhook endpoint registered in account Settings with a secret token, so the connector can verify X-Hub-Signature-256
  • Purchase Order endpoint access, which Flexport grants separately
Authentication
OAuth 2.0 client credentials: a client ID and secret exchanged at https://api.flexport.com/oauth/token for a bearer token that lasts 24 hours.

Limits

  • Token requests are capped at 10 per day and each token lasts 24 hours, so the connector caches and reuses tokens.
  • Shipments accept only metadata updates through PATCH; routing, dates, and cargo change through bookings and amendments.
  • Invoices, customs entries, commercial invoices, and purchase orders are read-only in the API.
  • List endpoints return 20 items by default and at most 100 per page; long histories are paged.

Access and pricing

Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.

Request Flexport ↗

Questions and answers

Does Flexport push events, or must you poll?
Both. Webhook endpoints configured in Settings deliver an Event object for milestones such as /shipment_leg#arrived or /invoice#invoice_payment_made, signed with X-Hub-Signature-256. Flexport expects an HTTP 200 and retries otherwise. The same events are listable through the Events resource, which the connector uses to backfill.
Can the connector change a shipment's route or dates?
Not directly. PATCH /shipments/{id} accepts metadata only. Changes to routing, cargo, or dates go through POST /booking_amendments against the booking, and Flexport confirms them; the shipment then emits /shipment#updated_route or /shipment#cargo_ready_date_changed.
Which Flexport API version does this listing follow?
v2, the version the public reference documents. Your account carries a default version shown in API settings, and a Flexport-Version header overrides it per request. Flexport adds attributes, enum values, and webhook event types without a version bump, so the connector ignores fields it does not know.
Ask about Flexport

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.