Copy-ready quickstart
Download the Postman collection, import it into your private workspace, set `baseUrl` and `apiKey`, then run Control Tower before writing records.
Use API keys and signed webhooks to create inbound shipments, fulfillment orders, QC inspections, product sourcing RFQs, support tickets, quote responses, and invoice payment-evidence records. Customers keep a visible Control Tower, receiving profile, First shipment guided start, Action center, inventory view, Activity timeline, and webhook delivery log.
https://api.prepportglobal.com/api/v1
Create an API key in the customer portal. Keep it in a server-side secret manager and send it as a Bearer API key.
Download the Postman collection, import it into your private workspace, set `baseUrl` and `apiKey`, then run Control Tower before writing records.
Use the English examples for cURL, Node.js, Python, CSV intake fallback, error handling, and webhook signature verification.
TEST or SANDBOX in a reference does not create an isolated environment. In your production account, API submissions create real operational records. Request a separately configured test environment before a rehearsal; do not use dummy recipient addresses in live requests.
Send the key as `Authorization: Bearer pp_live_...` or use `X-PrepPort-API-Key`. Browser code should not hold API keys.
curl https://api.prepportglobal.com/api/v1 \ -H "Authorization: Bearer $PREPPORT_API_KEY"
Use only the scopes your integration needs. Start read-only, then add write scopes for ASNs, fulfillment, QC, sourcing, support, quotes, invoices, or operations files.
read:status read:inventory read:operations write:fulfillment write:support write:operations
Webhook payloads are customer-safe and signed. PrepPort excludes API keys, full webhook secrets, encrypted ciphertext, passwords, internal notes, payment instructions, and other customer records.
Use this before goods leave the supplier. It feeds receiving, expected inbound inventory, QC needs, labeling, packaging, and warehouse handoff.
curl -X POST https://api.prepportglobal.com/api/v1/asns \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"asnNumber": "ASN-1001",
"supplierName": "Supplier One",
"trackingNumber": "SF123456789",
"expectedArrival": "2026-07-05",
"items": [
{"sku": "BOTTLE-750", "quantity": 240, "cartonCount": 12}
],
"serviceNotes": "Inbound QC, FNSKU labels, carton marks"
}'
Use this for Shopify, FBM, TikTok Shop, Walmart, eBay, Etsy, WooCommerce, samples, or manual outbound orders.
curl -X POST https://api.prepportglobal.com/api/v1/fulfillment-orders \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "shopify",
"orderType": "drop_shipping",
"orderNumber": "SHOP-1001",
"shipToCountry": "United States",
"addressSummary": "Seattle WA 98101",
"shippingService": "Standard tracked",
"items": [
{"sku": "BOTTLE-750", "quantity": 2, "name": "Insulated bottle"}
]
}'
Use this before supplier final payment, before FBA prep, during inbound receiving, or when returns and defects need evidence.
curl -X POST https://api.prepportglobal.com/api/v1/qc-inspections \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inspectionNumber": "QC-1001",
"inspectionType": "pre_shipment",
"sku": "BOTTLE-750",
"productName": "Insulated bottle",
"sampleSize": 80,
"inspectionCriteria": "Check quantity, logo, barcode, packaging, carton marks"
}'
Use this for product inquiry, supplier quotes, sample coordination, procurement support, QC plan, and fulfillment handoff.
curl -X POST https://api.prepportglobal.com/api/v1/sourcing-rfqs \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product": "Insulated bottle",
"quantity": "500",
"targetUnitPrice": "USD 4.50",
"destination": "United States",
"platform": "Shopify and Amazon FBA",
"requirements": "Supplier quotes, samples, QC plan, and fulfillment handoff",
"needProcurement": true,
"needDropShipping": true
}'
Use this for shipment status, warehouse/QC exceptions, billing/payment review, compliance review, and account-support follow-up.
curl -X POST https://api.prepportglobal.com/api/v1/support-tickets \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": "Check carton photos before release",
"message": "Please review first inbound photos and advise if more evidence is needed.",
"issueType": "shipment_status",
"relatedReference": "ASN-1001"
}'
You can accept, request changes, or decline an approved quote. Customer payment evidence starts staff verification; it does not mark invoices paid, credit wallet balance, or release goods automatically.
curl -X POST https://api.prepportglobal.com/api/v1/quotes/QUOTE_ID/response \
-H "Authorization: Bearer $PREPPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"decision":"accepted","message":"Accepted for first batch."}'
GET /api/v1Summary, counts, Control Tower, receiving profile, First shipment guided start, Action center, inventory, wallet retention cockpit, Shopify order sync cockpit, and customer account context.GET /api/v1/control-towerOne customer-safe health view for first shipment readiness, actions, exceptions, inbound/QC, fulfillment and drop shipping, inventory, sourcing/procurement, quotes, invoices, integrations, and support.GET /api/v1/receiving-profileWarehouse receiving profile, customer code, receiving reference, carton marking format, pre-shipment checklist, and whether suppliers should hold or ship.summary.firstShipmentPlanCustomer-safe readiness checklist for the first operating workflow: account profile, service authorization, operating files, QC, inbound ASN, first order or sourcing request, commercial review, and optional Shopify/API setup.summary.wallet.operationsCockpitWallet and referral reward cockpit covering top-up requests, payment evidence review, finance approval, wallet credit posting, customer actions, staff actions, and retention levers.summary.shopify.syncCockpitShopify order sync cockpit covering store connection, paid-unfulfilled order import, SKU/inventory match, warehouse processing, tracking sync back to Shopify, and manual/API fallback.GET /api/v1/action-centerPrioritized customer actions and blockers.GET /api/v1/inventorySKU available, on-hand, reserved, inbound, low-stock, short, and reorder context.GET/POST /api/v1/asnsInbound shipment notices before supplier or forwarder handoff.GET/POST /api/v1/fulfillment-ordersDrop-shipping, outbound, sample, marketplace, and manual fulfillment orders.POST /api/v1/fulfillment-orders/previewRead-only stock and address check with read:inventory. No reservation, charge or dispatch; freight and delivery estimates require confirmation.POST /api/v1/fulfillment-orders/batch/previewAggregate stock check for up to 100 orders. Requires read:inventory and read:orders. No reservation.POST /api/v1/fulfillment-orders/batchAtomic batch SHIP/HOLD reservations or REQUEST reviews. Requires write:fulfillment. Stable requestId prevents duplicate retries; shortages roll back the whole batch. No automatic charge or dispatch.POST /api/v1/fulfillment-orders/{id}/shopify-refreshVerify the owned source order using the connected store's order-read authorization. Requires read:shopify, write:fulfillment and requestId. Reads all product pages twice; changed goods, address and instructions stay a review proposal. Does not allocate stock, change invoices, release customer holds or dispatch. Retry the same requestId after a lost reply; the receipt returns current state rather than an earlier payment state.POST /api/v1/fulfillment-orders/{id}/reserveReserve all products in one warehouse. Requires write:fulfillment, a stable requestId, and fulfillmentAction SHIP or HOLD.GET /api/v1/fulfillment-orders/{id}/revision-draftOwned shipment edit draft and expectedVersion with read:orders. Does not cancel the original. Connected Shopify and grouped or handed-off orders use their source-specific review/return workflows.POST /api/v1/fulfillment-orders/{id}/reviseSubmit the complete corrected products, delivery and packaging with write:fulfillment, requestId, expectedVersion and reason. Stops the unshipped original and preserves its invoices and audit history. Picked goods need scan-restocking; old payment links and labels need verified reconciliation. Replacement starts as an unallocated request for explicit SHIP/HOLD. Paid original funds require a separate finance resolution; there is no automatic refund, credit reuse, charge or dispatch.POST /api/v1/fulfillment-orders/{id}/holdPause an owned, fully reserved shipment before picking starts. Stock remains reserved; employees cannot pick a held shipment.POST /api/v1/fulfillment-orders/{id}/releaseRelease a held shipment for warehouse processing. Requires write:fulfillment and requestId. This does not settle invoices or authorize carrier handoff.POST /api/v1/fulfillment-orders/{id}/splitReserve an available batch. Choose PARTIAL_KEEP to keep unfilled units pending, or PARTIAL_CANCEL to cancel them. Requires write:fulfillment, requestId and splitChargesAcknowledged: true. Each dispatched batch has a separate approved invoice and postage.POST /api/v1/fulfillment-orders/{id}/shopify-reviewConfirm an imported Shopify order (kind: import), or apply changed products and delivery details (kind: change), before picking or invoicing. Requires write:fulfillment, requestId and the current shopifyChangeReview.revision from owned shipment history. Initial confirmation leaves the request unallocated for a separate Send for fulfillment action. Remaining-goods revisions reread native assignments at confirmation and include only this warehouse's selected remaining products, excluding already fulfilled goods and other locations. Changed reservations are replaced atomically and held for explicit release; shortage leaves the updated request unallocated. Stale source versions, test orders, refunded buyer payments, cancelled source orders, picked goods and existing invoices are rejected. Check shopifyExecutionBlockedReason before execution. No automatic charge or dispatch.Partial modes can also be used at creation, atomically saving the original request and its batches. Stock is rechecked in one warehouse. Responses expose fulfillmentGroup with each batch, tracking, and requested/shipped/pending/cancelled quantities. Replenishment never silently charges or dispatches another batch. Split Shopify fulfillment needs line-quantity mapping before platform writeback.
To create and reserve in one transaction, include fulfillmentAction: "SHIP" or "HOLD" and a stable requestId in the create request. If stock is insufficient, neither the order nor reservations are saved. Omit the action, or use "REQUEST", to save an unallocated request. Reuse the same request ID and body after a timeout. Responses include stockReserved, holdActive and available control actions.
GET/POST /api/v1/qc-inspectionsProduct inspection and QC requests.GET/POST /api/v1/sourcing-rfqsProduct sourcing and procurement RFQs.GET/POST /api/v1/support-ticketsTracked support and exception follow-up.GET /api/v1/quotesApproved customer-visible quotes.POST /api/v1/quotes/:id/responseAccept, request changes, or decline a quote.GET /api/v1/invoicesInvoice and deposit request status.POST /api/v1/invoices/:id/payment-evidenceSubmit customer payment evidence for staff verification.GET /api/v1/shopify-connectionsShopify sync connection and webhook status.GET /api/v1/integration-centerConnection readiness plus connectionPlanner planCards across Shopify, API keys, customer webhooks, manual/CSV fallback, first shipment setup, operations files, and open actions.GET /api/v1/walletWallet balance, pending top-ups, referral state, and wallet retention cockpit.GET /api/v1/operationsOperations files, customer reports, suppliers, SKUs, and standards.POST /api/v1/csv-intakePreflight or apply CSV rows for bulk orders, ASNs, QC inspections, sourcing RFQs, SKU master, and supplier profiles without sending messages, collecting payment, releasing goods, or calling external platforms.Register an HTTPS endpoint in the customer portal. PrepPort signs each event with `X-PrepPort-Signature: t=TIMESTAMP,v1=HMAC_SHA256` over `timestamp.body` using the one-time signing secret.
Webhook deliveries are logged in the customer portal; failed deliveries can be retried after the receiver is fixed. Committed warehouse order, inbound and inventory changes are queued durably and delivered automatically to subscribed endpoints. New endpoints do not receive historical changes. Failed delivery is retried up to four times; a final failure pauses later snapshots of the same subject until you retry it. Unrelated orders continue.
Delivery is at least once, not exactly once: deduplicate by id, acknowledge only after saving, verify the signature and timestamp, and apply increasing sequence per subject. Retries preserve the exact event body and ID. Revoked endpoints are skipped before any new delivery attempt. Only public HTTPS on port 443 is supported; private destinations and redirects are rejected.
asn.updatedInbound shipment created or updated.fulfillment.updatedOutbound or drop-shipping order created or updated.inventory.updatedAuthoritative snapshot for affected SKUs after inbound, reservation, picking, cancellation or handoff. Replace warehouse quantities for each SKU in scope.skus, not the whole catalog; an empty SKU snapshot means zero stock/inbound for that SKU.qc.updatedQC inspection created or updated.sourcing.updatedSourcing RFQ created or updated.support_ticket.updatedSupport ticket created or updated.quote.updatedQuote response or quote status changed.invoice.updatedInvoice status or payment evidence changed.shopify.order_importedShopify order imported into PrepPort fulfillment.{
"id": "opwh_...",
"type": "fulfillment.updated",
"sequence": 1042,
"createdAt": "2026-07-01T10:30:00.000Z",
"account": {
"id": "cust_..."
},
"subject": {
"type": "order",
"id": "ful_..."
},
"data": {
"action": "updated",
"source": "warehouse_ledger",
"fulfillmentOrder": {
"orderNumber": "SHOP-1001",
"status": "open",
"customerVisibleStatus": "Received by PrepPort Global."
}
}
}
API and portal actions can create operational records, customer-visible status, webhook deliveries, quote responses, and invoice payment-evidence items. They do not approve legal terms, confirm compliance, issue refunds, send payment instructions, mark invoices paid, credit wallet balances, release goods, or guarantee supplier commitments without staff review.
Connect a compatible MCP client to https://prepportglobal.com/mcp using Streamable HTTP. No PrepPort account or API key is required for these public, read-only tools.
list_prepport_servicesCompare sourcing, inspection, FBA prep, storage and fulfillment, with current public starting prices and scope.estimate_prepport_base_costCalculate an illustrative base service amount. Freight, tax, materials and extra work are excluded; final charges require an approved quote.plan_prepport_first_jobGet the required details and a service-specific registration link. This does not create an account, send an inquiry or place an order.These tools cannot access customer inventory, orders, addresses or payments. A compatible assistant must be connected by its user; availability here does not mean a platform directory listing or endorsement.
prepport-customer-api-openapi.jsonOpenAPI 3.1 spec for API-client generation and internal contract review.prepport-customer-api-postman.jsonPostman v2.1 starter collection with placeholder variables and safe test payloads.prepport-customer-api-examples.mdcURL, Node.js, Python, webhook verification, CSV fallback, error handling, and pilot sequence examples./customer-portal.html#apiaccessAPI key creation, webhook endpoint registration, test delivery, delivery log, and retry controls.Start in the customer portal, create an API key, download the OpenAPI JSON or Postman collection, and use a separately configured test environment before connecting production order flows.