حسابداری نمو راهنمای توسعه‌دهندگان

ثبت سفارش

هر سفارش سایت با یک درخواست، فاکتور فروش در حسابداری نمو می‌شود — و اگر پرداخت شده، دریافت وجه هم.

POST/api/v1/orders/

دسترسی لازم: orders.write

نمونه

curl https://panel.nemosystem.ir/api/v1/orders/ \
  -H "Authorization: Bearer $NEMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "site:shop.example.com",
    "external_id": "10452",
    "date": "2026-10-01",
    "customer": { "name": "مینا صدری", "mobile": "09124445566", "email": "mina@example.com" },
    "items": [
      { "sku": "3101", "name": "ساعت مچی کلاسیک", "quantity": 2, "unit_price": 2500000 },
      { "sku": "3207", "quantity": 1, "unit_price": 1200000, "discount": 100000 }
    ],
    "shipping": 450000,
    "discount": 300000,
    "payment": { "method": "online", "reference": "ZP-000222", "date": "2026-10-01" }
  }'

پاسخ 201 Created:

{
  "source": "site:shop.example.com",
  "external_id": "10452",
  "status": "paid",
  "status_display": "پرداخت‌شده",
  "total": "6250000",
  "invoice_number": 84,
  "invoice_status": "posted",
  "receipt_number": 37,
  "return_number": null,
  "error": null,
  "duplicate": false
}

فیلدها

فیلدنوعالزامیتوضیح
external_idرشتهبلهشمارهٔ سفارش در سایت شما (تا ۱۰۰ نویسه).
sourceرشتهخیرشناسهٔ فروشگاه، پیش‌فرض api. توضیح
dateتاریخخیرتاریخ سفارش، میلادی YYYY-MM-DD. پیش‌فرض امروز. باید در یکی از سال‌های مالی سازمان باشد.
customerشیء—خریدار؛ پایین‌تر.
itemsآرایهبلهاقلام سفارش، دست‌کم یکی.
shippingعددخیرهزینهٔ ارسال (و کارمزدها) به ریال؛ یک ردیف «هزینهٔ ارسال» در فاکتور.
discountعددخیرتخفیف کل سفارش (کوپن) به ریال؛ به نسبت مبلغ روی ردیف‌ها پخش می‌شود.
paymentشیءخیراگر سفارش همین حالا پرداخت شده؛ پایین‌تر.

customer

فیلدتوضیح
mobileموبایل خریدار. مشتری با همین شماره پیدا می‌شود؛ اگر نبود و «ساخت خودکار مشتری» روشن باشد، با همین شماره به‌عنوان کد ساخته می‌شود. شکل‌های 0912…، 912…، +98912… و رقم فارسی همه پذیرفته‌اند.
nameنام و نام خانوادگی، برای مشتری تازه.
emailاختیاری.

اگر موبایل نفرستید، سفارش به «مشتری پیش‌فرض» تنظیمات اتصال ثبت می‌شود؛ اگر آن هم انتخاب نشده باشد، خطای 400 برمی‌گردد.

items[]

فیلدالزامیتوضیح
skuبلهکد کالا — باید با «کد کالا» در نمو یکی باشد.
quantityبلهمقدار، بیشتر از صفر (اعشار مجاز).
unit_priceبلهقیمت واحد به ریال، پیش از تخفیف.
discountخیرتخفیف همین ردیف به ریال (برای کل ردیف، نه هر واحد).
nameخیرشرح ردیف در فاکتور؛ پیش‌فرض نام کالا در نمو.

payment

فیلدتوضیح
methodonline یا transfer (درگاه و کارت‌به‌کارت)، card یا pos (کارت‌خوان)، cash.
referenceشمارهٔ پیگیری بانک یا درگاه؛ روی رسید دریافت ثبت می‌شود.
dateتاریخ پرداخت؛ پیش‌فرض تاریخ سفارش.

وجه به «حساب دریافت وجه سفارش‌ها» در تنظیمات اتصال واریز می‌شود. اگر آن حساب صندوق باشد، دریافت «نقد» ثبت می‌شود؛ اگر بانک باشد، «انتقال» (یا «کارت‌خوان» برای card/pos).

سفارشی که هنوز پرداخت نشده (مثلاً پرداخت در محل) را بدون payment بفرستید و بعداً پرداختش را جدا ثبت کنید.

مالیات

نمو نرخ مالیاتی را که در تنظیمات اتصال انتخاب شده روی همهٔ ردیف‌ها (و هزینهٔ ارسال) می‌گذارد:

وضعیت سفارش

statusیعنی
invoicedفاکتور ثبت و قطعی شد؛ پرداختی ثبت نشده.
paidفاکتور و دریافت وجه هر دو ثبت شدند.
needs_reviewفاکتور پیش‌نویس ماند و حسابدار باید بررسی کند؛ علت در error. پرداختِ همراهش نگه داشته می‌شود و بعد از بررسی خودکار ثبت می‌شود.
refundedبرگشت از فروش ثبت شد.

needs_review خطا نیست — سفارش پذیرفته شده و دوباره فرستادنش لازم نیست. دلیل‌های معمول: موجودی کالا کافی نیست، «قطعی‌سازی خودکار» خاموش است، یا حساب دریافت وجه انتخاب نشده. وقتی حسابدار مشکل را رفع کند و «تلاش دوباره» بزند، اگر وب‌هوک ثبت کرده باشید خبرش به شما می‌رسد.

ارسال تکراری

یک سفارش (همان source و external_id) فقط یک بار ثبت می‌شود. اگر دوباره بفرستید — مثلاً چون پاسخ اول به‌خاطر timeout نرسید — پاسخ 200 OK با همان نتیجهٔ اول و "duplicate": true برمی‌گردد و هیچ سندی ساخته نمی‌شود. بدنهٔ ارسال دوم نادیده گرفته می‌شود؛ برای تغییر سفارش ثبت‌شده باید در پنل اقدام شود.

پس قاعدهٔ ساده این است: هر وقت مطمئن نیستید سفارش رسیده، دوباره بفرستید.

استثنا: اگر ارسال قبلی با خطای 400 رد شده بود (مثلاً SKU ناشناخته)، چیزی ثبت نشده؛ بعد از اصلاح، ارسال دوباره سفارش را از نو ثبت می‌کند.

خواندن وضعیت یک سفارش

GET/api/v1/orders/{external_id}/?source={source}

همان پاسخ بالا (بدون duplicate) را برمی‌گرداند. اگر سفارش ثبت نشده باشد، 404.

curl "https://panel.nemosystem.ir/api/v1/orders/10452/?source=site:shop.example.com" \
  -H "Authorization: Bearer $NEMO_KEY"

گام بعد

پرداخت و برگشت ←