# SRM对接模块
API域名以及签名 统一签名
全局响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Object | 返回数据 |
| message | String | 错误信息 |
# 1、srm推送采购发票取消
(1)接口地址:/openApi/srm/push/invoice/cancel
(2)请求方式:POST
(3)请求数据类型:application/json
(4)响应数据类型:application/json
(5)请求参数:
| 参数名称 | 数据类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| outInvoiceId | String | true | 发票单唯一标识 SRM发票结算单号 |
| requestId | String | false | 请求ID |
(6)请求示例:
{
"outInvoiceId": "",
"requestId": ""
}
(7)响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Object | 返回数据 |
| └ isSuccess | Boolean | 处理结果 |
| message | String | 错误信息 |
(8)响应示例:
{
"code": 0,
"data": {
"isSuccess": false
},
"message": ""
}
# 2、srm推送采购发票保存
(1)接口地址:/openApi/srm/push/invoice/save
(2)请求方式:POST
(3)请求数据类型:application/json
(4)响应数据类型:application/json
(5)请求参数:
| 参数名称 | 数据类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| bizCheckDate | String | true | 业务单据审批通过时间 |
| currency | String | true | 币种 按照实际币种传输,目前有海外采购业务 |
| invoiceCreateTime | String | true | 单据创建时间 |
| invoiceDate | String | false | 发票日期 真实发票上日期 |
| invoiceNo | String | true | 发票号 真实发票上的发票号;真实的有多张发票,多个号码隔开一起传 |
| invoiceTotalAmount | Number | true | 发票总金额 |
| invoiceTypeCode | String | true | 发票类型编码 默认值普通发票25-01,费用发票25-05 |
| invoiceTypeName | String | true | 发票类型名称 普通发票/费用发票 |
| mainGroupCode | String | true | 主体编码 默认值:G;即:白贝壳,月半 |
| noTaxAmount | Number | true | 发票不含税金额 |
| outInvoiceId | String | true | 发票单唯一标识 SRM发票结算单号 |
| outRemark | String | false | 备注 |
| requestId | String | true | 请求ID |
| savePurchaseInvoiceDetailList | List | true | 采购发票明细 |
| └ bizLineNo | String | false | 业务订单行号,采购订单行号 |
| └ bizNo | String | false | 业务单号,采购订单号/费用单号 |
| └ deliveryLineNo | String | false | Srm送货单行号 |
| └ deliveryNo | String | false | Srm送货单号 |
| └ feeTypeCode | String | false | 费用类别code 只有费用类型才有此类型 |
| └ feeTypeName | String | false | 费用类别名称 只有费用类型才有此类型 |
| └ includeTaxAmount | Number | true | 含税金额 原币 |
| └ includeTaxPrice | Number | true | 含税单价 原币 |
| └ isReturn | String | false | 是否退货 Y/N |
| └ noTaxAmount | Number | true | 无税金额 原币 |
| └ noTaxPrice | Number | true | 无税单价 原币 |
| └ outBizDetailId | String | true | 采购入库明细id/费用单明细id 入库类必填 |
| └ outInvoiceDetailId | String | true | SRM发票明细id |
| └ qty | Integer | false | 数量;费用单数量填0 |
| └ skuBarCode | String | true | 物料编码 费用类物料编码非必填 |
| └ skuUnit | String | false | 物料单位 计量单位 |
| └ sourceTaxAmount | Number | true | 原币税额 原币 |
| └ taxRate | Number | true | 税率 |
| └ warehouseCode | String | false | 仓库编码 |
| supplierCode | String | true | 供应商编码 |
| supplierName | String | true | 供应商名称 |
| taxAmount | Number | true | 发票税额 |
| taxTypeId | String | true | 扣税类别 默认值1=应税外加;0=应税内含 |
(6)请求示例:
{
"bizCheckDate": "",
"currency": "",
"invoiceCreateTime": "",
"invoiceDate": "",
"invoiceNo": "",
"invoiceTotalAmount": 0,
"invoiceTypeCode": "",
"invoiceTypeName": "",
"mainGroupCode": "",
"noTaxAmount": 0,
"outInvoiceId": "",
"outRemark": "",
"requestId": "",
"savePurchaseInvoiceDetailList": [
{
"bizLineNo": "",
"bizNo": "",
"deliveryLineNo": "",
"deliveryNo": "",
"feeTypeCode": "",
"feeTypeName": "",
"includeTaxAmount": 0,
"includeTaxPrice": 0,
"isReturn": "",
"noTaxAmount": 0,
"noTaxPrice": 0,
"outBizDetailId": "",
"outInvoiceDetailId": "",
"qty": 0,
"skuBarCode": "",
"skuUnit": "",
"sourceTaxAmount": 0,
"taxRate": 0,
"warehouseCode": ""
}
],
"supplierCode": "",
"supplierName": "",
"taxAmount": 0,
"taxTypeId": ""
}
(7)响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Object | 返回数据 |
| └ isSuccess | Boolean | 处理结果 |
| message | String | 错误信息 |
(8)响应示例:
{
"code": 0,
"data": {
"isSuccess": false
},
"message": ""
}
# 3、srm付款单取消
(1)接口地址:/openApi/srm/push/paymentDoc/cancel
(2)请求方式:POST
(3)请求数据类型:application/json
(4)响应数据类型:application/json
(5)请求参数:
| 参数名称 | 数据类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| payBillNo | String | true | 付款单据号 单据唯一标识 |
| requestId | String | false | 请求ID |
(6)请求示例:
{
"payBillNo": "",
"requestId": ""
}
(7)响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Boolean | 处理结果 |
| message | String | 错误信息 |
(8)响应示例:
{
"code": 0,
"data": true,
"message": ""
}
# 4、srm付款单保存
(1)接口地址:/openApi/srm/push/paymentDoc/save
(2)请求方式:POST
(3)请求数据类型:application/json
(4)响应数据类型:application/json
(5)请求参数:
| 参数名称 | 数据类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| createTime | String | true | 创建时间 |
| creator | String | true | 创建人 |
| expectedPayDate | String | false | 期望付款日期 |
| incomePayCode | String | true | 收支项目编码 |
| incomePayName | String | true | 收支项目名称 |
| mainGroupCode | String | true | 主体编码 默认值:G;即:白贝壳,月半 |
| mainGroupName | String | true | 主体 |
| payBillNo | String | true | 付款单据号 单据唯一标识 |
| paySuccessDate | String | true | 付款成功日期 nccc回传的日期 |
| payType | String | true | 付款类型编码 pay:付款 pre:预付款;预付款无需即刻核销应付单;非预付款单需要在生成付款单时即刻核销应付单 |
| receiveAccountName | String | true | 收款账户名称 |
| receiveAccountType | String | false | 收款账户类型 对公、对私 |
| receiveBankAccount | String | true | 收款银行账号 |
| receiveBankType | String | false | 收款银行类型 工商银行、农业银行等 |
| receiveChannelType | String | false | 收款渠道类型 银行、微信、支付宝 |
| receiveSubBranch | String | true | 支行名称 |
| receiveSubBranchNo | String | true | 收款银行支行号 srm的收款开户行 |
| requestId | String | false | 请求ID |
| savePaymentDocDetailList | List | false | 付款单明细 |
| └ bizLineNo | String | true | 业务订单行号,采购订单行号 |
| └ bizNo | String | true | 业务单号,采购订单号/费用单号 |
| └ currency | String | true | 币种 |
| └ deliveryLineNo | String | true | Srm送货单行号 |
| └ deliveryNo | String | true | Srm送货单号 |
| └ feeTypeCode | String | false | 费用明细类型编码 |
| └ feeTypeName | String | false | 费用明细类型 |
| └ includeTaxAmount | Number | true | 原币含税金额 |
| └ includeTaxPrice | Number | true | 原币含税单价 |
| └ invoiceNo | String | true | 发票号 |
| └ lineNo | String | true | 行号 |
| └ noTaxAmount | Number | true | 原币不含税金额 |
| └ noTaxPrice | Number | true | 原币不含税单价 |
| └ outBizDetailId | String | true | 采购入库明细id/费用单明细id |
| └ outInvoiceDetailId | String | true | 发票明细id |
| └ qty | Integer | true | 数量 |
| └ settleType | String | true | 结算方式 按照标准传 |
| └ skuBarCode | String | true | 物料编码 |
| └ srmPushPrePaymentDocDetailAOList | List | true | 预付款单核销对象 |
| └ currency | String | false | 币种 |
| └ currentVerifacationAmoun | Number | false | 本次核销金额 |
| └ outBizDetailId | String | false | 采购入库明细id/费用单明细id |
| └ preOrderPayNo | String | false | 预付款单号 |
| └ preOrderSettleLineNo | String | false | 预付款结算单行号 |
| └ taxRate | Number | true | 税率 |
| sourceAmount | Number | false | 原币应付总金额 |
| sourceNeedAmount | Number | false | 原币应付余额 |
| sourcePreAmount | Number | false | 原币预付核销总额 |
| supplierCode | String | true | 供应商编码 |
| supplierName | String | true | 供应商名称 |
(6)请求示例:
{
"createTime": "",
"creator": "",
"expectedPayDate": "",
"incomePayCode": "",
"incomePayName": "",
"mainGroupCode": "",
"mainGroupName": "",
"payBillNo": "",
"paySuccessDate": "",
"payType": "",
"receiveAccountName": "",
"receiveAccountType": "",
"receiveBankAccount": "",
"receiveBankType": "",
"receiveChannelType": "",
"receiveSubBranch": "",
"receiveSubBranchNo": "",
"requestId": "",
"savePaymentDocDetailList": [
{
"bizLineNo": "",
"bizNo": "",
"currency": "",
"deliveryLineNo": "",
"deliveryNo": "",
"feeTypeCode": "",
"feeTypeName": "",
"includeTaxAmount": 0,
"includeTaxPrice": 0,
"invoiceNo": "",
"lineNo": "",
"noTaxAmount": 0,
"noTaxPrice": 0,
"outBizDetailId": "",
"outInvoiceDetailId": "",
"qty": 0,
"settleType": "",
"skuBarCode": "",
"srmPushPrePaymentDocDetailAOList": [
{
"currency": "",
"currentVerifacationAmoun": 0,
"outBizDetailId": "",
"preOrderPayNo": "",
"preOrderSettleLineNo": ""
}
],
"taxRate": 0
}
],
"sourceAmount": 0,
"sourceNeedAmount": 0,
"sourcePreAmount": 0,
"supplierCode": "",
"supplierName": ""
}
(7)响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Boolean | 处理结果 |
| message | String | 错误信息 |
(8)响应示例:
{
"code": 0,
"data": true,
"message": ""
}
# 5、srm推送采购订单保存
(1)接口地址:/openApi/srm/push/purchase/save
(2)请求方式:POST
(3)请求数据类型:application/json
(4)响应数据类型:application/json
(5)请求参数:
| 参数名称 | 数据类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| requestId | String | false | 请求ID |
| srmPushPurchaseDetailAOList | List | false | 采购明细对象列表 |
| └ bizLineNo | String | false | 采购订单行号 |
| └ bizNo | String | false | 采购订单号 |
| └ bizStockInDate | String | false | 业务入库日期,格式:yyyy-MM-dd HH:mm:ss |
| └ businessType | String | false | 业务类型(COMMON:普通采购,WWCP:委外加工(成品)) |
| └ deliveryLineNum | String | false | srm送货单行号 |
| └ deliveryNo | String | false | srm送货单号 |
| └ deliveryTotalAmount | String | false | 送货单总金额 |
| └ isPresent | String | false | 是否赠品(Y:是 N:否) |
| └ isReturn | String | false | 是否退货(Y:是 N:否) |
| └ isSubstituteSend | String | false | 是否一件代发(Y:是 N:否) |
| └ mainGroupCode | String | false | 公司主体编码 |
| └ noTaxAmount | String | false | 原币无税金额 |
| └ omsDetailId | String | false | oms入库明细id |
| └ omsInternalSn | String | false | OMS入库流水批次号 |
| └ originalCurrency | String | false | 原币币种 |
| └ outBizDetailId | String | false | 采购入库明细id |
| └ qty | Integer | false | 入库主数量 |
| └ receiveStore | String | false | 收货仓库(总仓) |
| └ skuBarCode | String | false | sku条码 |
| └ skuUnit | String | false | sku单位编码 |
| └ sourceNoTaxPrice | String | false | 原币无税单价 |
| └ sourceTaxPrice | String | false | 原币含税单价 |
| └ subStore | String | false | 分仓 |
| └ supplierCode | String | false | 供应商编码 |
| └ supplierName | String | false | 供应商名称 |
| └ taxAmount | String | false | 原币含税金额 |
| └ taxRate | String | false | 税率 |
| └ wmsDetailId | String | false | WMS入库明细id |
(6)请求示例:
{
"requestId": "",
"srmPushPurchaseDetailAOList": [
{
"bizLineNo": "",
"bizNo": "",
"bizStockInDate": "",
"businessType": "",
"deliveryLineNum": "",
"deliveryNo": "",
"deliveryTotalAmount": "",
"isPresent": "",
"isReturn": "",
"isSubstituteSend": "",
"mainGroupCode": "",
"noTaxAmount": "",
"omsDetailId": "",
"omsInternalSn": "",
"originalCurrency": "",
"outBizDetailId": "",
"qty": 0,
"receiveStore": "",
"skuBarCode": "",
"skuUnit": "",
"sourceNoTaxPrice": "",
"sourceTaxPrice": "",
"subStore": "",
"supplierCode": "",
"supplierName": "",
"taxAmount": "",
"taxRate": "",
"wmsDetailId": ""
}
]
}
(7)响应参数:
| 参数名称 | 数据类型 | 参数说明 |
|---|---|---|
| code | Integer | 0:成功 其他失败 |
| data | Object | 返回数据 |
| └ isSuccess | Boolean | 处理结果 |
| message | String | 错误信息 |
(8)响应示例:
{
"code": 0,
"data": {
"isSuccess": false
},
"message": ""
}