# 网络货运开放接口文档

------

<!-- TOC -->

- [网络货运开放接口文档](#%E7%BD%91%E7%BB%9C%E8%B4%A7%E8%BF%90%E5%BC%80%E6%94%BE%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3)
    - [接口简介：](#%E6%8E%A5%E5%8F%A3%E7%AE%80%E4%BB%8B)
    - [相关说明请仔细阅读!：](#%E7%9B%B8%E5%85%B3%E8%AF%B4%E6%98%8E%E8%AF%B7%E4%BB%94%E7%BB%86%E9%98%85%E8%AF%BB)
- [接口凭证](#%E6%8E%A5%E5%8F%A3%E5%87%AD%E8%AF%81)
    - [获取登陆凭证接口](#%E8%8E%B7%E5%8F%96%E7%99%BB%E9%99%86%E5%87%AD%E8%AF%81%E6%8E%A5%E5%8F%A3)
    - [更新登陆凭证接口](#%E6%9B%B4%E6%96%B0%E7%99%BB%E9%99%86%E5%87%AD%E8%AF%81%E6%8E%A5%E5%8F%A3)
- [运单类接口](#%E8%BF%90%E5%8D%95%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [创建运单接口](#%E5%88%9B%E5%BB%BA%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3)
    - [更新运单接口](#%E6%9B%B4%E6%96%B0%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3)
    - [签收运单接口](#%E7%AD%BE%E6%94%B6%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3)
    - [查询运单接口](#%E6%9F%A5%E8%AF%A2%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3)
    - [撤销运单接口](#%E6%92%A4%E9%94%80%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3)
- [基础信息类接口](#%E5%9F%BA%E7%A1%80%E4%BF%A1%E6%81%AF%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [批量创建司机接口](#%E6%89%B9%E9%87%8F%E5%88%9B%E5%BB%BA%E5%8F%B8%E6%9C%BA%E6%8E%A5%E5%8F%A3)
    - [修改司机信息接口](#%E4%BF%AE%E6%94%B9%E5%8F%B8%E6%9C%BA%E4%BF%A1%E6%81%AF%E6%8E%A5%E5%8F%A3)
    - [批量创建车辆接口](#%E6%89%B9%E9%87%8F%E5%88%9B%E5%BB%BA%E8%BD%A6%E8%BE%86%E6%8E%A5%E5%8F%A3)
    - [修改车辆信息接口](#%E4%BF%AE%E6%94%B9%E8%BD%A6%E8%BE%86%E4%BF%A1%E6%81%AF%E6%8E%A5%E5%8F%A3)
    - [批量创建收款人接口](#%E6%89%B9%E9%87%8F%E5%88%9B%E5%BB%BA%E6%94%B6%E6%AC%BE%E4%BA%BA%E6%8E%A5%E5%8F%A3)
    - [修改收款人信息接口](#%E4%BF%AE%E6%94%B9%E6%94%B6%E6%AC%BE%E4%BA%BA%E4%BF%A1%E6%81%AF%E6%8E%A5%E5%8F%A3)
    - [创建经纪人接口](#创建经纪人接口)
- [财务类接口](#%E8%B4%A2%E5%8A%A1%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [核销接口](#%E6%A0%B8%E9%94%80%E6%8E%A5%E5%8F%A3)
    - [撤销核销接口](#%E6%92%A4%E9%94%80%E6%A0%B8%E9%94%80%E6%8E%A5%E5%8F%A3)
- [合同类接口](#%E5%90%88%E5%90%8C%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [创建司机合同接口](#%E5%88%9B%E5%BB%BA%E5%8F%B8%E6%9C%BA%E5%90%88%E5%90%8C%E6%8E%A5%E5%8F%A3)
    - [创建委托代收合同接口](#创建委托代收合同接口)
- [位置信息类接口](#%E4%BD%8D%E7%BD%AE%E4%BF%A1%E6%81%AF%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [上传设备状态位置数据接口](#%E4%B8%8A%E4%BC%A0%E8%AE%BE%E5%A4%87%E7%8A%B6%E6%80%81%E4%BD%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3)
    - [批量上传设备状态位置数据接口](#%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E8%AE%BE%E5%A4%87%E7%8A%B6%E6%80%81%E4%BD%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E6%8E%A5%E5%8F%A3)
- [实名认证类接口](#%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81%E7%B1%BB%E6%8E%A5%E5%8F%A3)
    - [实名认证接口](#%E5%AE%9E%E5%90%8D%E8%AE%A4%E8%AF%81%E6%8E%A5%E5%8F%A3)
- [接口参数说明](#%E6%8E%A5%E5%8F%A3%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E)
    - [运单](#%E8%BF%90%E5%8D%95)
    - [货物](#%E8%B4%A7%E7%89%A9)
    - [承运人](#%E6%89%BF%E8%BF%90%E4%BA%BA)
    - [受理单收款人](#%E5%8F%97%E7%90%86%E5%8D%95%E6%94%B6%E6%AC%BE%E4%BA%BA)
    - [地址](#%E5%9C%B0%E5%9D%80)
    - [运单运费](#%E8%BF%90%E5%8D%95%E8%BF%90%E8%B4%B9)
    - [司机](#%E5%8F%B8%E6%9C%BA)
    - [车辆](#%E8%BD%A6%E8%BE%86)
    - [收款人](#%E6%94%B6%E6%AC%BE%E4%BA%BA)
    - [位置信息](#%E4%BD%8D%E7%BD%AE%E4%BF%A1%E6%81%AF)

<!-- /TOC -->

## 接口简介：

本文档为网络货运开放接口文档，对接流程为：
1. 注册并开通网络货运账号（正式环境账号联系我司实施或者商务获取）；
2. 使用网络货运的账号密码获取接口访问令牌（accessToken）；
3. 使用`accessToken`调用其他接口；

**请使用主账号获取对应的token再调用其他接口!!!**

## 相关说明(请仔细阅读!)：
1. **什么是主账号**：<br>即贵公司在我们系统中创建的第一个账号，其后所有的贵公司系统中的账号都是子账号。如果不知道自己是否使用的主账号或者主账号具体是哪个请联系相关负责人。

2. **接口统一URL地址**：<br>测试环境=https://openapi.wlhy.ali.56fanyun.com ，正式环境=https://openapi.wlhy.56fanyun.com

3. **测试环境系统地址**：<br>https://wlhy.ali.56fanyun.com

4. **测试环境账号**：<br>联系我司对接负责人获取。账号并不互通，测试账号对应的是测试环境的域名，正式环境无法使用！

5. **调用接口方式**：<br>`URL` + `?access_token=生成的token`，参数传递使用JSON格式。
`Content-Type: application/json;charset=UTF-8`。例：
https://wlhy.ali.56fanyun.com/order/create_order?access_token=fe12047e-52b1-418c-848c-d08a885095a5
**请勿将请求参数拼接在URL中传递！**

6. **调试接口**：<br>推荐使用Postman，或者访问接口URL，会跳转至调试界面

7. **时间格式**：<br>如无特殊说明，接口中所有时间均使用时间戳，精确到秒

8. **调用限制**：<br>为防止恶意攻击和滥用，接口都加上了调用限制，不同接口限制不同，请参考接口中调用限制的相关说明。例：60次/分钟，表示一分钟内最多请求60次，超过限制会拒绝请求，返回`操作太频繁`。

9. **状态码**：

|状态码|说明|
|:---:|---|
|200|调用接口成功|
|401|授权失败，需要重新登陆获取access_token|
|404|接口不存在，请检查调用的接口地址，协议的格式是否正确|
|500|服务异常，具体错误原因会在返回结果中说明|

10. **返回字段**：

|名称|说明|
|:---:|---|
|code|状态码|
|data|返回数据，接口调用成功（状态码为 200）之后返回的数据|
|message|错误信息，当接口调用失败（状态码为 非200）时，返回的错误信息，调用成功时返回null|


# 接口凭证

## 获取登陆凭证接口

**简要描述：** 获取登陆凭证，accessToken有效期`72小时`，refreshToken有效期`100天`，有效期内获取token返回的结果一样，accessToken到期后建议使用refreshToken进行刷新，而不是使用用户名密码重新获取

**请求 URL：** `/user/generate_access_token`

**请求方式：** POST

**需要AccessToken：** 否

**调用限制：** 60次/分钟

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**userName**  <br>*必填*|账号|string|
|**password**  <br>*必填*|密码|string|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "message": null,
    "data": {
        "accessToken": "9d0dfe02-2349-421c-90ec-4b9ea174701b",
        "refreshToken": "9f8326bc-c29f-4a28-a512-26caa1a9850a"
    }
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "账号或密码不正确"
}
```

## 更新登陆凭证接口

**简要描述：** 更新登陆凭证，会同时更新accessToken和refreshToken，更新后原accessToken和refreshToken将失效

**请求 URL：** `/user/refresh_access_token`

**请求方式：** POST

**需要AccessToken：** 否

**调用限制：** 60次/分钟

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**userName**  <br>*必填*|账号|string|
|**refreshToken**  <br>*必填*|刷新凭证|string|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "message": null,
    "data": {
        "accessToken": "9d0dfe02-2349-421c-90ec-4b9ea174701b",
        "refreshToken": "9f8326bc-c29f-4a28-a512-26caa1a9850a"
    }
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "账号或刷新凭证不正确"
}
```


# 运单类接口

## 创建运单接口

**简要描述：** 开单

**请求 URL：** `/order/create_order`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**orders**  <br>*必填*|运单列表，一次最多50单  <br>**长度** : `1 - 50`|< [运单](#运单) > array|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "data": ["S2004221802969563"],
    "message": null    
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "订单创建失败"
}
```


## 更新运单接口

**简要描述：** 更新运单

**请求 URL：** `/order/update_order`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

请参考：[运单](#运单)

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 签收运单接口

**简要描述：** 签收运单

**请求 URL：** `/order/signOff_order`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**orderNumbers**  <br>*必填*|运单号列表，一次最多50单  <br>**长度** : `1 - 50`|< string > array|
|**signer**  <br>*可选*|签收人  <br>**长度** : `0 - 20`|string|
|**signTime**  <br>*可选*|签收时间，时间戳，精确到秒|integer (int32)|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 查询运单接口

**简要描述：** 查询运单

**请求 URL：** `/order/query_order`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 5次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**page**  <br>*必填*|当前页  <br>**最小值** : `1`  <br>**最大值** : `1000`|string|
|**size**  <br>*必填*|单页数量  <br>**最小值** : `1`  <br>**最大值** : `50`|string|
|**orderNumbers**  <br>*可选*|运单号列表，一次最多50单  <br>**长度** : `1 - 50`|< string > array|
|**timeType**  <br>*可选*|时间类型  <br>**取值** : `created(创建时间),opened(开单时间),signed(完成时间),arrivedTime(到达时间),appointArriveTime(预约送达时间)`|string|
|**beginDate**  <br>*可选*|开始时间 <br>**格式** : `yyyy-MM-dd HH:mm:ss`|string|
|**endDate**  <br>*可选*|结束时间 <br>**格式** : `yyyy-MM-dd HH:mm:ss`|string|
|**originalOrderNumber**  <br>*可选*|客户单号，支持模糊搜索|string|
|**startAddress**  <br>*可选*|起始地 <br>**长度** : `0 - 20`|string|
|**endAddress**  <br>*可选*|目的地 <br>**长度** : `0 - 20`|string|
|**consignerName**  <br>*可选*|发货方姓名 <br>**长度** : `0 - 45`|string|
|**consignerPhone**  <br>*可选*|发货方电话 <br>**长度** : `0 - 20`|string|
|**consigneeName**  <br>*可选*|收货方姓名 <br>**长度** : `0 - 45`|string|
|**consigneePhone**  <br>*可选*|收货方电话 <br>**长度** : `0 - 20`|string|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "message": null,
    "data": {
        "page": 1, //当前页
        "size": 10, //当页数量
        "total": 3, //返回数据总数
        "totalPagesCount": 1, //总页数
        "elements": [....] //运单数据
    }
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 撤销运单接口

**简要描述：** 撤销运单

**请求 URL：** `/order/cancel_order`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**orderNumbers**  <br>*必填*|运单号列表，一次最多50单  <br>**长度** : `1 - 50`|< string > array|

**返回示例**

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


# 基础信息类接口

## 批量创建司机接口

**简要描述：** 批量创建司机

**请求 URL：** `/driver/batch_create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**drivers**  <br>*必填*|司机列表，单次最多50个  <br>**长度** : `1 - 50`|< [司机](#司机) > array|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

## 修改司机信息接口

**简要描述：** 修改司机信息，根据唯一标识更新对应司机的信息，该接口为覆盖更新，故未变更的字段也需要传入，否则会置空

**请求 URL：** `/driver/update`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

请参考：[司机](#司机)


- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 批量创建车辆接口

**简要描述：** 批量创建车辆

**请求 URL：** `/vehicle/batch_create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**vehicles**  <br>*必填*|车辆列表，单次最多50个  <br>**长度** : `1 - 50`|< [车辆](#车辆) > array|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 修改车辆信息接口

**简要描述：** 修改车辆信息，根据唯一标识更新对应车辆的信息，该接口为覆盖更新，故未变更的字段也需要传入，否则会置空

**请求 URL：** `/vehicle/update`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

请参考：[车辆](#车辆)


- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 批量创建收款人接口

**简要描述：** 批量创建收款人

**请求 URL：** `/payee/batch_create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**payees**  <br>*必填*|收款人列表，单次最多50个  <br>**长度** : `1 - 50`|< [收款人](#收款人) > array|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

## 修改收款人信息接口

**简要描述：** 修改收款人信息，根据唯一标识更新对应收款人的信息，该接口为覆盖更新，故未变更的字段也需要传入，否则会置空

**请求 URL：** `/payee/update`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

请参考：[收款人](#收款人)


- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

## 创建经纪人接口

**简要描述：** 创建经纪人接口，根据唯一标识创建对应的经纪人

**请求 URL：** `/open_middleman/create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**middleman**  <br>*必填*|经纪人信息|[经纪人](#经纪人) Object|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


# 财务类接口

## 核销接口

**简要描述：** 核销

**请求 URL：** `/writeoff/writeoff`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 120次/分钟

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**carNumber**  <br>*必填*|车牌号码  <br>**长度** : `1 - 35`|string|
|**customerOrderNumbers**  <br>*必填*|结算受理单列表|< string > array|
|**driverName**  <br>*必填*|司机名称  <br>**长度** : `1 - 30`|string|
|**driverPhone**  <br>*必填*|司机电话  <br>**长度** : `1 - 18`|string|
|**payFreight**  <br>*必填*|支付金额  <br>**最小值** : `0`  <br>**最大值** : `999999`|number (double)|
|**payType**  <br>*必填*|支付方式，1：油卡，2：现金，3：支付宝，4：微信，5：银行转账，6：其它|integer (int32)|
|**payee**  <br>*运单有关联收款人时可选*|收款人，默认用运单司机关联的收款人，如果受理单没有关联收款人，这里必填|[收款人](#收款人)|
|**tradeNo**  <br>*必填*|资金流水号  <br>**长度** : `1 - 50`|string|
|**note**  <br>*可选*|付款备注  <br>**长度** : `0 - 256`|string|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 撤销核销接口

**简要描述：** 撤销核销

**请求 URL：** `/writeoff/cancel`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 120次/分钟

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**customerOrderNumbers**  <br>*必填*|结算受理单列表  <br>**样例** : `[ "XXX", "XXX" ]`|< string > array|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


# 合同类接口

## 创建司机合同接口

**简要描述：** 创建司机合同

**请求 URL：** `/contract/driver/create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**number**  <br>*必填*|合同编号|string|
|**name**  <br>*必填*|姓名|string|
|**phone**  <br>*必填*|电话|string|
|**certNo**  <br>*必填*|身份证号|string|
|**name2**  <br>*必填*|经纪人姓名|string|
|**phone2**  <br>*必填*|经纪人点好|string|
|**certNo2**  <br>*必填*|经纪人身份证号|string|
|**contractDate**  <br>*可选*|签约日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**startDate**  <br>*必填*|合同开始日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**endDate**  <br>*必填*|合同截止日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**fileUrl**  <br>*必填*|合同文件地址 <br>**样例** : `https://www.a.com/z.pdf`|string|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

## 创建委托代收合同接口

**简要描述：** 创建司机合同

**请求 URL：** `/contract/middleman/create`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**number**  <br>*必填*|合同编号|string|
|**name**  <br>*必填*|姓名|string|
|**phone**  <br>*必填*|电话|string|
|**certNo**  <br>*必填*|身份证号|string|
|**contractDate**  <br>*可选*|签约日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**startDate**  <br>*必填*|合同开始日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**endDate**  <br>*必填*|合同截止日期，格式`yyyy-MM-dd` <br>**样例** : `2020-01-01`|string|
|**fileUrl**  <br>*必填*|合同文件地址 <br>**样例** : `https://www.a.com/z.pdf`|string|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

# 位置信息类接口

## 上传设备状态位置数据接口

**简要描述：** 上传单个位置信息接口，如果一次性需要传多个位置信息，则推荐使用[批量上传接口](#批量上传设备状态位置数据接口)

**请求 URL：** `/gps/push_gps_data`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 3次/秒

**请求参数：**

请参考：[位置信息](#位置信息)

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


## 批量上传设备状态位置数据接口

**简要描述：** 批量上传设备状态位置数据接口

**请求 URL：** `/gps/batch_push_gps_data`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 60次/分钟

**请求参数：**

请参考：
|名称|说明|类型|
|---|---|---|
|**gpsDataList**  <br>*必填*|位置信息列表，单次最多1000个点、50台不同的设备|< [位置信息](#位置信息) > array|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```

- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```


# 实名认证类接口

## 实名认证接口

**简要描述：** 使用自有业务系统APP的场景需要接入实名认证和嵌入网络货运SDK

**请求 URL：** `/ocr/face_match`

**请求方式：** POST

**需要AccessToken：** 是

**调用限制：** 1000次/天

**请求参数：**

|名称|说明|类型|
|---|---|---|
|**name**  <br>*必填*|姓名 |string|
|**certNo**  <br>*必填*|身份证号|string|
|**certImg**  <br>*必填*|身份证图片<br>**格式** : `Base64`|string|
|**headImg**  <br>*必填*|人脸图片<br>**格式** : `Base64`|string|

- 调用成功示例

```java
{
    "code": 200,
    "data": true,
    "message": null
}
```
- 调用失败示例

```java
{
    "code": 500,
    "message": "xxxxxxxx"
}
```

# 接口参数说明

## 运单

|名称|说明|类型|
|---|---|---|
|**orderNumber**  <br>*更新运单时必填*|运单号，更新运单时必填，创建运单时不需要填写|string|
|**originalOrderNumber**  <br>*必填*|客户单号  <br>**长度** : `1 - 50`|string|
|**businessType**  <br>*必填*|业务类型|enum (干线普货运输, 城市配送, 农村配送, 集装箱运输, 其他)|
|**consignerName**  <br>*必填*|发货人姓名  <br>**长度** : `1 - 45`|string|
|**consignerPhone**  <br>*必填*|发货人电话  <br>**长度** : `1 - 20`|string|
|**consignerAddress**  <br>*必填*|发货人地址|[地址](#地址)|
|**consignerIdCard**  <br>*必填*|发货人证件号  <br>**长度** : `1 - 35`|string|
|**consigneeName**  <br>*必填*|收货人姓名  <br>**长度** : `1 - 45`|string|
|**consigneePhone**  <br>*必填*|收货人电话  <br>**长度** : `1 - 20`|string|
|**freightIn**  <br>*必填*|运单运费信息|[运单运费](#运单运费)|
|**consigneeAddress**  <br>*必填*|收货人地址|[地址](#地址)|
|**cargoList**  <br>*必填*|货物列表|< [货物](#货物) > array|
|**carrier**  <br>*可选*|承运人|[承运人](#承运人)|
|**payee**  <br>*可选*|收款人|[收款人](#受理单收款人)|
|**consigneeIdCard**  <br>*可选*|收货人证件号  <br>**长度** : `0 - 35`|string|
|**appointArriveTime**  <br>*可选*|预约送达时间。时间戳|integer (int32)|
|**openTime**  <br>*可选*|开单时间。时间戳|integer (int32)|
|**deliveryTime**  <br>*可选*|提货时间。时间戳|integer (int32)|
|**deliveryType**  <br>*可选*|提送类型。1：自提；2：送货|integer (int32)|
|**endAddress**  <br>*可选*|目的地  <br>**长度** : `0 - 20`|string|
|**note1**  <br>*可选*|自定义备注1|string|
|**note2**  <br>*可选*|自定义备注2|string|
|**note3**  <br>*可选*|自定义备注3|string|
|**note4**  <br>*可选*|自定义备注4|string|
|**note5**  <br>*可选*|自定义备注5|string|
|**note6**  <br>*可选*|自定义备注6|string|
|**note7**  <br>*可选*|自定义备注7|string|
|**note8**  <br>*可选*|自定义备注8|string|
|**note9**  <br>*可选*|自定义备注9|string|
|**note10**  <br>*可选*|自定义备注10|string|
|**note11**  <br>*可选*|自定义备注11|string|
|**note12**  <br>*可选*|自定义备注12|string|
|**paymentCollect**  <br>*可选*|代收货款  <br>**最小值** : `0`  <br>**最大值** : `999999`|number (double)|
|**receiptCount**  <br>*可选*|回单数  <br>**最小值** : `0`  <br>**最大值** : `999`|integer (int32)|
|**remarks**  <br>*可选*|备注  <br>**长度** : `1 - 250`|string|
|**salesman**  <br>*可选*|业务员  <br>**长度** : `0 - 20`|string|
|**salesmanPhone**  <br>*可选*|业务员电话  <br>**长度** : `0 - 12`|string|
|**settlementName**  <br>*可选*|结算方名称  <br>**长度** : `0 - 50`|string|
|**settlementPhone**  <br>*可选*|结算方电话  <br>**长度** : `0 - 20`|string|
|**shipperPay**  <br>*可选*|上游运费  <br>**最小值** : `0`  <br>**最大值** : `9999999`|number (double)|
|**shipperPayType**  <br>*可选*|上游运费支付方式. 1：现付；2：到付；3：回付；4：周结；5：月结；6：货款扣；7：季度结；8：在线支付；9：到付月结|integer (int32)|
|**startAddress**  <br>*可选*|起始地  <br>**长度** : `0 - 20`|string|

## 货物

|名称|说明|类型|
|---|---|---|
|**name**  <br>*必填*|货物名称  <br>**长度** : `1 - 150`|string|
|**type**  <br>*必填*|货物类型名称|可选值请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|
|**weight**  <br>*必填*|重量(千克或吨，由系统设置的重量单位决定)  <br>**最小值** : `0`  <br>**最大值** : `99999999`|number (double)|
|**quantity**  <br>*可选*|件数  <br>**最小值** : `0`  <br>**最大值** : `999999`|number (double)|
|**value**  <br>*可选*|货值  <br>**最小值** : `0`  <br>**最大值** : `9999999`|number (double)|
|**volume**  <br>*可选*|体积  <br>**最小值** : `0`  <br>**最大值** : `9999`|number (double)|
|**productModel**  <br>*可选*|货物备注  <br>**长度** : `0 - 100`|string|
|**note1**  <br>*可选*|自定义备注1|string|
|**note2**  <br>*可选*|自定义备注2|string|
|**note3**  <br>*可选*|自定义备注3|string|
|**note4**  <br>*可选*|自定义备注4|string|
|**note5**  <br>*可选*|自定义备注5|string|
|**note6**  <br>*可选*|自定义备注6|string|

## 承运人

|名称|说明|类型|
|---|---|---|
|**carNumber**  <br>*必填*|车牌号码  <br>**长度** : `1 - 20`|string|
|**driverFreight**  <br>*必填*|司机运费  <br>**最小值** : `0`  <br>**最大值** : `999999`|number (double)|
|**driverName**  <br>*必填*|司机名称  <br>**长度** : `1 - 20`|string|
|**driverPhone**  <br>*必填*|司机电话  <br>**长度** : `1 - 20`|string|
|**insuranceCompany**  <br>*可选*|保险公司名称  <br>**长度** : `0 - 30`|string|
|**insuranceNumber**  <br>*可选*|保险单号  <br>**长度** : `0 - 30`|string|

## 受理单收款人

|名称|说明|类型|
|---|---|---|
|**name**  <br>*必填*|银行开户名  <br>**长度** : `1 - 20`|string|
|**bankCardNumber**  <br>*必填*|银行卡号 |string|
|**bankName**  <br>*必填*|开户银行，支持的银行请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|string|
|**idCard**  <br>*必填*|身份证  <br>**长度** : `18`|string|
|**phoneNumber**  <br>*可选*|手机号  <br>**长度** : `11`|string|

## 地址

省市区可选值参考：http://go.56ctms.com/s/BuxJEn09

|名称|说明|类型|
|---|---|---|
|**address**  <br>*必填*|地址  <br>**长度** : `1 - 100`|string|
|**province**  <br>*必填*|省。xx省|string|
|**city**  <br>*必填*|市。xx市|string|
|**district**  <br>*必填*|区/县。xx区/县|string|
|**lat**  <br>*可选*|纬度|number (double)|
|**lng**  <br>*可选*|经度|number (double)|

## 运单运费

|名称|说明|类型|
|---|---|---|
|**amount**  <br>*必填*|运费金额，如无运费，填0即可|number (double)|
|**payType**  <br>*可选*|支付方式，1：现付， 2：到付， 3：回付， 4：周结， 5：月结， 6：货款扣， 7：季度结， 8：在线支付， 9：到付月结 |integer (int32)|

## 司机

|名称|说明|类型|
|---|---|---|
|**idCard**  <br>*必填*|身份证，该字段为司机的唯一标识|string|
|**name**  <br>*必填*|姓名  <br>**长度** : `1 - 20`|string|
|**phoneNumber**  <br>*必填*|手机号  <br>**长度** : `11`|string|
|**idCardAddress**  <br>*必填*|身份证地址  <br>**长度** : `1 - 80`|string|
|**driverLicenseIssuingAuthority**  <br>*必填*|驾驶证发证机关  <br>**长度** : `1 - 50`|string|
|**driverLicenseNumber**  <br>*必填*|驾驶证编号  <br>**长度** : `1 - 18`|string|
|**driverLicenseEndTime**  <br>*必填*|驾驶证有效期结束时间，时间戳，精确到秒|integer (int64)|
|**driverLicenseStartTime**  <br>*必填*|驾驶证有效期开始时间，时间戳，精确到秒|integer (int64)|
|**qualificationCertificateNumber**  <br>*必填*|从业资格证号  <br>**长度** : `1 - 19`|string|
|**quasiDrivingModel**  <br>*必填*|准驾车型  <br>**长度** : `1 - 20`|string|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|
|**idCardBackUrl**  <br>*可选*|身份证背面图片地址|string|
|**idCardFrontUrl**  <br>*可选*|身份证正面图片地址|string|
|**driverLicenseUrl**  <br>*可选*|驾驶证图片地址|string|
|**qualificationCertificateUrlList**  <br>*可选*|从业资格证图片地址，最多传输4张|< string > array|
|**note**  <br>*可选*|备注  <br>**长度** : `0 - 250`|string|

## 车辆

|名称|说明|类型|
|---|---|---|
|**licensePlateNumber**  <br>*必填*|车牌号，该字段为车辆的唯一标识  <br>**长度** : `1 - 10`|string|
|**vehicleOwner**  <br>*必填*|车辆所有人  <br>**长度** : `1 - 50`|string|
|**issuingAuthority**  <br>*必填*|发证机关  <br>**长度** : `1 - 50`|string|
|**merchantName**  <br>*必填*|业户名称|string|
|**natureOfUse**  <br>*必填*|使用性质  <br>**长度** : `1 - 20`|string|
|**licensePlateColor**  <br>*与`licensePlateColorCode`二选一必填*|车牌颜色，和车牌颜色代码对应，两个中必填一个，优先使用本字段的值，代码集请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|string|
|**licensePlateColorCode**  <br>*与`licensePlateColor`二选一必填*|车牌颜色代码，和车牌颜色对应|string|
|**vehicleType**  <br>*与`vehicleTypeCode`二选一必填*|车辆类型，和车辆类型代码对应，两个中必填一个，优先使用本字段的值，代码集请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|string|
|**vehicleTypeCode**  <br>*与`vehicleType`二选一必填*|车辆类型代码，和车辆类型对应|string|
|**vehicleEnergyType**  <br>*与`vehicleEnergyTypeCode`二选一必填*|车辆能源类型，和车辆能源类型代码对应，两个中必填一个，优先使用本字段的值，代码集请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|string|
|**vehicleEnergyTypeCode**  <br>*与`vehicleEnergyType`二选一必填*|车辆能源类型代码，和车辆能源类型对应|string|
|**issueDate**  <br>*必填*|发证日期，时间戳，精确到秒|integer (int64)|
|**registrationDate**  <br>*必填*|注册日期，时间戳，精确到秒|integer (int64)|
|**roadTransportCertificate**  <br>*必填*|道路运输证号  <br>**长度** : `1 - 12`|string|
|**roadTransportLicenseNumber**  <br>*必填*|道路运输经营许可证号|string|
|**totalWeight**  <br>*必填*|总质量，单位：千克  <br>**最小值** : `1`|integer (int32)|
|**approvedLoadWeight**  <br>*必填*|核定载质量，单位：千克  <br>**最小值** : `1`|integer (int32)|
|**vehicleIDCode**  <br>*必填*|车辆识别代码  <br>**长度** : `1 - 20`|string|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|
|**fileNumber**  <br>*可选*|档案编号  <br>**长度** : `0 - 20`|string|
|**note**  <br>*可选*|备注  <br>**长度** : `0 - 250`|string|
|**outlineHeight**  <br>*可选*|外廓高，单位：毫米  <br>**最小值** : `1`|integer (int32)|
|**outlineLength**  <br>*可选*|外廓长，单位：毫米  <br>**最小值** : `1`|integer (int32)|
|**outlineWidth**  <br>*可选*|外廓宽，单位：毫米  <br>**最小值** : `1`|integer (int32)|
|**drivingLicenseUrlList**  <br>*可选*|行驶证照片，最多传输4张|< string > array|
|**roadTransportPermitUrlList**  <br>*可选*|道路运输证照片，最多传输4张|< string > array|
|**trailerLicenseNumber**  <br>*可选*|挂车牌照号  <br>**长度** : `0 - 10`|string|

## 收款人

|名称|说明|类型|
|---|---|---|
|**bankCardNumber**  <br>*必填*|银行卡号，该字段为收款人的唯一标识|string|
|**name**  <br>*必填*|银行开户名  <br>**长度** : `1 - 20`|string|
|**bankName**  <br>*必填*|开户银行，支持的银行请参考[《部网络货运信息交互系统代码集》](https://fanyun-wlhy.oss-cn-hangzhou.aliyuncs.com/resources/部网络货运信息交互系统代码集.pdf)|string|
|**idCard**  <br>*必填*|身份证|string|
|**organizationName**  <br>*可选*|组织机构名称，会创建至对应组织机构下，默认创建到总部|string|
|**phoneNumber**  <br>*可选*|手机号  <br>**长度** : `11`|string|
|**note**  <br>*可选*|备注  <br>**长度** : `1 - 200`|string|

## 经纪人
|名称|说明|类型|
|---|---|---|
|**idCardFrontUrl**  <br>*必填*|身份证正面图片地址|string|
|**idCardReverseUrl**  <br>*必填*|身份证反面图片地址|string|
|**name**  <br>*必填*|姓名|string|
|**phoneNumber**  <br>*必填*|手机号|string|
|**idCard**  <br>*必填*|身份证号|string|
|**idCardAddress**  <br>*可选*|身份证地址|string|
|**remark**  <br>*可选*|备注  <br>**长度** : `1 - 200`|string|

## 位置信息

|名称|说明|类型|
|---|---|---|
|**device**  <br>*必填*|设备号，如果没有设备号也可以按车牌号上报位置，此时运单绑定的设备号需要为车牌号|string|
|**longitude**  <br>*必填*|经度|number (double)|
|**latitude**  <br>*必填*|纬度|number (double)|
|**locateTime**  <br>*必填*|定位时间（时间戳，精确到秒）|integer (int32)|
|**locateType**  <br>*必填*|定位类型：(0：未知，1：GPS，2：基站定位，4：北斗定位，5：GPS 和北斗定位）|integer (int32)|
|**runStatus**  <br>*必填*|设备运行状态（1:行驶，2:停止，3:离线）|integer (int32)|
|**addr**  <br>*可选*|设备完整定位地址，包含省市区  <br>**例** : `浙江省杭州市西湖区计量大厦`|string|
|**province**  <br>*可选*|定位省份|string|
|**city**  <br>*可选*|定位城市|string|
|**roadName**  <br>*可选*|定位街道|string|
|**speed**  <br>*可选*|设备速度（单位：km／h）|number (double)|
|**direction**  <br>*可选*|设备运动方向（单位：角度）|number (double)|
|**temperature**  <br>*可选*|设备温度（单位：度）|number (double)|
|**humidity**  <br>*可选*|设备湿度（单位：度）|number (double)|
|**powerRate**  <br>*可选*|设备电量（单位：%）|integer (int32)|
|**note1**  <br>*可选*|自定义备注1|string|
|**note2**  <br>*可选*|自定义备注2|string|
|**note3**  <br>*可选*|自定义备注3|string|
|**note4**  <br>*可选*|自定义备注4|string|
|**note5**  <br>*可选*|自定义备注5|string|
|**note6**  <br>*可选*|自定义备注6|string|
|**note7**  <br>*可选*|自定义备注7|string|
|**note8**  <br>*可选*|自定义备注8|string|
|**note9**  <br>*可选*|自定义备注9|string|
|**note10**  <br>*可选*|自定义备注10|string|
|**note11**  <br>*可选*|自定义备注11|string|
|**note12**  <br>*可选*|自定义备注12|string|