FREDFRED docs

Create and track orders with the FRED API

From your customer's accepted price to a tracked parcel.

Published by FRED

Create the order

POST /v1/storefront/orders accepts either quote_id or product_id. The recipient's full address is required. The origin address is the manufacturing workshop's; no brand shipping address needs to be configured. Add external_ref to find your order number in FRED and metadata for your application references.

By default, FRED selects the recommended manufacturer. An option_id lets you retain an explicit choice made from a quote. max_total_cents is an optional limit for a quote and is required when ordering a product directly. Amounts are expressed in euro cents.

Each quote option exposes shipping_options (code, carrier, service, price and lead time when known). To recalculate with the full address and select a service, call POST /v1/storefront/quotes/{quote_id}/shipping with shipping_address, supplier_id and shipping_service_code. You can then send shipping_service_code in the order. FRED rechecks the rate for the final address and rejects any amount exceeding max_total_cents.

In Settings → Order approval, the brand chooses how its next orders are handled: automatic without a delay, 1-hour delay, 2-hour delay, or wait for manual approval with no time limit. Include brand_id in the order (or use a product belonging to that brand).

approval_modeBehaviour
Omitted or nullFollows the brand settings; without a brand, the account settings
autoFollows the brand's delay and respects any manual approval configured for it
manualAdds a wait for manual approval to this order

During the delay, no payment or submission to the manufacturer takes place. The accepted price remains valid during the scheduled review. At the deadline, FRED checks availability and payment before starting manufacturing. An availability or payment issue leaves the order requiring attention in the dashboard. A prolonged manual hold may require a price update.

You can also choose Approve now on an order's page. Changing the brand settings does not change orders already received.

An API key does not automatically enable payment for your account. Limits, the payment card and any model approvals must be ready. While ordering_enabled is false, the quote helps prepare the integration; creation returns 503 ordering_unavailable.

Read the result

201 means order created, not already printed or necessarily paid. The response provides id, status, payment_status, total_cents, shipments and dashboard_url. If a check or bank authentication is required, open the order in the dashboard.

A 202 with object: "order_request" means the quote is still being calculated, with no order created. Wait for poll_url, then repeat exactly the same request with the same idempotency key.

Track from your website

curl https://api.fredpod.com/v1/storefront/orders/ord_abc123 \
  -H "X-API-Key: $FRED_API_KEY"
Current statusMeaning for your store
pending_reviewApproval is still required
payment_requiredNo saved card: add a card in Billing, then pay for the order. No charge attempted.
payment_failedPayment needs attention in the dashboard
confirmedOrder confirmed, awaiting acceptance
in_productionManufacturing accepted or in progress
printedManufacturing complete, before dispatch
shippedParcel handed to the carrier
deliveredDelivery reported by the carrier
failedManufacturing needs to be retried; contact FRED
cancelledOrder cancelled

Events may arrive late or more than once. Use webhooks to trigger an update, then this GET to read the current state. Tracking numbers and links are in shipments.

Expired price, availability or changed address

An offer may become unavailable between display and payment. FRED rechecks availability and funding; no request is sent to the manufacturer before the charge is confirmed.

  • destination_changed: request a new shipping price.
  • option_unavailable: reload the quote, check the reason or recalculate it.
  • price_limit_exceeded: obtain acceptance of a new limit before placing the order again.
  • preview_approval_required: display the relevant model and obtain approval.

After a network error, repeat the request with the same Idempotency-Key and parameters. After an intentional price, model or address change, use a new quote and a new key. A replayed creation keeps its initial result; the order's GET returns its latest status.

Your brand

Configure identity, documents and inserts in the dashboard. Use X-Brand-Id for the store context and, if needed, brand_id on the order. Storefront APIs handle sales; account preparation remains in the dashboard.

Was this page helpful?

On this page