跳到主要内容

POST 创建销售合同(可选提交审批)

POST 新增。body 为 JSON 对象;submitAfterCreate=true 时保存后直接提交审批。

接口编码所需范围后端接口
sales.contract.createsales:writePOST /v1/sales-contract/create(comap-sales)

必填字段

字段依据
title接口规格
contractTypeId接口规格
customerId接口规格
signDate接口规格
items接口规格
attachments[].fileId接口规格

条件必填(如「某状态时必填」)不在此表,以上方参数说明为准。 判定规则见必填字段的判定。

请求体字段(body)

字段类型必填说明
contractNostring—销售合同编号;为空时按编码规则生成
titlestring是合同标题
customerOrderNostring—客户单号(客户方的订单编号,非必填)
contractTypestring—合同类型,关联合同类型配置表
contractTypeIdinteger(int64)是合同类型配置ID(t_sales_contract_type)
customerIdinteger(int64)是客户ID
ownerIdinteger(int64)—合同负责人ID;为空时默认当前操作人
collaboratorIdsinteger(int64)[]—协同销售用户ID列表
contactNamestring—联系人姓名
contactPhonestring—联系电话
contactEmailstring—联系邮箱
addressstring—收货/交付地址
projectIdinteger(int64)—关联项目ID(projectName/projectNo 由服务端按此 ID 反查回写,避免前端篡改)
orderTypestring—订单类型:PTS=按库存销售, PTO=按订单采购, PTM=按单生产
signDatestring是签订日期
startDatestring—合同开始日期
endDatestring—合同结束日期
paymentTermIdinteger(int64)—销售付款条件ID
deliveryDaysinteger(int32)—交货天数
warrantyMonthsinteger(int32)—质保月数
quotationIdinteger(int64)—关联报价单ID(从报价转化时传入)
opportunityIdinteger(int64)—关联商机ID
companyHeaderIdinteger(int64)—公司抬头ID
companyBankAccountIdinteger(int64)—公司资金账户ID
companyBankAccountNostring—公司银行账号
companyBankNamestring—公司开户行
remarkstring—备注
contractTermsstring—合同条款正文(落库至 t_sales_contract_terms)
items32ContractItemDTO[]是合同明细行
paymentPlans6PaymentPlanDTO[]—回款计划
attachments6ContractAttachmentDTO[]—附件列表
revenueRecognitionModestring—收入确认模式 MILESTONE | PERIOD,与收入明细二选一逻辑由服务端校验
expenses15ContractExpenseDTO[]—费用项目
revenuePeriodMeta3ContractRevenuePeriodMetaDTO—按周期时元数据
revenueLines10ContractRevenueLineDTO[]—收入确认明细行(里程碑或周期分期)
orderAmountLimitnumber—合同总下单金额上限(含税),null 表示不限制
allowOffContractboolean—是否允许协议外商品下单
requireApprovalInScopeboolean—框架和额度内下单是否需要审批
subsidiaries6ContractSubsidiaryDTO[]—分/子公司或关联公司授权列表
submitAfterCreateboolean—创建成功后是否立即提交审批。 false/空:仅保存为草稿;true:在同一事务内先落库再调用提交审批逻辑(与 {@code /submit} 一致)。 /
customFieldDataList3FieldDataItem[]—统一字段数据

「必填」仅反映接口规格声明的部分。服务内还有未体现在规格里的校验, 标「—」不等于可以不传;租户在主站配置的字段必填不约束本接口。 详见必填字段的判定与字段清单与自定义字段。

请求示例

curl -X POST https://open.risemap.cn/v1/api/invoke \
-H "Authorization: Bearer <访问令牌>" \
-H "Content-Type: application/json" \
-d '{
"apiCode": "sales.contract.create",
"body": {
"title": "string",
"contractTypeId": "1961000000000000001",
"customerId": "1961000000000000001",
"signDate": "string",
"items": []
}
}'

错误处理​

响应统一信封 { code, message, data },code == 200 为成功。以下是本接口可能返回的开放平台层错误:

错误码说明可重试
92101访问凭证无效否
92201接口未登记或已停用否
92202超出凭证授权范围——本接口需 sales:write否
92204绑定员工无此接口的功能权限否
92203上游服务调用失败先查询处理结果,禁止盲目重试
92301请求过于频繁是
92205写操作处理超时,结果未知(下游可能仍在执行)否,先查询确认结果
92302有参数相同的写请求正在处理中等待并确认前一次结果,勿重复提交

除此之外,comap-sales 自身的业务校验失败会原样透传其业务码与提示 (如字段校验、状态不允许、数据不存在),这类码不在开放平台的号段内, 以响应里的 message 为准。完整的平台层错误码见错误码说明。

← 返回销售合同