Skip to main content

ScanPower Webhooks – Complete Event Guide

Written by Pankaj Singhal
Updated today

This article provides a comprehensive overview of all webhook events triggered during the lifecycle of an inbound shipment plan in ScanPower. Each webhook notifies your system about the current status, along with relevant data required for processing and tracking.

1. Inbound Plan Created

This webhook is triggered when a new inbound plan is successfully created.

Status: PLANNED

Payload Overview:

  • batch_id / batch_name: Identifies the batch

  • inbound_plan_id: Unique identifier for the inbound plan

  • skus: Total number of SKUs in the plan

  • units: Total units included

  • errors: Any issues encountered during creation

  • items: List of items in the plan

Format

{
"status": "PLANNED",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"skus": 0, // the number of skus
"units": 0, // the total quantity
"errors": [] // a list of error objects, if any
},
"items": [] // a list of items
}

Use Case:

Initiate internal workflows such as inventory allocation or validation upon plan creation.


2. Placement Options Generated

This webhook is triggered after placement options are generated for the inbound plan.

Success Status: PLACEMENT_CONFIRMED

Key Data:

  • Number of placement options

  • Number of shipments created

  • Split shipment count

  • Detailed placement options list

Error Status: PLACEMENT_ERROR

Key Data:

  • Error count

  • List of error objects

Use Case:

Allow users or systems to review and select optimal placement strategies.

on success

{
"status": "PLACEMENT_CONFIRMED",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"placement_options": 0, // the number of placement options
"shipments": 0, // the number of shipments
"splits": 0 // the number of placement options with more than one shipment
},
"placement_options": [] // A list of placement option objects
}

on error

{
"status": "PLACEMENT_ERROR",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz"
"errors": 0 // The number of errors returned
},
"errors": [] // A list of error objects
}


3. Placement Option Accepted

Triggered when a placement option is selected and confirmed.

Success Status: PLACEMENT_CONFIRMED

Key Data:

  • Shipment confirmation details

  • Destination information

  • SKU and unit breakdown per shipment

Error Status: PLACEMENT_ERROR

Use Case:

Proceed with shipment preparation based on confirmed warehouse destinations.

On Success

{
"status": "PLACEMENT_CONFIRMED",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"shipments": [{
"shipment_confirmation_id": "xyz",
"destination": {},
"skus": 0, // the number of skus
"units": 0 // the total quantity
}],
},
"placement_option": {} // The placement option object
}

On error

{
"status": "PLACEMENT_ERROR",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz"
"errors": 0 // The number of errors returned
},
"errors": [] // A list of error objects
}


4. Packing Option Accepted

Triggered when packing options are generated and accepted.

Status: PACKING

Key Data:

  • Number of packing options

  • Detailed packing options list (Amazon SP-API reference)

Use Case:

Prepare for box-level packing and labeling.

{
"status": "PACKING",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"packing_options": 0 // The number of packing options
},
"packing_options": [] // https://developer-docs.amazon.com/sp-api/reference/listpackingoptions
}


5. Packing Information Submitted

Triggered after packing details are submitted.

Success Status: PACKED

Key Data:

  • Package groupings (box contents and structure)

Error Status: PACK_ERROR

Key Data:

  • Errors encountered during packing submission

Use Case:

Finalize shipment packing before transportation planning.

On Success

{
"status": "PACKED",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz"
},
"package_groupings": [] // A list of package grouping objects
}

On Error

    "status": "PACK_ERROR",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"errors": 0 // The number of errors returned
},
"errors": [] // A list of error objects
}


6. Transportation Options Generated

Triggered when available transportation options are generated.

Success Status: CONFIRMING_TRANSPORTATION

Key Data:

  • Number of transportation options

  • Carrier details

  • Shipping modes and solutions

  • Quote information

Error Status: TRANSPORTATION_ERROR

Use Case:

Evaluate and select carriers and shipping methods.

On success

 {
"status": "CONFIRMING_TRANSPORTATION",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"transportation_options": 0, // The number of transportation options generated
"carriers": 0 // The number of carriers generated
},
"carriers": [
{
"carrier": "xyz",
"quote": {}, // the quote object
"shipping_mode": "xyz",
"shipping_solution": "xyz",
"transportation_option_ids": [
"xyz"
],
}
]
}

On Error

 {
"status": "TRANSPORTATION_ERROR",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"errors": 0 // The number of errors returned
},
"errors": [] // A list of error objects
}


7. Transportation Option Accepted

Triggered when a transportation option is selected.

Success Status: TRANSPORTATION_CONFIRMED

Key Data:

  • Number of accepted transportation selections

  • Detailed transportation selection objects

Error Status: TRANSPORTATION_ERROR

Use Case:

Finalize shipping arrangements and initiate dispatch.

On Success

{
"status": "TRANSPORTATION_CONFIRMED",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"transportation_selections": 0 // The number of transportation options begin accepted
},
"transportation_selections": [] // the transportationSelections objects
}

On Error

 {
"status": "TRANSPORTATION_ERROR",
"user_id": "xyz",
"summary": {
"batch_id": "123",
"batch_name": "xyz",
"inbound_plan_id": "xyz",
"errors": 0 // The number of errors returned
},
"errors": [] // A list of error objects
}


8. Plan Cancelled

Triggered when an inbound plan is cancelled.

Status: PLAN_CANCELLED

Key Data:

  • Batch and inbound plan identifiers

Use Case:

Terminate workflows and update system records accordingly.

{

"status": "PLAN_CANCELLED",

"user_id": "xyz",

"summary": {

"batch_id": "123",

"batch_name": "xyz",

"inbound_plan_id": "xyz"

}

}

Did this answer your question?