---
url: "https://pay.weixin.qq.com/doc/v2/merchant/4011985151.md"
title: "订单附加信息提交接口"
doc_id: 4011985151
---

>更新时间：2024.11.14

## 应用场景

该接口用于商户提交海关需要的订单附加信息。

以下为财付通的海关备案信息，一般海关会提供，如果没有请参考下表：

财付通海关备案名称：财付通支付科技有限公司

财付通10位海关注册编码：4403169D3W

支付单申报规则：

a.如果没有拆单，就以支付时的out\_trade\_no和transaction\_id、原支付单对应的人民币金额（如有部分退款，减去部分退款金额）申报

b.如果拆单了，就以申报接口传的商户子单号sub\_order\_no和接口返回的子支付单号sub\_order\_id、申报接口传的order\_fee金额申报

c.拆单的判断标准：调用支付申报接口时，商户传了sub\_order\_no就认为是拆单

身份信息校验申报规则：

a.身份信息校验不管是否一致，微信支付都只能以系统登记的支付人信息推送海关

b.商户调用修改接口上传新的用户身份信息，微信支付会重新校验

## 接口链接

URL地址：https://api.mch.weixin.qq.com/cgi-bin/mch/customs/customdeclareorder

重点注意：

请求接口前请先在以下页面提交您的海关信息，所有你需要报关的海关信息都需要提交，且信息真实有效：http://pay.weixin.qq.com/index.php/extend/customs

## 是否需要证书

否

## 请求参数

请求方式：post 数据格式：xml 签名方式：MD5

注意：

商户订单号金额以支付系统记录的为准，无需上传，如有子订单号则必须上传子订单应付金额、物流费、商品价格（应付金额=物流费+商品价格）。

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 说明 |
| --- | --- | --- | --- | --- | --- |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名，详见[签名生成算法](https://pay.weixin.qq.com/doc/v2/merchant/4011985891.md) |
| 公众账号ID | appid | 是 | String(32) | wxd678efh567hg6787 | 微信分配的公众账号ID |
| 商户号 | mch\_id | 是 | String(32) | 1230000109 | 微信支付分配的商户号 |
| 微信支付订单号 | transaction\_id | 是 | String(28) | 1000320306201511078440737890 | 微信支付返回的订单号 |
| 海关 | customs | 是 | String(32) | SHANGHAI | GUANGZHOU\_ZS 广州（总署版）<br>HANGZHOU\_ZS 杭州（总署版）<br>NINGBO 宁波<br>ZHENGZHOU\_BS 郑州（保税物流中心）<br>CHONGQING 重庆<br>SHANGHAI\_ZS 上海（总署版）<br>SHENZHEN 深圳<br>ZHENGZHOU\_ZH\_ZS 郑州综保（总署版）<br>TIANJIN 天津<br>ZONGSHU 总署<br>接口文档列表没有的海关，商户在商户平台新增海关备案信息时选“广州（总署）”，备案号和备案名称填商户在海关登记的信息，然后按商户平台登记的信息调用“订单附加信息提交接口”即可 |
| 商户海关备案号 | mch\_customs\_no | 是 | String(32) | 123456 | 商户在海关登记的备案号，customs非NO，此参数必填 |
| 关税 | duty | 否 | int | 888 | 关税，以分为单位，非必填项，不会提交给海关 |
| 报关类型 | action\_type | 否 | String | ADD | 不传，默认是新增<br>ADD 新增报关申请<br>MODIFY 修改<br>报关信息 |

以下字段在拆单或拆单修改时必传

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 商户子订单号 | sub\_order\_no | 否 | String(32) | 20150806125346 | 商户子订单号，如有拆单则必传 |
| 币种 | fee\_type | 否 | String(3) | CNY | 微信支付订单支付时使用的币种，暂只支持人民币CNY,如有拆单则必传。 |
| 应付金额 | order\_fee | 否 | int | 888 | 子订单金额，以分为单位，不能超过原订单金额，order\_fee=transport\_fee+product\_fee（应付金额=物流费+商品价格），如有拆单则必传。 |
| 物流费 | transport\_fee | 否 | int | 888 | 物流费用，以分为单位，如有拆单则必传。 |
| 商品价格 | product\_fee | 否 | int | 888 | 商品费用，以分为单位，如有拆单则必传。 |

用户实名信息将以微信侧的为准，推送给海关。以下字段上传后，如与微信侧的信息不一致，会反馈给商户，便于商户收集正确的信息用于订单推送，不影响报关结果。如用户是未实名微信用户，请联系用户完成实名后再报关。

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 证件类型 | cert\_type | 否 | String(32) | IDCARD | 请传固定值IDCARD,暂只支持大陆身份证。 |
| 证件号码 | cert\_id | 否 | String(64) | 330821198809085211 | 用户大陆身份证号，尾号为字母X的身份证号，请大写字母X。 |
| 姓名 | name | 否 | String(64) | 张三 | 用户姓名。 |

举例如下：

```
<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <customs>ZHENGZHOU_BS</customs>
   <mch_customs_no>D00411</mch_customs_no>
   <mch_id>1262544101</mch_id>
   <order_fee>13110</order_fee>
   <out_trade_no>15112496832609</out_trade_no>
   <product_fee>13110</product_fee>
   <sign>8FF6CEF879FB9555CD580222E671E9D4</sign>
   <transaction_id>1006930610201511241751403478</transaction_id>
   <transport_fee>0</transport_fee>
   <fee_type>CNY</fee_type>
   <sub_order_no>15112496832609001</sub_order_no>
</xml>
```

注：

参数值用XML转义即可，CDATA标签用于说明数据不被XML解析器解析。

## 应答参数列表

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 说明 |
| --- | --- | --- | --- | --- | --- |
| 返回状态码 | return\_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL<br>此字段是通信标识，非交易标识，交易是否成功需要查看result\_code来判断 |
| 返回信息 | return\_msg | 否 | String(128) | 签名失败 | 返回信息，如非空，为错误原因<br>如：签名失败 等。 |

以下字段在return\_code为SUCCESS的时候有返回

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 签名类型 | sign\_type | 是 | String(32) | MD5 | 暂只支持MD5 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名，详见[签名生成算法](https://pay.weixin.qq.com/doc/v2/merchant/4011985891.md) |
| 公众账号ID | appid | 是 | String(32) | wxd678efh567hg6787 | 微信分配的公众账号ID |
| 商户号 | mch\_id | 是 | String(32) | 1230000109 | 微信支付分配的商户号 |
| 业务结果 | result\_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL |
| 错误代码 | err\_code | 否 | String(32) | SYSTEMERROR | 详细参见错误列表 |
| 错误代码描述 | err\_code\_des | 否 | String(128) | 系统错误 | 错误返回的信息描述 |

以下字段在return\_code 和result\_code都为SUCCESS的时候有返回

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 状态码 | state | 是 | String(32) | UNDECLARED | 状态码<br>UNDECLARED -- 未申报<br>SUBMITTED -- 申报已提交（订单已经送海关，商户重新申报，并且海关还有修改接口，那么记录的状态会是这个）<br>PROCESSING -- 申报中<br>SUCCESS -- 申报成功<br>FAIL-- 申报失败<br>EXCEPT --海关接口异常 |
| 微信支付订单号 | transaction\_id | 是 | String(28) | 1000320306201511078440737890 | 微信支付返回的订单号 |
| 商户子订单号 | sub\_order\_no | 否 | String(32) | 20150806125346 | 商户子订单号，如有拆单则必传 |
| 微信子订单号 | sub\_order\_id | 否 | String(32) | 20150806125346 | 微信子订单号 |
| 最后更新时间 | modify\_time | 是 | String(14) | 20091227091010 | 最后更新时间，格式为yyyyMMddhhmmss，如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自微信服务器 |
| 订购人和支付人身份信息校验结果 | cert\_check\_result | 是 | String(256) | UNCHECKED | UNCHECKED 商户未上传订购人身份信息<br>SAME 商户上传的订购人身份信息与支付人身份信息一致<br>DIFFERENT 商户上传的订购人身份信息与支付人身份信息不一致 |
| 验核机构 | verify\_department | 是 | String(16) | UNIONPAY | 验核机构包括：<br>银联-UNIONPAY<br>网联-NETSUNION<br>其他-OTHERS(如余额支付，零钱通支付等)<br>注：商户需将该字段取值UNIONPAY, NETSUNION, OTHERS映射至海关verDept字段的1、2、3 |
| 验核机构交易流水号 | verify\_department\_trade\_id | 是 | String(64) | 2018112288340107038204310100000 | 交易流水号，来自验核机构，如银联记录的交易流水号，供商户报备海关 |

## 错误码

| 名称 | 描述 | 原因 | 解决方案 |
| --- | --- | --- | --- |
| 132011004 | 参数错误 | 报关时仅传入订单号，不传入子订单号（sub\_order\_no）时，不能填费用信息，须以支付系统中的值为准 | 请检查参数是否都正确 |
| 132021028 | 交易币种与商户结算币种不一致 | 报关时传入子订单号（sub\_order\_no）时，币种参数（fee\_type）必填 | 请检查所传币种参数（fee\_type）是否为空 |
| MCHID\_NOT\_SET | 商户号未设置 | 商户号为必传参数，请求时必传 | 请检查商户号是否为空 |
| MCHID\_INVALID\_LENGTH | 无效的商户号长度 | 报关接口传入的商户号长度错误 | 请传入正确的商户号 |
| CUSTOMSCONFIG\_NOT\_SET | 海关配置未设置 | 报关接口需要商户已配置过海关信息才可以访问 | 请参照上文中的海关备案指引，进行海关信息报备 |
| FEETYPE\_NOT\_SET | 币种类型未设置 | 拆单情况下，币种为必填参数 | 请检查fee\_type是否为空 |
| OUTTRADENO\_NOT\_SET | 商户订单号(out\_trade\_no)未设置 | 商户订单号为必传参数 | 请检查商户订单号（out\_trade\_no）是否为空 |
| TRANSACTION\_ID\_NOT\_SET | 微信订单号(transaction\_id)未设置 | 微信订单号(transaction\_id)为必传参数 | 请检查微信订单号(transaction\_id)是否为空 |
| INVALID\_TRANSACTION\_ID | 无效的微信订单号长度 | 微信订单号为28位数字，请确保长度一致 | 请检查微信订单号(transaction\_id)是否正确 |
| CUSTOMS\_NOT\_SET | 海关信息未设置 | 海关信息为必传字段 | 请检查海关信息是否为空 |
| CHCUSTOMSNO\_NOT\_SET | 海关备案号未设置 | 海关备案号为必传字段 | 请检查备案号是否为空 |
| INVALID\_MCHCUSTOMSNO | 无效的海关备案号长度 | 海关备案号一般为6位字符串 | 请检查海关备案号是否正确 |
| PAYFEE\_NOT\_MATCH | 金额不匹配 | 报关的订单金额必须和支付的金额一致 | 请检查报关订单的金额是否正确 |
| INVALID\_SUBORDER\_NO | 无效的子订单号长度(sub\_order\_no) | 子订单号要求是32位以内的字符串 | 请检查子订单号长度是否正确 |
| APPID\_NOT\_EXIST | AppId未设置(sub\_order\_no) | appid为必传字段 | 请检查appid是否正确 |
| MCHID\_NOT\_EXIST | 商户号(mch\_id)未设置 | MCH\_ID为必传字段 | 请检查mch\_id是否正确 |
| AUTHORITY\_NOT\_FOUND | 未开通自助清关功能 | 须先开通自助清关功能才可成功调用接口 | 请检查是否已开通自助清关功能，开通路径：微信支付商户平台-产品中心-自助清关中申请开通。 |
| NO\_AUTH | 无权限 | 未获得此接口的调用权限 | 请检查当前商户号是否已获得此接口的调用权限 |