رفتن به محتوا

افزودن نشانی وب‌هوک

POST
/v1/webhooks
curl --request POST \
--url https://api.seller360.ir/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "url": "https://shop.example.ir/hooks/s360", "events": [ "stock.changed" ], "description": "سایت اصلی" }'

نشانی باید https باشد و به نشانی داخلی یا خصوصی اشاره نکند. کلید امضا (secret) فقط در همین پاسخ نمایش داده می‌شود؛ آن را نگه دارید. حداکثر ۵ نشانی برای هر پنل.

رویدادهایی که کلید شما دسترسی خواندنشان را ندارد پذیرفته نمی‌شوند (scope_missing). اگر همین درخواست را با همان Idempotency-Key تکرار کنید، secret در پاسخ تکراری null است؛ کلید امضا فقط یک بار نمایش داده می‌شود. فقط درگاه استاندارد ۴۴۳ پذیرفته می‌شود.

Idempotency-Key
required
string
>= 8 characters <= 255 characters

یک شناسه‌ی یکتا برای هر تغییر (مثلا UUID). اگر پاسخ را دریافت نکردید، همان درخواست را با همان کلید تکرار کنید؛ تغییر دو بار انجام نمی‌شود. پاسخ اول تا ۲۴ ساعت نگه داشته می‌شود.

Media typeapplication/json
object
url
required
string format: uri

Example

https://shop.example.ir/hooks/s360
events
required
Array<string>
>= 1 items
Allowed values: stock.changed price.changed order.created order.cancelled order.returned variant.status_changed job.completed stock.low stock.out stock.stockout_soon stock_split.run_completed stock_split.group_needs_attention variant.request_completed product.moderation_changed purchase.needed purchase_order.late storage.cost_rising payout.created payout.late payout.overdue payout.rejected payout.forecast_missed penalty.created penalty.rising commitment.late package.status_changed package.received_incomplete slot.opened slot.freed slot.low consignment_draft.built consignment_draft.missed replenish.skipped buybox.won buybox.lost competitor.below_floor bot.stalled bot.writes_failing bot.rate_limited bot.variant_stopped bot.plan_quota_over promotion.ending promotion.rejected promotion.below_floor price.selling_at_loss
description
string
<= 100 characters

Example

سایت اصلی

نشانی ساخته شد.

Media typeapplication/json
object
status
required
Allowed value: ok
data
required
data
required
object
id
required
string
url
required
string format: uri
events
required
Array<string>
Allowed values: stock.changed price.changed order.created order.cancelled order.returned variant.status_changed job.completed stock.low stock.out stock.stockout_soon stock_split.run_completed stock_split.group_needs_attention variant.request_completed product.moderation_changed purchase.needed purchase_order.late storage.cost_rising payout.created payout.late payout.overdue payout.rejected payout.forecast_missed penalty.created penalty.rising commitment.late package.status_changed package.received_incomplete slot.opened slot.freed slot.low consignment_draft.built consignment_draft.missed replenish.skipped buybox.won buybox.lost competitor.below_floor bot.stalled bot.writes_failing bot.rate_limited bot.variant_stopped bot.plan_quota_over promotion.ending promotion.rejected promotion.below_floor price.selling_at_loss
active
required
boolean
description
string | null
created_at
string format: date-time
disabled_reason

اگر پس از ۲۴ ساعت شکست پیاپی غیرفعال شده باشد، دلیل آن.

string | null
secret
required

کلید امضا؛ فقط همین یک بار نمایش داده می‌شود.

string

Example

{
"status": "ok",
"data": {
"id": "whk_3f9b2a",
"events": [
"stock.changed"
],
"secret": "whsec_9Hk2…"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

پارامتر یا بدنه‌ی نامعتبر.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

کلید ارسال نشده یا نامعتبر است.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}

کلید دسترسی لازم را ندارد، یا ماژول یا پنل فعال نیست.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}

تغییر با وضعیت فعلی سازگار نیست (موجودی ناکافی، نسخه‌ی تغییرکرده، قفل یا کلید یکتای تکراری).

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
X-Request-Id
string

کد پیگیری این درخواست.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).

سقف درخواست گذشته است.

Media typeapplication/json
object
status
required
Allowed value: error
error
required
object
code
required
string
Allowed values: missing_api_key invalid_api_key https_required scope_missing module_inactive panel_unavailable subscription_inactive not_found variant_not_found method_not_allowed invalid_parameter idempotency_key_required idempotency_mismatch idempotency_in_progress insufficient_stock version_conflict stock_write_locked sku_taken price_out_of_band price_managed_by_bot webhook_url_invalid webhook_limit_reached rate_limited digikala_rate_limited digikala_refused module_required digikala_outcome_unknown digikala_unavailable internal_error stock_split_in_progress kardex_disabled movement_type_not_allowed stock_count_finalized purchase_order_status_invalid product_key_unknown purchase_price_range_invalid product_locked_for_moderation catalog_row_invalid demo_panel_unsupported build_in_progress package_not_built_here shipping_write_unavailable pickup_unavailable feature_unavailable commitment_exceeded warehouse_not_listed slot_watch_exists draft_limit_reached draft_not_buildable draft_overdue draft_not_waiting consignment_not_allowed slot_unavailable no_open_slot replenish_rule_limit replenish_inactive price_managed_by_fx bot_strategy_required bot_quota_full strategy_not_found strategy_locked strategy_hidden strategy_title_reserved competitor_not_found change_not_undoable undo_window_expired already_undone undo_in_progress promotion_not_eligible promotion_managed_by_bot promotion_no_floor promotion_below_floor promotion_invalid promotion_not_active campaign_not_found campaign_closed fx_strategy_not_found fx_no_pending_price
message
required

پیام فارسی برای برنامه‌نویس.

string
detail

آنچه دقیقا نادرست بود، مثلا نام پارامتر.

string
doc_url
required
string format: uri
request_id
required
string

Example

{
"status": "error",
"error": {
"code": "missing_api_key"
}
}
Retry-After
integer

چند ثانیه صبر کنید و دوباره تلاش کنید.

X-RateLimit-Limit
integer

سقف درخواست این نوع (خواندن یا نوشتن) در هر دقیقه برای این کلید.

X-RateLimit-Remaining
integer

درخواست‌های باقی‌مانده تا پایان دقیقه‌ی جاری.

X-RateLimit-Reset
integer

زمان شروع دقیقه‌ی بعد، به ثانیه از ۱۹۷۰ (Unix).