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"
}
}