Sales Channels
Get Channel Partner
Returns a single channel partner integration instance.
Update Channel Partner
Updates a channel partner integration instance.
Delete Channel Partner
Deletes a channel partner integration instance.
Get Channel Partner Dashboard
Returns dashboard stats and recent orders for a channel partner.
List Channel Partner Orders
Returns paginated sales orders for a channel partner's sales channel.
Generate API Token
Generates a new API token for a channel partner. The plain text token is only shown once.
List API Tokens
Lists all active API tokens for a channel partner.
Revoke API Token
Revokes a specific API token for a channel partner.
Create Sanctum Token (for Integration Instance)
Creates a new Sanctum token with channel:read and channel:write abilities for a sales channel integration instance. If a token with these abilities already exists, it will be replaced.
List Inbound Events
Returns paginated inbound API events for a channel partner instance.
Get Inbound Event Stats
Returns event processing statistics and distinct endpoint list for a channel partner.
Get Inbound Event
Returns a single inbound event with full request/response payloads and headers.
Reprocess Inbound Event
Reprocesses a single failed inbound event. Cannot reprocess already-processed events.
Delete All Events for Instance
Deletes all inbound events for a given channel partner instance.
List Orders
Lists sales orders for the authenticated channel (filtered to the integration instance's sales channel).
Create Order
Creates a new sales order from a channel integration.
Get Order
Returns a single sales order for the authenticated channel with fulfillment and address details.
Update Order
Updates a sales order for the authenticated channel.
List Products
Returns paginated products visible to the authenticated channel.
Get Product
Returns a single product by ID for the authenticated channel.
List Inventory
Returns paginated inventory levels for the authenticated channel.
List Customers
Returns paginated customers for the authenticated channel.
Get Customer
Returns a single customer with addresses and default sales rep.
List Amazon Integration Instances (Simple Dropdown)
Simple flat list of all Amazon integration instances suitable for use in dropdown selectors and integration filters in the UI. Returns just `{id, name}` for each instance with no pagination.
Show Amazon Integration Instance
Show a single Amazon integration instance with its salesChannel and integration relationships eager-loaded. Returns an AmazonIntegrationInstanceResource.
Update Amazon Integration Instance
Full or partial update of an Amazon integration instance. Validated by `UpdateAmazonIntegrationData` (all fields Optional). Supports both `PUT` (full) and `PATCH` (partial with deep-merge of `integration_settings` / `connection_settings`).
Delete Amazon Integration Instance
Soft-delete an Amazon integration instance. Dispatches a `DeleteSalesChannelJob` to clean up the linked sales channel and related records asynchronously. Returns 204 No Content.
Create Amazon Integration Instance
Create a new Amazon integration instance. Validated by `StoreAmazonIntegrationData`. After creation the controller also ensures a PaymentType for Amazon exists, then returns the redirect URL the user must follow to authorize the SP-API connection.
List Amazon Integration Instances
List all Amazon integration instances. Registered automatically by the `Route::salesChannel('amazon', ...)` macro — this is the standard `apiResource` index returning the configured DataTable response (paginated AmazonIntegrationInstanceResource collection).
Update Amazon Settings (Vue 3 Partial Update)
Optimized partial update used by the Vue 3 Amazon settings page. Validated by `UpdateAmazonSettingsOnlyData` — every field is Optional, so the client may send only the fields the user actually changed. Internally, root-level fields (`name`, `is_automatic_sync_enabled`) are separated from `integration_settings` fields and merged into the existing settings JSON via `AmazonIntegrationInstanceManager::updateSettings`.
Authenticate (OAuth Callback)
Amazon OAuth callback endpoint. Called by Amazon after the seller authorizes the app.
Get Setup Wizard Step
Get the current resume state of the Vue 3 initial-setup wizard for this Amazon instance. Phase 5 of SKU-8031 — reads `integration_settings.setup_step` and `integration_settings.setup_completed` (no dedicated schema column). If the keys are absent, `setup_step` defaults to `'connect'` and `setup_completed` to `false`.
Update Setup Wizard Step
Persist the current step of the Vue 3 initial-setup wizard. Phase 5 of SKU-8031 — writes to `integration_settings.setup_step` via `AmazonIntegrationInstanceRepository::updateIntegrationSettings`. When `completed: true` is sent, `integration_settings.setup_completed` is also set to `true` (it is never set back to false by this endpoint).
OAuth Callback (Web)
Amazon Seller Central OAuth callback endpoint. Amazon redirects the user here after they grant or deny SP-API access in Seller Central. This endpoint is a **web** route (not under `/api`), is invoked by the user's browser (not by SKU.io frontend code), and accepts any HTTP method (`Route::any`).
Get Authorization URL
Returns the Amazon Seller Central OAuth authorization URL for the given Amazon integration instance. The frontend should redirect the user to this URL so they can grant SP-API access to SKU.io. Upon successful authorization, Amazon redirects the user back to the configured callback URL with `spapi_oauth_code`, `state`, and `selling_partner_id` query parameters.
List Fee Mappings
List Fee Mappings
Create Fee Mapping
Create Fee Mapping
Update Fee Mapping
Update Fee Mapping
Delete Fee Mapping
Delete Fee Mapping
Preview Recategorization
Preview the impact of recategorizing historical settlement data based on current fee mappings (dry-run).
Recategorize Historical
Recategorize historical settlement data based on current fee mappings.
List Merchant SKU Mappings
List Merchant SKU Mappings
Bulk Update Merchant SKU Mappings
Bulk Update Merchant SKU Mappings
Update Merchant SKU Mapping
Update Merchant SKU Mapping
List Ship From Mappings
List FBA inbound ship-from location mappings for an integration instance.
Update Ship From Mappings
Update ship-from location to warehouse mappings.
List AWD Shipments
List AWD (Amazon Warehousing and Distribution) shipments for a specific integration instance.
Show AWD Shipment
Get details of a specific AWD shipment.
Refresh AWD Shipment
Refresh a specific AWD shipment from Amazon API.
Export AWD Shipment Items
Export items from a specific AWD shipment as CSV.
LPN Lookup
Look up a License Plate Number (LPN) to find associated inventory items.
List Warehouses
List Amazon FBA warehouses/fulfillment centers for the integration instance.
Get available fields
Returns the catalog of fields that can participate in a mapping: all Amazon listing fields (`seller_sku`, `asin1`, `item_name`, `brand`, `price`, etc.) and all SKU.io product fields (static fields like `sku`, `name`, plus dynamic fields like product pricing tiers, supplier pricing tiers, and custom product attributes). This endpoint is global (not scoped to an integration instance) and is used to populate the source/target dropdowns in the mapping configuration UI.
Get mappings for integration instance
Returns the full field-mapping picture for the given Amazon integration instance:
Update mappings for integration instance
Persists the full set of custom field mappings for the given Amazon integration instance. The payload completely replaces the previously stored custom mappings for the `listings` mapping group.
List Shipping Method Mappings
List every shipping method mapping for the Amazon integration's sales channel. Each row pairs an Amazon shipping method name (e.g. 'Standard', 'Expedited') with an optional internal SKU.io shipping method (eager-loaded with its carrier). Returns 404 if the integration has no sales channel.
Save Shipping Method Mappings (bulk upsert)
Bulk upsert mappings. Each row is matched by (sales_channel_id, sales_channel_method); existing rows are updated, new method names create rows. A null shipping_method_id clears the mapping but keeps the row. After each upsert, the new shipping_method_id is propagated to all open sales orders (order_status != closed) for that sales_channel + requested_shipping_method, so the SKU.io SO display stays in sync.
Delete Shipping Method Mapping
Delete a single shipping method mapping. Open sales orders that requested this shipping method (and belong to the same sales_channel) have their shipping_method_id cleared so SO display stays consistent. Returns 404 if the mapping belongs to a different integration's sales channel.
Import Shipping Method Mappings (CSV)
Bulk import shipping method mappings from a CSV upload. Existing rows with the same amazon_method are updated, new method names create rows. Rows with an unresolvable shipping_method_id or shipping_method_full_name are skipped and reported in the response's errors array (the rest of the import still succeeds). Same propagation to open sales orders as the bulk save endpoint.
Export Shipping Method Mappings (CSV)
Stream every shipping method mapping for the integration as a CSV download. Header row: amazon_method,shipping_method_id,shipping_method_full_name,carrier_name. Round-trip-compatible with the import endpoint.
List Orders
List Amazon orders for an integration instance (DataTable endpoint).
Show Order
Get details of a specific Amazon order.
Delete Order
Delete a single Amazon order.
Get Filter Options
Get available filter option values for the orders datatable (e.g. distinct order statuses).
Archive Order
Archive a single Amazon order.
Unarchive Order
Unarchive a single Amazon order.
Bulk Archive Orders
Archive multiple Amazon orders.
Bulk Unarchive Orders
Unarchive multiple Amazon orders.
Bulk Delete Orders
Delete multiple Amazon orders.
List Removal Orders (DataTable)
Lists Amazon FBA removal orders for a given integration instance using the DataTable conventions. The query string supports HasFilters/HasSort/Archive parameters and column inclusion/exclusion. Response includes `data` plus DataTable status/metadata; when `table_specifications=2` the response also embeds the table specification + receiving_status enum metadata.
Get Order Details (by path)
Aggregates removal orders + removal shipments for the given order ID, hydrates FNSKU products and metadata, and revalidates the receipt status when applicable. Returns 404 if neither orders nor shipments exist for the order ID.
Get Order Details (by query string)
Query-string variant of `getOrderDetails`. Returns 422 when `order_id` is missing/empty, 404 when no matching orders or shipments exist. Response payload is identical to the path-param variant.
Set Receiving Warehouse
Assigns (or replaces) the receiving warehouse on a removal order's metadata. Validation (`SetRemovalOrderWarehouseData`):
Export Removal Orders (CSV/XLSX)
Exports Amazon FBA removal orders for the given integration instance. Below the sync export size limit the response is a downloadable file; above the limit the export is queued and a redirect/flash message is returned and the user receives the file by email.
Unprocess Removal Orders
Unprocess removal orders.
Archive Removal Orders
Bulk-archives removal orders (sets `archived_at = now()`). Request body uses `IdSelectionData`:
Unarchive Removal Orders
Bulk-unarchives removal orders (sets `archived_at = null`). Request body uses `IdSelectionData`:
Mark Item As Unknown
Marks a single removal order row as an unknown item (`is_unknown_item = true`). No request body.
Unmark Item As Unknown
Reverses the unknown-item flag on a removal order row (`is_unknown_item = false`). No request body.
Close Receiving
Closes receiving for a removal order. The status manager automatically derives the next receipt status based on current receipts:
Resume Receiving
Re-opens receiving for a removal order by re-evaluating the receipt status against current shipments + receipts. Returns the resulting status value.
Clear Receiving Warehouse
Clears the receiving warehouse from a removal order's metadata. Returns `Warehouse cleared successfully` if a value was cleared, or `No warehouse to clear` if there was nothing to remove.
Get Unlinked Removal Orders
Returns distinct removal orders of type `Return` that are not yet linked to a SKU (warehouse transfer line). Grouped by `order_id`, sorted by request_date desc. Each row exposes only `order_id` and `date` (earliest request date).
List Removal Shipments (DataTable)
List removal shipments for an Amazon integration instance using the DataTable pattern. Supports column inclusion/exclusion, JSON-based filters, sorting, archived filtering, and pagination. The integration instance ID is appended server-side as `integration_instance_id` and the query is filtered to that instance.
Show Removal Shipment
Fetch a single removal shipment with its parent removal order eager-loaded. Returns 404 if the shipment does not belong to the supplied integration instance. NOTE: this route is registered twice — under `/api/amazon/{integrationInstance}/removal-shipments/{removalShipment}` and under `/api/amazon/{integrationInstance}/ledgers/removal-shipments/{removalShipment}` — both invoke the same controller method.
Receive Shipment
Record receipt of a removal shipment. Splits returned units into new (resellable), discarded (damaged), and optionally blemished. `items[].blemished_configurations` is an array where each entry represents ONE blemished unit. The shipment must belong to the supplied integration instance (404 otherwise).
Bulk Receive Shipments
Receive multiple removal shipments in one call, all into the same warehouse with the same receipt date. Each shipment must belong to the supplied integration instance — the controller validates this up-front and returns 404 if any shipment is missing or belongs to another integration instance.
Remove Receipt (Single Shipment)
Reverse the receipt for a single removal shipment, deleting the inventory adjustments created when it was received. Returns 404 if the shipment does not belong to the supplied integration instance.
Bulk Remove Receipts
Remove multiple receipts (inventory_adjustments rows) by ID for the given integration instance. Useful when undoing a batch of receipts at once.
Bulk Remove Discards
Bulk-remove discard records by their IDs for the given integration instance. Each deleted discard decrements the parent shipment's `qty_discarded` counter so the legacy column stays in sync with the audit-trail rows. Discards belonging to shipments outside the supplied integration instance are silently skipped (not an error). After deletion, the removal order's receipt_status is recomputed.
Remove Single Discard
Remove a single discard record. The parent shipment's `qty_discarded` counter is decremented by the deleted row's quantity (backward-compat column kept in sync with the new `amazon_fba_removal_shipment_discards` audit table). Returns 404 if the discard does not belong to the supplied integration instance. After deletion, the removal order's receipt_status is recomputed (e.g. an order that was `fully_discarded` may transition back to `pending` if there are no other discards or receipts).
Export Removal Shipments
Exports the same dataset as the index endpoint as a downloadable CSV/XLSX. If the export size exceeds the sync threshold, the export is queued and the response redirects with a flash message indicating the file will be emailed.
Undo All Receipts for Removal Order
Undo every receipt across all shipments for a single Amazon removal order. The controller verifies that at least one shipment exists for the given `order_id` and integration instance, otherwise returns 404.
List Inbound Shipments
List FBA inbound shipments (legacy) for an integration instance.
Show Inbound Shipment
Get details of a specific FBA inbound shipment.
Get Activity Log for Inbound Shipment
Get the Spatie activity log for a specific legacy FBA inbound shipment. Returns the most recent 200 activities, newest first.
Get Items For Inbound Shipment
Paginated list of items for a single legacy FBA inbound shipment. Powers the Items tab on the legacy shipment detail page using the canonical sku.io DataTable stack (server-side pagination, search, sort, advanced filters).
Get Inbound Shipment Receipts
Paginated list of Receipt-type AmazonLedger entries for a single legacy FBA inbound shipment. Receipts are matched by integration_instance_id, reference_id (= shipment ShipmentId), and event_type = Receipts. Powers the Ledgers tab on the legacy shipment detail page.
Refresh Inbound Shipments
Refresh FBA inbound shipments from Amazon API.
Process Shipments
Process FBA inbound shipments.
Process All Shipments
Process all unprocessed FBA inbound shipments.
Unprocess Shipments
Unprocess FBA inbound shipments.
Export Inbound Shipments
Export FBA inbound shipments.
Get Unlinked Shipments
Get unlinked FBA inbound shipments.
Set Sent Before Initial Count
Mark shipments as sent before the initial count was taken.
Get Shipment from Amazon
Fetch a specific shipment directly from Amazon API by shipment ID.
List New Inbound Shipments
List new FBA inbound shipments for an integration instance. The query is augmented with the withPendingStatus() scope so each row includes a derived pending_status column joined from the linked PendingInbound row.
Show New Inbound Shipment
Get a specific new FBA inbound shipment with full detail.
Get Activity Log for New Inbound Shipment
Get the Spatie activity log for a specific new FBA inbound shipment. Returns the most recent 200 activities, newest first.
Get Items For Shipment
Paginated list of items for a single new FBA inbound shipment. Powers the Items tab on the shipment detail page using the canonical sku.io DataTable stack (server-side pagination, search, sort, advanced filters, saved views, column selector).
Get New Inbound Shipment Receipts
Paginated list of receipt ledger entries for a single new FBA inbound shipment. Powers the Ledgers tab on the shipment detail page using the canonical sku.io DataTable stack (server-side pagination, search, sort, advanced filters, saved views, column selector).
Process New Inbound Shipments
Process the given new FBA inbound shipments. For each ID this resolves the SKU link source (purchase order or warehouse transfer), creates / updates the linked PendingInbound, and applies inventory movement.
Process All Unprocessed New Inbound Shipments
Process every unprocessed new FBA inbound shipment for this integration instance. Delegates to AmazonNewInboundManager::processUnprocessed(). Returns immediately with a success message regardless of per-shipment outcomes — check the index endpoint afterwards to see updated statuses and any errorLog entries.
Unprocess New Inbound Shipments
Reverse the processing of the given new FBA inbound shipments. Detaches PendingInbound rows and reverses any inventory movement that was created when the shipments were processed.
Archive New Inbound Shipments
Archive the given new FBA inbound shipments by setting archived_at to now. Archived shipments are hidden from the default list view but remain in the database for audit/history. Returns the count actually archived.
Get Unlinked New Inbound Shipments
List new FBA inbound shipments for this integration instance that have not been linked to a SKU source (no purchase order or warehouse transfer assigned). Used by the UI to surface shipments that still need source assignment before they can be processed.
Set Sent Before Initial Count
Bulk toggle the is_before_initial_count flag on the given shipments. Pass value as the string 'true' or 'false'. When set, the shipment is treated as sent prior to the integration's initial inventory count and excluded from inbound inventory math. Also clears the errorLog on the affected shipments.
Unarchive New Inbound Shipments
Restore previously archived shipments by clearing archived_at. Returns the count actually unarchived.
List Draft Inbound Plans
List draft FBA inbound plans for an integration instance.
Create Draft Inbound Plan
Create a new draft FBA inbound plan.
Show Draft Inbound Plan
Get details of a specific draft FBA inbound plan.
Update Draft Inbound Plan
Update a draft FBA inbound plan. Advancing the plan to a verified state reserves source-warehouse stock; if the warehouse lacks enough on-hand quantity the request returns 400 with a product error.
Delete Draft Inbound Plan
Delete a draft FBA inbound plan and its associated warehouse transfer.
Submit Plan to Amazon
Submit a draft inbound plan to Amazon's API for processing.
Cancel Amazon Plan
Cancel the associated Amazon FBA inbound plan.
Create Warehouse Transfer
Create a warehouse transfer for the draft inbound plan.
Add Item to Draft Plan
Add an item to a draft FBA inbound plan.
Bulk Add Items to Draft Plan
Bulk add items to a draft FBA inbound plan.
Update Item
Update a draft plan item.
Remove Item from Draft Plan
Remove an item from a draft FBA inbound plan.
Bulk Update Items
Bulk update draft plan items.
List Initial Inventory
List FBA initial inventory records for an integration instance.
Show Initial Inventory
Get a specific initial inventory record.
Reconcile Initial Inventory
Reconcile a specific initial inventory record.
Unreconcile Initial Inventory
Unreconcile a specific initial inventory record.
Reconcile All Initial Inventory
Reconcile all initial inventory records.
Reconcile Initial Inventories (Batch)
Reconcile specific initial inventory records.
Unreconcile All Initial Inventory
Unreconcile all initial inventory records.
Reconcile Initial Inventories for FNSKUs
Reconcile initial inventories for specific FNSKU products.
Unreconcile Initial Inventories (Batch)
Unreconcile specific initial inventory records.
List Outbound Fulfillments
List Amazon outbound fulfillment orders.
Delete Outbound Fulfillment
Delete an outbound fulfillment order.
Get Unlinked Outbound Fulfillments
Get unlinked outbound fulfillment orders.
Refresh Outbound Fulfillments
Refresh outbound fulfillment orders from Amazon.
Create Fulfillment
Create a fulfillment record linking an Amazon fulfillment order to a SKU sales order.
Create Shortage from Pending Inbound
Create an inbound shortage record from a pending inbound.
Update Inbound Shortage
Update an Amazon inbound shortage record.
Delete Inbound Shortage
Delete an Amazon inbound shortage record.
Generate Accounting Transaction for Shortage
Generate an accounting transaction for an Amazon inbound shortage.
List reimbursement cases
Returns a paginated list of Amazon reimbursement cases tracked by SKU.io. Supports Spatie QueryBuilder filtering, sorting, and grouped advanced filters. Eager-loads integrationInstance, assignedUser, fnskuProduct, and product.
Create reimbursement case
Creates a new reimbursement case. Required: integration_instance_id, category, claim_window_expires_at (must be in the future), quantity, unit_cost, potential_amount, currency (ISO 4217), idempotency_key. Optional fields may be omitted. Returns 201 with the new resource.
Reimbursement cases headline summary
Returns headline KPI totals for the reimbursement cases dashboard: potential recovery, in-flight, recovered YTD, and lifetime recovered amounts and counts. Optionally scoped to specific integration instances.
Trigger reimbursement case detection
Dispatches a background job that re-scans data sources for potential reimbursement cases. Returns the tracked job log ID so the frontend can monitor progress via the job tray.
Show reimbursement case
Returns a single reimbursement case with integrationInstance, assignedUser, fnskuProduct, product, and reimbursements relationships eager-loaded.
Update reimbursement case
Partially updates an existing reimbursement case. All fields are optional (`sometimes` / `nullable`). To submit the case via Seller Central, use the transition endpoint instead.
Delete reimbursement case
Deletes a reimbursement case along with its notes and detaches any linked FBA reimbursements. Returns 204 No Content.
Transition reimbursement case status
Transitions a case to a new lifecycle status. Required: status (one of potential, under_review, ready_to_submit, submitted, partially_reimbursed, reimbursed, denied, dismissed, expired). If transitioning to 'submitted' and amazon_case_id is provided, the case is marked as submitted with that Seller Central case number. Returns 422 if the transition is invalid.
Assign reimbursement case to user
Assigns the case to a user (or clears the assignment when assigned_user_id is null). assigned_user_id must reference an existing user.
List reimbursement case notes
Returns all notes attached to the case, ordered by creation date. Each note includes the authoring user's name.
Create reimbursement case note
Adds a manual note authored by the current user to the case. Body is required and must be at least 1 character. Returns 201 with the new note.
Reimbursement case activity log
Returns a paginated Spatie activity log scoped to the reimbursement case and its notes. Includes the causer (user) name, event, subject type/id, and properties payload.
Get Dashboard Data
Get the Amazon inventory and valuation dashboard data, aggregated across integration instances.
Refresh Reports
Dispatch a background job to refresh inventory reports for a specific integration instance.
Run Scheduled Job
Dispatch a scheduled background job.
Cost Source Breakdown
Get cost confidence breakdown by cogs_source.
Cost Source Event Breakdown
Get event type breakdown for a specific cost source.
Cost Source Layer Drilldown
Get paginated individual FIFO layers for a cost source drilldown.
Check FIFO Layer Revert Eligibility
Check if a FIFO layer's manual override can be reverted.
Revert FIFO Layer Override
Revert a manual cost override on a FIFO layer back to its automatically calculated value.
Batch Check Revert Eligibility
Check revert eligibility for multiple FIFO layers at once (max 100).
Bulk Revert Manual Overrides
Bulk revert all eligible manual COGS overrides matching the given filters.
List FIFO Layers
List FIFO Layers
Get FIFO Layer
Get FIFO Layer
List Consumptions across all FIFO Layers (paginated)
Cross-layer paginated consumption listing. Each item is transformed via AmazonFifoConsumptionResource; the fifo_layer relation is included for cross-layer context.
List Consumptions for Layer
Get paginated FIFO consumptions for a specific layer.
Get Layer Activity Log
Get audit/activity log for a specific FIFO layer. Shows COGS changes and other modifications.
Bulk Update COGS
Bulk-set the same COGS value on multiple FIFO layers. Validation (BulkUpdateFifoLayerCogsData): layer_ids required array min:1; layer_ids.* required integer exists:amazon_fifo_layers,id; cogs required numeric min:0. Additionally, all selected layers MUST belong to the same product or a 422 is returned. Returns the updated_count and a success message.
Export FIFO Layers
Export FIFO Layers
Download COGS Import Template (CSV)
Streams a CSV template (fifo-layer-cogs-import-template.csv) with headers: layer_id, cogs. Includes one sample row (12345, 9.99).
Validate COGS Import
Validates a parsed CSV import payload BEFORE committing. Validation rules: rows required array min:1; rows.*.layer_id present; rows.*.cogs present. Per-row business validation checks layer existence and cogs >= 0. Returns valid_rows, error_rows, and summary counts.
Execute COGS Import
Executes a validated COGS import. Validation rules: rows required array min:1; rows.*.layer_id required integer; rows.*.cogs required numeric min:0. Each row updates the layer's cogs and propagates the change to consumptions, discrepancies, provisional layers, and pending inbounds. Wrapped in a DB transaction.
Get FIFO Inventory Valuation
Get FIFO Inventory Valuation
Get Max Report Date
Get Max Report Date
List Valuation Snapshots
List Valuation Snapshots
Get Valuation Totals
Get Valuation Totals
List Amazon Products for Integration
Paginated list of `AmazonProduct` rows for one Amazon integration instance. Powers the Vue 3 **Amazon → Products** listing page (`AmazonProductsPage`).
Show Amazon Product
Returns a single `AmazonProduct` wrapped in the SKU.io response envelope. Delegates to the abstract sales-channel show — the response body contains the full `AmazonProductResource` payload (same fields as the list endpoint).
Update Single Product Metadata (Label / Prep Owner)
Patches the `metadata.label_owner` / `metadata.prep_owner` fields on the Amazon product associated with a SKU.io `ProductListing`. Used by the FBA prep configuration UI.
Archive Single Product
Archives a single Amazon product via `AmazonProductManager::archive([$product->id])`. The product is reloaded with `productListing.product.defaultFinancialLineType` + `productListing.subscriptionOffering` and returned as an `AmazonProductResource`.
Unarchive Single Product
Unarchives a single Amazon product via `AmazonProductManager::unarchive([$product->id])`. Returns the refreshed product as an `AmazonProductResource`.
Refresh Single Product (Catalog Lookup)
Refreshes a single product's catalog data directly from Amazon's SP-API catalog endpoint via `AmazonProductManager::getCatalogItem($product)`. Updates `catalog_data`, `catalog_data_last_sync`, `was_catalog_data_sync_attempted`, and `removed_from_amazon` in place, then returns the refreshed `AmazonProductResource`.
Get Raw Catalog Data from Amazon
Forces a live catalog lookup against Amazon for a single product (via `AmazonProductManager::getCatalogItem`) and then returns the *raw* sync output: ASIN, `catalog_data`, `catalog_data_last_sync`, `was_catalog_data_sync_attempted`, `removed_from_amazon`, and the underlying `json_object` for the row.
Create SKU.io Product from Amazon Product
Single-row variant of the bulk Create-SKU-Products endpoint. Used by the per-row **Create SKU.io Product** button in the unified mapping modal (Amazon parity with Faire/Shopify).
Map Single Product to SKU.io Product
Per-row mapping endpoint used by the unified products mapping modal (Faire/Shopify parity). Maps a single Amazon product to either an existing SKU.io product (`product_id`) or a subscription offering (`subscription_offering_id`).
Unmap Single Product
Removes the existing `ProductListing` link between an Amazon product and its SKU.io product. Returns HTTP 422 with `Product is not mapped.` when no mapping exists.
Get Orders for Product
Paginated list of Amazon orders (`AmazonOrder`) that include a line item with this product's `seller_sku`. Orders are returned sorted by `PurchaseDate` (newest first) and wrapped in `AmazonOrderResource`. Used by the **Recent Orders** lazy-loading tab on the product detail/mapping modal.
Get Product Filter Options
Distinct values used by the dropdown filters on the Vue 3 **Amazon → Products** page (`brands`, `product_types`, `conditions`, `statuses`). Pulls distinct, non-empty values from the `amazon_products` table scoped to the integration instance and sorts each list alphabetically.
Get Latest Sync Info
Sync summary card data for the **Amazon → Products** page header chip — last sync timestamp, total/ mapped/unmapped product counts, and the title/date of the most recently updated product.
Refresh All Products (Tracked)
Triggers an asynchronous Amazon report request via `AmazonReportManager::requestCreateSync(AmazonReportTypeEnum::PRODUCTS)` to refresh the catalog. Returns immediately with a queued-message; progress is surfaced in the global Job Progress Tray (TrackedJob).
Export Products
Streams an export of the integration instance's Amazon products (CSV/XLSX) using the abstract sales-channel exporter. Returns a `BinaryFileResponse`, a `RedirectResponse` (when async export is dispatched), or the SKU.io response envelope on failure.
Create SKU.io Products (Bulk)
Bulk-creates SKU.io products from a selection of Amazon products. Delegates to `AbstractSalesChannelProductController::abstractCreateSkuProducts`.
Map Products to SKU.io Products (Bulk)
Bulk-maps Amazon products to existing SKU.io products (or `subscription_offering_id`) in a single call. Used by the legacy import wizard.
Import Mappings (CSV/XLSX)
Queues a `ImportSalesChannelProductMappingsJob` on the `serial` queue to apply Amazon → SKU.io product mappings from a previously uploaded file.
Archive Products (Bulk)
Bulk-archives Amazon products. Body accepts either an explicit ID list, or `mode: 'all'` to archive every product for this integration instance.
Unarchive Products (Bulk)
Bulk-unarchives previously archived Amazon products. Same body shape as the bulk Archive endpoint (`ids` or `mode = 'all'`).
Check Archiveable
Pre-flight check that returns per-product status (`can_archive` / reason if not) for the supplied selection. Used by the UI to disable Archive in bulk-action menus when some rows can't be archived (e.g. they have open orders).
Delete Products (Bulk)
Bulk-deletes Amazon product records (and their `ProductListing` rows). Body accepts `ids` (array) or `mode: 'all'`.
Check Deleteable
Pre-flight check for the bulk-delete action. Returns per-product `can_delete` / `reason` so the UI can disable Delete in the bulk-action menu when some rows can't be removed (typically because they have linked orders or inventory movements).
Sync Inventory to Amazon
Submits the supplied SKU.io `product_listings` IDs to Amazon as an inventory feed. The controller groups listings by Amazon marketplace country code (`ProductListingRepository::getAmazonProductListingsByCountryCode`) and dispatches one sync per group so that each marketplace gets its own feed.
List FNSKU Products
List FNSKU products for a specific Amazon integration instance.
Show FNSKU Product
Get details of a specific FNSKU product.
Generate FNSKU Products
Generate FNSKU product records from inventory data.
Link FNSKU to Product
Link a FNSKU product to an internal product.
Bulk Map by ASIN
Bulk map FNSKU products by ASIN to internal products.
Get Auto-Mapping Settings
Get auto-mapping settings for an integration instance.
Update Auto-Mapping Settings
Update auto-mapping settings for an integration instance.
Get Activity Log
Get FNSKU product mapping activity log for an integration instance.
List FBA Inventory
List FBA inventory report records for an integration instance.
Show FBA Inventory Record
Get a specific FBA inventory report record.
List Ledger Summaries
List FBA inventory ledger summary records for an integration instance.
Show Ledger Summary
Get a specific ledger summary record.
List Settlement Data
List Amazon settlement data records for an integration instance. Supports DataTable filtering, pagination, and sorting.
Show Settlement Data
Get a specific settlement data record.
Get Type Mappings
Get settlement type mappings for an integration instance.
Map Settlement Types
Update settlement type mappings (maps transaction types to nominal codes).
Get Type Mapping Lookups
Get lookup data (nominal codes, mapping groups) for the settlement type mapping form.
Bulk Assign Type Mappings
Bulk assign a nominal code or mapping group to multiple settlement type mappings.
Import Settlement Types
Import settlement type mappings from a CSV file.
Export Settlement Types
Export settlement type mappings as CSV/Excel.
Get Fallback Settings (Per Instance)
Get fallback finance settings (default nominal codes) for an Amazon integration instance.
Update Fallback Settings (Per Instance)
Update fallback finance settings for an integration instance.
List Mapping Groups
List settlement mapping groups for an integration instance.
Create Mapping Group
Create a new settlement mapping group.
Update Mapping Group
Update a settlement mapping group.
Delete Mapping Group
Delete a settlement mapping group.
Reorder Mapping Groups
Reorder settlement mapping groups by providing an ordered list of IDs.
List AWD Ledgers
List AWD ledger entries for an integration instance.
Delete AWD Ledgers
Delete specific AWD ledger entries.
Show AWD Ledger
Get a specific AWD ledger entry.
Import AWD Ledger
Import AWD ledger data from a CSV file.
Reconcile All AWD Ledgers
Reconcile all unreconciled AWD ledger entries.
Reconcile AWD Ledgers
Reconcile specific AWD ledger entries.
Unreconcile AWD Ledgers
Unreconcile specific AWD ledger entries.
Get Linkable Sales Order Lines
Get sales order lines that can be linked to an AWD ledger entry.
Link to Sales Order Line
Link an AWD ledger entry to a sales order line.
Unlink from Sales Order Line
Unlink an AWD ledger entry from its sales order line.
Get Linkable Ledgers for Sales Order Line
Get AWD ledger entries that can be linked to a specific sales order line.
Get Linkable Destination Warehouses
Get warehouses that can serve as transfer destinations for an AWD ledger entry.
Link to Warehouse Transfer
Link an AWD ledger entry to a warehouse transfer.
Unlink from Warehouse Transfer
Unlink an AWD ledger entry from its warehouse transfer.
List AWD Ledgers (per integration instance)
List AWD (Amazon Warehousing and Distribution) ledger entries for the given Amazon integration instance. This endpoint uses the generic DataTable trait which paginates and exposes column-level visibility via included/excluded JSON arrays. The route automatically scopes results to integration_instance_id = {integrationInstance}. The AmazonAwdLedger model does not use HasFilters/HasSort traits, so it does not accept Spatie-style filter[xxx] / sort=... query params beyond DataTable's standard mechanics.
Delete AWD Ledgers
Delete the specified AWD ledger entries. Returns the number of records deleted.
Show AWD Ledger
Display a single AWD ledger entry with eager-loaded relationships: fnskuProduct.product, fifoLayer, fifoConsumptions, warehouseTransferLines.warehouseTransfer, and fbaWarehouseTransfer.
Import AWD Ledger CSV
Import AWD ledger data from a CSV that was previously uploaded to the model-imports disk (typically via the file-upload pre-staging endpoint). Validates that the stored file exists, processes it via ProcessAwdLedgerImport, then deletes the file. Returns counts of processed, created, skipped (duplicate/invalid), and reconciled rows.
Reconcile All Unreconciled
Reconcile every unreconciled AWD ledger entry for the integration instance. For RECEIVED events this creates AWD FIFO layers; for DEPARTED events this consumes existing layers (creating fifo consumptions). Returns processed/skipped counts and the number of FIFO layers + consumptions created.
Reconcile Specific IDs
Reconcile only the specified AWD ledger entries.
Unreconcile Specific IDs
Unreconcile the specified AWD ledger entries — clears reconciled_at, reconciled_quantity, and amazon_fifo_layer_id and removes associated FIFO consumptions.
Get Linkable Sales Order Lines (for AWD ledger)
Return the candidate sales order lines that can be linked to the given AWD ledger entry. Used by the AWD ledger linking UI to populate the sales order line combo box. Each line includes a computed display_label suitable for the combo (e.g. 'SO-7777 | 2026-05-12 | MY-SKU-001').
Link AWD Ledger to Sales Order Line
Link a DEPARTED (direct sale type, e.g. 'repl-ship-*') AWD ledger entry to a specific sales order line. Returns the updated ledger resource. A 422 is returned if the link is invalid (e.g. ledger is not a sales-order type, ledger is already linked to a warehouse transfer, or the sales order line is otherwise ineligible).
Unlink AWD Ledger from Sales Order Line
Detach the AWD ledger from the specified sales order line. Returns the updated ledger resource. A 422 is returned if the unlink is invalid (e.g. ledger is not currently linked to the supplied sales order line).
Get Linkable Ledgers for Sales Order Line
Return candidate AWD ledger entries that can be linked to the given sales order line. Used from the sales order line side of the linking UI.
Get Linkable Destination Warehouses
Return the list of destination warehouses to which the given AWD ledger can be linked via a warehouse transfer. Excludes the source AWD warehouse.
Link AWD Ledger to Warehouse Transfer
Create a warehouse transfer (AWD source warehouse -> chosen destination warehouse) and link the AWD ledger to it. Returns the updated ledger resource. A 422 is returned for invalid links (e.g. ledger is not a sales-order type, already linked to a sales order line, or already linked to a warehouse transfer).
Unlink AWD Ledger from Warehouse Transfer
Detach the AWD ledger from its current warehouse transfer link and (if applicable) delete the auto-created transfer. Returns the updated ledger resource. No request body is required; pass an empty JSON object. A 422 is returned if the ledger is not currently linked to a warehouse transfer.
List Nominal Code Mappings
List financial event type to nominal code mappings for an integration instance.
Create Nominal Code Mapping
Create a new financial event type to nominal code mapping.
Get Report Info
Get report configuration and status information for an integration instance.
Sync Report
Trigger a sync for a specific Amazon report.
Create Report
Request a new Amazon report.
Get Finance Dashboard
Get Finance Dashboard
New Ledger Bulk COGS Suggestions
Get COGS suggestions for multiple new ledger entries in bulk.
List Financial Event Groups
List financial event groups (settlements) for an integration instance.
Show Financial Event Group
Get a specific financial event group.
List FNSKU Products (paginated, with reconciliation data)
Returns a paginated list of FNSKU products across all integration instances, enriched with per-record reconciliation_data (total_ledgers, reconciled_ledgers, reconciliation_percentage, initial_inventory_reconciled, unreconciled_discrepancies_count, reconciliation_status).
Get FNSKU Product
Get FNSKU Product
Get ASIN mapping statistics
Returns aggregate counts of mapped vs unmapped FNSKUs and ASIN groups.
Search FNSKU products
Lightweight FNSKU search (up to 50 results), used for manual discrepancy creation.
List Unmapped FNSKU Products (paginated)
Paginated list of FNSKU products that are not yet mapped to a product. Uses UnifiedAmazonFnskuProductMapperResource.
List Mapped FNSKU Products (paginated)
Paginated list of FNSKU products already mapped to a product. Uses UnifiedAmazonFnskuProductMapperResource.
List Unmapped FNSKUs Grouped by ASIN
FNSKUs grouped by ASIN where at least one FNSKU is unmapped. Includes FNSKUs without ASINs grouped as 'No ASIN'.
List Mapped FNSKUs Grouped by ASIN
FNSKUs grouped by ASIN where at least one FNSKU is mapped. mapping_status is 'mapped' or 'partially_mapped'.
Export FNSKU Products (unpaginated)
Returns ALL FNSKU products with reconciliation data (forces per_page=10000). Same filters as the paginated index.
Auto-Mapping Activity Log
Paginated activity log of FNSKU auto-mapping events across all integrations.
Get Discrepancies for FNSKU Product
Get Discrepancies for FNSKU Product
Get Ledgers for FNSKU Product
Get Ledgers for FNSKU Product
Get Inventory Tally Summary
Get Inventory Tally Summary
Map Single FNSKU to a Product
Map a single FNSKU product to a product. Pass product_id=null to unmap (also triggers unreconciliation). When linking, dispatches a tracked reconciliation job.
Map all FNSKUs for an ASIN to a Product
Map every FNSKU with the given ASIN to a product. Pass product_id=null to unmap.
Bulk Reconcile
Dispatch bulk reconciliation for the given FNSKU product IDs, or for all IDs matching `filters` when `apply_to_all=true`.
Bulk Unreconcile
Dispatch bulk unreconciliation for the given FNSKU product IDs, or for all IDs matching `filters` when `apply_to_all=true`.
Reconcile All (tracked job)
Dispatches a tracked ReconcileAllFnskuProductsJob. Returns the tracked_job_log_id so the frontend can monitor progress in the job tray.
Bulk Link (to single product)
Link the given FNSKU products to a single product (or all filtered IDs when apply_to_all=true). Dispatches a tracked reconciliation job.
Update Initial Unit Cost
Update Initial Unit Cost
Update Auto-Mapping Settings (Bulk)
Update Auto-Mapping Settings (Bulk)
Complete Partial Mapping (by ASIN)
For an ASIN that has some FNSKUs mapped and some unmapped, link the unmapped ones to the most-common existing product.
Show FNSKU Product Detail
Returns detail payload for a single FNSKU product (including reconciliation_data, initial_fba_inventory, inventory_summary, related_counts).
FNSKU Discrepancies (paginated)
Paginated discrepancies for an FNSKU product (route-model-bound by id). Adds computed `status` field (reconciled|unreconciled).
FNSKU Ledgers (paginated)
Paginated FBA ledger entries for an FNSKU product, formatted via UnifiedAmazonFnskuProductLedgerResource.
FNSKU Summary Ledgers (paginated)
Paginated FBA inventory ledger summary rows for an FNSKU product.
FNSKU Removal Orders (paginated)
Paginated removal orders associated with an FNSKU product.
FNSKU Removal Shipments (paginated)
Paginated removal shipments associated with an FNSKU product.
Inventory Tally Summary
Computes ledger vs summary inventory variance for a specific as-of date, with event-type and discrepancy reason breakdowns.
Reconciliation Timeline (paginated)
Chronological reconciliation stream (ledger entries + discrepancies) with running tally, FIFO layer data, and summary balances.
Reconciliation Sync Status
Summary statistics about how many entries are reconciled.
Reconciliation Chart Data
Time-series data points for the reconciliation chart for a single FNSKU product.
Resolve Filtered IDs (for bulk ops)
Returns the IDs (and total count) of all FNSKU products matching the given filters. Used to back 'apply to all filtered' bulk operations.
Bulk Unlink
Unlink the given FNSKU products from their products (or all filtered IDs when apply_to_all=true). Each is also auto-unreconciled.
Unreconcile All (tracked job)
Dispatches a tracked UnreconcileAllFnskuProductsJob. Returns the tracked_job_log_id for progress monitoring.
Reconcile Single FNSKU
Synchronously reconcile a single FNSKU product's COGS. Long-running (time limit raised to 300s).
Unreconcile Single FNSKU
Synchronously unreconcile a single FNSKU product's COGS via AmazonCogsReconciliationManager.
Update Initial Unit Cost (single)
Update the initial unit cost for a single FNSKU product.
Bulk Update Initial Unit Cost
Apply the same initial unit cost to multiple FNSKU products.
Suggested Initial Unit Cost (single)
Returns suggestions for the initial unit cost: from the mapped product's unit_cost and from sibling FNSKUs (same product + same country/location).
ASIN Suggestion (single)
Looks up the ASIN/MSKU/title for the given FNSKU and checks if another FNSKU with the same ASIN is already mapped to a product.
Bulk Suggested Initial Unit Cost
Returns per-FNSKU initial unit cost suggestions with pre-computed `recommended_value` and `is_uniform` flags for bulk editing.
Create FIFO Layers for Initial Inventory
Create FIFO layers for initial inventory. Specific IDs run synchronously; `apply_to_all=true` dispatches a tracked InitializeAllFnskuProductsJob.
List Ledgers
List Ledgers
Get Ledger
Get Ledger
Get Ledger Activity Log
Get Ledger Activity Log
Export Ledgers
Export Ledgers
List Summary Ledgers
List Summary Ledgers
Get Summary Ledger
Get Summary Ledger
Get Current Summary
Get Current Summary
Export Summary Ledgers
Export Summary Ledgers
Get Summary Ledger Activity Log
Get Summary Ledger Activity Log
List FBA Customer Returns (Across Instances)
Returns a paginated list of Amazon FBA customer returns aggregated across all (or selected) Amazon integration instances.
Bulk Mark Customer Returns as Reviewed
Dispatches a tracked background job to mark the given Amazon FBA customer return records as reviewed by the authenticated user.
Bulk Mark Customer Returns as Unreviewed
Dispatches a tracked background job to mark the given Amazon FBA customer return records as NOT reviewed (clearing `reviewed_at` and `reviewed_by_user_id`).
List Removal Orders (Grouped Across Instances)
Returns paginated removal orders grouped by (order_id, integration_instance_id). Each row is a SUMMARY with aggregated quantities, a representative status/type/disposition, line_count, and a lines array containing line-level rows for expandable UI.
Get Removal Order
Get Removal Order
Export Removal Orders
Exports ALL removal orders (line-level) across integration instances as a JSON collection (no pagination). Used by frontend export flow.
Bulk Archive Removal Orders
Dispatches a tracked job to bulk-archive removal orders. Body: { ids: int[] } (required, min 1, max 1000). Returns tracked_job_log_id.
Bulk Unarchive Removal Orders
Dispatches a tracked job to bulk-unarchive removal orders. Body: { ids: int[] } (required, min 1, max 1000). Returns tracked_job_log_id.
Bulk Unprocess Removal Orders
Dispatches a tracked job to bulk-unprocess removal orders (undo all receipts). Body: { ids: int[] } (required, min 1, max 1000). Returns tracked_job_log_id.
Show Removal Order
Returns a single removal order line-level row, with integrationInstance and amazonFnskuProduct.product eager-loaded.
List Removal Shipments (paginated, across instances)
Returns a paginated list of Amazon FBA removal shipments aggregated across integration instances. Excludes archived shipments by default unless filter[archived]=all|only is provided. Eager-loads integrationInstance and amazonFnskuProduct.product.
Get Removal Shipment
Get Removal Shipment
Export Removal Shipments (across instances)
Returns all matching Amazon removal shipments (not paginated) across integration instances for export purposes. Results are sorted by shipment_date descending. Note: these are flat top-level query parameters (not Spatie filter[*] format).
Bulk Archive Removal Shipments
Dispatches a tracked background job to bulk-archive the specified removal shipments. Body: `ids` (required array, min 1, max 1000 integers). Returns the tracked_job_log_id so the frontend can subscribe to job progress via the global job tray.
Bulk Unarchive Removal Shipments
Dispatches a tracked background job to bulk-unarchive the specified removal shipments. Body: `ids` (required array, min 1, max 1000 integers). Returns the tracked_job_log_id so the frontend can subscribe to job progress via the global job tray.
Show Removal Shipment
Returns a single Amazon FBA removal shipment by id. Eager-loads integrationInstance and amazonFnskuProduct.product.
List Transactions (paginated, cross-instance)
Get paginated Amazon transactions across all (or filtered) integration instances. Response wraps standard Laravel pagination plus an `unfiltered_total` field showing the true catalog size for the ExportModal 'All records' option. By default, superseded transactions are excluded — pass filter[include_superseded]=true to include them.
Get Transaction
Get Transaction
Statistics (grouped breakdowns)
Returns breakdown statistics grouped into business categories (sales, fees, refunds, other, net) — amounts per currency — plus available filter values for dropdowns. Excludes superseded transactions to prevent double-counting.
Sync Transactions (background job)
Dispatch a SyncAmazonTransactionsJob for each active Amazon integration instance (or only those specified via integration_instance_ids, comma-separated). Returns the count of dispatched jobs.
Process Transaction
Process a single transaction — creates the appropriate financial entities (SalesCredit, FinancialLine, etc.) and triggers a financials recalculation for affected sales order lines. Returns 422 with an error when the transaction is invalid or has no linked sales order.
Unprocess Transaction
Reverse processing for a single transaction — deletes/reverses all entities created when the transaction was originally processed. Returns the refreshed transaction resource.
Bulk Process Transactions
Process multiple transactions in one request. Required: transaction_ids (array, min 1, each must exist in amazon_transactions.id). Triggers a financials recalculation after completion.
Bulk Unprocess Transactions
Reverse processing for multiple transactions. Required: transaction_ids (array, min 1, each must exist).
Process All (background job)
Dispatch ProcessAllAmazonTransactionsJob — processes all unprocessed transactions matching the optional filters. Returns the tracked job log ID so the frontend can poll progress via /process-all/status or the global job tray.
Process All Status
Returns the most recent ProcessAllAmazonTransactionsJob status for the authenticated user — pulled from TrackedJobLog. If a Laravel Bus batch is attached, includes per-batch progress (total/pending/processed/failed jobs, finished/cancelled flags, progress percentage).
Export Transactions (background job)
Dispatch ExportAmazonTransactionsTrackedJob — generates an xlsx/csv export honouring the current filters (or a selected ID list). Returns a tracked_job_log_id; once complete, download the result via /export/download?file=...
Download Export File
Download a completed export file from the model-exports disk. Returns the binary file with Content-Type set based on extension (text/csv for .csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet for .xlsx). 404 if file is missing.
Show Transaction
Get a single Amazon transaction with full details: integration instance, items + their breakdowns, transaction-level breakdowns, breakdown totals grouped by top-level type, and any entities created when it was processed (SalesCredit, FinancialLine, etc.).
List FBA Shipments Detail (paginated, across instances)
Paginated list of FBA shipments-detail rows aggregated across Amazon integration instances. Each row represents one shipped item line from the GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL report. Filtering uses Spatie QueryBuilder with AdvancedSearchFilter (search across order/shipment/product/tracking/recipient fields) plus ~25 text filters, ~9 numeric filters, and ~8 datetime filters. Response includes linked_sales_order (bulk-resolved via amazon_order_id → amazon_orders → sales_orders join) and amazon_product (bulk-resolved by integration_instance_id + seller_sku). Default sort: -shipment_date.
FBA Shipments Detail — KPI Stats
Cross-instance KPI summary for the FBA Shipments Detail listing. Returns total_shipments (row count), total_units (sum of quantity_shipped), total_revenue (sum of item_price), and unique_orders (distinct amazon_order_id count). Used to drive the dashboard-card row above the listing.
Show FBA Shipment Detail Row
Single FBA shipment-detail row by ID with eager-loaded integrationInstance and bulk-resolved cross-links: linked_sales_order (via amazon_order_id) and amazon_product (via integration_instance_id + seller SKU). Use this to power the Vue 3 detail page.
List FBA Inventory
List FBA Inventory
List Shipments
Returns a paginated `LengthAwarePaginator` of new (v2) FBA inbound shipments across one or more Amazon integration instances. Each item is transformed by `AmazonNewFbaInboundShipmentResource` and includes identifier fields (`shipmentId`, `shipmentConfirmationId`, `amazonReferenceId`, `name`, `sourceName`), status info (`status`, `pending_status`, `errorLog`, `is_archived`), destination block (`destinationCountry`, `destinationWarehouse`, `destinationType`, `destination`), transportation IDs, the `sku_link` block (linked Purchase Order or Warehouse Transfer), `actual_source` (resolved supplier/from-warehouse derived from the SKU link), and `ship_from_mapping` (the mapping that *would* be applied today — used to surface divergence client-side). When the relevant relations are eager-loaded the resource also returns `pending_inbound`, `receipts`, and `items`. Defaults to excluding archived shipments unless `filter[archived]` is provided.
Export Shipment Items (CSV)
Streams a CSV download of new inbound shipment items (line-level rows) across the supplied integration instances. Each row represents one line item with its parent shipment info repeated. Columns: `sr_no`, `confirmation_id`, `shipment_id`, `shipment_name`, `status`, `source_name`, `destination_country`, `destination_warehouse`, `integration`, `msku`, `fnsku`, `asin`, `quantity_sent`, `quantity_received`, `shipment_created_at`.
Refresh All (Sync from Amazon)
Dispatches `RefreshAmazonNewInboundShipmentsTrackedJob` to (re)sync new FBA inbound shipments (via their plans) from Amazon for one or more integration instances. Returns immediately with a `tracked_job_log_id` that the frontend uses to render progress in the global Job Progress Tray.
Process All (Apply Unprocessed Shipments)
Dispatches `ProcessAmazonNewInboundShipmentsTrackedJob` which links unprocessed new FBA inbound shipments to their SKU.io source records (Purchase Orders / Warehouse Transfers via ship-from mappings) and processes cancellations across one or more integration instances. Returns immediately with a `tracked_job_log_id` for the global Job Progress Tray.
KPI Stats
Returns KPI counts for the New Inbound Shipments page, scoped to active (non-archived) shipments only. Counts are computed across the provided integration instances (or all instances when none supplied). Response keys:
List Legacy FBA Inbound Shipments
Returns a paginated list of legacy `AmazonFbaInboundShipment` records aggregated across one or more integration instances. Eager loads `integrationInstance` and `skuLink`.
Export Shipment Items (CSV)
Exports legacy inbound shipment items (line-level) across the specified integration instances as a CSV file download. One row per `AmazonFbaInboundShipmentItem` with shipment metadata repeated per line.
Refresh All Shipments (dispatch tracked job)
Dispatches a `RefreshAmazonLegacyInboundShipmentsTrackedJob` to refresh legacy inbound shipments from Amazon across the specified integration instances.
Process All Unprocessed Shipments (dispatch tracked job)
Dispatches a `ProcessAmazonLegacyInboundShipmentsTrackedJob` to process unprocessed legacy inbound shipments across the specified integration instances. Processing handles SKU linking, ledger entries, and cancellation reconciliation.
Get KPI Stats
Returns KPI counts for legacy inbound shipments aggregated across the specified integration instances:
List Discrepancies
List Discrepancies
Create Discrepancy
Create Discrepancy
Get Discrepancy
Get Discrepancy
Export Discrepancies
Export Discrepancies
Get Discrepancy Statistics
Get Discrepancy Statistics
Recheck Discrepancy
Recheck Discrepancy
Recheck All Discrepancies (Async)
Recheck All Discrepancies (Async)
Update Investigation Status
Update Investigation Status
List Financial Event Groups
List Financial Event Groups
Get Financial Event Group
Get Financial Event Group
Export Financial Event Groups
Export Financial Event Groups
Generate Accounting Transactions
Generate Accounting Transactions
Delete Accounting Transactions
Delete Accounting Transactions
Bulk Generate
Bulk Generate
Update Base Currency Rate
Update Base Currency Rate
List Reports
List Reports
Get Report
Get Report
Get Report Statistics
Get Report Statistics
Get Available Report Types
Get Available Report Types
Process Report
Process Report
Request Raw Data Download
Queues an asynchronous DownloadAmazonReportRawDataJob to fetch the report's raw data from the SP-API. The job broadcasts an `amazon.report-raw-data.ready` event (status `ready` or `failed`) on the requesting user's private channel (`App.Models.User.{tenantId}.{userId}`) when it finishes, so the SPA can refetch the raw data without polling. Returns immediately with 200 once the job is dispatched, or 404 if the report does not exist.
List Settlement Data
List Settlement Data
Get Settlement Data Lookups
Get Settlement Data Lookups
List Type Mappings
List Type Mappings
Get Type Mapping Lookups
Get Type Mapping Lookups
Bulk Assign Type Mappings
Bulk Assign Type Mappings
Export Type Mappings
Export Type Mappings
Import Type Mappings
Import Type Mappings
Get Fallback Settings
Get Fallback Settings
Update Fallback Settings
Update Fallback Settings
List Mapping Groups
List Mapping Groups
Create Mapping Group
Create Mapping Group
Update Mapping Group
Update Mapping Group
Delete Mapping Group
Delete Mapping Group
Get AWD initial inventory status
Returns the AWD initial inventory setup status for each NA-region Amazon integration instance, including the as-of date (day before fba_inventory_tracking_start_date). The as-of date is converted from UTC to the app timezone for display.
Get AWD initial inventory summary
Returns aggregated AWD initial inventory summary statistics (counts, totals, unique FNSKUs/countries) for each integration instance.
List AWD shipments (paginated)
Paginated AWD shipments across integration instances. Eager loads integrationInstance and items, and calls loadUnitQuantitiesForItems() per shipment.
Delete AWD shipments
Deletes selected AWD shipments by IDs. Same validation pattern as process/unprocess: ids array OR apply_to_all + filters.
Get AWD Shipment
Get AWD Shipment
List AWD ledgers (paginated)
Paginated AWD ledger entries across integration instances. Eager-loads integrationInstance, fnskuProduct.product, fifoLayer, fifoConsumptions, salesOrderLines.salesOrder/product, warehouseTransferLines.warehouseTransfer, fbaWarehouseTransfer.
Delete AWD ledgers
Deletes AWD ledger entries by IDs. Same validation pattern as other bulk ledger ops.
Refresh AWD shipments (dispatch jobs)
Dispatches RefreshAmazonAwdInboundShipmentsJob for each instance. Skips non-NA region, AWD-sync-disabled, and AWD-access-denied instances. Blocks instances whose initial inventory has not been handled. The job fetches the shipment list, dispatches detail-fetch jobs, then auto-processes.
Process AWD shipments
Processes selected AWD shipments by IDs (creates WT/PO links based on ship-from mappings). Pass ids: [...] for explicit selection, OR apply_to_all: true + filters: {...} to operate on every shipment matching the filter set. Validation: apply_to_all (sometimes|boolean), filters (required_if:apply_to_all,true|array), ids (required_without:apply_to_all|array), ids.* (integer).
List ship-from mappings (paginated)
Paginated AWD/FBA ship-from mappings across integration instances. Eager loads integrationInstance and the polymorphic link (Supplier or Warehouse).
Get AWD initial inventory details
Returns detailed AWD initial inventory entries with their FIFO layer data (unit_cost, total_value, fifo_layer_id, cogs_source) for the specified integration instances.
Confirm no AWD initial inventory
Marks the specified integration instances as having no AWD initial inventory. Sets awd_initial_inventory_confirmed_no_inventory=true so AWD sync can proceed.
Import AWD initial inventory
Imports AWD initial inventory from a previously uploaded CSV file (AWD Inventory Ledger - Summary report). The integration instance is auto-detected from FNSKU data; integration_instance_id is used as a fallback if auto-detection fails. Required field: stored_name (string). Optional: integration_instance_id (integer). The endpoint validates that FNSKUs are mapped before proceeding.
Delete AWD initial inventory
Deletes all AWD initial inventory entries (and their FIFO layers) for the specified integration instances. Resets the awd_initial_inventory_imported and awd_initial_inventory_confirmed_no_inventory flags so initial inventory can be re-imported or re-confirmed.
Reset AWD access denied flag
Resets the AWD access denied flag for the specified integration instances. This allows re-probing Amazon's AWD API for instances previously flagged as not having AWD access (HTTP 403 from Amazon).
Update AWD sync enabled
Enables or disables AWD sync per integration instance (stored in integration_settings, replaces the legacy AMAZON_AWD_SYNC_ENABLED env var). Required fields: integration_instance_ids (array of integers, min 1, each must exist in integration_instances.id), awd_sync_enabled (boolean).
Show AWD shipment
Returns a single AWD shipment with items, origin warehouse, origin supplier, integrationInstance, and full quantity/inventory data eager-loaded.
Unprocess AWD shipments
Unlinks (unprocesses) selected AWD shipments by IDs, clearing their sku_link. Same validation pattern as process: pass ids or use apply_to_all + filters.
Get eligible purchase orders for AWD shipment
Returns the purchase orders eligible for linking to the given AWD shipment, with PO line summaries.
Link AWD shipment to purchase order
Links the AWD shipment to an existing purchase order. Required: purchase_order_id (integer, must exist in purchase_orders.id).
Unlink AWD shipment from purchase order
Unlinks an AWD shipment from its linked purchase order, clearing the sku_link reference. No body required.
Import AWD ledger CSV
Imports an AWD ledger CSV file. Integration instance is auto-detected from the FNSKU/Reference ID data in the CSV. Required: stored_name (string). Optional: integration_instance_id (integer) as fallback when auto-detection fails. Checks for unmapped FNSKUs before processing.
Reconcile AWD ledgers
Reconciles AWD ledger entries by IDs. Groups by integration instance internally. Same validation as other bulk ops: ids array OR apply_to_all + filters.
Unreconcile AWD ledgers
Unreconciles AWD ledger entries by IDs. Clears reconciled_at, reconciled_quantity, and amazon_fifo_layer_id. Same validation pattern.
Update ship-from mapping
Updates a ship-from mapping's link target. Optional: link_id (integer, nullable), link_type (string, nullable, must be 'App\Models\Supplier' or 'App\Models\Warehouse'). Pass null link_id to clear the mapping.
Bulk update ship-from mappings
Bulk updates ship-from mappings. Two modes: (1) explicit ids: [...] OR (2) apply_to_all: true + filters: {...}. Validation: apply_to_all (sometimes|boolean), filters (required_if:apply_to_all,true|array), ids (required_without:apply_to_all|array), ids.* (integer, must exist in amazon_fba_inbound_ship_from_mappings.id), link_id (nullable|integer), link_type (nullable|string|in:App\Models\Supplier,App\Models\Warehouse). Pass null link_id to clear mappings.
Show FIFO Layer detail
Returns detail for a single Amazon FIFO layer, including source links, parent/child layers, cost breakdown, and manual override tracking. 404 if not found.
List Consumptions for a Specific FIFO Layer (paginated)
Paginated consumption records for one FIFO layer. 404 if the layer doesn't exist.
Activity Log for a FIFO Layer (paginated)
Returns paginated Spatie activity-log entries for the given FIFO layer, newest first. Uses the AppliesActivityLogFilters trait for filter[event], filter[source], filter[batch_uuid]. 404 if the layer doesn't exist (findOrFail).
List Restock Report
List Restock Report
List Unified MCF Fulfillment Orders
Returns a paginated list of MCF (Multi-Channel Fulfillment) orders aggregated across all Amazon integration instances the user has access to. Supports Spatie QueryBuilder filters and sorts. Each item includes related integration instance, sales order fulfillment, items, and shipments.
Show Unified MCF Fulfillment Order
Returns a single MCF fulfillment order with full detail, including the integration instance, related sales order fulfillment, all order items, shipments, and return authorizations. Response is wrapped in the application's standard envelope (top-level `data`).
Get OAuth Config
Returns the Shopify OAuth configuration that tells the frontend which connection mode to render.
Create Integration
Create a new Shopify integration instance.
Get Authorization URL
Returns the Shopify OAuth authorization URL for an integration instance. The frontend redirects the merchant's browser to this URL to begin authorization.
Show Install (Claim Page)
PUBLIC (no authentication). Reveals the Shopify store being connected on the claim page after an App Store cold install.
Claim Install (Attach to Existing Workspace)
AUTHENTICATED. Attaches a stashed cold install to a workspace the signed-in merchant already belongs to. The merchant MUST already have a SKU.io account — this flow never creates users or tenants.
List Orders
List Shopify orders for an integration instance with advanced filtering, sorting, and pagination.
Get Latest Sync Info
Get aggregate stats about order sync status. Returns total counts, SKU order coverage, and the sync cursor used for incremental syncs.
Get Filter Options
Get distinct currency, source_name, and payment_gateway values for dropdown filters.
Search Shopify Orders
Search for orders directly in the Shopify store via GraphQL API.
Get Order Detail
Get complete order details with all relationships eagerly loaded: customer, line items, shipping lines, refunds, fulfillments, fulfillment orders, transactions, returns.
Get Raw Order (REST)
Fetch raw order data from the Shopify REST API for debugging. Data is not persisted.
Get Raw Order (GraphQL)
Fetch order data from the Shopify GraphQL API (same query used for order sync). Draft orders (source_name = shopify_draft_order) are fetched via the DraftOrder query.
Get Order Line Items
Lazy-load order line items with taxes, discounts, refunds, fulfillment info, and SKU product mapping.
Get Order Shipping Lines
Lazy-load order shipping lines with taxes and discounts.
Get Order Refunds
Lazy-load order refunds with line items, shipping lines, and adjustments.
Get Order Fulfillments
Lazy-load order fulfillments with line items and Shopify location info.
Get Order Transactions
Lazy-load order transactions with Shopify Payments fees.
Get Note Attribute Names
Get unique note attribute names (keys) across all orders for this integration instance.
Get Metafield Keys
Get unique metafield keys across all orders for this integration instance.
Delivery Date Preview
Preview how delivery date configuration rules would apply to existing orders.
Refresh Orders (Tracked)
Start a tracked order refresh from Shopify. Returns a tracked_job_log_id for progress polling.
Get Refresh Progress
Poll the progress of a tracked order refresh job.
Bulk Archive Orders
Archive multiple Shopify orders. Supports filtering with apply_to_all.
Bulk Unarchive Orders
Unarchive multiple Shopify orders.
Bulk Delete Orders
Delete multiple Shopify orders. Single orders deleted synchronously; multiple dispatches a tracked job.
Bulk Delete SKU Orders
Bulk delete the linked SKU sales orders (keeps Shopify orders intact). Dispatches a tracked job for large batches.
Archive Single Order
Archive a single Shopify order.
Unarchive Single Order
Unarchive a single Shopify order.
Delete Single Order
Delete a single Shopify order from the local database.
Delete SKU Order (Keep Shopify Order)
Delete the linked SKU sales order while keeping the Shopify order intact. Optionally archives the Shopify order.
List Shopify Fulfillments
List synced Shopify fulfillments for an integration instance (paginated).
List Pending Fulfillments
List pending SKU sales order fulfillments waiting to sync to Shopify. Includes mismatch data (unlinked Shopify fulfillments).
Get Fulfillment Stats
Get fulfillment page stats: pending sync count, mismatch count, and automatic sync schedule info.
Submit Single Fulfillment
Submit a single SKU sales order fulfillment to Shopify.
Submit Bulk Fulfillments
Submit multiple selected SKU fulfillments to Shopify.
Submit All Pending Fulfillments
Submit all pending SKU fulfillments to Shopify in one operation.
List Fulfillment Mismatches
List SKU fulfillments that have mismatches — not synced to Shopify but the order has unlinked Shopify fulfillments.
Link Fulfillments
Link a SKU fulfillment to an existing Shopify fulfillment to resolve a mismatch. Use force_link=true if tracking numbers differ.
Update Shopify Fulfillment from SKU
Update Shopify fulfillment tracking info from the SKU fulfillment and link them.
Delete SKU Create from Shopify
Delete the SKU fulfillment and create a new one from the Shopify fulfillment data. Resolves mismatches where Shopify is the source of truth.
List Inventory Comparison
Get paginated inventory comparison data showing SKU.io quantities vs Shopify quantities per product/location.
Get Inventory Summary
Get inventory summary statistics: synced count, variance count, needs recalculation count.
Get Inventory Locations
Get available Shopify locations for inventory filtering.
Trigger Inventory Recache
Trigger a job to recache SKU.io inventory quantities. Returns tracked_job_log_id for progress polling.
Get Recache Progress
Poll progress of an inventory recache job.
Trigger Inventory Sync
Trigger a job to sync SKU.io inventory quantities to Shopify. Returns tracked_job_log_id.
Get Sync Progress
Poll progress of an inventory sync job.
Fetch Live Inventory
Trigger a job to fetch live inventory quantities directly from Shopify. Returns tracked_job_log_id.
Get Fetch Live Progress
Poll progress of a fetch-live-inventory job.
List Webhook Events
List webhook events for an integration instance with pagination.
Get Webhook Event Details
Get full details of a specific webhook event including the raw payload JSON.
Get Processing Stats
Get webhook event processing statistics: counts by status, failure rates, etc.
Process Pending Events
Manually trigger processing of pending webhook events for an integration instance.
Retry Failed Events
Retry failed webhook events for an integration instance.
Process Event by ID
Process a specific pending webhook event by ID.
Reprocess Event by ID
Reprocess a webhook event including already-processed events (force retry).
Bulk Reprocess Events
Bulk reprocess multiple webhook events by IDs or by filter.
Bulk Delete Events
Bulk delete webhook events by IDs or by filter. Requires confirmation='YES' to proceed.
Delete All Events for Integration
Delete ALL webhook events for an integration instance. Requires confirmation='YES'.
List Products
List Shopify products for an integration instance with advanced filtering, sorting, and pagination.
Get Latest Sync Info
Get aggregate stats about product sync status for an integration instance.
Get Filter Options
Get distinct vendor and product_type values for populating dropdown filters in the products datatable.
Smart Match
Find matching SKU products for a Shopify product using SKU, barcode, and fuzzy matching.
Map Product
Map a Shopify product variant to a SKU product (or subscription offering).
Unmap Product
Remove the mapping between a Shopify product and its SKU product.
Create SKU Product
Create a new SKU product from a Shopify product and map it. If a SKU product with the same SKU already exists, links to it instead.
Archive Single Product
Archive a single Shopify product (sets archived_at timestamp).
Unarchive Single Product
Unarchive a single Shopify product (clears archived_at timestamp).
Get Raw Product from Shopify
Fetch the raw Shopify REST API response for a product. Used for debugging and transparency.
Get Orders for Product
Get paginated Shopify orders that contain this product variant (matched by variant_id).
Search Shopify Products
Search for products directly in the Shopify store via GraphQL API.
Refresh Single Product from Shopify
Fetch and sync a single Shopify product (all variants) from Shopify by its parent product ID.
Refresh Products (Tracked)
Start a tracked product refresh job from Shopify. Returns a tracked_job_log_id to poll for progress.
Get Refresh Progress
Poll the progress of a tracked product refresh job.
Refresh from Shopify (Enhanced)
Enhanced product refresh from Shopify with mode control. Dispatches a background job.
Bulk Operation
Execute a bulk operation on Shopify products synchronously.
Bulk Operation (Tracked)
Start a tracked bulk operation on Shopify products. Returns a tracked_job_log_id for progress polling.
Get Bulk Progress
Poll the progress of a tracked bulk product operation job.
Bulk Archive
Archive multiple Shopify products by their IDs.
Bulk Delete
Delete multiple Shopify products from the local database (does not delete in Shopify).
Download Bulk Mapping CSV Template
Download a CSV template pre-filled with Shopify product data and current mappings. Users fill in the map_to_sku column and upload back.
Validate Bulk Mapping CSV
Validate an uploaded CSV mapping file. Returns validation results including valid mappings and invalid rows.
Apply Bulk Mapping CSV
Apply validated CSV mappings — creates or updates product listings for each mapping pair.
Preview Revenue Conversion
Preview the impact of retroactively converting this product's historical sales-order lines (scoped to **this Shopify integration instance**) into revenue financial lines. Read-only — nothing is changed.
Get Affected Orders
Paginated list of sales orders that would be affected by a revenue-line conversion for this product (scoped to this Shopify integration instance). Powers the conversion wizard's impact step.
Convert Product Lines to Revenue
Flag this product as a revenue line and retroactively convert its historical sales-order lines (scoped to this Shopify integration instance) into revenue financial lines via a tracked background job.
List Access Scopes
List the OAuth access scopes granted to this Shopify app installation, sorted alphabetically by handle. Sourced from the Shopify Admin GraphQL `currentAppInstallation.accessScopes` field.
Get Shop Plan
Fetch the shop plan from Shopify and return whether the store has Customer PII access via GraphQL. Basic/Starter plans do not have PII access — when false, customer email/addresses are excluded from order syncs.
Set Returns Access
Toggle whether the Shopify GraphQL `returns` field should be queried when this integration instance syncs orders. Set to `false` when the app installation lacks the `read_returns` permission scope — Shopify rejects the field with 'Access denied for returns field' otherwise. The system also auto-flips this to `false` the first time that error is observed.
Create Integration Instance
Create a new Ebay integration instance. Returns a redirect_url for OAuth authorization. Requires Bearer token.
List Integration Instances (DataTable)
List all Ebay integration instances using the DataTable system. Requires Bearer token.
Show Integration Instance
Retrieve a single Ebay integration instance. Requires Bearer token.
Update Integration Instance
Update an existing Ebay integration instance. All fields are optional. Requires Bearer token.
Delete Integration Instance
Delete an Ebay integration instance. Cascades deletion of associated listings, orders, product listings, API logs, sales channel, and data import mappings. Requires Bearer token.
List Legacy Products (Integration)
List all Ebay legacy product listings for a specific integration instance using the DataTable system. Returns paginated results with table specifications.
Show Legacy Product
Retrieve a single Ebay legacy product listing. Requires Bearer token.
Update Legacy Product
Update an existing Ebay legacy product listing. Requires Bearer token.
Delete Legacy Product
Delete an Ebay legacy product listing. Requires Bearer token.
Create SKU Products from Listings
Create SKU.io products from selected Ebay listings. Returns 400 if a listing is missing a SKU. Requires Bearer token.
Refresh Legacy Products
Queue a job to refresh all legacy product listings from the Ebay API. Returns a tracked job log ID for progress monitoring. Requires Bearer token.
Map Products
Map Ebay legacy listings to SKU.io products. Requires Bearer token.
Smart Match Product
Find suggested SKU product matches for a single eBay listing.
Get Raw Product from eBay
Fetch the raw eBay GetItem response for a single listing, live from eBay's Trading API. Powers the 'Load Raw Data from eBay' button on the listing detail page.
Export Legacy Products
Export all legacy product listings for an integration instance as a file download. Requires Bearer token.
Archive Legacy Products
Archive selected Ebay legacy product listings. Requires Bearer token.
Unarchive Legacy Products
Unarchive selected Ebay legacy product listings. Requires Bearer token.
Check Archiveable Products
Check which of the given listings can be archived. Returns lists of archiveable and non-archiveable products. Requires Bearer token.
Delete Legacy Products (Bulk)
Bulk delete selected Ebay legacy product listings. Requires Bearer token.
Check Deleteable Products
Check which of the given listings can be deleted (not linked to any Ebay orders). Requires Bearer token.
Import Mappings
Import field mapping configuration for linking Ebay listing fields to SKU.io product fields. Requires Bearer token.
Sync Inventory
Push current SKU.io inventory quantities to Ebay listings. Requires Bearer token.
Hydrate Product Template
Hydrate an Ebay listing template with data from a SKU.io product. Requires Bearer token.
Get Suggested Categories
Get Ebay category suggestions for a product query using the Ebay Taxonomy API. Requires Bearer token.
Build Payload
Build the Ebay listing payload for one or more SKU.io products. Used to preview the data that will be sent to Ebay before publishing. Requires Bearer token.
Publish Listings
Publish SKU.io products as new Ebay listings. Returns 400 if Ebay returns a bad request error. Requires Bearer token.
List Orders (Integration)
List all Ebay orders for a specific integration instance using the DataTable system. Returns paginated results.
Show Order
Retrieve a single Ebay order by its database ID. Requires Bearer token.
Refresh Orders
Queue a job to refresh all orders from the Ebay API. Returns a tracked job log ID for progress monitoring. Requires Bearer token.
Create SKU Orders from Ebay
Create SKU.io sales orders from selected Ebay orders. Requires Bearer token.
Export Orders
Export all Ebay orders for an integration instance as a file download. Requires Bearer token.
List Orders (DataTable Global)
List Ebay orders across all integration instances (DataTable global view). Requires Bearer token.
List Legacy Products (DataTable Global)
List Ebay legacy products across all integration instances (DataTable global view). Requires Bearer token.
List Integration Instances (DataTable Global)
List Ebay integration instances (DataTable global view). Requires Bearer token.
List Product Settings
Retrieve Ebay product settings for a specific SKU.io product. Returns all Ebay-specific settings (e.g., auction-until-sold configuration) for the product across all integration instances. Requires Bearer token.
Save Product Settings
Create or update Ebay product settings for a SKU.io product. Upserts by product_id and integration_instance_id. Requires Bearer token.
Uncovered Blemished Products
Get a list of blemished/refurbished products that do not have an active Ebay listing covering them. Used for identifying inventory gaps in Ebay auction-until-sold programs. Requires Bearer token.
Listed Blemished Products Out of Stock
Get blemished products that currently have active Ebay listings but are out of stock. Useful for identifying listings that should be ended or revised due to zero inventory. Requires Bearer token.
List Integration Instances
List all BigCommerce integration instances (DataTable endpoint).
Create Integration Instance
Create a new BigCommerce integration instance. After creation, automatically dispatches jobs to refresh products and orders from BigCommerce.
Get Integration Instance
Get a single BigCommerce integration instance with salesChannel and integration relationships loaded.
Update Integration Instance
Update a BigCommerce integration instance. Supports both PUT (full update) and PATCH (partial update — merges connection_settings and integration_settings with existing values).
Partial Update Integration Instance
Partially update a BigCommerce integration instance. Settings are deep-merged with existing values — only send the fields you want to change.
Delete Integration Instance
Delete a BigCommerce integration instance. Dispatches a DeleteSalesChannelJob to clean up associated data asynchronously.
Store Mapped Warehouse Locations
Map BigCommerce locations to internal warehouses. Updates the warehouse_id for each BigCommerce location.
Download Locations
Sync BigCommerce locations synchronously (runs BigCommerceGetLocationsJob inline) and return the current list of BigCommerce locations along with configured inventory locations from the integration settings.
Get Authorization URL
Get the BigCommerce OAuth authorization URL for connecting the integration. Redirect the user to this URL to begin the OAuth flow.
List Products
List BigCommerce products for a specific integration instance (DataTable endpoint).
Get Product
Get a single BigCommerce product.
Create SKU Products from BigCommerce
Create SKU.io products from selected BigCommerce products. Products are created asynchronously via queue.
Refresh Products
Queue a job to refresh all products from BigCommerce for this integration instance.
Map Products
Map BigCommerce products to SKU.io products. Creates product listings linking BigCommerce listings to internal products.
Export Products
Export BigCommerce products as a CSV or Excel file. Supports the same DataTable filter parameters as the list endpoint.
Archive Products
Archive BigCommerce products (soft-delete). Products are marked as archived and hidden from default listings.
Unarchive Products
Unarchive previously archived BigCommerce products.
Check Archiveable Products
Check which of the given BigCommerce products can be archived. Returns a collection indicating whether each product is archiveable.
Delete Products
Permanently delete BigCommerce products from SKU.io (does not delete from BigCommerce). Use archiveable endpoint first to check if deletion is safe.
Check Deleteable Products
Check which of the given BigCommerce products can be deleted.
Import Product Mappings
Import product mapping data from a file (CSV/Excel). Queues an ImportSalesChannelProductMappingsJob to process the mappings asynchronously.
List Orders
List BigCommerce orders for a specific integration instance (DataTable endpoint).
Get Order
Get a single BigCommerce order with order items loaded.
Create SKU Orders from BigCommerce
Create SKU.io sales orders from selected BigCommerce orders.
Refresh Orders
Queue a job to refresh all orders from BigCommerce for this integration instance.
Refresh Single Order
Refresh a single BigCommerce order by its unique identifier (BigCommerce order ID). Fetches the latest data from BigCommerce API and returns the updated order resource.
Export Orders
Export BigCommerce orders as a CSV or Excel file.
Fulfill Order
Submit a fulfillment to BigCommerce for a given SKU.io sales order fulfillment. Sends shipment/tracking information back to BigCommerce.
List Integration Instances
List all WooCommerce integration instances.
Create Integration Instance
Create a new WooCommerce integration instance.
Show Integration Instance
Show a single WooCommerce integration instance with loaded integration and store relations.
Update Integration Instance
Update a WooCommerce integration instance.
Delete Integration Instance
Delete a WooCommerce integration instance. This dispatches a background job to clean up all associated data.
Get Authorization URL
Get the WooCommerce OAuth authorization URL for a given integration instance.
List Products
List WooCommerce products for an integration instance using the DataTable system.
Show Product
Get a single WooCommerce product.
Update Product
Update a WooCommerce product record.
Delete Product
Delete a single WooCommerce product record from SKU.io.
Create SKU Products from WooCommerce
Queue a job to create SKU.io products from the selected WooCommerce products.
Refresh Products
Queue a background job to refresh all WooCommerce products from the store API.
Refresh Products (Tracked)
Queue a tracked background job that paginates products from WooCommerce with real-time progress in the Job Progress tray.
Map Products
Map WooCommerce products to SKU.io products.
Smart Match Product
Find suggested SKU product matches for a single WooCommerce listing.
Get Raw Product from WooCommerce
Fetch the raw WooCommerce REST API response for a single product, live from /wp-json/wc/v3/products/{id}. Powers the 'Load Raw Data from WooCommerce' button on the listing detail page.
Create SKU Product from WooCommerce Product
Create a new SKU product from a WooCommerce listing's data and map it. If a SKU product with the same SKU already exists, the existing one is linked instead of creating a duplicate (response includes linked_existing=true).
Export Products
Export WooCommerce products as a file download (CSV or Excel).
Archive Products
Archive WooCommerce products (hide from active list without deleting).
Unarchive Products
Unarchive previously archived WooCommerce products.
Check Archiveable Products
Check which products from the provided list can be archived.
Delete Products
Permanently delete WooCommerce products from SKU.io (does not delete from WooCommerce).
Check Deleteable Products
Check which products from the provided list can be deleted.
Import Product Mappings
Queue a background job to import product field mappings for this integration instance.
Sync Inventory to WooCommerce
Push current SKU.io inventory quantities to WooCommerce for selected products.
List Orders
List WooCommerce orders for an integration instance using the DataTable system.
Show Order
Get a single WooCommerce order with order items loaded.
Update Order
Update a WooCommerce order record.
Delete Order
Delete a WooCommerce order record from SKU.io.
Create SKU Orders from WooCommerce
Create SKU.io sales orders from selected WooCommerce orders.
Update SKU Orders from WooCommerce
Update SKU.io sales orders from WooCommerce order data.
Refresh Orders
Queue a background job to refresh all orders from the WooCommerce API.
Refresh Single Order
Refresh a single WooCommerce order by its unique WooCommerce order ID.
Export Orders
Export WooCommerce orders as a file download.
Fulfill Orders
Submit fulfillments to WooCommerce for the specified orders.
List Integration Instances
List all Walmart integration instances (DataTable endpoint).
Create Integration Instance
Create a new Walmart integration instance. After creation, automatically fetches an access token, dispatches jobs to download locations, and refresh products and orders.
Get Integration Instance
Get a single Walmart integration instance with salesChannel and integration relationships loaded.
Update Integration Instance
Update a Walmart integration instance. Supports both PUT (full update) and PATCH (partial update — merges connection_settings and integration_settings with existing values).
Partial Update Integration Instance
Partially update a Walmart integration instance. Settings are deep-merged with existing values — only send the fields you want to change.
Delete Integration Instance
Delete a Walmart integration instance. Dispatches a DeleteSalesChannelJob to clean up associated data asynchronously.
Store Mapped Warehouse Locations
Map Walmart ship nodes (locations) to internal warehouses. Updates the warehouse_id for each Walmart location.
Download Locations
Sync Walmart ship nodes synchronously (runs WalmartGetLocationsJob inline) and return the current list of Walmart locations along with configured inventory locations from the integration settings.
Get Authorization URL
Get the Walmart OAuth authorization URL for connecting the integration. Note: WalmartAuthenticationController is currently a placeholder for future OAuth support. Walmart currently uses client ID + client secret authentication.
List Products
List Walmart products for a specific integration instance (DataTable endpoint).
Get Product
Get a single Walmart product.
Create SKU Products from Walmart
Create SKU.io products from selected Walmart products. Products are created asynchronously via queue.
Refresh Products
Queue a job to refresh all products from Walmart for this integration instance.
Map Products
Map Walmart products to SKU.io products. Creates product listings linking Walmart listings to internal products.
Smart Match Product
Find suggested SKU product matches for a single Walmart listing.
Map Single Product
Map a single Walmart listing to a SKU product (or subscription offering). Creates a ProductListing record, or updates the existing one if already mapped (remap). After mapping, dispatches a job to map any previously unmapped sales order lines for the new listing.
Unmap Single Product
Remove the mapping between a Walmart listing and its SKU product by deleting the ProductListing record. The Walmart product itself is preserved.
Create SKU Product from Walmart Product
Create a new SKU product from a Walmart listing's data and map it. If a SKU product with the same SKU already exists, the existing one is linked instead of creating a duplicate (response includes linked_existing=true).
Get Raw Product from Walmart
Fetch the raw Walmart Marketplace API response for a single item, live from /v3/items/{sku}. Powers the 'Load Raw Data from Walmart' button on the listing detail page.
Export Products
Export Walmart products as a CSV or Excel file. Supports the same DataTable filter parameters as the list endpoint.
Sync Inventory
Push current inventory levels to Walmart for the specified products (or all products if ids is omitted). Submits inventory quantities to the Walmart Marketplace API.
Archive Products
Archive Walmart products (soft-delete). Products are marked as archived and hidden from default listings.
Unarchive Products
Unarchive previously archived Walmart products.
Check Archiveable Products
Check which of the given Walmart products can be archived.
Delete Products
Permanently delete Walmart products from SKU.io (does not delete from Walmart). Use archiveable endpoint first to check if deletion is safe.
Check Deleteable Products
Check which of the given Walmart products can be deleted.
Import Product Mappings
Import product mapping data from a file (CSV/Excel). Queues an ImportSalesChannelProductMappingsJob to process the mappings asynchronously.
List Orders
List Walmart orders for a specific integration instance (DataTable endpoint).
Get Order
Get a single Walmart order with order items loaded.
Create SKU Orders from Walmart
Create SKU.io sales orders from selected Walmart orders.
Update SKU Orders from Walmart
Update existing SKU.io sales orders from the latest Walmart order data. Useful for syncing status changes (e.g. cancellations, acknowledgements).
Refresh Orders
Queue a job to refresh all orders from Walmart for this integration instance.
Refresh Single Order
Refresh a single Walmart order by its unique identifier (customerOrderId). Fetches the latest data from Walmart API and returns the updated order resource.
Export Orders
Export Walmart orders as a CSV or Excel file.
Fulfill Order
Submit a fulfillment to Walmart for a given SKU.io sales order fulfillment. Sends shipment/tracking information back to the Walmart Marketplace API.
Download Orders
Download Magento orders by increment_id. Dispatches a synchronous job to fetch the specified orders from Magento and create/update them in SKU.
Download Products
Download Magento products by ID or SKU. Provide either 'ids' (entity_id) or 'skus', not both.
List Inventory Sources
Returns the locally stored Magento inventory sources and the integration settings inventory sources for the given integration instance.
Download Inventory Sources
Downloads inventory sources from Magento API and stores them locally, then refreshes the integration instance settings. Returns the updated inventory sources list.
List Product Attributes
Returns the Magento product attributes for the given integration instance.
Get Config
Returns the public OAuth config (app_key, redirect_url) for the requested environment. The Vue 3 frontend uses this to build the TikTok authorization URL.
OAuth Init
Generates a state UUID, caches it for 15 minutes, and returns the TikTok authorization URL the user should be redirected to. Optionally accepts an integration_instance_id to re-link an existing instance.
List Integration Instances
List Integration Instances
Get Integration Instance
Get Integration Instance
Update Integration Instance
Update Integration Instance
Disconnect Integration Instance
Permanently disconnect the integration. Synced data is retained but no further syncs occur.
Show Integration Instance
Returns a single integration instance with integration and salesChannel relations.
Update Integration Instance
Patch-update name and/or integration_settings. integration_settings is deep-merged into the existing JSON.
Delete Integration Instance
Deletes the integration instance. Webhook unsubscribe is best-effort — local delete proceeds even on remote failure.
List Orders
Spatie QueryBuilder paginated list of TikTok Shop orders across instances. Allowed filters: integration_instance_ids, status (TikTok Shop single-axis enum: UNPAID|ON_HOLD|AWAITING_SHIPMENT|PARTIALLY_SHIPPING|AWAITING_COLLECTION|IN_TRANSIT|DELIVERED|COMPLETED|CANCELLED), fulfillment_method, currency, payment_method_name, cancelled, archived, status_state (active|archived|all), search (matches tiktok_order_id/buyer_email/recipient_name), date_from, date_to. Allowed sorts: id, tiktok_order_id, status, total_amount, tiktok_create_time, tiktok_update_time, tiktok_paid_time, last_sync_at, created_at, updated_at. Default sort: -tiktok_create_time. per_page defaults to 10.
Get Order
Get Order
Get Raw Order from TikTok
Fetches the live order JSON directly from the TikTok Shop API (`/order/202309/orders?ids=...`) for a single previously-synced order. Mirrors the Shopify `getRawOrderFromShopify` pattern — used by the frontend Raw Data section as a fetch-on-demand tool to inspect the current upstream payload without writing it to the database.
Refresh Orders from TikTok
Dispatches a tracked job to pull recent orders from TikTok Shop.
Refresh Single Order
Re-syncs a single order by TikTok order ID.
Search Orders (Local DB)
Searches LOCAL DB for already-synced TikTok Shop orders. Unlike Shopify's equivalent endpoint, this does NOT hit the TikTok Shop API — TikTok's API does not currently support free-text order search. Use this to find orders already synced into SKU.io and re-trigger an update via Refresh Single Order.
Submit Tracking
Submit Tracking
List Shipping Providers
List Shipping Providers
Get Filter Options
Returns distinct values present on the orders for this instance: currencies, payment_methods, fulfillment_methods. Used to populate filter dropdowns on the orders list page.
Get Latest Sync Info
Returns sync metadata: latest_order_name, latest_order_date, sync_cursor_at, total_orders, last_sync_at.
Archive Order
Soft-archives a TikTok Shop order. Sets archived_at timestamp.
Unarchive Order
Restores a previously archived TikTok Shop order. Clears archived_at.
Bulk Archive Orders
Bulk-archives orders. Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object to archive every matching order. Returns archived_count.
Bulk Unarchive Orders
Bulk-unarchives orders. Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object. Returns unarchived_count.
Delete Order
Permanently deletes a TikTok Shop order from SKU.io (does not affect TikTok).
Bulk Delete Orders
Bulk-deletes orders. Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object. Returns deleted_count.
Create SKU Orders from TikTok Shop
Create SKU sales orders from TikTok Shop orders. Mirrors the Shopify endpoint. Supports three request shapes:
Update SKU Orders from TikTok Shop
Update existing SKU sales orders from their linked TikTok Shop orders. Re-derives the SalesOrder DTO and persists changes via the SalesOrderRepository. Only TikTok Shop orders that already have a linked SalesOrder are eligible. Pass either `ids: [...]` for a specific subset, or `update_all_orders: true` (optionally with `filters: {...}`). The `use_jobs` flag is accepted for parity with Shopify but is currently ignored — TikTok always runs synchronously.
Delete Linked SKU Order
Delete the SKU sales order linked to a single TikTok Shop order. The TikTok Shop order itself is kept intact. Pass `archive_tiktok_shop_order=true` to additionally archive the TikTok Shop order so it won't be re-created on the next sync. Returns 404 if no SKU order is linked.
Bulk Delete Linked SKU Orders
Bulk-delete the SKU sales orders linked to the given TikTok Shop orders. The TikTok Shop orders themselves are kept intact unless `archive_tiktok_shop_orders=true` is passed. Pass either an explicit `ids` array, or `apply_to_all: true` with the current `filters` object. Returns the deleted count. TODO: For large batches a tracked job should be dispatched (currently runs synchronously, mirroring Shopify's BulkDeleteSkuOrdersFromShopifyTrackedJob).
Show Order
Returns a single TikTok Shop order with lineItems and packages eager-loaded.
Refresh Orders (Tracked)
Dispatches RefreshTikTokShopOrdersJob for the given instance. Returns a tracked_job_log_id to poll via the global job tray.
Submit Tracking
Dispatches SubmitTikTokShopTrackingJob to push tracking numbers up to TikTok for the order's packages. Returns a tracked_job_log_id.
List Shipping Providers
Returns the list of TikTok-recognized shipping providers for the instance (used to populate dropdowns in the shipping method mapping UI).
Query Pre-Start-Date Orders
Query TikTok Shop for orders predating the inventory start date in a given window.
Search Pre-Start-Date Orders
Search TikTok Shop for a specific pre-start-date order by ID or buyer email.
Import Pre-Start-Date Orders
Import selected pre-start-date orders into SKU.io.
List Products
List Products
Get Product
Get Product
Sync Products from TikTok
Sync Products from TikTok
Get Product Filter Options
Returns distinct status values and category {id, name} pairs for products belonging to the given integration instance. Used to populate the Status and Category filter dropdowns on the Products list page.
Map Product SKU
Map a TikTok Shop product SKU (TikTokShopProductSku) to a SKU.io Product or Subscription Offering. Mirrors Shopify single-map. Body requires `sku_id` plus exactly one of `product_id` or `subscription_offering_id`. Response includes the reloaded product with skus + product listing.
Unmap Product SKU
Unmap a TikTok Shop product SKU. Deletes the underlying ProductListing. Returns 422 if the SKU is not currently mapped.
Archive Product
Soft-archive a single TikTok Shop product (sets archived_at). Mirrors Shopify single-archive.
Unarchive Product
Restore an archived TikTok Shop product (clears archived_at). Mirrors Shopify single-unarchive.
Delete Product
Hard-delete a single TikTok Shop product and its child SKUs. Mirrors Shopify single delete.
Bulk Archive Products
Bulk-archives TikTok Shop products (sets archived_at). Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object to archive every product matching the listing filters. Returns archived_count.
Bulk Unarchive Products
Bulk-unarchives TikTok Shop products (clears archived_at). Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object. Returns unarchived_count.
Bulk Delete Products
Hard-deletes TikTok Shop products (and their child SKUs) in bulk. Either pass an explicit `ids` array, or `apply_to_all: true` with the current `filters` object. Returns deleted_count.
Bulk Unmap Product SKUs
Bulk-unmaps TikTok Shop product SKUs from their SKU.io ProductListings (deletes the ProductListing records). Per-SKU, not per-product, because mapping is at the SKU level.
Download CSV Mappings
Download a CSV of TikTok Shop SKU → SKU.io product mappings, scoped by selection, unmapped-only, or all (filtered).
Upload CSV Mappings
Upload an edited CSV (downloaded from the Download CSV Mappings endpoint) to bulk-apply TikTok SKU → SKU.io product mappings in one pass. Validates and applies row-by-row.
Show Product
Returns a single TikTok Shop product with skus and shop eager-loaded.
Sync Products (Tracked)
Dispatches SyncTikTokShopProductsJob to fetch all products for the instance. Returns a tracked_job_log_id.
Get Raw Product from TikTok
Fetches the live raw product JSON directly from the TikTok Shop API (`GET /product/202309/products/{tiktok_product_id}`) for the given local product. Used by the product detail page's 'Raw Data from TikTok' accordion when the user clicks 'Load Raw Data from TikTok'.
Get Orders Containing Product
Returns a paginated list of TikTok Shop orders that contain this product (orders whose line items reference the product's `tiktok_product_id`). Used by the product detail page's 'Orders Containing This Product' accordion.
List TikTok Warehouses
Returns TikTok Shop warehouses (locations) for this seller.
Refresh Locations from TikTok
Refresh Locations from TikTok
List Packages
Paginated list of TikTok Shop packages across one or many integration instances. Includes related order summary.
List Pending Fulfillments
Paginated list of SalesOrderFulfillment records awaiting TikTok tracking submission for the given integration instance.
Fulfillment Sync Stats
Counts and sync-schedule note for the fulfillments page.
Submit Single Fulfillment
Submit one SalesOrderFulfillment's tracking to TikTok Shop.
Submit Bulk Fulfillments
Submit tracking for a list of SalesOrderFulfillment IDs.
Submit All Pending Fulfillments
Submit tracking for every pending fulfillment for this integration instance.
List Returns
List Returns
Get Return
Get Return
Sync Returns from TikTok
Sync Returns from TikTok
Show Return
Returns a single TikTok Shop return with the related order eager-loaded.
Sync Returns (Tracked)
Dispatches SyncTikTokShopReturnsJob for the instance. Returns a tracked_job_log_id.
List Refunds
List Refunds
Get Refund
Get Refund
Sync Refunds from TikTok
Sync Refunds from TikTok
Show Refund
Returns a single TikTok Shop refund with the related order eager-loaded.
Sync Refunds (Tracked)
Dispatches SyncTikTokShopRefundsJob for the instance. Returns a tracked_job_log_id.
List Transactions
Paginated list of TikTok Shop transactions (statement transactions) across integration instances. Supports Spatie QueryBuilder filters and sorts.
Get Transaction
Returns a single TikTok Shop transaction with its `integration_instance` and (when matched by `related_order_id` -> `tiktok_order_id`) `order` relations eager-loaded for the detail page. Includes native columns for money breakdown (revenue_amount, fee_amount, tax_amount, net_amount, settlement_amount, shipping_cost_amount, reserve_amount), identifiers (adjustment_id, associated_order_id), `statement_time`, and JSON sub-structures `fee_breakdown_json` / `tax_breakdown_json`.
Get Raw Transaction from TikTok
Fetches the live transaction JSON directly from the TikTok Shop Finance API (`/finance/202309/statement_transactions`) for a single previously-synced transaction. Mirrors the `Get Raw Order from TikTok` pattern — used by the frontend Raw Data section as a fetch-on-demand tool to inspect the current upstream payload without writing it to the database.
Sync Transactions from TikTok
Sync Transactions from TikTok
Show Transaction
Returns a single TikTok Shop transaction record.
Sync Transactions (Tracked)
Dispatches SyncTikTokShopTransactionsJob. Returns a tracked_job_log_id.
List Warehouse Mappings
Returns TikTok warehouses (from API), SKU.io warehouses, and existing mappings.
Upsert Warehouse Mapping
Upsert Warehouse Mapping
Delete Warehouse Mapping
Delete Warehouse Mapping
List Warehouse Mappings
Returns the existing mappings, all known TikTok Shop warehouses for the instance, and all SKU.io warehouses.
Upsert Warehouse Mapping
Create or update a warehouse mapping for the instance.
Delete Warehouse Mapping
Deletes the mapping for the given TikTok Shop warehouse id.
List Shipping Method Mappings
List Shipping Method Mappings
Upsert Shipping Method Mapping
Upsert Shipping Method Mapping
Delete Shipping Method Mapping
Delete Shipping Method Mapping
List Shipping Method Mappings
Returns existing mappings, the TikTok shipping provider list (best-effort), and all SKU.io shipping methods.
Upsert Shipping Method Mapping
Create or update a mapping between a SKU.io shipping method and a TikTok shipping provider.
Delete Shipping Method Mapping
Deletes the mapping for the given SKU.io shipping method id.
List Payment Method Mappings
List Payment Method Mappings
Upsert Payment Method Mapping
Upsert Payment Method Mapping
Delete Payment Method Mapping
Delete Payment Method Mapping
List Payment Method Mappings
Returns existing mappings, distinct observed TikTok payment method names (from synced orders), and all SKU.io PaymentType records.
Upsert Payment Method Mapping
Create or update a mapping between a TikTok payment method name and a SKU.io PaymentType.
Delete Payment Method Mapping
Deletes the mapping for a given TikTok payment method name.
Get Available Fields
Returns the catalog of available TikTok Shop source fields (grouped by Identifiers / Product Info / Variant Details / Pricing / Media / Timestamps) and SKU.io target fields (including dynamic ProductPricingTier / SupplierPricingTier / Attribute fields). Use this to populate field selectors before configuring mappings.
Get Field Mappings
Returns the full mapping picture for a TikTok Shop integration instance: available source/target fields, system defaults, custom (overridden) mappings persisted by the merchant, and the effective merged set used during product creation. Each mapping entry contains `listing_field` (TikTok side), `sku_field` (SKU.io side), and an optional `parsers` array of transforms (rules: `fr` find/replace, `tl` trim-left, `tr` trim-right, `append`).
Update Field Mappings
Replace the custom field mappings for this integration instance. Body: `mappings` (array, required) — each entry has `listing_field` (string, required), `sku_field` (string, required), and `parsers` (array, optional; each parser has `rule` one of `fr`/`tl`/`tr`/`append` and `args` shape depending on rule). The submitted set fully replaces any existing custom mappings; system defaults remain in effect for fields not included. Returns the refreshed effective mappings.
Receive Webhook (TikTok → SKU.io)
Public endpoint that receives signed webhook events from TikTok Shop. Topics: ORDER_STATUS_CHANGE, PACKAGE_UPDATE, REVERSE_ORDER_STATUS_CHANGE, PRODUCT_STATUS_CHANGE, INVENTORY_UPDATE, AUTHORIZATION_REVOKED.
List Webhook Events
Paginated list of TikTok Shop webhook events across one or many integration instances.
Delete All Webhook Events
Permanently delete ALL webhook events, optionally scoped to one or more integration instances. Cannot be undone.
Get Webhook Event Stats
Counts of webhook events grouped by processing status (pending, processing, completed, failed) plus a total. Used to power the summary cards on the Webhooks Events tab.
Show Webhook Event
Show a single webhook event including its raw payload.
Delete Webhook Event
Permanently delete a single webhook event.
Process Webhook Event
Re-dispatch the processing job for a webhook event without resetting its status.
Reprocess Webhook Event
Reset a webhook event back to pending (clears processed_at and processing_error) and re-dispatch the processing job. Use this for failed events.
Bulk Delete Webhook Events
Permanently delete multiple webhook events by ID.
Bulk Process Pending Webhook Events
Loop pending webhook events and dispatch ProcessTikTokShopWebhookEventJob for each. Optionally scope to specific integration instances and cap the batch with `limit` (max 500, default 100).
Bulk Retry Failed Webhook Events
Reset failed webhook events to pending and re-dispatch ProcessTikTokShopWebhookEventJob for each. Optionally scope to integration instances and cap with `limit` (max 500, default 100).
Webhook Test — Status
Reports whether the webhook tester is available in this environment. Disabled in production.
Webhook Test — Topics & Sample Payloads
Returns supported TikTok Shop webhook topics with sample payloads suitable for use with the Process endpoint. Non-production only.
Webhook Test — Process (Replay)
Replay a sample webhook payload. Persists a TikTokShopWebhookEvent and dispatches the same ProcessTikTokShopWebhookEventJob the live receiver uses. Body: `topic` (string, one of TikTokShopWebhookTopicEnum), `data` (array — the full webhook envelope including shop_id, type, data), `dry_run` (bool, optional). Non-production only.
OAuth Callback
Browser redirect target after the merchant authorizes the app on TikTok. Exchanges the auth code for access/refresh tokens, persists a TikTokShopIntegrationInstance, syncs authorized shops, subscribes webhooks, and redirects into the SPA. NOT a JSON endpoint.
List Locations
Returns all known TikTok Shop warehouses for the integration instance (from the local cache).
Refresh Locations
Synchronously refreshes the warehouse list from TikTok Shop. Returns the number of warehouses upserted.