محمولهها
مخاطب: برنامهنویس نرمافزار انبارداری یا حسابداری که میخواهد محمولههای ارسالی به دیجیکالا را پیگیری کند، کسری دریافت را پیدا کند، یا برای تعهدهای ارسال از نرمافزار خود محمولهی سفارش بسازد.
📖 مقدمه
Section titled “📖 مقدمه”محموله بستهای است که شما به انبار دیجیکالا میفرستید. دو نوع محموله وجود دارد:
- محمولهی سفارش (
order_fulfilment): برای سفارشهایی که خریدار ثبت کرده است و شما تعهد ارسال آنها را دارید. - محمولهی انبارش (
consignment): کالایی که پیش از فروش به انبار دیجیکالا میفرستید تا با نشان «ارسال دیجیکالا» فروخته شود.
انبار دیجیکالا پس از رسیدن محموله، واحدها را با سریال میشمارد. سلر ۳۶۰ برای هر محموله نشان میدهد چند واحد فرستادهاید، چند واحد دریافت شده است و کدام سریال پیدا نشده یا رد شده است.
با مسیرهای این صفحه میتوانید:
| کار | مسیر | در دسترس |
|---|---|---|
| فهرست محمولهها | GET /v1/packages |
فعال |
| یک محموله | GET /v1/packages/{package_id} |
فعال |
| اقلام محموله، ارسالی در برابر دریافتی | GET /v1/packages/{package_id}/items |
فعال |
| سریالهای محموله | GET /v1/packages/{package_id}/serials |
فعال |
| محل و نوبتهای ممکن برای ساخت محمولهی سفارش | GET /v1/packages/build-options |
فعال |
| ساخت محمولهی سفارش (در صف) | POST /v1/packages |
فعال |
| حذف محمولهی سفارش (در صف) | DELETE /v1/packages/{package_id} |
فعال |
| بازهها و هزینهی جمعآوری توسط دیجیکالا | GET /v1/packages/pickups/quote |
فعال |
| ثبت جمعآوری توسط دیجیکالا (در صف) | POST /v1/packages/pickups |
فعال |
و با رویدادهای وبهوک package.status_changed و package.received_incomplete از تغییر وضعیت و دریافت ناقص خبردار شوید. ساخت خودکار محمولهی انبارش در صفحهی ساخت خودکار محموله و انبارش هوشمند آمده است.
⚙️ پیشنیازها
Section titled “⚙️ پیشنیازها”دسترسی (Scope)
Section titled “دسترسی (Scope)”| دسترسی | برای |
|---|---|
shipping:read |
همهی خواندنهای این صفحه، build-options و pickups/quote («خواندن محموله و نوبت انبار») |
shipping:write |
ساخت و حذف محمولهی سفارش و ثبت جمعآوری («ساخت محموله و تنظیم ارسال») |
orders:read |
پیشنهاد میشود: برای خواندن تعهد ارسال پیش از ساخت محموله |
فعال بودن ماژول و اجازهی ساخت
Section titled “فعال بودن ماژول و اجازهی ساخت”ماژول «API و وبهوک» باید برای پنل فعال باشد (module_inactive (ماژول API) یا module_required (ماژول این بخش، با نام آن در detail)). ساخت محموله در دیجیکالا فقط برای پنلی ممکن است که این امکان برای آن فعال باشد؛ در غیر این صورت پاسخ 403 با خطای shipping_write_unavailable برمیگردد. برای پنلی که اشتراک آن به پایان رسیده است، همهی تغییرها با subscription_inactive رد میشوند.
آدرس پایه
Section titled “آدرس پایه”https://api.seller360.ir📦 مدل محموله
Section titled “📦 مدل محموله”فیلدهای محموله
Section titled “فیلدهای محموله”| فیلد | برچسب در پنل | معنی |
|---|---|---|
package_id |
— | شناسهی محمولهی دیجیکالا. |
package_number |
«شماره محموله» | شمارهی محموله، همانگونه که در پنل دیجیکالا دیده میشود. |
type، type_title |
«نوع» | order_fulfilment («محموله سفارش») یا consignment («محموله انبار»). |
status، status_title |
«وضعیت» | کلید وضعیت دیجیکالا، بدون تغییر، و عنوان فارسی آن (جدول وضعیتها). |
delivery_type |
«روش ارسال» | روش تحویل به زبان دیجیکالا. |
shipping_nature |
«اندازهی مرسوله» | کوچک، متوسط یا سنگین. |
warehouse_title |
«انبار» | انبار مقصد. |
created_at |
«تاریخ ساخت» | زمان ساخت محموله. |
received_at_forecast |
«نوبت تحویل» | نوبتی که محموله برای آن رزرو شد. |
delivered_at |
«تحویل به دیجیکالا» | زمان رسیدن محموله به دیجیکالا (هشدار ۲). |
received_at |
«تاریخ دریافت» | زمان دریافت و شمارش در انبار. |
is_open |
«ایجاد شده و در راه انبار» | ساختهشده و هنوز دریافتنشده (حداکثر ۶۰ روز پس از ساخت). |
handed_over |
«در انتظار جایگذاری» وقتی is_delivered هنوز false است |
محموله به دیجیکالا رسیده است، حتی اگر هنوز شمرده نشده باشد. |
is_delivered |
«تحویلشده» | انبار دیجیکالا محموله را شمرده است. |
is_incomplete |
«محمولههای دریافت ناقص» | محموله ناقص دریافت شده است. |
totals |
«ارسالی»، «دریافتی»، «کسری» | جمع sent، received و missing اقلام. |
items_stale، items_synced_at |
— | اقلام پیش از دریافت خوانده شدهاند و اعداد دریافتی هنوز تازه نیستند. |
built_here |
— | اگر محمولهی سفارش در سلر ۳۶۰ (پنل یا API) ساخته شده باشد، جزئیات ساخت؛ وگرنه خالی. |
synced_at |
— | زمان آخرین خواندن از دیجیکالا. |
جزئیات ساخت در سلر ۳۶۰ (built_here)
Section titled “جزئیات ساخت در سلر ۳۶۰ (built_here)”| فیلد | معنی |
|---|---|
delivery_method |
روش تحویل (جدول روشها). |
day، time_scope |
روز و بازهی تحویل یا جمعآوری. |
place |
نام انبار یا نشانی جمعآوری انتخابشده. |
units |
واحدهای محموله. |
cost |
هزینهی اعلامشدهی دیجیکالا، به ریال. |
pickup_number |
شمارهی مرسولهی جمعآوری دیجیکالا. |
needs_pickup |
روش digikala است و هنوز جمعآوری ثبت نشده است. |
deleted_at |
زمان حذف محموله از سلر ۳۶۰. |
اقلام: ارسالی در برابر دریافتی
Section titled “اقلام: ارسالی در برابر دریافتی”| فیلد | برچسب در پنل | معنی |
|---|---|---|
variant_id، product_id |
«کد تنوع (DKPC)»، «کد کالا (DKP)» | شناسههای تنوع و کالا. |
supplier_code، sku |
«کد فروشنده»، «کد کالای فروشنده» | کدها. |
title |
«عنوان کالا» | عنوان. |
sent |
«ارسالی» | واحدهای ارسالی (شمار سریالها). |
received |
«دریافتی» | واحدهای تحویلشده، به گفتهی دیجیکالا. |
missing |
«کسری» | ارسالی منهای تحویلشده. |
status_title |
«وضعیت» | وضعیت قلم به زبان دیجیکالا. |
missing = sent − received🔄 وضعیتها
Section titled “🔄 وضعیتها”وضعیت محموله (status)
Section titled “وضعیت محموله (status)”| کلید | معنی |
|---|---|
new |
ساخته شده و هنوز دریافت نشده است. |
received |
انبار دیجیکالا محموله را دریافت و شمرده است. |
partially_received |
با کسری دریافت شده است (مرجع دیجیکالا آن را received_incomplete مینامد). |
deleted |
محموله حذف شده است. |
cancelled یا canceled |
لغو شده است؛ دیجیکالا هر دو املا را به کار میبرد. |
rejected |
انبار دیجیکالا محموله را رد کرده است. |
اینها مقادیری است که تا امروز دیده شده است؛ فهرست کامل مقادیر دیجیکالا مشخص نیست. برای تصمیمگیری از is_open، is_delivered و is_incomplete استفاده کنید و status_title را نمایش دهید.
وضعیت سریال (PackageSerial.status)
Section titled “وضعیت سریال (PackageSerial.status)”| کلید | معنی |
|---|---|
received |
تحویل شد. |
not_exist |
ارسال شد اما در انبار پیدا نشد. |
rejected |
رد شد؛ مثلا به دلیل بستهبندی. |
deleted |
از محموله حذف شد و ارسال نشد. |
روش تحویل محمولهی سفارش (delivery_method)
Section titled “روش تحویل محمولهی سفارش (delivery_method)”| روش | معنی |
|---|---|
seller |
خودتان محموله را به انبار دیجیکالا میبرید؛ محل و نوبت لازم است. |
digikala |
دیجیکالا از نشانی شما جمعآوری میکند؛ پس از ساخت، جمعآوری را ثبت کنید. |
mobile_hub |
تحویل به انبار سیار، با هزینه. |
post |
ارسال با پست. |
🔢 تازگی
Section titled “🔢 تازگی”- فهرست محمولهها هر شب ساعت ۰۲:۵۰ و پس از هر وبهوک محمولهی دیجیکالا بهروز میشود. زمان آخرین خواندن در
synced_atاست. - اقلام و سریالها همراه محموله خوانده میشوند. اگر اقلام پیش از دریافت محموله خوانده شده باشند،
items_stale: trueاست و اعداد دریافتی با همگامسازی بعدی تازه میشوند. - محل و نوبت ساخت و هزینهی جمعآوری (
build-optionsوpickups/quote) همان لحظه از دیجیکالا خوانده میشوند، نه از نسخهی ذخیرهشده.
⚠️ هشدارها
Section titled “⚠️ هشدارها”📡 مسیرها
Section titled “📡 مسیرها”GET /v1/packages — فهرست محمولهها فعال
Section titled “GET /v1/packages — فهرست محمولهها ”محمولههای سفارش و انبارش پنل، تازهترین اول.
GET /v1/packages?open=1&type=consignment HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...پارامترها
| پارامتر | نوع | اجباری | توضیح |
|---|---|---|---|
type |
order_fulfilment، consignment |
خیر | نوع محموله. |
status |
متن | خیر | کلید وضعیت دیجیکالا، مثلا new یا received. |
open |
0 یا 1 |
خیر | فقط محمولههای باز (1)، یعنی ساختهشده و هنوز دریافتنشده، یا فقط بستهشدهها (0). |
incomplete |
0 یا 1 |
خیر | فقط محمولههایی که ناقص دریافت شدهاند (1). |
created_from، created_to |
زمان | خیر | بازهی زمان ساخت. |
page، size |
عدد | خیر | صفحهبندی. |
پاسخ نمونه
{ "status": "ok", "data": [ { "package_id": 51870231, "package_number": "P-1405-51870231", "type": "consignment", "type_title": "انبارش", "status": "partially_received", "status_title": "دریافت ناقص", "delivery_type": "توسط فروشنده", "shipping_nature": "کوچک", "warehouse_title": "انبار کرج", "created_at": "2026-11-02T13:20:44+03:30", "received_at_forecast": "2026-11-04T10:00:00+03:30", "delivered_at": "2026-11-04T10:37:00+03:30", "received_at": "2026-11-06T15:12:09+03:30", "is_open": false, "is_delivered": true, "handed_over": true, "is_incomplete": true, "totals": { "sent": 250, "received": 248, "missing": 2 }, "items_stale": false, "items_synced_at": "2026-11-07T02:51:30+03:30", "built_here": null, "synced_at": "2026-11-13T02:50:42+03:30" } ], "pager": { "page": 1, "item_per_page": 50, "total_pages": 1, "total_rows": 7 }}GET /v1/packages/{package_id} — یک محموله فعال
Section titled “GET /v1/packages/{package_id} — یک محموله ”همان ساختار، برای یک محموله. اگر محموله در این پنل نباشد، کد 404 و خطای not_found برمیگردد.
GET /v1/packages/{package_id}/items — اقلام محموله فعال
Section titled “GET /v1/packages/{package_id}/items — اقلام محموله ”{ "status": "ok", "data": [ { "package_item_id": 90311275, "variant_id": 84780448, "product_id": 22961150, "supplier_code": "5144", "sku": "PE-5144", "title": "محافظ ولتاژ پارت الکتریک مدل PE5144", "image_url": "https://dkstatics-public.digikala.com/digikala-products/22961150.jpg", "sent": 50, "received": 48, "missing": 2, "status_title": "دریافت ناقص" } ]}GET /v1/packages/{package_id}/serials — سریالهای محموله فعال
Section titled “GET /v1/packages/{package_id}/serials — سریالهای محموله ”نظر دیجیکالا دربارهی هر واحد ارسالی. برای پیدا کردن واحدهای گمشده، status=not_exist بفرستید.
| پارامتر | نوع | اجباری | توضیح |
|---|---|---|---|
status |
متن | خیر | فقط سریالهایی با این وضعیت. |
page، size |
عدد | خیر | صفحهبندی. |
{ "status": "ok", "data": [ { "serial": "DK-7Q2M9X4R", "status": "not_exist", "package_item_id": 90311275, "variant_id": 84780448, "product_id": 22961150, "supplier_code": "5144" } ], "pager": { "page": 1, "item_per_page": 50, "total_pages": 1, "total_rows": 2 }}GET /v1/packages/build-options — محل و نوبتهای ساخت فعال
Section titled “GET /v1/packages/build-options — محل و نوبتهای ساخت ”همان لحظه از دیجیکالا میپرسد که سبد دادهشده در روز انتخابی به کجا و در چه نوبتی قابل تحویل است. چیزی ساخته یا رزرو نمیشود. نوبتی که برای این سبد کوچک باشد، با open: false برمیگردد.
GET /v1/packages/build-options?date=2026-11-14&items=84780448:3,84780512:2 HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...| پارامتر | نوع | اجباری | توضیح |
|---|---|---|---|
date |
تاریخ | بله | روز ارسال، از امروز تا ۷ روز بعد (به وقت تهران). |
items |
متن | بله | سبد به شکل variant_id:count جداشده با ویرگول. |
پاسخ نمونه
{ "status": "ok", "data": { "date": "2026-11-14", "available_methods": ["seller", "digikala", "mobile_hub", "post"], "places": { "seller": [ { "id": 1, "title": "انبار کرج", "address": "کرج، جادهی ملارد، انبار مرکزی دیجیکالا", "shipping_nature_id": 1, "price": null, "has_slot": true, "slots": [ { "capacity_id": 9081733, "starts_at": "10:00", "ends_at": "11:00", "open": true }, { "capacity_id": 9081734, "starts_at": "11:00", "ends_at": "12:00", "open": false } ] } ], "digikala": [ { "id": 1180244, "title": "انبار فروشگاه", "address": "تهران، خیابان ولیعصر، کوچهی نهم", "has_slot": false, "slots": [] } ], "mobile_hub": [], "post": [] } }}این مسیر چون همان لحظه از دیجیکالا میخواند، ممکن است 502 (digikala_refused) یا 503 (digikala_unavailable، digikala_rate_limited) برگرداند.
POST /v1/packages — ساخت محمولهی سفارش فعال
Section titled “POST /v1/packages — ساخت محمولهی سفارش ”برای اقلامی که تعهد ارسال دارند، محمولهی سفارش میسازد. اقلام کوچک در یک محموله و اقلام متوسط و سنگین در محمولهی دوم قرار میگیرند؛ حداکثر دو محموله در هر درخواست.
- تعهد هر تنوع را از
GET /v1/commitmentsبخوانید. - محل و نوبت را از
GET /v1/packages/build-optionsبخوانید (برای روشdigikalaلازم نیست). - محموله را با یک
Idempotency-Keyتازه بسازید؛ پاسخ فوری202با یک کار است. - نتیجه را از رویداد
job.completedیاGET /v1/jobs/{job_id}بخوانید؛ شناسهی محموله درresult.package_idاست. - برای روش
digikala، جمعآوری را باPOST /v1/packages/pickupsثبت کنید.
POST /v1/packages HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...Idempotency-Key: pkg-1405-08-23-karaj-1Content-Type: application/json
{ "delivery_method": "seller", "date": "2026-11-14", "place_id": 1, "capacity_id": 9081733, "items": [ { "variant_id": 84780448, "count": 3 } ]}| فیلد بدنه | نوع | اجباری | توضیح |
|---|---|---|---|
delivery_method |
seller، digikala، mobile_hub، post |
بله | روش تحویل. |
date |
تاریخ | بله | روز ارسال، از امروز تا ۷ روز بعد. |
items |
فهرست variant_id و count |
بله | تعداد هر تنوع حداکثر برابر تعهد ارسال فعلی آن. |
place_id |
عدد | برای همه جز digikala |
شناسهی محل از build-options. |
capacity_id |
عدد | برای همه جز digikala |
شناسهی نوبت از build-options. |
پاسخ نمونه (کد 202)
{ "status": "ok", "data": { "id": "job_8f2c1e", "kind": "package_build", "status": "queued", "created_at": "2026-11-13T10:15:03+03:30" }}خطاهای این مسیر
| کد HTTP | خطا | معنی | تکرار بیخطر است؟ |
|---|---|---|---|
400 |
invalid_parameter |
بدنه نامعتبر است؛ مثلا place_id برای روش seller نیامده است. |
خیر؛ بدنه را اصلاح کنید. |
400 |
idempotency_key_required |
سرآیند Idempotency-Key نیامده است. |
خیر؛ کلید بفرستید. |
403 |
shipping_write_unavailable |
ساخت محموله برای این پنل ممکن نیست. | خیر. |
403 |
subscription_inactive |
اشتراک پنل فعال نیست. | خیر. |
409 |
stock_write_locked |
تقسیم موجودی در حال اجراست. | بله، پس از Retry-After و با همان کلید. |
409 |
build_in_progress |
ساخت یا ثبت جمعآوری دیگری در جریان است. | بله، پس از پایان کار قبلی. |
409 |
idempotency_mismatch |
این کلید قبلا با بدنهی دیگری استفاده شده است. | خیر؛ کلید تازه بسازید. |
409 |
idempotency_in_progress |
درخواستی با همین کلید در حال انجام است. | بله، چند ثانیه بعد. |
422 |
commitment_exceeded |
تعداد یک تنوع بیشتر از تعهد فعلی آن است. | خیر؛ تعهد را دوباره بخوانید. |
429 |
rate_limited |
سقف درخواست کلید پر است. | بله، پس از Retry-After. |
نتیجهی کار (package_build)
| وضعیت کار | معنی | چه کنید |
|---|---|---|
completed |
محموله ساخته شد؛ result.package_id را ذخیره کنید. |
برای روش digikala جمعآوری را ثبت کنید. |
failed |
دیجیکالا نپذیرفت و چیزی ساخته نشد. | علت را بررسی کنید؛ تکرار با کلید تازه بیخطر است. |
unknown |
پاسخ دیجیکالا نرسید؛ محموله ممکن است ساخته شده باشد. | تکرار نکنید؛ منتظر job.completed بمانید یا GET /v1/packages را بخوانید. |
DELETE /v1/packages/{package_id} — حذف محمولهی سفارش فعال
Section titled “DELETE /v1/packages/{package_id} — حذف محمولهی سفارش ”فقط محمولهی سفارشی که در سلر ۳۶۰ (پنل یا API) ساخته شده است حذف میشود. اگر جمعآوری دیجیکالا برای آن ثبت شده باشد، ابتدا همان مرسوله حذف میشود. محمولهای که دیجیکالا پیشتر حذفشده نشان میدهد، حذفشده به حساب میآید. پاسخ فوری 202 با کاری از نوع package_delete است؛ اگر پاسخ دیجیکالا نرسد، وضعیت کار unknown است.
DELETE /v1/packages/51870231 HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...Idempotency-Key: del-51870231| کد HTTP | خطا | معنی | تکرار بیخطر است؟ |
|---|---|---|---|
404 |
not_found |
محموله در این پنل نیست. | خیر. |
404 |
package_not_built_here |
محموله در سلر ۳۶۰ ساخته نشده است. | خیر؛ از پنل دیجیکالا حذف کنید. |
409 |
stock_write_locked |
تقسیم موجودی در حال اجراست. | بله، پس از Retry-After و با همان کلید. |
409 |
build_in_progress |
ساخت یا ثبت جمعآوری دیگری در جریان است. | بله، پس از پایان کار قبلی. |
409 |
idempotency_mismatch، idempotency_in_progress |
کلید یکتای درخواست | مانند جدول ساخت. |
GET /v1/packages/pickups/quote — بازهها و هزینهی جمعآوری فعال
Section titled “GET /v1/packages/pickups/quote — بازهها و هزینهی جمعآوری ”برای محمولههای سفارش با روش digikala، بازههای جمعآوری پیشنهادی دیجیکالا و هزینهی هر محموله را همان لحظه میخواند. چیزی رزرو نمیشود. برای پنلی که جمعآوری دیجیکالا برای آن فعال نیست، پاسخ 403 با خطای pickup_unavailable برمیگردد.
GET /v1/packages/pickups/quote?package_ids=51870231&address_id=1180244 HTTP/1.1Host: api.seller360.irAuthorization: Bearer s360_live_...{ "status": "ok", "data": { "time_scopes": ["8-10", "10-12", "12-14", "14-16"], "costs": [ { "package_id": 51870231, "cost": 850000 } ], "total": 850000 }}POST /v1/packages/pickups — ثبت جمعآوری فعال
Section titled “POST /v1/packages/pickups — ثبت جمعآوری ”برای محمولههای سفارش با روش digikala که در سلر ۳۶۰ ساخته شدهاند، مرسولهی جمعآوری ثبت میکند. پاسخ فوری 202 با کاری از نوع pickup_book است؛ شمارهی مرسوله، بازه و زمان پیشبینیشده در نتیجهی کار اعلام میشود و در built_here.pickup_number محموله هم مینشیند.
{ "package_ids": [51870231], "address_id": 1180244, "date": "2026-11-14", "time_scope": "10-12" }| فیلد بدنه | نوع | اجباری | توضیح |
|---|---|---|---|
package_ids |
فهرست عدد | بله | محمولههای سفارش با روش digikala که در سلر ۳۶۰ ساخته شدهاند. |
address_id |
عدد | بله | نشانی جمعآوری شما. |
date |
تاریخ | بله | روز جمعآوری. |
time_scope |
متن | بله | یکی از time_scopes پاسخ quote. |
خطاها مانند ساخت محموله است، بهعلاوهی 403 و pickup_unavailable برای پنل بدون جمعآوری دیجیکالا و 404 برای محمولهای که در این پنل نیست.
🔔 رویدادهای وبهوک
Section titled “🔔 رویدادهای وبهوک”| رویداد | چه وقت |
|---|---|
package.status_changed |
وضعیت یک محموله تغییر کرد؛ previous_status کلید وضعیت پیشین است. |
package.received_incomplete |
انبار دیجیکالا محموله را با کسری دریافت کرد (وضعیت partially_received)؛ اقلام کسری و سریالهای پیدانشده یا ردشده همراه آن است. |
job.completed |
ساخت، حذف یا ثبت جمعآوری تمام شد (کارهای در صف). |
نمونهی پیام package.received_incomplete
{ "id": "evt_01HZYC9Q", "type": "package.received_incomplete", "created_at": "2026-11-06T15:14:02+03:30", "panel_id": 1, "livemode": true, "data": { "package": { "package_id": 51870231, "package_number": "P-1405-51870231", "type": "consignment", "status": "partially_received", "status_title": "دریافت ناقص", "is_open": false, "is_delivered": true, "is_incomplete": true, "totals": { "sent": 250, "received": 248, "missing": 2 }, "synced_at": "2026-11-06T15:13:55+03:30" }, "short_items": [ { "package_item_id": 90311275, "variant_id": 84780448, "supplier_code": "5144", "sent": 50, "received": 48, "missing": 2 } ], "missing_serials": [ { "serial": "DK-7Q2M9X4R", "status": "not_exist", "package_item_id": 90311275, "variant_id": 84780448 }, { "serial": "DK-7Q2M9X4S", "status": "rejected", "package_item_id": 90311275, "variant_id": 84780448 } ] }}پیش از استفاده از هر پیام، امضای آن را بررسی کنید.
💻 نمونهکد: ساخت محمولهی سفارش
Section titled “💻 نمونهکد: ساخت محمولهی سفارش”curl -X POST https://api.seller360.ir/v1/packages \ -H "Authorization: Bearer $S360_API_KEY" \ -H "Idempotency-Key: pkg-1405-08-23-karaj-1" \ -H "Content-Type: application/json" \ -d '{"delivery_method": "seller", "date": "2026-11-14", "place_id": 1, "capacity_id": 9081733, "items": [{"variant_id": 84780448, "count": 3}]}'$ch = curl_init("https://api.seller360.ir/v1/packages");curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ "Authorization: Bearer " . getenv("S360_API_KEY"), "Idempotency-Key: pkg-1405-08-23-karaj-1", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode([ "delivery_method" => "seller", "date" => "2026-11-14", "place_id" => 1, "capacity_id" => 9081733, "items" => [["variant_id" => 84780448, "count" => 3]], ]), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20,]);$res = json_decode(curl_exec($ch), true);$jobId = $res["data"]["id"]; // نتیجه را با رویداد job.completed دریافت کنیدimport os, requests
res = requests.post( "https://api.seller360.ir/v1/packages", headers={ "Authorization": f"Bearer {os.environ['S360_API_KEY']}", "Idempotency-Key": "pkg-1405-08-23-karaj-1", }, json={ "delivery_method": "seller", "date": "2026-11-14", "place_id": 1, "capacity_id": 9081733, "items": [{"variant_id": 84780448, "count": 3}], }, timeout=20,).json()job_id = res["data"]["id"] # نتیجه را با رویداد job.completed دریافت کنیدconst res = await fetch('https://api.seller360.ir/v1/packages', { method: 'POST', headers: { Authorization: `Bearer ${process.env.S360_API_KEY}`, 'Idempotency-Key': 'pkg-1405-08-23-karaj-1', 'Content-Type': 'application/json', }, body: JSON.stringify({ delivery_method: 'seller', date: '2026-11-14', place_id: 1, capacity_id: 9081733, items: [{ variant_id: 84780448, count: 3 }], }),})const body = await res.json()const jobId = body.data.id // نتیجه را با رویداد job.completed دریافت کنیدusing var http = new HttpClient();var req = new HttpRequestMessage(HttpMethod.Post, "https://api.seller360.ir/v1/packages");req.Headers.Add("Authorization", $"Bearer {Environment.GetEnvironmentVariable("S360_API_KEY")}");req.Headers.Add("Idempotency-Key", "pkg-1405-08-23-karaj-1");req.Content = JsonContent.Create(new { delivery_method = "seller", date = "2026-11-14", place_id = 1, capacity_id = 9081733, items = new[] { new { variant_id = 84780448, count = 3 } },});var res = await http.SendAsync(req);var body = await res.Content.ReadFromJsonAsync<JsonElement>();var jobId = body.GetProperty("data").GetProperty("id").GetString();