Skip to main content

Amazon

📄️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).

📄️Generate Content Update Previews

Start generating content update previews ('Adjust shipment') for a shipped shipment via the async SP-API `generateShipmentContentUpdatePreviews` operation — used to correct box contents / item quantities after the fact. Dispatches the tracked job **'Generate FBA Content Update Previews: {plan name}'** and returns its `tracked_job_log_id` for the tracked job log endpoints; once the job completes, fetch the previews via **List Content Update Previews** and apply one via **Confirm Content Update Preview**.

📄️Get Portal Payload (3PL Portal)

Anonymous 3PL/supplier fulfillment portal entry point. Access is granted by the opaque `:token` in the URL (the packet's `portal_token`) — no bearer auth (`tenant.public-portal` middleware). Returns the full portal payload the 3PL sees: shipment reference + FBA id, source, the destination fulfillment center (`destination_fc`) and its **full destination address** (`destination_address`, Amazon SP-API camelCase keys — null until Amazon assigns placement), shipping mode / LTL flags, condition-aware `instructions` (markdown, rendered inline by the portal), downloadable `documents`, the product catalogue for the box-contents packing station (`products`), the tenant's saved carton presets (`carton_templates`), any existing `box_contents_submission` / `pallets_submission`, and the confirm gating (`can_confirm`, `confirm_blocked_reason`).

📄️Detect Reimbursement Cases

Re-runs the reimbursement discrepancy detectors and the case reconciler across all Amazon integration instances (or the subset given in `integration_instance_ids`). Works entirely from data already synced into SKU.io (inventory ledger events, customer returns, ingested reimbursement rows, etc.) — it does not call Amazon. Newly detected discrepancies create cases in `potential` status; existing open cases are matched against reimbursements Amazon has already paid.

📄️Get FBA Shipment Record (Per Instance)

Get a single Amazon-fulfilled shipment report row by ID. Rows are imported from the Amazon fulfilled shipments report and describe one shipped order item: Amazon order/item identifiers, purchase, payment, shipment and reporting timestamps (UTC ISO 8601), buyer and recipient details, ship-to and bill-to addresses, item/shipping/gift-wrap prices and taxes, promotion discounts, carrier and tracking number, fulfillment center, fulfillment channel and sales channel.

📄️Get Restock Report Row (Per Instance)

Get a single row of the Amazon restock inventory recommendations report by ID. Each row is one FNSKU/marketplace combination with Amazon's replenishment guidance: identification (fnsku, merchant_sku, asin, product_name, condition, country), pricing and sales velocity (price, sales_last_30_days, units_sold_last_30_days), current inventory position (total_units, inbound, available, fc_transfer, fc_processing, customer_order, unfulfillable, working, shipped, receiving), days of supply, alerts, and Amazon's recommended_replenishment_qty and recommended_ship_date (Y-m-d).

📄️Create Next Report Request

Create the next pending report request for a report type on this integration instance. Computes the next data window — from the last synced data point up to the newest safe end time (Amazon report data is delayed by up to 72 hours depending on report type) — and stores a report request row without calling Amazon yet. Submit it with the Create Report from Request endpoint. If an identical pending request already exists it is returned instead of creating a duplicate. Report types with long windows are split into multiple requests; the first created request is returned.

📄️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.

📄️List Shipments

Returns a paginated `LengthAwarePaginator` of new (v2) FBA inbound shipments across one or more Amazon integration instances. Each item is transformed by Amazon new FBA inbound shipment object 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.

📄️Request Latest Storage Fee Report (Sync)

Request the FBA storage fee report (GET_FBA_STORAGE_FEE_CHARGES_DATA) from Amazon, backfilling from the instance's FBA inventory tracking start month forward. Per instance, only the next contiguous block of charge months with NO data yet is requested (a single report covers a multi-month window), so months already imported are never re-requested. When every month through the last completed month is already present, no report is requested and the response carries requested=false.

📄️Request Latest Aged Inventory Surcharge Report (Sync)

Request the FBA aged inventory surcharge / long-term storage fee report (GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA) from Amazon, backfilling from the instance's FBA inventory tracking start month forward. Per instance, only the next contiguous block of charge months with NO data yet is requested (a single report covers a multi-month window), so months already imported are never re-requested. When every month through the last completed month is already present, no report is requested and the response carries requested=false.

📄️List Notification Events (audit log, paginated)

Paginated debug/audit log of delivered SP-API notification events across all Amazon instances, newest first. Read-only — lets support staff inspect exactly what Amazon delivered and how each event was processed (pending/processing/processed/failed, plus the raw payload and any error) when reconciling a missed or mis-handled notification. Filter by notification_type, processing_status, integration_instance_ids, or a free-text search over notification_id/error.