{"components":{"schemas":{"Asset":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"folderId":{"type":"string"},"isDeleted":{"type":"boolean"},"key":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"mimeType":{"type":"string"},"name":{"type":"string"},"originalName":{"type":"string"},"size":{"type":"integer"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"AssetFolder":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"isDeleted":{"type":"boolean"},"name":{"type":"string"},"parentFolderId":{"type":"string"},"slug":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"AssetFolderTreeNode":{"properties":{"_id":{"type":"string"},"children":{"items":{"$ref":"#/components/schemas/AssetFolderTreeNode"},"type":"array"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"isDeleted":{"type":"boolean"},"name":{"type":"string"},"parentFolderId":{"type":"string"},"slug":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"AssetFolderTreeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AssetFolderTreeNode"},"type":"array"}},"type":"object"},"AssetPaginationMeta":{"properties":{"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"},"AssetTag":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"Category":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"type":"string"},"filter":{"properties":{"categoryRefs":{"items":{"type":"string"},"type":"array"},"priceRange":{"properties":{"max":{"type":"number"},"min":{"type":"number"}},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"},"id":{"type":"string"},"includeChildren":{"type":"boolean"},"name":{"type":"string"},"parentId":{"type":"string"},"productIds":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"ContactCreate":{"properties":{"address":{"type":"string"},"addressExtra":{"type":"string"},"cityCode":{"type":"string"},"documentNumber":{"type":"string"},"documentType":{"enum":["CC","CE","TI","PAS","NIT","OTHER"],"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"legalName":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"phone":{"type":"string"}},"required":["email"],"type":"object"},"ContactUpdate":{"properties":{"address":{"type":"string"},"addressExtra":{"type":"string"},"cityCode":{"type":"string"},"documentNumber":{"type":"string"},"documentType":{"enum":["CC","CE","TI","PAS","NIT","OTHER"],"type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"legalName":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"phone":{"type":"string"}},"type":"object"},"Coupon":{"properties":{"active":{"type":"boolean"},"assignedContactIds":{"items":{"type":"string"},"type":"array"},"assignedEmails":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"discountAmount":{"type":"number"},"discountType":{"enum":["fixed","percentage"],"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"includedCategoryIds":{"items":{"type":"string"},"type":"array"},"includedProductIds":{"items":{"type":"string"},"type":"array"},"includedTagIds":{"items":{"type":"string"},"type":"array"},"maxUsagesGlobal":{"nullable":true,"type":"integer"},"maxUsagesPerEmail":{"nullable":true,"type":"integer"},"origin":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"wooCommerceId":{"nullable":true,"type":"integer"}},"type":"object"},"CouponListResponse":{"properties":{"items":{"items":{"properties":{"active":{"type":"boolean"},"assignedContactIds":{"items":{"type":"string"},"type":"array"},"assignedEmails":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"discountAmount":{"type":"number"},"discountType":{"enum":["fixed","percentage"],"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"includedCategoryIds":{"items":{"type":"string"},"type":"array"},"includedProductIds":{"items":{"type":"string"},"type":"array"},"includedTagIds":{"items":{"type":"string"},"type":"array"},"maxUsagesGlobal":{"nullable":true,"type":"integer"},"maxUsagesPerEmail":{"nullable":true,"type":"integer"},"origin":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"wooCommerceId":{"nullable":true,"type":"integer"}},"type":"object"},"type":"array"},"total":{"format":"int64","type":"integer"}},"type":"object"},"CreateAssetFolderDto":{"properties":{"name":{"type":"string"},"parentFolderId":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"}},"required":["name"],"type":"object"},"CreateCategoryDto":{"properties":{"description":{"type":"string"},"filterCategoryRefs":{"items":{"type":"string"},"type":"array"},"filterMaxPrice":{"type":"number"},"filterMinPrice":{"type":"number"},"filterTags":{"items":{"type":"string"},"type":"array"},"includeChildren":{"type":"boolean"},"name":{"type":"string"},"parentId":{"type":"string"},"productIds":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"CreateCouponRequest":{"properties":{"active":{"type":"boolean"},"assignedContactIds":{"items":{"type":"string"},"type":"array"},"assignedEmails":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"enum":["fixed","percentage"],"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"includedCategoryIds":{"items":{"type":"string"},"type":"array"},"includedProductIds":{"items":{"type":"string"},"type":"array"},"includedTagIds":{"items":{"type":"string"},"type":"array"},"maxUsagesGlobal":{"nullable":true,"type":"integer"},"maxUsagesPerEmail":{"nullable":true,"type":"integer"},"origin":{"type":"string"}},"required":["discountType","discountAmount"],"type":"object"},"CreateProductDto":{"properties":{"datasheets":{"items":{"properties":{"attributes":{"type":"object"},"description":{"type":"string"},"name":{"type":"string"},"realm":{"type":"string"}},"required":["realm","name"],"type":"object"},"type":"array"},"gallery":{"items":{"properties":{"assetId":{"type":"string"},"includedRealms":{"items":{"type":"string"},"type":"array"},"isMain":{"type":"boolean"},"position":{"format":"int32","type":"integer"},"variationIds":{"items":{"type":"string"},"type":"array"},"variationPosition":{"format":"int32","type":"integer"}},"required":["assetId"],"type":"object"},"type":"array"},"sku":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"variants":{"items":{"properties":{"sku":{"type":"string"},"variationIds":{"items":{"type":"string"},"type":"array"}},"required":["variationIds"],"type":"object"},"type":"array"},"variations":{"items":{"type":"string"},"type":"array"}},"required":["sku"],"type":"object"},"CreateTagCorrelationDto":{"properties":{"notes":{"type":"string"},"probability":{"type":"number"},"sourceTag":{"type":"string"},"targetTag":{"type":"string"}},"required":["sourceTag","targetTag"],"type":"object"},"CreateVariationDto":{"properties":{"definition":{"enum":["COLOR","SIZE","TEXT"],"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["name","definition","value"],"type":"object"},"DatasheetDto":{"properties":{"attributes":{"type":"object"},"description":{"type":"string"},"name":{"type":"string"},"realm":{"type":"string"}},"required":["realm","name"],"type":"object"},"DeleteResponse":{"properties":{"status":{"example":"deleted","type":"string"}},"type":"object"},"ExportReport":{"properties":{"byteSize":{"type":"integer"},"contentType":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"fileName":{"type":"string"},"generatedAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"rowCount":{"type":"integer"},"sha256":{"type":"string"},"stamp":{"type":"string"},"status":{"enum":["completed"],"type":"string"},"storageKey":{"type":"string"},"type":{"enum":["contacts","orders"],"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"ExportReportList":{"properties":{"data":{"items":{"properties":{"byteSize":{"type":"integer"},"contentType":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"fileName":{"type":"string"},"generatedAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"rowCount":{"type":"integer"},"sha256":{"type":"string"},"stamp":{"type":"string"},"status":{"enum":["completed"],"type":"string"},"storageKey":{"type":"string"},"type":{"enum":["contacts","orders"],"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}},"type":"object"},"FalabellaResolveResult":{"properties":{"action":{"type":"string"},"errors":{"items":{"properties":{"code":{"type":"integer"},"message":{"type":"string"},"sellerSku":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"failedRecords":{"type":"integer"},"feedId":{"type":"string"},"processedRecords":{"type":"integer"},"status":{"type":"string"},"step":{"type":"string"},"task":{"type":"string"},"totalRecords":{"type":"integer"}},"required":["feedId","status","action","totalRecords","processedRecords","failedRecords"],"type":"object"},"FalabellaSyncProductsRequest":{"description":"Optional list of product IDs to sync.","properties":{"ids":{"items":{"type":"string"},"type":"array"}},"type":"object"},"FalabellaSyncStatusEntry":{"properties":{"action":{"type":"string"},"feedId":{"type":"string"},"productId":{"type":"string"},"resolvedAt":{"type":"string"},"sku":{"type":"string"},"status":{"type":"string"},"step":{"type":"string"},"syncedAt":{"type":"string"},"task":{"type":"string"},"variationIds":{"items":{"type":"string"},"type":"array"}},"required":["feedId","productId","sku","action","status","syncedAt"],"type":"object"},"FalabellaSyncStatusExecution":{"properties":{"executionId":{"type":"string"},"startedAt":{"type":"string"}},"required":["executionId","startedAt"],"type":"object"},"FalabellaSyncSummary":{"properties":{"failed":{"type":"integer"},"requested":{"type":"integer"},"results":{"items":{"properties":{"feedId":{"type":"string"},"feeds":{"items":{"properties":{"action":{"type":"string"},"feedId":{"type":"string"},"step":{"type":"string"},"task":{"type":"string"}},"required":["step","task","feedId"],"type":"object"},"type":"array"},"productId":{"type":"string"},"reason":{"type":"string"},"sku":{"type":"string"},"status":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"required":["productId","sku","status"],"type":"object"},"type":"array"},"skipped":{"type":"integer"},"synced":{"type":"integer"}},"required":["requested","synced","skipped","failed","results"],"type":"object"},"GalleryItemDto":{"properties":{"assetId":{"type":"string"},"includedRealms":{"items":{"type":"string"},"type":"array"},"isMain":{"type":"boolean"},"position":{"format":"int32","type":"integer"},"variationIds":{"items":{"type":"string"},"type":"array"},"variationPosition":{"format":"int32","type":"integer"}},"required":["assetId"],"type":"object"},"MembershipActionRequest":{"properties":{"channel":{"default":"all","type":"string"},"contactId":{"type":"string"},"email":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"default":"api","type":"string"}},"type":"object"},"MembershipStamp":{"properties":{"action":{"enum":["opt_in","opt_out"],"type":"string"},"channel":{"type":"string"},"contactId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"type":"string"}},"type":"object"},"MembershipStampRequest":{"properties":{"action":{"enum":["opt_in","opt_out"],"type":"string"},"channel":{"type":"string"},"contactId":{"type":"string"},"email":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"default":"api","type":"string"}},"required":["channel","action"],"type":"object"},"MembershipStamps":{"items":{"properties":{"action":{"enum":["opt_in","opt_out"],"type":"string"},"channel":{"type":"string"},"contactId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"type":"string"}},"type":"object"},"type":"array"},"MembershipStatus":{"properties":{"action":{"enum":["opt_in","opt_out"],"type":"string"},"channel":{"type":"string"},"contactId":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"MembershipStatusList":{"properties":{"contactId":{"type":"string"},"statuses":{"items":{"properties":{"action":{"enum":["opt_in","opt_out"],"type":"string"},"channel":{"type":"string"},"contactId":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"source":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"Order":{"properties":{"appliedCoupons":{"items":{"properties":{"appliedAt":{"format":"date-time","type":"string"},"code":{"type":"string"},"couponId":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"type":"string"}},"required":["code","discountAmount","appliedAt"],"type":"object"},"type":"array"},"comments":{"items":{"properties":{"author":{"type":"string"},"comment":{"type":"string"},"id":{"type":"string"},"internal":{"type":"boolean"},"occurredAt":{"format":"date-time","type":"string"}},"required":["id","author","comment","internal","occurredAt"],"type":"object"},"type":"array"},"contactId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"currentStatus":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"},"hasCustomShippingAddress":{"type":"boolean"},"id":{"type":"string"},"identifier":{"type":"string"},"items":{"items":{"properties":{"alternateName":{"type":"string"},"productId":{"type":"string"},"quantity":{"type":"integer"},"resolutionSource":{"type":"string"},"sku":{"type":"string"},"value":{"type":"number"}},"required":["quantity"],"type":"object"},"type":"array"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"paymentMethod":{"type":"string"},"realm":{"type":"string"},"shippingAddress":{"properties":{"address":{"type":"string"},"address2":{"type":"string"},"cityCode":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shippingCharges":{"items":{"properties":{"methodId":{"type":"string"},"methodTitle":{"type":"string"},"price":{"type":"number"}},"type":"object"},"type":"array"},"statusHistory":{"items":{"properties":{"author":{"type":"string"},"description":{"type":"string"},"note":{"type":"string"},"noteOwner":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"status":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"}},"required":["status","author","occurredAt"],"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"OrderAppliedCoupon":{"properties":{"appliedAt":{"format":"date-time","type":"string"},"code":{"type":"string"},"couponId":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"type":"string"}},"required":["code","discountAmount","appliedAt"],"type":"object"},"OrderComment":{"properties":{"author":{"type":"string"},"comment":{"type":"string"},"id":{"type":"string"},"internal":{"type":"boolean"},"occurredAt":{"format":"date-time","type":"string"}},"required":["id","author","comment","internal","occurredAt"],"type":"object"},"OrderCommentCreate":{"properties":{"author":{"type":"string"},"comment":{"type":"string"},"internal":{"type":"boolean"},"source":{"type":"string"}},"required":["author","comment"],"type":"object"},"OrderCommentUpdate":{"properties":{"author":{"type":"string"},"comment":{"type":"string"},"internal":{"type":"boolean"},"source":{"type":"string"}},"type":"object"},"OrderCreate":{"properties":{"appliedCoupons":{"items":{"properties":{"appliedAt":{"format":"date-time","type":"string"},"code":{"type":"string"},"couponId":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"type":"string"}},"required":["code","discountAmount","appliedAt"],"type":"object"},"type":"array"},"author":{"type":"string"},"contactId":{"type":"string"},"description":{"type":"string"},"identifier":{"type":"string"},"initialStatus":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"},"items":{"items":{"properties":{"alternateName":{"type":"string"},"productId":{"type":"string"},"quantity":{"type":"integer"},"resolutionSource":{"type":"string"},"sku":{"type":"string"},"value":{"type":"number"}},"required":["quantity"],"type":"object"},"type":"array"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"paymentMethod":{"type":"string"},"realm":{"type":"string"},"shippingAddress":{"properties":{"address":{"type":"string"},"address2":{"type":"string"},"cityCode":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shippingCharges":{"items":{"properties":{"methodId":{"type":"string"},"methodTitle":{"type":"string"},"price":{"type":"number"}},"type":"object"},"type":"array"},"source":{"type":"string"}},"required":["identifier","realm","contactId","items"],"type":"object"},"OrderItem":{"properties":{"alternateName":{"type":"string"},"productId":{"type":"string"},"quantity":{"type":"integer"},"resolutionSource":{"type":"string"},"sku":{"type":"string"},"value":{"type":"number"}},"required":["quantity"],"type":"object"},"OrderListMeta":{"properties":{"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}},"type":"object"},"OrderListResponse":{"properties":{"data":{"items":{"properties":{"appliedCoupons":{"items":{"properties":{"appliedAt":{"format":"date-time","type":"string"},"code":{"type":"string"},"couponId":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"type":"string"}},"required":["code","discountAmount","appliedAt"],"type":"object"},"type":"array"},"comments":{"items":{"properties":{"author":{"type":"string"},"comment":{"type":"string"},"id":{"type":"string"},"internal":{"type":"boolean"},"occurredAt":{"format":"date-time","type":"string"}},"required":["id","author","comment","internal","occurredAt"],"type":"object"},"type":"array"},"contactId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"currentStatus":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"},"hasCustomShippingAddress":{"type":"boolean"},"id":{"type":"string"},"identifier":{"type":"string"},"items":{"items":{"properties":{"alternateName":{"type":"string"},"productId":{"type":"string"},"quantity":{"type":"integer"},"resolutionSource":{"type":"string"},"sku":{"type":"string"},"value":{"type":"number"}},"required":["quantity"],"type":"object"},"type":"array"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"paymentMethod":{"type":"string"},"realm":{"type":"string"},"shippingAddress":{"properties":{"address":{"type":"string"},"address2":{"type":"string"},"cityCode":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shippingCharges":{"items":{"properties":{"methodId":{"type":"string"},"methodTitle":{"type":"string"},"price":{"type":"number"}},"type":"object"},"type":"array"},"statusHistory":{"items":{"properties":{"author":{"type":"string"},"description":{"type":"string"},"note":{"type":"string"},"noteOwner":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"status":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"}},"required":["status","author","occurredAt"],"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"meta":{"properties":{"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}},"type":"object"}},"type":"object"},"OrderShipping":{"properties":{"address":{"type":"string"},"address2":{"type":"string"},"cityCode":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"OrderShippingCharge":{"properties":{"methodId":{"type":"string"},"methodTitle":{"type":"string"},"price":{"type":"number"}},"type":"object"},"OrderStatusEntry":{"properties":{"author":{"type":"string"},"description":{"type":"string"},"note":{"type":"string"},"noteOwner":{"type":"string"},"occurredAt":{"format":"date-time","type":"string"},"status":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"}},"required":["status","author","occurredAt"],"type":"object"},"OrderStatusEnumRef":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"},"OrderStatusUpdate":{"properties":{"author":{"type":"string"},"description":{"type":"string"},"note":{"type":"string"},"noteOwner":{"type":"string"},"source":{"type":"string"},"status":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"}},"required":["status","author"],"type":"object"},"OrderUpdate":{"properties":{"appliedCoupons":{"items":{"properties":{"appliedAt":{"format":"date-time","type":"string"},"code":{"type":"string"},"couponId":{"type":"string"},"discountAmount":{"type":"number"},"discountType":{"type":"string"}},"required":["code","discountAmount","appliedAt"],"type":"object"},"type":"array"},"items":{"items":{"properties":{"alternateName":{"type":"string"},"productId":{"type":"string"},"quantity":{"type":"integer"},"resolutionSource":{"type":"string"},"sku":{"type":"string"},"value":{"type":"number"}},"required":["quantity"],"type":"object"},"type":"array"},"shippingAddress":{"properties":{"address":{"type":"string"},"address2":{"type":"string"},"cityCode":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shippingCharges":{"items":{"properties":{"methodId":{"type":"string"},"methodTitle":{"type":"string"},"price":{"type":"number"}},"type":"object"},"type":"array"},"source":{"type":"string"}},"type":"object"},"PaginatedAssetResponse":{"properties":{"data":{"items":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"folderId":{"type":"string"},"isDeleted":{"type":"boolean"},"key":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"mimeType":{"type":"string"},"name":{"type":"string"},"originalName":{"type":"string"},"size":{"type":"integer"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"meta":{"properties":{"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}},"type":"object"},"PaginatedFolderResponse":{"properties":{"data":{"items":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"isDeleted":{"type":"boolean"},"name":{"type":"string"},"parentFolderId":{"type":"string"},"slug":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"meta":{"properties":{"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}},"type":"object"},"Product":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"datasheets":{"items":{"properties":{"attributes":{"type":"object"},"description":{"type":"string"},"name":{"type":"string"},"realm":{"type":"string"}},"required":["realm","name"],"type":"object"},"type":"array"},"deletedAt":{"format":"date-time","type":"string"},"gallery":{"items":{"properties":{"assetId":{"type":"string"},"includedRealms":{"items":{"type":"string"},"type":"array"},"isMain":{"type":"boolean"},"position":{"format":"int32","type":"integer"},"variationIds":{"items":{"type":"string"},"type":"array"},"variationPosition":{"format":"int32","type":"integer"}},"required":["assetId"],"type":"object"},"type":"array"},"isDeleted":{"type":"boolean"},"sku":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"},"variants":{"items":{"properties":{"sku":{"type":"string"},"variationIds":{"items":{"type":"string"},"type":"array"}},"required":["variationIds"],"type":"object"},"type":"array"},"variations":{"items":{"type":"string"},"type":"array"}},"type":"object"},"ProductVariantDto":{"properties":{"sku":{"type":"string"},"variationIds":{"items":{"type":"string"},"type":"array"}},"required":["variationIds"],"type":"object"},"RecordCouponUsageRequest":{"properties":{"email":{"type":"string"},"orderId":{"type":"string"}},"required":["orderId"],"type":"object"},"RunJPGWorkerResponse":{"properties":{"batchSize":{"type":"integer"},"converted":{"type":"integer"},"failed":{"type":"integer"},"jpegQuality":{"type":"integer"},"scanned":{"type":"integer"},"skipped":{"type":"integer"},"tags":{"items":{"type":"string"},"type":"array"}},"type":"object"},"SearchResult":{"properties":{"data":{"items":{"type":"object"},"type":"array"},"page":{"format":"int64","type":"integer"},"pageSize":{"format":"int64","type":"integer"},"total":{"format":"int64","type":"integer"},"totalPages":{"format":"int64","type":"integer"}},"type":"object"},"ShopifyContactSyncSummary":{"properties":{"contactId":{"type":"string"},"failed":{"format":"int32","type":"integer"},"processed":{"format":"int32","type":"integer"},"runId":{"type":"string"},"skipped":{"format":"int32","type":"integer"},"succeeded":{"format":"int32","type":"integer"},"trigger":{"type":"string"}},"required":["runId","trigger","processed","succeeded","failed","skipped"],"type":"object"},"ShopifyExtensionContactSummary":{"properties":{"createdAt":{"format":"date-time","type":"string"},"displayName":{"type":"string"},"lastSyncedAt":{"format":"date-time","type":"string"},"linked":{"type":"boolean"},"mannaiahId":{"type":"string"}},"required":["linked"],"type":"object"},"ShopifyExtensionOrderSummary":{"properties":{"contactName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"lastSyncedAt":{"format":"date-time","type":"string"},"linked":{"type":"boolean"},"mannaiahId":{"type":"string"},"status":{"type":"string"}},"required":["linked"],"type":"object"},"ShopifyManualSyncRequest":{"properties":{"id":{"type":"string"},"shopDomain":{"type":"string"}},"required":["id"],"type":"object"},"ShopifyOAuthCallbackResponse":{"properties":{"installedAt":{"format":"date-time","type":"string"},"scopes":{"type":"string"},"shopDomain":{"type":"string"},"webhooksRegistered":{"type":"boolean"}},"required":["shopDomain","scopes","installedAt","webhooksRegistered"],"type":"object"},"ShopifyOrderSyncSummary":{"properties":{"contactId":{"type":"string"},"failed":{"format":"int32","type":"integer"},"orderId":{"type":"string"},"processed":{"format":"int32","type":"integer"},"runId":{"type":"string"},"skipped":{"format":"int32","type":"integer"},"succeeded":{"format":"int32","type":"integer"},"trigger":{"type":"string"}},"required":["runId","trigger","processed","succeeded","failed","skipped"],"type":"object"},"ShopifyWebhookPayload":{"properties":{"id":{"format":"int64","type":"integer"}},"required":["id"],"type":"object"},"SpotlightHit":{"properties":{"id":{"type":"string"},"matchedField":{"type":"string"},"score":{"type":"number"},"subtitle":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"}},"type":"object"},"SpotlightResult":{"properties":{"meta":{"properties":{"counts":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"},"term":{"type":"string"},"tookMs":{"format":"int64","type":"integer"}},"type":"object"},"results":{"items":{"$ref":"#/components/schemas/SpotlightHit"},"type":"array"}},"type":"object"},"StorefrontCategoryNode":{"properties":{"children":{"items":{"$ref":"#/components/schemas/StorefrontCategoryNode"},"type":"array"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"products":{"items":{"$ref":"#/components/schemas/StorefrontProductNode"},"type":"array"},"slug":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","slug","path","createdAt","updatedAt","products","children"],"type":"object"},"StorefrontNavigation":{"properties":{"categories":{"items":{"$ref":"#/components/schemas/StorefrontCategoryNode"},"type":"array"},"generatedAt":{"format":"date-time","type":"string"},"realm":{"type":"string"},"staticPages":{"items":{"$ref":"#/components/schemas/StorefrontStaticPageNode"},"type":"array"}},"required":["realm","generatedAt","categories","staticPages"],"type":"object"},"StorefrontProductNode":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"sku":{"type":"string"},"slug":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","sku","name","slug","path","createdAt","updatedAt"],"type":"object"},"StorefrontStaticPageNode":{"description":"Static-page navigation entry including the bound renderable identifier only; use renderableId to load the page body separately.","properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"renderableId":{"type":"string"},"title":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"url":{"type":"string"}},"required":["id","renderableId","title","url","createdAt","updatedAt"],"type":"object"},"SyncRun":{"properties":{"createdAt":{"format":"date-time","type":"string"},"durationMs":{"format":"int64","type":"integer"},"endedAt":{"format":"date-time","type":"string"},"errorCount":{"format":"int64","type":"integer"},"errors":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"errorCode":{"type":"string"},"errorType":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"runId":{"type":"string"}},"type":"object"},"type":"array"},"failed":{"format":"int64","type":"integer"},"id":{"type":"string"},"kind":{"type":"string"},"metadata":{"type":"object"},"processed":{"format":"int64","type":"integer"},"skipped":{"format":"int64","type":"integer"},"startedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"succeeded":{"format":"int64","type":"integer"},"trigger":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"SyncRunError":{"properties":{"createdAt":{"format":"date-time","type":"string"},"errorCode":{"type":"string"},"errorType":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"runId":{"type":"string"}},"type":"object"},"SyncRunList":{"properties":{"Data":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"durationMs":{"format":"int64","type":"integer"},"endedAt":{"format":"date-time","type":"string"},"errorCount":{"format":"int64","type":"integer"},"errors":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"errorCode":{"type":"string"},"errorType":{"type":"string"},"id":{"type":"string"},"message":{"type":"string"},"runId":{"type":"string"}},"type":"object"},"type":"array"},"failed":{"format":"int64","type":"integer"},"id":{"type":"string"},"kind":{"type":"string"},"metadata":{"type":"object"},"processed":{"format":"int64","type":"integer"},"skipped":{"format":"int64","type":"integer"},"startedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"succeeded":{"format":"int64","type":"integer"},"trigger":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"Limit":{"format":"int64","type":"integer"},"Page":{"format":"int64","type":"integer"},"Total":{"format":"int64","type":"integer"},"TotalPages":{"format":"int64","type":"integer"}},"type":"object"},"SyncRunMetadata":{"type":"object"},"SyncRunStats":{"properties":{"avgDurationMs":{"format":"int64","type":"integer"},"completedRuns":{"format":"int64","type":"integer"},"failedRuns":{"format":"int64","type":"integer"},"lastFailureAt":{"format":"date-time","type":"string"},"totalRuns":{"format":"int64","type":"integer"},"windowStart":{"format":"date-time","type":"string"}},"type":"object"},"Tag":{"properties":{"createdAt":{"format":"date-time","type":"string"},"deletedAt":{"format":"date-time","type":"string"},"id":{"format":"int64","type":"integer"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"TagCorrelation":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"int64","type":"integer"},"notes":{"type":"string"},"probability":{"type":"number"},"sourceTag":{"type":"string"},"targetTag":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"TagCorrelationListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TagCorrelation"},"type":"array"}},"type":"object"},"TagListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Tag"},"type":"array"}},"type":"object"},"UpdateAssetDto":{"properties":{"folderId":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"name":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"UpdateAssetFolderDto":{"properties":{"name":{"type":"string"},"parentFolderId":{"type":"string"},"tags":{"items":{"properties":{"color":{"type":"string"},"name":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"UpdateCategoryDto":{"properties":{"description":{"type":"string"},"filterCategoryRefs":{"items":{"type":"string"},"type":"array"},"filterMaxPrice":{"type":"number"},"filterMinPrice":{"type":"number"},"filterTags":{"items":{"type":"string"},"type":"array"},"includeChildren":{"type":"boolean"},"name":{"type":"string"},"parentId":{"type":"string"},"productIds":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"}},"type":"object"},"UpdateCouponRequest":{"properties":{"active":{"type":"boolean"},"assignedContactIds":{"items":{"type":"string"},"type":"array"},"assignedEmails":{"items":{"type":"string"},"type":"array"},"discountAmount":{"type":"number"},"discountType":{"enum":["fixed","percentage"],"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"includedCategoryIds":{"items":{"type":"string"},"type":"array"},"includedProductIds":{"items":{"type":"string"},"type":"array"},"includedTagIds":{"items":{"type":"string"},"type":"array"},"maxUsagesGlobal":{"nullable":true,"type":"integer"},"maxUsagesPerEmail":{"nullable":true,"type":"integer"},"origin":{"type":"string"}},"required":["discountType","discountAmount"],"type":"object"},"UpdateProductDto":{"properties":{"datasheets":{"items":{"properties":{"attributes":{"type":"object"},"description":{"type":"string"},"name":{"type":"string"},"realm":{"type":"string"}},"required":["realm","name"],"type":"object"},"type":"array"},"gallery":{"items":{"properties":{"assetId":{"type":"string"},"includedRealms":{"items":{"type":"string"},"type":"array"},"isMain":{"type":"boolean"},"position":{"format":"int32","type":"integer"},"variationIds":{"items":{"type":"string"},"type":"array"},"variationPosition":{"format":"int32","type":"integer"}},"required":["assetId"],"type":"object"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"variants":{"items":{"properties":{"sku":{"type":"string"},"variationIds":{"items":{"type":"string"},"type":"array"}},"required":["variationIds"],"type":"object"},"type":"array"},"variations":{"items":{"type":"string"},"type":"array"}},"type":"object"},"UpdateTagCorrelationDto":{"properties":{"notes":{"type":"string"},"probability":{"type":"number"}},"type":"object"},"UpdateVariationDto":{"properties":{"definition":{"enum":["COLOR","SIZE","TEXT"],"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"type":"object"},"Variation":{"properties":{"_id":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"definition":{"enum":["COLOR","SIZE","TEXT"],"type":"string"},"deletedAt":{"format":"date-time","type":"string"},"isDeleted":{"type":"boolean"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"value":{"type":"string"}},"type":"object"}},"securitySchemes":{"analytics_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"assets_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"auth_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"coupons_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"email_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"exports_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"falabellaBearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"membership_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"orders_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"products_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"shipping_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"shopifyBearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"shopifySessionBearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"syncrecord_bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"description":"Mannaiah modular monolith API","title":"Mannaiah API","version":"3.1.3"},"openapi":"3.0.3","paths":{"/assets":{"get":{"operationId":"AssetsController_findAll","parameters":[{"description":"Page number","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Filter criteria","in":"query","name":"filters","schema":{"type":"string"}}],"responses":{"200":{"description":"Return paginated assets."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"assets_bearer":[]}],"summary":"Get all assets","tags":["assets"]},"post":{"operationId":"AssetsController_uploadFile","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"},"folderId":{"type":"string"},"metadata":{"type":"string"},"name":{"type":"string"},"tags":{"type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"201":{"description":"The asset has been successfully uploaded and created."},"400":{"description":"Bad Request - File validation failed."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Folder not found."},"503":{"description":"Storage integration unavailable."}},"security":[{"assets_bearer":[]}],"summary":"Upload a file asset","tags":["assets"]}},"/assets/folders":{"get":{"operationId":"AssetsFoldersController_findAll","parameters":[{"description":"Page number","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Filter criteria","in":"query","name":"filters","schema":{"type":"string"}},{"description":"Parent folder ID","in":"query","name":"parentFolderId","schema":{"type":"string"}}],"responses":{"200":{"description":"Return paginated folders."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"assets_bearer":[]}],"summary":"Get asset folders","tags":["assets"]},"post":{"operationId":"AssetsFoldersController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssetFolderDto"}}},"required":true},"responses":{"201":{"description":"The folder has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"assets_bearer":[]}],"summary":"Create an asset folder","tags":["assets"]}},"/assets/folders/tree":{"get":{"operationId":"AssetsFoldersController_tree","responses":{"200":{"description":"Return complete hierarchical folder tree."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"assets_bearer":[]}],"summary":"Get complete hierarchical asset folder tree","tags":["assets"]}},"/assets/folders/{id}":{"delete":{"operationId":"AssetsFoldersController_remove","parameters":[{"description":"Folder ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The folder has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Folder not found."}},"security":[{"assets_bearer":[]}],"summary":"Delete an asset folder","tags":["assets"]},"get":{"operationId":"AssetsFoldersController_findOne","parameters":[{"description":"Folder ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the folder."},"401":{"description":"Unauthorized."},"404":{"description":"Folder not found."}},"security":[{"assets_bearer":[]}],"summary":"Get an asset folder by id","tags":["assets"]},"patch":{"operationId":"AssetsFoldersController_update","parameters":[{"description":"Folder ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssetFolderDto"}}},"required":true},"responses":{"200":{"description":"The folder has been successfully updated."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Folder not found."}},"security":[{"assets_bearer":[]}],"summary":"Update an asset folder","tags":["assets"]}},"/assets/workers/jpg/run":{"post":{"operationId":"AssetsController_runJPGWorker","parameters":[{"description":"Optional comma-separated tag filters overriding configured defaults.","in":"query","name":"tags","schema":{"type":"string"}},{"description":"Optional batch size overriding configured defaults.","in":"query","name":"batchSize","schema":{"type":"integer"}},{"description":"Optional JPEG quality (1-100) overriding configured defaults.","in":"query","name":"jpegQuality","schema":{"type":"integer"}}],"responses":{"200":{"description":"Return JPG worker execution counters."},"400":{"description":"Invalid parameters or missing tag filters."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"503":{"description":"Storage integration unavailable."}},"security":[{"assets_bearer":[]}],"summary":"Run JPG worker manually","tags":["assets"]}},"/assets/{id}":{"delete":{"operationId":"AssetsController_remove","parameters":[{"description":"Asset ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The asset has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Asset not found."}},"security":[{"assets_bearer":[]}],"summary":"Delete an asset","tags":["assets"]},"get":{"operationId":"AssetsController_findOne","parameters":[{"description":"Asset ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the asset."},"401":{"description":"Unauthorized."},"404":{"description":"Asset not found."}},"security":[{"assets_bearer":[]}],"summary":"Get an asset by id","tags":["assets"]},"patch":{"operationId":"AssetsController_update","parameters":[{"description":"Asset ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssetDto"}}},"required":true},"responses":{"200":{"description":"The asset has been successfully updated."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Asset or folder not found."}},"security":[{"assets_bearer":[]}],"summary":"Update an asset","tags":["assets"]}},"/categories":{"get":{"operationId":"CategoriesController_tree","responses":{"200":{"description":"Return all root-level categories."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"products_bearer":[]}],"summary":"Get category tree (root-level categories)","tags":["categories"]},"post":{"operationId":"CategoriesController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoryDto"}}},"required":true},"responses":{"201":{"description":"The category has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"409":{"description":"Conflict - Slug already exists."}},"security":[{"products_bearer":[]}],"summary":"Create a new category","tags":["categories"]}},"/categories/{id}":{"delete":{"operationId":"CategoriesController_remove","parameters":[{"description":"Category ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The category has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Category not found."},"409":{"description":"Conflict - Category has children."}},"security":[{"products_bearer":[]}],"summary":"Delete a category","tags":["categories"]},"get":{"operationId":"CategoriesController_findOne","parameters":[{"description":"Category ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the category."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Category not found."}},"security":[{"products_bearer":[]}],"summary":"Get a category by id","tags":["categories"]},"patch":{"operationId":"CategoriesController_update","parameters":[{"description":"Category ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCategoryDto"}}},"required":true},"responses":{"200":{"description":"The category has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Category not found."},"409":{"description":"Conflict - Slug already exists."}},"security":[{"products_bearer":[]}],"summary":"Update a category","tags":["categories"]}},"/categories/{id}/children":{"get":{"operationId":"CategoriesController_children","parameters":[{"description":"Parent Category ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return direct children of the category."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Category not found."}},"security":[{"products_bearer":[]}],"summary":"Get children of a category","tags":["categories"]}},"/categories/{id}/products":{"get":{"operationId":"CategoriesController_listProducts","parameters":[{"description":"Category ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page number (1-based)","in":"query","name":"page","schema":{"format":"int32","type":"integer"}},{"description":"Page size","in":"query","name":"pageSize","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Return paginated products for the category."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Category not found."}},"security":[{"products_bearer":[]}],"summary":"List products in a category","tags":["categories"]}},"/check-auth":{"get":{"operationId":"StatusController_checkAuth","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"example":"authenticated","type":"string"}},"type":"object"}}},"description":"The user is authenticated."},"401":{"description":"Unauthorized. Token is missing or invalid."}},"security":[{"auth_bearer":[]}],"summary":"Check authentication status","tags":["Status"]}},"/contacts":{"get":{"operationId":"ContactsController_findAll","parameters":[{"description":"Page number (default: 1)","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page (default: 10)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Field to order by (e.g., createdAt, legalName)","in":"query","name":"orderBy","schema":{"type":"string"}},{"description":"Order direction (asc or desc)","in":"query","name":"orderDir","schema":{"enum":["asc","desc"],"type":"string"}},{"description":"Filter by email","in":"query","name":"email","schema":{"type":"string"}},{"description":"Filter by metadata key","in":"query","name":"metadataKey","schema":{"type":"string"}},{"description":"Filter by metadata value","in":"query","name":"metadataValue","schema":{"type":"string"}},{"description":"Comma-separated list of IDs to exclude","in":"query","name":"excludeIds","schema":{"type":"string"}}],"responses":{"200":{"description":"Return paginated contacts."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"bearer":[]}],"summary":"Get contacts with pagination and filtering","tags":["contacts"]},"post":{"operationId":"ContactsController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreate"}}},"required":true},"responses":{"201":{"description":"The contact has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"409":{"description":"Conflict - Email or document already exists."}},"security":[{"bearer":[]}],"summary":"Create a new contact","tags":["contacts"]}},"/contacts/{id}":{"delete":{"operationId":"ContactsController_remove","parameters":[{"description":"Contact ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The contact has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Contact not found."}},"security":[{"bearer":[]}],"summary":"Delete a contact","tags":["contacts"]},"get":{"operationId":"ContactsController_findOne","parameters":[{"description":"Contact ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the contact."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Contact not found."}},"security":[{"bearer":[]}],"summary":"Get a contact by id","tags":["contacts"]},"patch":{"operationId":"ContactsController_update","parameters":[{"description":"Contact ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}}},"required":true},"responses":{"200":{"description":"The contact has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Contact not found."},"409":{"description":"Conflict - Email or document already exists."}},"security":[{"bearer":[]}],"summary":"Update a contact","tags":["contacts"]}},"/coupons":{"get":{"description":"Returns a paginated list of coupons, optionally filtered by origin, active state, or code.","operationId":"listCoupons","parameters":[{"in":"query","name":"origin","schema":{"type":"string"}},{"in":"query","name":"active","schema":{"type":"string"}},{"in":"query","name":"code","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"type":"integer"}},{"in":"query","name":"offset","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponListResponse"}}},"description":"Coupon list"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"}},"security":[{"coupons_bearer":[]}],"summary":"List coupons","tags":["Coupons"]},"post":{"description":"Creates a new coupon. Generates a random code when none is provided.","operationId":"createCoupon","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCouponRequest"}}},"description":"Coupon creation payload","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Coupon created"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Code conflict"}},"security":[{"coupons_bearer":[]}],"summary":"Create coupon","tags":["Coupons"]}},"/coupons/code/{code}":{"get":{"description":"Retrieves a coupon by its unique code.","operationId":"getCouponByCode","parameters":[{"in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Coupon"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"security":[{"coupons_bearer":[]}],"summary":"Get coupon by code","tags":["Coupons"]}},"/coupons/{id}":{"delete":{"description":"Soft-deletes a coupon by its identifier.","operationId":"deleteCoupon","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"security":[{"coupons_bearer":[]}],"summary":"Delete coupon","tags":["Coupons"]},"get":{"description":"Retrieves a coupon by its unique identifier.","operationId":"getCouponByID","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Coupon"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"security":[{"coupons_bearer":[]}],"summary":"Get coupon by ID","tags":["Coupons"]},"put":{"description":"Replaces all mutable coupon fields. Assignment and scope lists are replaced wholesale.","operationId":"updateCoupon","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCouponRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Updated coupon"},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Validation error"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Not found"}},"security":[{"coupons_bearer":[]}],"summary":"Update coupon","tags":["Coupons"]}},"/coupons/{id}/usage":{"post":{"description":"Validates and records a coupon redemption event for an order. Enforces global and per-email usage limits, expiry, and active state.","operationId":"recordCouponUsage","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordCouponUsageRequest"}}},"required":true},"responses":{"204":{"description":"Usage recorded"},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Coupon not found"},"409":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Already applied to this order"},"422":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}},"description":"Usage limit / expired / inactive"}},"security":[{"coupons_bearer":[]}],"summary":"Record coupon usage","tags":["Coupons"]}},"/docs":{"get":{"operationId":"StatusController_getDocs","responses":{"200":{"description":"Return Swagger UI page."}},"summary":"Get Swagger UI documentation page","tags":["Status"]}},"/email/deliveries":{"get":{"operationId":"EmailController_deliveriesByEmail","parameters":[{"in":"query","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Recipient email deliveries."},"400":{"description":"Invalid email value."}},"security":[{"email_bearer":[]}],"summary":"List email deliveries by recipient email","tags":["email"]}},"/email/deliveries/{id}":{"get":{"operationId":"EmailController_delivery","responses":{"200":{"description":"Email delivery."}},"security":[{"email_bearer":[]}],"summary":"Get one email delivery","tags":["email"]}},"/email/send":{"post":{"operationId":"EmailController_send","responses":{"202":{"description":"Email accepted."}},"security":[{"email_bearer":[]}],"summary":"Send one email","tags":["email"]}},"/email/track/open/{id}":{"get":{"description":"Records an email open event and returns a 1×1 transparent GIF. No authentication required.","operationId":"EmailController_trackOpen","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"1×1 transparent GIF."}},"summary":"Open-tracking pixel","tags":["email"]}},"/email/webhooks/ses":{"post":{"description":"Public SNS webhook endpoint for SES notifications. Verifies SNS signatures, confirms subscriptions, maps Delivery/Bounce/Complaint statuses into email deliveries, and stamps membership opt-out on permanent bounce/complaint events.","operationId":"EmailController_webhook","responses":{"200":{"description":"Webhook accepted."},"400":{"description":"Invalid webhook payload."},"401":{"description":"Invalid webhook signature."},"403":{"description":"Webhook topic mismatch."},"503":{"description":"Webhook subscription confirmation failed."}},"summary":"Receive SES webhook notifications","tags":["email"]}},"/export/orders":{"post":{"operationId":"ExportsController_generateOrders","responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReport"}}},"description":"Generated export report metadata."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"500":{"description":"Generation or storage failure."}},"security":[{"exports_bearer":[]}],"summary":"Generate orders CSV export report","tags":["exports"]}},"/exports/contacts":{"post":{"operationId":"ExportsController_generateContacts","responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReport"}}},"description":"Generated export report metadata."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"500":{"description":"Generation or storage failure."}},"security":[{"exports_bearer":[]}],"summary":"Generate contacts CSV export report","tags":["exports"]}},"/exports/orders":{"post":{"operationId":"ExportsController_generateOrders","responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReport"}}},"description":"Generated export report metadata."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"500":{"description":"Generation or storage failure."}},"security":[{"exports_bearer":[]}],"summary":"Generate orders CSV export report","tags":["exports"]}},"/exports/reports":{"get":{"operationId":"ExportsController_listReports","parameters":[{"description":"Page number (default: 1)","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page (default: 50, max: 500)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Filter by report type (contacts or orders)","in":"query","name":"type","schema":{"enum":["contacts","orders"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReportList"}}},"description":"Paginated export reports."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"exports_bearer":[]}],"summary":"List generated export reports","tags":["exports"]}},"/exports/reports/{id}":{"get":{"operationId":"ExportsController_getReport","parameters":[{"description":"Report ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReport"}}},"description":"Export report metadata."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Export report not found."}},"security":[{"exports_bearer":[]}],"summary":"Get generated export report metadata","tags":["exports"]}},"/exports/search":{"get":{"operationId":"ExportsController_searchReports","parameters":[{"description":"Page number (default: 1)","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page (default: 50, max: 500)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Filter by report type (contacts or orders)","in":"query","name":"type","schema":{"enum":["contacts","orders"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReportList"}}},"description":"Paginated export reports."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"exports_bearer":[]}],"summary":"Search generated export reports by type","tags":["exports"]}},"/falabella/brands":{"get":{"operationId":"FalabellaController_getBrands","responses":{"200":{"description":"Return Falabella GetBrands payload."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"503":{"description":"Falabella integration unavailable or invalid configuration."}},"security":[{"falabellaBearer":[]}],"summary":"Retrieve Falabella brands","tags":["falabella"]}},"/falabella/images/transcoded":{"get":{"operationId":"FalabellaController_transcodeImage","parameters":[{"description":"Source image URL to transcode.","in":"query","name":"src"}],"responses":{"200":{"description":"JPEG image payload."},"400":{"description":"Invalid source image URL."},"403":{"description":"Source image URL is not allowed."},"422":{"description":"Source image payload is not a decodable image."},"503":{"description":"Image transcode is disabled."}},"summary":"Transcode a source image URL to image/jpeg","tags":["falabella"]}},"/falabella/sync/products":{"post":{"operationId":"FalabellaController_syncProducts","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaSyncProductsRequest"}}},"description":"Optional list of product IDs. When empty, all products are evaluated for falabella realm sync."},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaSyncSummary"}}},"description":"Sync summary."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"503":{"description":"Falabella integration unavailable or invalid configuration."}},"security":[{"falabellaBearer":[]}],"summary":"Sync products to Falabella","tags":["falabella"]}},"/falabella/sync/products/{id}":{"post":{"operationId":"FalabellaController_syncProductByID","parameters":[{"description":"Product ID.","in":"path","name":"id","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaSyncSummary"}}},"description":"Sync summary."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"503":{"description":"Falabella integration unavailable or invalid configuration."}},"security":[{"falabellaBearer":[]}],"summary":"Sync one product to Falabella","tags":["falabella"]}},"/falabella/sync/status/execution/{executionId}":{"get":{"operationId":"FalabellaController_getSyncStatusExecution","parameters":[{"description":"Sync execution ID.","in":"path","name":"executionId","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaSyncStatusExecution"}}},"description":"Sync execution."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."},"404":{"description":"Sync execution not found."}},"security":[{"falabellaBearer":[]}],"summary":"Retrieve sync execution by execution ID","tags":["falabella"]}},"/falabella/sync/status/execution/{executionId}/feeds":{"get":{"operationId":"FalabellaController_getSyncStatusByExecution","parameters":[{"description":"Sync execution ID.","in":"path","name":"executionId","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FalabellaSyncStatusEntry"},"type":"array"}}},"description":"Sync status entries."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."}},"security":[{"falabellaBearer":[]}],"summary":"Retrieve sync status entries by execution ID","tags":["falabella"]}},"/falabella/sync/status/feed/{feedId}":{"get":{"operationId":"FalabellaController_getSyncStatusByFeed","parameters":[{"description":"Falabella feed ID.","in":"path","name":"feedId","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaSyncStatusEntry"}}},"description":"Sync status entry."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."},"404":{"description":"Sync entry not found."}},"security":[{"falabellaBearer":[]}],"summary":"Retrieve sync status by feed ID","tags":["falabella"]}},"/falabella/sync/status/feed/{feedId}/resolve":{"post":{"operationId":"FalabellaController_resolveFeedStatus","parameters":[{"description":"Falabella feed ID.","in":"path","name":"feedId","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FalabellaResolveResult"}}},"description":"Feed resolution result."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."},"404":{"description":"Sync entry not found."},"409":{"description":"Feed not yet finished processing."},"503":{"description":"Falabella integration unavailable."}},"security":[{"falabellaBearer":[]}],"summary":"Resolve Falabella feed status","tags":["falabella"]}},"/falabella/sync/status/product/{productId}":{"get":{"operationId":"FalabellaController_getSyncStatusByProduct","parameters":[{"description":"Product ID.","in":"path","name":"productId","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FalabellaSyncStatusEntry"},"type":"array"}}},"description":"Sync status entries."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."}},"security":[{"falabellaBearer":[]}],"summary":"Retrieve sync status entries by product ID","tags":["falabella"]}},"/membership/optin":{"post":{"operationId":"MembershipController_optIn","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipActionRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStatus"}}},"description":"Membership status updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership contact not found."}},"security":[{"membership_bearer":[]}],"summary":"Opt-in membership consent","tags":["membership"]}},"/membership/optout":{"post":{"operationId":"MembershipController_optOut","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipActionRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStatus"}}},"description":"Membership status updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership contact not found."}},"security":[{"membership_bearer":[]}],"summary":"Opt-out membership consent","tags":["membership"]}},"/membership/stamp":{"post":{"operationId":"MembershipController_stamp","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStampRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStatus"}}},"description":"Membership status updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership contact not found."}},"security":[{"membership_bearer":[]}],"summary":"Stamp membership consent","tags":["membership"]}},"/membership/stamps/{contactId}/{channel}":{"get":{"operationId":"MembershipController_stampsByChannel","parameters":[{"description":"Contact ID.","in":"path","name":"contactId","required":true},{"description":"Membership channel.","in":"path","name":"channel","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStamps"}}},"description":"Membership stamps."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership status not found."}},"security":[{"membership_bearer":[]}],"summary":"List membership stamps by channel","tags":["membership"]}},"/membership/status/{contactId}":{"get":{"operationId":"MembershipController_status","parameters":[{"description":"Contact ID.","in":"path","name":"contactId","required":true},{"description":"Optional channel override. When provided, returns one effective status.","in":"query","name":"channel","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStatusList"}}},"description":"Membership status list."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership status not found."}},"security":[{"membership_bearer":[]}],"summary":"Get current membership statuses","tags":["membership"]}},"/membership/status/{contactId}/stamps":{"get":{"operationId":"MembershipController_stamps","parameters":[{"description":"Contact ID.","in":"path","name":"contactId","required":true},{"description":"Membership channel (defaults to email).","in":"query","name":"channel","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStamps"}}},"description":"Membership stamps."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership status not found."}},"security":[{"membership_bearer":[]}],"summary":"List membership stamps","tags":["membership"]}},"/membership/status/{contactId}/{channel}":{"get":{"operationId":"MembershipController_statusByChannel","parameters":[{"description":"Contact ID.","in":"path","name":"contactId","required":true},{"description":"Membership channel.","in":"path","name":"channel","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembershipStatus"}}},"description":"Membership status."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Membership status not found."}},"security":[{"membership_bearer":[]}],"summary":"Get current membership status by channel","tags":["membership"]}},"/metrics":{"get":{"operationId":"StatusController_getMetrics","responses":{"200":{"description":"Return Prometheus metrics payload."}},"summary":"Get Prometheus metrics","tags":["Status"]}},"/openapi.json":{"get":{"operationId":"StatusController_getOpenAPI","responses":{"200":{"description":"Return aggregated API specification."}},"summary":"Get aggregated OpenAPI specification","tags":["Status"]}},"/orders":{"get":{"operationId":"OrdersController_findAll","parameters":[{"description":"Page number (default: 1)","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Items per page (default: 10)","in":"query","name":"limit","schema":{"type":"integer"}},{"description":"Filter by order realm","in":"query","name":"realm","schema":{"type":"string"}},{"description":"Filter by contact id","in":"query","name":"contactId","schema":{"type":"string"}},{"description":"Filter by external order identifier","in":"query","name":"identifier","schema":{"type":"string"}},{"description":"Filter by current order status","in":"query","name":"status","schema":{"enum":["CANCELLED","CREATED","PENDING","HOLD","COMPLETED"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderListResponse"}}},"description":"Return paginated orders."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"orders_bearer":[]}],"summary":"Get orders with pagination and filtering","tags":["orders"]},"post":{"operationId":"OrdersController_create","parameters":[{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order customer not found."},"409":{"description":"Conflict - Order identifier already exists in realm."}},"security":[{"orders_bearer":[]}],"summary":"Create a new order","tags":["orders"]}},"/orders/{id}":{"get":{"operationId":"OrdersController_findOne","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"Return the order."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order not found."}},"security":[{"orders_bearer":[]}],"summary":"Get an order by id","tags":["orders"]},"patch":{"operationId":"OrdersController_update","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order not found."}},"security":[{"orders_bearer":[]}],"summary":"Update order items and shipping fields","tags":["orders"]}},"/orders/{id}/comments":{"post":{"operationId":"OrdersController_addComment","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCommentCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order comment has been successfully appended."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order not found."}},"security":[{"orders_bearer":[]}],"summary":"Append a comment to an order","tags":["orders"]}},"/orders/{id}/comments/{commentId}":{"delete":{"operationId":"OrdersController_deleteComment","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Order comment ID","in":"path","name":"commentId","required":true,"schema":{"type":"string"}},{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order comment has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order or order comment not found."}},"security":[{"orders_bearer":[]}],"summary":"Delete an order comment","tags":["orders"]},"patch":{"operationId":"OrdersController_updateComment","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Order comment ID","in":"path","name":"commentId","required":true,"schema":{"type":"string"}},{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCommentUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order comment has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order or order comment not found."}},"security":[{"orders_bearer":[]}],"summary":"Update an order comment","tags":["orders"]}},"/orders/{id}/status":{"patch":{"operationId":"OrdersController_updateStatus","parameters":[{"description":"Order ID","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Optional mutation source for loop-safe integrations (e.g. woocommerce_plugin)","in":"header","name":"X-Sync-Source","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderStatusUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"The order status has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Order not found."}},"security":[{"orders_bearer":[]}],"summary":"Append status for an order","tags":["orders"]}},"/products":{"get":{"description":"Returns all products. When ?tags= is provided the response is paginated and filtered by tags.","operationId":"ProductsController_findAll","parameters":[{"description":"Comma-separated tag values to filter by (e.g. electronics,clothing). Enables pagination.","in":"query","name":"tags","schema":{"type":"string"}},{"description":"Page number (default 1, only applies when tags filter is active).","in":"query","name":"page","schema":{"format":"int32","type":"integer"}},{"description":"Page size (default 20, only applies when tags filter is active).","in":"query","name":"pageSize","schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Return all products."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"products_bearer":[]}],"summary":"Get all products","tags":["products"]},"post":{"operationId":"ProductsController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductDto"}}},"required":true},"responses":{"201":{"description":"The product has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"409":{"description":"Conflict - SKU already exists."}},"security":[{"products_bearer":[]}],"summary":"Create a new product","tags":["products"]}},"/products/sku/{sku}":{"get":{"operationId":"ProductsController_findOneBySKU","parameters":[{"description":"Product SKU or variant SKU","in":"path","name":"sku","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the product."},"400":{"description":"Bad Request - SKU is required."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Product not found."}},"security":[{"products_bearer":[]}],"summary":"Get a product by SKU (product-level or variant-level)","tags":["products"]}},"/products/{id}":{"delete":{"operationId":"ProductsController_remove","parameters":[{"description":"Product ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The product has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Product not found."}},"security":[{"products_bearer":[]}],"summary":"Delete a product","tags":["products"]},"get":{"operationId":"ProductsController_findOne","parameters":[{"description":"Product ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the product."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Product not found."}},"security":[{"products_bearer":[]}],"summary":"Get a product by id","tags":["products"]},"patch":{"operationId":"ProductsController_update","parameters":[{"description":"Product ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductDto"}}},"required":true},"responses":{"200":{"description":"The product has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Product not found."},"409":{"description":"Conflict - SKU already exists."}},"security":[{"products_bearer":[]}],"summary":"Update a product","tags":["products"]}},"/search":{"get":{"operationId":"Search_spotlight","parameters":[{"description":"Free-text search term","in":"query","name":"term","required":true,"schema":{"type":"string"}},{"description":"Comma-separated resource types to include (e.g. contact,order,product)","in":"query","name":"types","schema":{"type":"string"}},{"description":"Maximum results per provider (default: 10, max: 50)","in":"query","name":"limit","schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpotlightResult"}}},"description":"Spotlight search results"},"400":{"description":"Missing required term parameter"}},"summary":"Cross-resource spotlight search","tags":["search"]}},"/search/categories":{"get":{"operationId":"Search_categories","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search categories","tags":["categories","search"]}},"/search/contacts":{"get":{"operationId":"Search_contacts","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search contacts","tags":["contacts","search"]}},"/search/orders":{"get":{"operationId":"Search_orders","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search orders","tags":["orders","search"]}},"/search/products":{"get":{"operationId":"Search_products","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search products","tags":["products","search"]}},"/search/shipping":{"get":{"operationId":"Search_shipping","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search shipping marks","tags":["shipping","search"]}},"/search/tags":{"get":{"operationId":"Search_tags","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search product tags","tags":["tags","search"]}},"/search/variations":{"get":{"operationId":"Search_variations","parameters":[{"description":"Free-text search term matched against configured text fields via LIKE","in":"query","name":"term","schema":{"type":"string"}},{"description":"1-based page number (default: 1)","in":"query","name":"page","schema":{"format":"int64","type":"integer"}},{"description":"Items per page (default: 20, max: 100)","in":"query","name":"pageSize","schema":{"format":"int64","type":"integer"}},{"description":"Sort fields as field:dir pairs. Example: created_at:desc,name:asc","in":"query","name":"sort","schema":{"type":"string"}},{"description":"Exact match filter. Example: filter[status]=ACTIVE","in":"query","name":"filter[field]","schema":{"type":"string"}},{"description":"Operator filter (gte,lte,gt,lt,between,in,like). Example: filter[created_at.gte]=2024-01-01","in":"query","name":"filter[field.op]","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResult"}}},"description":"Paginated search results"},"400":{"description":"Invalid query parameters"}},"summary":"Search product variations","tags":["variations","search"]}},"/shipping/batches":{"get":{"operationId":"ShippingController_listBatches","parameters":[{"description":"Optional carrier identifier filter.","in":"query","name":"carrierID","schema":{"type":"string"}},{"description":"Optional status filter (OPEN/CLOSED).","in":"query","name":"status","schema":{"type":"string"}},{"description":"Pagination page (1-based).","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Pagination page size.","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"carrierId":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"},"markIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"Dispatch batch list."}},"security":[{"shipping_bearer":[]}],"summary":"List dispatch batches","tags":["shipping"]},"post":{"operationId":"ShippingController_createBatch","requestBody":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"}},"required":["carrierId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"},"markIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"Dispatch batch."}},"security":[{"shipping_bearer":[]}],"summary":"Create one dispatch batch","tags":["shipping"]}},"/shipping/batches/marks":{"post":{"operationId":"ShippingController_createBatchMark","requestBody":{"content":{"application/json":{"schema":{"properties":{"batch":{"type":"string"},"direct":{"type":"boolean"},"quotationId":{"type":"string"}},"required":["batch","quotationId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Shipping mark created."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload, invalid_city_code, carrier_not_supported."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"409":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Conflict. Possible message codes: batch_closed, batch_carrier_mismatch, batch_mark_status_mismatch."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Possible message codes: internal_server_error, shipping_guardrail_violation. Guardrail errors include mark_id, order_id, guardrail rule, and request_preview in the error field."}},"security":[{"shipping_bearer":[]}],"summary":"Create one quoted or direct shipping mark in a batch","tags":["shipping"]}},"/shipping/batches/{id}":{"get":{"operationId":"ShippingController_getBatch","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"},"markIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"Dispatch batch."}},"security":[{"shipping_bearer":[]}],"summary":"Get one dispatch batch","tags":["shipping"]}},"/shipping/batches/{id}/checklist-document":{"get":{"operationId":"ShippingController_getBatchChecklistDocument","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"Open-batch checklist PDF document."}},"security":[{"shipping_bearer":[]}],"summary":"Get open-batch checklist PDF document","tags":["shipping"]}},"/shipping/batches/{id}/close":{"patch":{"operationId":"ShippingController_closeBatch","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"},"markIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"Dispatch batch closed."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload, invalid_city_code, carrier_not_supported."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"409":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Conflict. Possible message codes: batch_closed, batch_status_invalid."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Possible message codes: internal_server_error, shipping_guardrail_violation. Guardrail errors include mark_id, order_id, guardrail rule, and request_preview in the error field."}},"security":[{"shipping_bearer":[]}],"summary":"Close one dispatch batch","tags":["shipping"]}},"/shipping/batches/{id}/manifest-document":{"get":{"operationId":"ShippingController_getBatchManifestDocument","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"Merged batch manifest PDF document."}},"security":[{"shipping_bearer":[]}],"summary":"Get merged batch manifest PDF document","tags":["shipping"]}},"/shipping/batches/{id}/marks":{"post":{"operationId":"ShippingController_addBatchMark","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"collectOnDeliveryAmount":{"type":"number"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"}},"required":["orderId","sender","recipient","units","shipmentMode"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Draft shipping mark."}},"security":[{"shipping_bearer":[]}],"summary":"Create one draft mark in a batch","tags":["shipping"]}},"/shipping/batches/{id}/marks-all-document":{"get":{"operationId":"ShippingController_getBatchAllMarksDocument","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"Merged shipping labels PDF document."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Get merged PDF of all shipping labels for a closed batch","tags":["shipping"]}},"/shipping/batches/{id}/marks/{markID}":{"delete":{"operationId":"ShippingController_removeBatchMark","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Shipping mark identifier.","in":"path","name":"markID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"closedAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"},"markIds":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"Dispatch batch."}},"security":[{"shipping_bearer":[]}],"summary":"Remove one mark from a dispatch batch","tags":["shipping"]},"patch":{"operationId":"ShippingController_updateBatchMark","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Shipping mark identifier.","in":"path","name":"markID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"customTrackingUrl":{"type":"string"},"observations":{"type":"string"},"quotedFreightCost":{"type":"number"},"trackingNumber":{"type":"string"}},"required":["quotedFreightCost","observations","trackingNumber"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Draft shipping mark completed."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"409":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Conflict. Possible message codes: batch_closed, mark_not_draft, manual_draft_update_not_supported."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Complete one manual draft mark in a batch","tags":["shipping"]}},"/shipping/batches/{id}/rotulus-all-document":{"get":{"operationId":"ShippingController_getBatchAllRotulusDocument","parameters":[{"description":"Dispatch batch identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"All-rotulus PDF document."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Get PDF with all rotulus for a batch, two per page","tags":["shipping"]}},"/shipping/carriers":{"get":{"operationId":"ShippingController_listCarriers","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"active":{"type":"boolean"},"hasManifestDocument":{"type":"boolean"},"hasQuotation":{"type":"boolean"},"hasTracking":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"needsUrl":{"type":"boolean"},"requiresBalanceCheck":{"type":"boolean"},"type":{"type":"string"}},"type":"object"},"type":"array"},"total":{"type":"integer"}},"type":"object"}}},"description":"Carrier list."}},"security":[{"shipping_bearer":[]}],"summary":"List configured carriers","tags":["shipping"]}},"/shipping/carriers/{id}":{"get":{"operationId":"ShippingController_getCarrier","parameters":[{"description":"Carrier identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"},"hasManifestDocument":{"type":"boolean"},"hasQuotation":{"type":"boolean"},"hasTracking":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"needsUrl":{"type":"boolean"},"requiresBalanceCheck":{"type":"boolean"},"type":{"type":"string"}},"type":"object"}}},"description":"Carrier."}},"security":[{"shipping_bearer":[]}],"summary":"Get one carrier","tags":["shipping"]}},"/shipping/marks":{"get":{"operationId":"ShippingController_listMarks","parameters":[{"description":"Optional order identifier filter.","in":"query","name":"orderID","schema":{"type":"string"}},{"description":"Optional dispatch batch identifier filter.","in":"query","name":"batchID","schema":{"type":"string"}},{"description":"Pagination page (1-based).","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Pagination page size.","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"Shipping mark list."}},"security":[{"shipping_bearer":[]}],"summary":"List shipping marks","tags":["shipping"]},"post":{"operationId":"ShippingController_createMark","requestBody":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"}},"required":["orderId","carrierId","sender","recipient","units","shipmentMode"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Shipping mark."}},"security":[{"shipping_bearer":[]}],"summary":"Generate one shipping mark","tags":["shipping"]}},"/shipping/marks/{id}":{"get":{"operationId":"ShippingController_getMark","parameters":[{"description":"Shipping mark identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Shipping mark."}},"security":[{"shipping_bearer":[]}],"summary":"Get one shipping mark","tags":["shipping"]}},"/shipping/marks/{id}/document":{"get":{"operationId":"ShippingController_getMarkDocument","parameters":[{"description":"Shipping mark identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"Carrier label PDF document."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Message code: invalid_payload."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Get mark carrier label PDF document","tags":["shipping"]}},"/shipping/marks/{id}/related":{"get":{"operationId":"ShippingController_listRelatedMarks","parameters":[{"description":"Shipping mark identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"Related shipping marks."}},"security":[{"shipping_bearer":[]}],"summary":"List related shipping marks","tags":["shipping"]}},"/shipping/marks/{id}/rotulus-document":{"get":{"operationId":"ShippingController_getMarkRotulusDocument","parameters":[{"description":"Shipping mark identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"Rotulus PDF document."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Message code: invalid_payload."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Get mark rotulus PDF document","tags":["shipping"]}},"/shipping/marks/{id}/void":{"patch":{"operationId":"ShippingController_voidMark","parameters":[{"description":"Shipping mark identifier.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"customTrackingUrl":{"type":"string"},"declaredValue":{"type":"number"},"dispatchBatchId":{"type":"string"},"documentRef":{"type":"string"},"documentType":{"type":"string"},"draftSnapshot":{"description":"Base64-encoded JSON snapshot captured before carrier submission.","type":"string"},"failureReason":{"type":"string"},"id":{"type":"string"},"manifestRef":{"type":"string"},"manifestType":{"type":"string"},"observations":{"type":"string"},"orderId":{"type":"string"},"paymentForm":{"type":"string"},"quotationId":{"type":"string"},"quotedFreightCost":{"type":"number"},"recipient":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"responseSnapshot":{"description":"Base64-encoded JSON snapshot captured after carrier response handling.","type":"string"},"sender":{"properties":{"addressLine":{"type":"string"},"cityCode":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"idType":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"status":{"type":"string"},"totalVolumetricWeight":{"type":"number"},"totalWeight":{"type":"number"},"trackingNumber":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"updatedAt":{"format":"date-time","type":"string"}},"type":"object"}}},"description":"Shipping mark voided."}},"security":[{"shipping_bearer":[]}],"summary":"Void one shipping mark","tags":["shipping"]}},"/shipping/orders/{orderID}/dispatch":{"get":{"operationId":"ShippingController_getOrderDispatch","parameters":[{"description":"Order identifier.","in":"path","name":"orderID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"batchId":{"type":"string"},"markId":{"type":"string"},"orderId":{"type":"string"},"provisioned":{"type":"boolean"},"status":{"type":"string"}},"type":"object"}}},"description":"Order dispatch provisioning status."}},"security":[{"shipping_bearer":[]}],"summary":"Get order dispatch provisioning status","tags":["shipping"]}},"/shipping/quotations":{"get":{"operationId":"ShippingController_listQuotations","parameters":[{"description":"Optional order identifier filter.","in":"query","name":"orderID","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"CarrierID":{"type":"string"},"CreatedAt":{"format":"date-time","type":"string"},"CurrencyCode":{"type":"string"},"DestCityCode":{"type":"string"},"EstimatedDays":{"type":"integer"},"ExpiresAt":{"format":"date-time","type":"string"},"FreightCost":{"type":"number"},"ID":{"type":"string"},"OrderID":{"type":"string"},"OrderIdentifier":{"type":"string"},"OriginCityCode":{"type":"string"},"RawResponse":{"description":"Base64-encoded raw carrier response payload.","type":"string"},"RequestSnapshot":{"description":"Base64-encoded carrier request snapshot (TCC payload when carrier=tcc; normalized quotation request for providers without carrier-native snapshot).","type":"string"}},"type":"object"},"type":"array"},"total":{"type":"integer"}},"type":"object"}}},"description":"Quotation list."}},"security":[{"shipping_bearer":[]}],"summary":"List quotations by order","tags":["shipping"]},"post":{"operationId":"ShippingController_createQuotation","requestBody":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"declaredValue":{"type":"number"},"destCityCode":{"type":"string"},"orderId":{"type":"string"},"originCityCode":{"type":"string"},"shipmentMode":{"description":"Requested shipment mode. The service normalizes to express for one unit and parcel for two or more units.","enum":["parcel","express"],"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"}},"required":["carrierId","originCityCode","destCityCode","units","shipmentMode"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeeAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"currencyCode":{"type":"string"},"destCityCode":{"type":"string"},"estimatedDays":{"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"freightCost":{"type":"number"},"id":{"type":"string"},"orderId":{"type":"string"},"orderIdentifier":{"type":"string"},"originCityCode":{"type":"string"},"rawResponse":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"warnings":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"Quotation result."}},"security":[{"shipping_bearer":[]}],"summary":"Request one freight quotation","tags":["shipping"]}},"/shipping/quotations/order":{"post":{"operationId":"ShippingController_quoteFromOrder","requestBody":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"orderIdentifier":{"type":"string"},"originCityCode":{"type":"string"}},"required":["orderIdentifier","carrierId","originCityCode"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"collectOnDeliveryChargedAmount":{"type":"number"},"collectOnDeliveryFeeAmount":{"type":"number"},"collectOnDeliveryFeePercent":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"currencyCode":{"type":"string"},"destCityCode":{"type":"string"},"estimatedDays":{"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"freightCost":{"type":"number"},"id":{"type":"string"},"orderId":{"type":"string"},"orderIdentifier":{"type":"string"},"originCityCode":{"type":"string"},"rawResponse":{"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"warnings":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"Quotation result with warnings."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload, no_valid_products, carrier_not_supported, quotation_not_supported, invalid_city_code."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Request a freight quotation from an order's products","tags":["shipping"]}},"/shipping/quotations/order-packaging":{"post":{"operationId":"ShippingController_quoteOrderPackaging","requestBody":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"orderIdentifier":{"type":"string"},"originCityCode":{"type":"string"}},"required":["orderIdentifier","carrierId","originCityCode"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"collectOnDeliveryAmount":{"type":"number"},"declaredValue":{"type":"number"},"destCityCode":{"type":"string"},"orderId":{"type":"string"},"orderIdentifier":{"type":"string"},"originCityCode":{"type":"string"},"shipmentMode":{"enum":["parcel","express"],"type":"string"},"units":{"items":{"properties":{"description":{"type":"string"},"dimensions":{"properties":{"declaredValueCop":{"type":"number"},"depthCm":{"type":"number"},"heightCm":{"type":"number"},"realWeightKg":{"type":"number"},"volumetricWeightKg":{"type":"number"},"widthCm":{"type":"number"}},"type":"object"},"packageType":{"type":"string"}},"type":"object"},"type":"array"},"warnings":{"items":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"Order packaging preview."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload, no_valid_products, carrier_not_supported."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Message code: shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Preview packed units for an order without carrier quotation","tags":["shipping"]}},"/shipping/quotations/order/{identifier}":{"get":{"operationId":"ShippingController_getOrderQuotation","parameters":[{"description":"Order internal ID or external identifier.","in":"path","name":"identifier","required":true,"schema":{"type":"string"}},{"description":"Carrier identifier filter.","in":"query","name":"carrierId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"CarrierID":{"type":"string"},"CreatedAt":{"format":"date-time","type":"string"},"CurrencyCode":{"type":"string"},"DestCityCode":{"type":"string"},"EstimatedDays":{"type":"integer"},"ExpiresAt":{"format":"date-time","type":"string"},"FreightCost":{"type":"number"},"ID":{"type":"string"},"OrderID":{"type":"string"},"OrderIdentifier":{"type":"string"},"OriginCityCode":{"type":"string"},"RawResponse":{"description":"Base64-encoded raw carrier response payload.","type":"string"},"RequestSnapshot":{"description":"Base64-encoded carrier request snapshot (TCC payload when carrier=tcc; normalized quotation request for providers without carrier-native snapshot).","type":"string"}},"type":"object"}}},"description":"Quotation record."},"400":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Bad request. Possible message codes: invalid_payload, carrier_not_supported."},"401":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Unauthorized. Message code: unauthorized."},"403":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Forbidden. Message code: forbidden."},"404":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Not found. Possible message codes: quotation_not_found, shipping_resource_not_found."},"500":{"content":{"application/json":{"schema":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"}}},"description":"Internal server error. Message code: internal_server_error."}},"security":[{"shipping_bearer":[]}],"summary":"Get the latest non-expired quotation for an order and carrier","tags":["shipping"]}},"/shipping/tracking":{"get":{"operationId":"ShippingController_listTracking","parameters":[{"description":"Optional free-text filter by tracking number, order id, or recipient name.","in":"query","name":"term","schema":{"type":"string"}},{"description":"Optional last-status filter. Supports MANUAL and normalized carrier statuses.","in":"query","name":"status","schema":{"type":"string"}},{"description":"Pagination page (1-based).","in":"query","name":"page","schema":{"type":"integer"}},{"description":"Pagination page size.","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"carrierId":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"lastStatus":{"type":"string"},"orderId":{"type":"string"},"recipientName":{"type":"string"},"trackingNumber":{"type":"string"}},"type":"object"},"type":"array"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"Tracking summary list."}},"security":[{"shipping_bearer":[]}],"summary":"List shipment tracking rows","tags":["shipping"]}},"/shipping/tracking/{trackingNumber}":{"get":{"operationId":"ShippingController_getTracking","parameters":[{"description":"Carrier tracking number.","in":"path","name":"trackingNumber","required":true,"schema":{"type":"string"}},{"description":"Carrier identifier.","in":"query","name":"carrier","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"carrierId":{"type":"string"},"globalStatus":{"type":"string"},"history":{"items":{"properties":{"city":{"type":"string"},"code":{"type":"string"},"date":{"format":"date-time","type":"string"},"status":{"type":"string"},"text":{"type":"string"}},"type":"object"},"type":"array"},"lastUpdate":{"format":"date-time","type":"string"},"trackingNumber":{"type":"string"}},"type":"object"}}},"description":"Tracking history."}},"security":[{"shipping_bearer":[]}],"summary":"Get normalized tracking history","tags":["shipping"]}},"/shopify/app":{"get":{"description":"Returns a simple HTML page when Shopify opens the configured App URL after installation or from the Admin app launcher.","operationId":"ShopifyApp_launch","responses":{"200":{"description":"HTML launch landing page returned."}},"summary":"Render Shopify app launch landing page","tags":["shopify"]}},"/shopify/ext/contacts/{shopifyCustomerId}":{"get":{"description":"Returns the Mannaiah contact linked to one Shopify customer for the authenticated Shopify Admin extension session.","operationId":"ShopifyExtension_getContactSummary","parameters":[{"description":"Shopify customer identifier.","in":"path","name":"shopifyCustomerId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyExtensionContactSummary"}}},"description":"Extension contact summary resolved successfully."},"401":{"description":"Invalid or missing Shopify Admin session token."},"503":{"description":"Shopify installation resolution or Mannaiah integration is unavailable."}},"security":[{"shopifySessionBearer":[]}],"summary":"Get linked Mannaiah contact summary","tags":["shopify-extension"]}},"/shopify/ext/orders/{shopifyOrderId}":{"get":{"description":"Returns the Mannaiah order linked to one Shopify order for the authenticated Shopify Admin extension session.","operationId":"ShopifyExtension_getOrderSummary","parameters":[{"description":"Shopify order identifier.","in":"path","name":"shopifyOrderId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyExtensionOrderSummary"}}},"description":"Extension order summary resolved successfully."},"401":{"description":"Invalid or missing Shopify Admin session token."},"503":{"description":"Shopify installation resolution or Mannaiah integration is unavailable."}},"security":[{"shopifySessionBearer":[]}],"summary":"Get linked Mannaiah order summary","tags":["shopify-extension"]}},"/shopify/oauth/callback":{"get":{"description":"Exchanges the authorization code for one offline access token, persists the installation, and registers required webhooks.","operationId":"ShopifyOAuth_callback","parameters":[{"description":"Shopify OAuth authorization code.","in":"query","name":"code","required":true,"schema":{"type":"string"}},{"description":"Shopify store domain, for example flock-6591.myshopify.com.","in":"query","name":"shop","required":true,"schema":{"type":"string"}},{"description":"State nonce generated during the install redirect.","in":"query","name":"state","required":true,"schema":{"type":"string"}},{"description":"Shopify callback HMAC signature.","in":"query","name":"hmac","required":true,"schema":{"type":"string"}},{"description":"Unix timestamp emitted by Shopify for callback freshness validation.","in":"query","name":"timestamp","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyOAuthCallbackResponse"}}},"description":"OAuth callback completed successfully."},"302":{"description":"Redirected to the Shopify app landing page."},"400":{"description":"Invalid OAuth callback request."},"401":{"description":"OAuth callback authentication failed."},"500":{"description":"Public webhook callback URL could not be resolved."},"503":{"description":"Shopify OAuth exchange or webhook registration is unavailable."}},"summary":"Complete Shopify OAuth installation","tags":["shopify"]}},"/shopify/oauth/install":{"get":{"description":"Redirects a Shopify merchant to the app authorization flow for one shop domain.","operationId":"ShopifyOAuth_install","parameters":[{"description":"Shopify store domain, for example flock-6591.myshopify.com.","in":"query","name":"shop","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirected to Shopify OAuth authorization."},"400":{"description":"Invalid Shopify shop domain."},"500":{"description":"Public callback URL could not be resolved."},"503":{"description":"Shopify OAuth is unavailable."}},"summary":"Start Shopify OAuth installation","tags":["shopify"]}},"/shopify/sync/contacts":{"post":{"description":"Triggers one targeted Shopify contact synchronization by Shopify customer identifier, optionally scoped to one installed store.","operationId":"ShopifySyncController_triggerContactSync","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyManualSyncRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyContactSyncSummary"}}},"description":"Contact sync completed successfully."},"400":{"description":"Invalid contact sync request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - insufficient permissions."},"404":{"description":"Shopify customer not found."},"503":{"description":"Shopify integration unavailable or disabled."}},"security":[{"shopifyBearer":[]}],"summary":"Trigger Shopify contact sync","tags":["shopify"]}},"/shopify/sync/orders":{"post":{"description":"Triggers one targeted Shopify order synchronization by Shopify order identifier, optionally scoped to one installed store.","operationId":"ShopifySyncController_triggerOrderSync","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyManualSyncRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyOrderSyncSummary"}}},"description":"Order sync completed successfully."},"400":{"description":"Invalid order sync request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - insufficient permissions."},"404":{"description":"Shopify order not found."},"503":{"description":"Shopify integration unavailable or disabled."}},"security":[{"shopifyBearer":[]}],"summary":"Trigger Shopify order sync","tags":["shopify"]}},"/shopify/webhooks":{"post":{"description":"Receives authenticated Shopify webhooks, deduplicates deliveries, updates uninstall state, and enqueues order or customer sync jobs.","operationId":"ShopifyWebhookController_receive","parameters":[{"description":"Shopify webhook HMAC signature.","in":"header","name":"X-Shopify-Hmac-Sha256","required":true,"schema":{"type":"string"}},{"description":"Unique Shopify webhook delivery identifier.","in":"header","name":"X-Shopify-Webhook-Id","required":true,"schema":{"type":"string"}},{"description":"Shopify webhook topic.","in":"header","name":"X-Shopify-Topic","required":true,"schema":{"type":"string"}},{"description":"Shopify store domain that emitted the webhook.","in":"header","name":"X-Shopify-Shop-Domain","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookPayload"}}},"required":true},"responses":{"200":{"description":"Webhook accepted."},"400":{"description":"Invalid webhook payload or headers."},"401":{"description":"Invalid webhook signature."},"503":{"description":"Webhook processor or Shopify integration is unavailable."}},"summary":"Receive Shopify webhooks","tags":["shopify"]}},"/status":{"get":{"operationId":"StatusController_getStatus","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"example":"ok","type":"string"}},"type":"object"}}},"description":"The application is running successfully."}},"summary":"Get application status","tags":["Status"]}},"/storefront/navigation":{"get":{"description":"Returns the cached storefront navigation snapshot for categories, products, and static pages. Static pages expose the bound renderable identifier only through renderableId; renderable payloads are not embedded in this response.","operationId":"StorefrontController_navigation","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontNavigation"}}},"description":"Return the storefront navigation snapshot."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"500":{"description":"Storefront navigation is unavailable."}},"security":[{"products_bearer":[]}],"summary":"Get storefront navigation rewrite tree","tags":["storefront"]}},"/syncrecord/runs":{"get":{"operationId":"SyncRecordController_findAll","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRunList"}}},"description":"Return sync runs."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."}},"security":[{"syncrecord_bearer":[]}],"summary":"List sync runs","tags":["syncrecord"]}},"/syncrecord/runs/{id}":{"get":{"operationId":"SyncRecordController_findOne","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRun"}}},"description":"Return sync run."},"404":{"description":"Sync run not found."}},"security":[{"syncrecord_bearer":[]}],"summary":"Get sync run by id","tags":["syncrecord"]}},"/syncrecord/stats":{"get":{"operationId":"SyncRecordController_stats","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRunStats"}}},"description":"Return sync run stats."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."}},"security":[{"syncrecord_bearer":[]}],"summary":"Get sync run stats","tags":["syncrecord"]}},"/tags":{"get":{"description":"Returns all non-deleted product taxonomy tags ordered by name. Requires products:read.","operationId":"TagsController_list","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagListResponse"}}},"description":"List of active tags."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires products:read."}},"security":[{"products_bearer":[]}],"summary":"List all active tags","tags":["tags"]}},"/tags/correlations":{"get":{"description":"Returns all tag cross-sell correlation pairs ordered by source tag. Requires marketing:manage.","operationId":"TagCorrelationsController_list","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCorrelationListResponse"}}},"description":"List of tag correlations."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."}},"security":[{"products_bearer":[]}],"summary":"List all tag correlations","tags":["tags"]},"post":{"description":"Defines a cross-sell probability between two product tags. Requires marketing:manage.","operationId":"TagCorrelationsController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTagCorrelationDto"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCorrelation"}}},"description":"Correlation created."},"400":{"description":"Invalid payload."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."},"409":{"description":"Conflict - Correlation pair already exists."}},"security":[{"products_bearer":[]}],"summary":"Create a tag correlation","tags":["tags"]}},"/tags/correlations/source/{tag}":{"get":{"description":"Returns all correlations where source_tag matches the given tag name. Requires marketing:manage.","operationId":"TagCorrelationsController_listBySource","parameters":[{"description":"Source tag name.","in":"path","name":"tag","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCorrelationListResponse"}}},"description":"Correlations for the source tag."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."}},"security":[{"products_bearer":[]}],"summary":"List correlations by source tag","tags":["tags"]}},"/tags/correlations/{id}":{"delete":{"description":"Permanently deletes a correlation record by ID. Requires marketing:manage.","operationId":"TagCorrelationsController_remove","parameters":[{"description":"Correlation ID.","in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"}}},"description":"Correlation deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."},"404":{"description":"Correlation not found."}},"security":[{"products_bearer":[]}],"summary":"Delete a tag correlation","tags":["tags"]},"patch":{"description":"Updates probability and/or notes for an existing correlation. Requires marketing:manage.","operationId":"TagCorrelationsController_update","parameters":[{"description":"Correlation ID.","in":"path","name":"id","required":true,"schema":{"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTagCorrelationDto"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagCorrelation"}}},"description":"Correlation updated."},"400":{"description":"Invalid payload."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."},"404":{"description":"Correlation not found."}},"security":[{"products_bearer":[]}],"summary":"Update a tag correlation","tags":["tags"]}},"/tags/{name}":{"delete":{"description":"Soft-deletes the tag and clears it from all product_tags rows. Requires marketing:manage.","operationId":"TagsController_remove","parameters":[{"description":"Tag name to delete.","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"}}},"description":"Tag soft-deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Requires marketing:manage."},"404":{"description":"Tag not found."}},"security":[{"products_bearer":[]}],"summary":"Soft-delete a tag by name","tags":["tags"]}},"/users/malformation":{"get":{"description":"Returns ok when the token scope set is coherent, or malformed with a list of cross-domain dependency violations (e.g. having order:view without contact:view).","operationId":"StatusController_checkMalformation","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"issues":{"items":{"properties":{"description":{"type":"string"},"permission":{"type":"string"},"requires":{"type":"string"}},"type":"object"},"type":"array"},"status":{"type":"string"}},"type":"object"}}},"description":"Malformation check result."},"401":{"description":"Unauthorized. Token is missing or invalid."}},"security":[{"auth_bearer":[]}],"summary":"Check permission dependency malformations","tags":["Status"]}},"/variations":{"get":{"operationId":"VariationsController_findAll","responses":{"200":{"description":"Return all variations."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"products_bearer":[]}],"summary":"Get all variations","tags":["variations"]},"post":{"operationId":"VariationsController_create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVariationDto"}}},"required":true},"responses":{"201":{"description":"The variation has been successfully created."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."}},"security":[{"products_bearer":[]}],"summary":"Create a new variation","tags":["variations"]}},"/variations/{id}":{"delete":{"operationId":"VariationsController_remove","parameters":[{"description":"Variation ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The variation has been successfully deleted."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Variation not found."}},"security":[{"products_bearer":[]}],"summary":"Delete a variation","tags":["variations"]},"get":{"operationId":"VariationsController_findOne","parameters":[{"description":"Variation ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the variation."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Variation not found."}},"security":[{"products_bearer":[]}],"summary":"Get a variation by id","tags":["variations"]},"patch":{"operationId":"VariationsController_update","parameters":[{"description":"Variation ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVariationDto"}}},"required":true},"responses":{"200":{"description":"The variation has been successfully updated."},"400":{"description":"Bad Request."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden - Insufficient permissions."},"404":{"description":"Variation not found."}},"security":[{"products_bearer":[]}],"summary":"Update a variation","tags":["variations"]}}},"tags":[{"name":"Status"},{"description":"Unified search and spotlight endpoints","name":"search"},{"name":"syncrecord"},{"name":"contacts"},{"name":"membership"},{"name":"analytics"},{"name":"email"},{"name":"shipping"},{"name":"assets"},{"name":"products"},{"name":"variations"},{"name":"categories"},{"name":"storefront"},{"name":"tags"},{"name":"falabella"},{"name":"orders"},{"name":"exports"},{"description":"Coupon management and usage tracking","name":"Coupons"},{"name":"shopify"},{"name":"shopify-extension"}]}