FlxpointBeta

Integrating as a Source

"Source" is the role you play in Flxpoint when you're the system Flxpoint pulls data from. Common cases: a supplier who owns the inventory, a 3PLThird-Party Logistics — a warehouse you don't ownA 3PL is a company that stores and ships products on your behalf — like ShipBob, ShipMonk, or a regional dropshipper. They "source" the goods to Flxpoint, even if you (the brand) own the inventory on paper. warehouse, or any drop-ship partner. If you're receiving orders rather than placing them, you're a Source.

Typical flow

  1. Push inventory — keep stock and cost up to date so Flxpoint knows what to sell and at what price.
  2. Receive fulfillment requests (FRs)A 'please ship this' message from FlxpointWhen a customer orders something on a downstream channel (Shopify, Amazon, etc.), Flxpoint routes the order to one or more Sources asfulfillment requests. Each FR is a self-contained job: ship items A, B, C to address X, by date Y. You receive them by polling GET /fulfillment-requests. — Flxpoint tells you what to ship.
  3. Acknowledgethe request so the workflow moves forward — without an ack, Flxpoint assumes you didn't see it and may re-route.
  4. Create shipments with tracking numbers when goods leave. This closes the loop and notifies the buyer.
  5. Cancelif an FR can't be fulfilled (out of stock, address invalid, etc.) — better an early cancel than a stuck order.

Endpoints you'll use

Browse the Source, Inventory, Fulfillment Request, and Shipment resources for the exact request bodies and response shapes.

Writing inventory: updates replace, they don't merge

A write replaces the fields you send.Inventory write endpoints treat your payload as the new state for the fields it contains — so a partial body can blank out values you didn't mean to touch. To change one field without wiping the rest, either resend the complete current object, or scope the write with the endpoint's modify* flags.

Custom fields are the classic trap. Flags like modifyVariantCustomFields and modifyParentCustomFields control how your payload is applied:

  • merge — keep the existing custom fields and add / update only the ones you send. This is what most integrations want.
  • replace — overwrite the entire set with what you send. Any custom field you omit is deleted. Named replace, not add — sending one field wipes the rest.
  • none — leave custom fields untouched.

The full list of modify* flags and the values each accepts is on each endpoint in the Inventory reference. When in doubt, read the current object first, change what you need, and send it back whole.

Authentication

Use a Source token — scoped to your single source, with its own rate-limit bucket. See Authentication for how the three token types differ and the token matrix.

Polling pattern

You don't get push notifications for new fulfillment requests — instead, you pollRe-check the same endpoint on a schedulePolling means calling the same endpoint at a regular interval (every minute, every 5 minutes) to see if anything new has appeared. It's simpler than webhooks but uses more requests; we keep the rate limit generous enough that 1-minute polling on a single Source is fine. the fulfillment-requests endpoint on a schedule. See the Polling fulfillment requests guide for the exact cadence and how to avoid duplicate processing.

What next?