ساخت سفارش
حرفهایکلید خواندن و نوشتندر پلن حرفهای و سازمانی در دسترس است (بتا).
POSThttps://app.reshta.ir/api/v1/public…/public/orders
یک سفارش تازه در کسبوکار صاحب کلید میسازد و رویداد order.created را برای وبهوکهای شما میفرستد. پاسخ همان رکورد است.
درخواست
curl https://app.reshta.ir/api/v1/public/orders \ -X POST \ -H "Authorization: Bearer $RESHTA_API_KEY" \ -H "Idempotency-Key: 7f3c2b1e-4a5d-4c6f-9e1a-2b3c4d5e6f70" \ -H "Content-Type: application/json" \ -d '{"contact_id":"0192c4e8-7b1a-7c3e-9f20-5d6a1b2c3d4e","status":"paid","source":"api","currency":"IRR","total_amount":24500000,"items":[{"name_snapshot":"کاپشن پاییزه","qty":1,"unit_price":24500000}]}'سرآیندها
AuthorizationstringالزامیBearer و کلید API کسبوکار (rk_live_…).
Idempotency-Keystringالزامیشناسهٔ یکتای همین عملیات، مثلاً یک UUID تازه؛ تکرار با همان کلید چیزی را دوبار انجام نمیدهد.
Content-Typeapplication/jsonالزامیبدنه JSON با UTF-8 است.
پارامترهای بدنه
numberstringاختیاریشمارهٔ سفارش.
contact_iduuid | nullاختیاریفقط سفارشهای این مخاطب.
deal_iduuid | nullاختیاریمعاملهٔ مرتبط.
statusstringاختیاریپیشفرض: "paid"وضعیت سفارش.مقدارها:pendingpaidpreparingshippeddeliveredcancelledrefundedpartially_refunded
total_amountintegerاختیاریمبلغ کل، عدد صحیح به ریال.
currencystringاختیاریپیشفرض: "IRR"واحد پول، مثلاً IRR.
sourcestringاختیاریپیشفرض: "manual"از API فقط manual یا api پذیرفته میشود؛ بقیه را خود اتصالها میگذارند.مقدارها:manualapiwoocommercesnappshopbasalamdigikaladuza
external_idstring | nullاختیاریفقط اتصالها میگذارند؛ از API رد میشود.
provider_connection_iduuid | nullاختیاریفقط اتصالها میگذارند؛ از API رد میشود.
placed_atstringاختیاریزمان ثبت سفارش، ISO 8601.
customobjectاختیاریپیشفرض: {}فیلدهای سفارشی، با کلید هر فیلد.
owner_iduuid | nullاختیاریفقط رکوردهای این همکار.
itemsobject[]اختیاریردیفهای سفارش.
items[].product_iduuid | nullاختیاریمحصول در کاتالوگ.
items[].name_snapshotstringالزامینام کالا در همین سفارش.
items[].qtynumberاختیاریپیشفرض: 1تعداد؛ پیشفرض ۱.
items[].unit_priceintegerالزامیقیمت واحد به ریال.
items[].discount_pctnumberاختیاریپیشفرض: 0درصد تخفیف.
items[].discount_amountintegerاختیاریتخفیف ردیف به ریال؛ با discount_pct با هم نه.
payment_termsstringاختیاریprepay یا cod (پرداخت در محل).مقدارها:prepaycod
sales_source_codestringاختیاری
shipping_addressobjectاختیارینشانی ارسال.
shipping_address.statestring | nullاختیاری
shipping_address.citystring | nullاختیاری
shipping_address.linestring | nullاختیاری
shipping_address.postal_codestring | nullاختیاری
پاسخها و خطاها
201—ساخته شد؛ بدنه همان رکورد است.
400validation_errorبدنه نادرست است یا Idempotency-Key نیامده؛ details میگوید کدام فیلد.
401unauthorizedکلید نیست، نادرست یا باطل است، یا سازندهاش دیگر فعال نیست.
403forbiddenکلید دسترسی نوشتن ندارد.
409conflictهمین Idempotency-Key با بدنهٔ دیگری آمده یا هنوز در جریان است.
429rate_limitedبیش از ۱۲۰ درخواست در دقیقه؛ Retry-After میگوید چند ثانیه صبر کنید.
پاسخ
400
{ "error": { "code": "validation_error", "message": "Idempotency-Key header is required", "details": [ { "field": "idempotency_key", "message": "idempotency_key_required" } ] }}وبهوک مرتبط: order.created