alitrip.btrip.corpop.apply.add (【商旅】isv添加审批单)

【商旅】isv添加审批单

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
rq OpenApiApplyRq 必须 请求参数
  • └ thirdpart_apply_id
  • String
  • 必须
  • 12345
  • 外部申请单id
  • └ thirdpart_business_id
  • String
  • 可选
  • 12345
  • 用户展示的外部审批单id信息
  • └ corp_id
  • String
  • 必须
  • corp1
  • 第三方企业id
  • └ corp_name
  • String
  • 可选
  • 阿里巴巴
  • 企业名称
  • └ depart_id
  • String
  • 可选
  • dept1
  • 部门id,如果不传,会根据user相关信息去获取对应的部门信息,如果传的是错误的部门信息,后面无法做部门的费用归属;部门ID只能是数字
  • └ depart_name
  • String
  • 可选
  • 淘宝
  • 部门名称
  • itinerary_list
  • OpenItineraryInfo []
  • 可选
  • 行程列表
  • └ arr_city
  • String
  • 可选
  • 北京
  • 到达城市
  • └ arr_city_code
  • String
  • 可选
  • BJS
  • 必填,到达城市编码。传0时,不管控到达城市。注意:出发/到达地点只能都不限,或者都限制。不限城市情况,请注意酒店差标的传参,确保所有城市都有传入差标
  • └ arr_date
  • Date
  • 可选
  • 2017-01-01 00:00:00
  • 到达日期
  • └ cost_center_id
  • Number
  • 可选
  • 123
  • 商旅成本中心id,和第三方成本中心id二者选择其一即可
  • └ dep_city
  • String
  • 可选
  • 杭州
  • 出发城市
  • └ dep_city_code
  • String
  • 可选
  • HGH
  • 必填,出发城市编码。传0时,不管控出发城市。注意:出发/到达地点只能都不限,或者都限制。不限城市情况,请注意酒店差标的传参,确保所有城市都有传入差标
  • └ dep_date
  • Date
  • 可选
  • 2017-01-01 00:00:00
  • 出发日期
  • └ invoice_id
  • Number
  • 可选
  • 1234
  • 商旅发票id,和第三方发票Id二者选择其一即可
  • └ itinerary_id
  • String
  • 可选
  • 123456
  • 行程id
  • └ project_code
  • String
  • 可选
  • xm1
  • 项目编号
  • └ project_title
  • String
  • 可选
  • 项目1
  • 项目名称
  • └ thirdpart_cost_center_id
  • String
  • 可选
  • 12345
  • 第三方成本中心id,和商旅成本中心id二者选择其一即可
  • └ traffic_type
  • Number
  • 可选
  • 0
  • 交通方式: 0 飞机、酒店、用车, 1 火车、酒店、用车, 2 用车、酒店, 3 用车、酒店,4 用车、酒店,6 飞机、用车,7 火车、用车,9 飞机、火车、酒店、用车,10 飞机、火车、用车,11 仅用车,21 飞机、酒店,22 火车、酒店,24 酒店,25 飞机,26 火车,27 飞机、火车、酒店,28 飞机、火车
  • └ trip_way
  • Number
  • 可选
  • 0
  • 行程类型:0单程,1往返
  • └ third_part_invoice_id
  • String
  • 可选
  • 1234
  • 第三方发票id,和商旅发票id二者选择其一即可
  • └ need_hotel
  • Boolean
  • 可选
  • true
  • 行程是否需要预定酒店,不传默认需要
  • └ need_traffic
  • Boolean
  • 可选
  • true
  • 行程是否需要预定交通工具,不传默认需要
  • └ status
  • Number
  • 可选
  • 0
  • 审批单状态,不传入默认为0:0审批中,1同意,2拒绝
  • traveler_list
  • OpenUserInfo []
  • 可选
  • 出行人列表
  • └ user_id
  • String
  • 可选
  • user1
  • 第三方用户id
  • └ user_name
  • String
  • 可选
  • 用户
  • 用户名称
  • └ trip_cause
  • String
  • 必须
  • 北京出差
  • 出差事由
  • └ trip_day
  • Number
  • 可选
  • 1
  • 出差天数
  • └ trip_title
  • String
  • 必须
  • 北京出差
  • 申请单标题
  • └ user_id
  • String
  • 必须
  • user1
  • 申请人Id(第三方用户id)
  • └ user_name
  • String
  • 可选
  • 张三
  • 用户名称,如果要传必须传真实姓名,如果不传则会以系统当前维护userId对应的名称进行预订
  • └ version
  • Number
  • 可选
  • 2
  • 1 老版本 2 isv对外版本
  • └ type
  • Number
  • 可选
  • 2
  • 1:代提交 2:本人提交 注意:当申请单为代提交时,申请单提交人自己无法为自己下单
  • └ union_no
  • String
  • 可选
  • tste1
  • 关联单号
  • external_traveler_list
  • OpenUserInfo []
  • 可选
  • 外部出行人列表
  • └ user_name
  • String
  • 可选
  • 用户
  • 用户名称,英文姓名请用“/”分隔,中间不能含有空格,顺序:姓/名(last-name/first-name)
  • └ hotel_budget
  • Number
  • 可选
  • 1000
  • 审批单酒店预算,单位分。注意:特殊授权人住店产生的杂费(用餐、房间内商品等)将在退房时扣款,由企业支付
  • └ flight_budget
  • Number
  • 可选
  • 1000
  • 审批单机票预算,单位分
  • └ train_budget
  • Number
  • 可选
  • 1000
  • 审批单火车票预算,单位分。注意:例如坐席同为”硬卧“,上/中/下铺存在价格差异的情况,预订时将按照其中最高价格,校验预算余额
  • └ vehicle_budget
  • Number
  • 可选
  • 1000
  • 审批单用车预算,单位分。注意:打车场景存在不可控因素,会超出原预估价格:1. 乘客线下修改目的地;2. 堵车等道路意外情况;3. 司机添加附加费,如过路费、高速费、等待费等
  • └ budget
  • Number
  • 可选
  • 1000
  • 审批单总预算,单位分
  • └ budget_merge
  • Number
  • 可选
  • 1
  • 多个申请单预算合并。1:否,【union_no】相同的【申请单(apply id)】,每个的【预算】仅对本申请单生效。2:是,所有【union_no】相同的【申请单(apply id)】,其中全部【预算】合并求和,可以混用。
  • └ limit_traveler
  • Number
  • 可选
  • 1
  • 0:不限制出行人,1:限申请单内的出行人。注意:不限出行人,实际出行人也不限制差标,而且传入的出行人信息也不会存储
  • └ together_book_rule
  • Number
  • 可选
  • 1
  • 同时预订(机票&火车票)规则。1:就高;2:就低。
  • hotel_share
  • HotelShareInfo
  • 可选
  • 酒店合住规则
  • └ type
  • String
  • 可选
  • 1
  • 合住公式。1-"(A+B)*param%",2-"A*param%",3-"A+B*param%",4-"A+param元",5-"(A+B)/2+param元"
  • └ param
  • String
  • 可选
  • 70
  • 请传入整数即可,当合住方式为1/2/3时接口会处理成x%
  • external_traveler_standard
  • ExternalUserStandard
  • 可选
  • 外部出行人差标
  • └ flight_cabins
  • String
  • 可选
  • Y
  • 国内机票舱等,多值逗号分隔。F:头等舱,C:商务舱,Y:经济舱,P:超级经济舱
  • └ economy_discount
  • Number
  • 可选
  • 1
  • 经济舱折扣。1到10的整数
  • └ business_discount
  • Number
  • 可选
  • 1
  • 商务舱折扣。1到10的整数
  • └ first_discount
  • Number
  • 可选
  • 1
  • 头等舱折扣。1到10的整数
  • └ train_seats
  • String
  • 可选
  • 1
  • 火车票坐席,多值逗号分隔。0:硬座,1:硬卧,2:软座,3:软卧,4:高级软卧,5:商务座,6:一等座,7:二等座,8:动卧
  • hotel_citys
  • HotelCityFee []
  • 可选
  • 酒店城市费用列表
  • └ city_code
  • String
  • 可选
  • 330100
  • 城市编码,传0代表其他全部城市
  • └ city_name
  • String
  • 可选
  • 北京
  • 城市名称
  • └ fee
  • Number
  • 可选
  • 10000
  • 酒店间夜金额,单位(分),如需不限请传99999999。注意:差标只能管控到元,角、分会被抹掉,请避免传入角、分的值。
  • └ reserve_type
  • Number
  • 可选
  • 1
  • 限制差标类型。0-不限差标,1-限制差标。注意:同一审批单的所有出行人只能都限制差标/都不限制差标,否则会调用失败
  • └ international_flight_cabins
  • String
  • 可选
  • Y
  • 国际机票舱等,多值逗号分隔。F:头等舱,C:商务舱,Y:经济舱,P:超级经济舱
  • └ premium_economy_discount
  • Number
  • 可选
  • 1
  • 超级经济舱折扣。1到10的整数
  • traveler_standard
  • InternalUserStandard []
  • 可选
  • 内部人员差标列表
  • └ flight_cabins
  • String
  • 可选
  • Y
  • 国内机票舱等,多值逗号分隔。F:头等舱,C:商务舱,Y:经济舱,P:超级经济舱
  • └ economy_discount
  • Number
  • 可选
  • 1
  • 经济舱折扣。1到10的整数
  • └ business_discount
  • Number
  • 可选
  • 1
  • 商务舱折扣。1到10的整数
  • └ first_discount
  • Number
  • 可选
  • 1
  • 头等舱折扣。1到10的整数
  • └ train_seats
  • String
  • 可选
  • 1
  • 火车票坐席,多值逗号分隔。0:硬座,1:硬卧,2:软座,3:软卧,4:高级软卧,5:商务座,6:一等座,7:二等座,8:动卧
  • hotel_citys
  • HotelCityFee []
  • 可选
  • 酒店城市费用列表
  • └ city_code
  • String
  • 可选
  • 330100
  • 城市编码,传0代表其他全部城市
  • └ city_name
  • String
  • 可选
  • 北京
  • 城市名称
  • └ fee
  • Number
  • 可选
  • 100000
  • 酒店间夜金额,单位(分),如需不限请传99999999。注意:差标只能管控到元,角、分会被抹掉,请避免传入角、分的值。
  • └ reserve_type
  • Number
  • 可选
  • 1
  • 限制差标类型。0-不限差标,1-限制差标。注意:同一审批单的所有出行人只能都限制差标/都不限制差标,否则会调用失败
  • └ user_id
  • String
  • 可选
  • weifeng
  • 出行人id(第三方用户id)
  • └ international_flight_cabins
  • String
  • 可选
  • Y
  • 国际机票舱等,多值逗号分隔。F:头等舱,C:商务舱,Y:经济舱,P:超级经济舱
  • └ premium_economy_discount
  • Number
  • 可选
  • 1
  • 超级经济舱折扣。1到10的整数
  • └ itinerary_rule
  • Number
  • 可选
  • 0
  • 申请单城市规则: 0出发&目的地一对一,按列表传行程 1多选N个地点,城市集行程 不传默认为0 会根据商旅管理后台-通用差旅设置-行程城市规则中的设置,校验申请单本字段的值是否正确 当行程城市规则中设置的是“1对1行程”时,必须传0 当行程城市规则中设置的是“多对多城市集行程”时,必须传1 会根据此字段传入的值,校验行程传参是否正确 当申请单城市规则为0,itinerary_list行程列表必填 当申请单城市规则为1,城市集行程必填
  • itinerary_set_list
  • OpenItinerarySetInfo []
  • 可选
  • 城市集行程列表
  • 城市集行程列表
  • └ itinerary_id
  • String
  • 可选
  • sdfgh
  • 行程id
  • └ traffic_type
  • Number
  • 可选
  • 0
  • 交通方式: 0 飞机、酒店、用车, 1 火车、酒店、用车, 2 用车、酒店, 3 用车、酒店,4 用车、酒店,6 飞机、用车,7 火车、用车,9 飞机、火车、酒店、用车,10 飞机、火车、用车,11 仅用车,21 飞机、酒店,22 火车、酒店,24 酒店,25 飞机,26 火车,27 飞机、火车、酒店,28 飞机、火车
  • └ city_set
  • String
  • 可选
  • 北京,上海
  • 离抵城市名称,多个城市请用中文“,”隔开
  • └ city_code_set
  • String
  • 可选
  • BJS,SHA
  • 离抵城市code,多个城市请用中文“,”隔开 当允许预订的类目为1/3/7/9时,仅传行政区划citycode允许通过 当允许预订的类目为0/6时,仅传城市三字码允许通过 city_set和city_code_set必须一对一
  • └ dep_date
  • String
  • 可选
  • 2017-01-01 00:00:00
  • 出发日期
  • └ arr_date
  • String
  • 可选
  • 2017-01-01 00:00:00
  • 到达日期
  • └ cost_center_id
  • Number
  • 可选
  • 23456
  • 商旅成本中心id,和第三方成本中心id二者选择其一即可
  • └ thirdpart_cost_center_id
  • String
  • 可选
  • sdfgh
  • 第三方成本中心id,和商旅成本中心id二者选择其一即可
  • └ invoice_id
  • Number
  • 可选
  • 123456
  • 商旅发票id,和第三方发票Id二者选择其一即可
  • └ third_part_invoice_id
  • String
  • 可选
  • cbjdkschnd
  • 第三方发票id,和商旅发票id二者选择其一即可
  • └ project_code
  • String
  • 可选
  • 项目编号
  • 项目编号
  • └ project_title
  • String
  • 可选
  • 项目名称
  • 项目名称
  • └ extend_field
  • String
  • 可选
  • {"cost_center":"成本中心"}
  • 可将补充描述传入此字段,账单中将会体现此字段的值。可以用于企业的统计和对账

响应参数

名称 类型 示例值 描述
result HisvResult result 出参数
  • module
  • OpenApiApplyRs
  • module
  • 结果对象
  • └ apply_id
  • Number
  • 123
  • 商旅申请单id
  • └ thirdpart_apply_id
  • String
  • 12345
  • 外部申请单id
  • └ thirdpart_business_id
  • String
  • 123
  • 第三方业务id
  • └ result_code
  • Number
  • 0
  • 错误码
  • └ result_msg
  • String
  • 成功
  • 错误信息
  • └ success
  • Boolean
  • true
  • 成功标识

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
AlitripBtripCorpopApplyAddRequest req = new AlitripBtripCorpopApplyAddRequest();
AlitripBtripCorpopApplyAddRequest.OpenApiApplyRq obj1 = new AlitripBtripCorpopApplyAddRequest.OpenApiApplyRq();
obj1.setThirdpartApplyId("12345");
obj1.setThirdpartBusinessId("12345");
obj1.setCorpId("corp1");
obj1.setCorpName("阿里巴巴");
obj1.setDepartId("dept1");
obj1.setDepartName("淘宝");
List<AlitripBtripCorpopApplyAddRequest.OpenItineraryInfo> list3 = new ArrayList<AlitripBtripCorpopApplyAddRequest.OpenItineraryInfo>();
AlitripBtripCorpopApplyAddRequest.OpenItineraryInfo obj4 = new AlitripBtripCorpopApplyAddRequest.OpenItineraryInfo();
list3.add(obj4);
obj4.setArrCity("北京");
obj4.setArrCityCode("BJS");
obj4.setArrDate(StringUtils.parseDateTime("2017-01-01 00:00:00"));
obj4.setCostCenterId(123L);
obj4.setDepCity("杭州");
obj4.setDepCityCode("HGH");
obj4.setDepDate(StringUtils.parseDateTime("2017-01-01 00:00:00"));
obj4.setInvoiceId(1234L);
obj4.setItineraryId("123456");
obj4.setProjectCode("xm1");
obj4.setProjectTitle("项目1");
obj4.setThirdpartCostCenterId("12345");
obj4.setTrafficType(0L);
obj4.setTripWay(0L);
obj4.setThirdPartInvoiceId("1234");
obj4.setNeedHotel(true);
obj4.setNeedTraffic(true);
obj1.setItineraryList(list3);
obj1.setStatus(0L);
List<AlitripBtripCorpopApplyAddRequest.OpenUserInfo> list6 = new ArrayList<AlitripBtripCorpopApplyAddRequest.OpenUserInfo>();
AlitripBtripCorpopApplyAddRequest.OpenUserInfo obj7 = new AlitripBtripCorpopApplyAddRequest.OpenUserInfo();
list6.add(obj7);
obj7.setUserId("user1");
obj7.setUserName("用户");
obj1.setTravelerList(list6);
obj1.setTripCause("北京出差");
obj1.setTripDay(1L);
obj1.setTripTitle("北京出差");
obj1.setUserId("user1");
obj1.setUserName("张三");
obj1.setVersion(2L);
obj1.setType(2L);
obj1.setUnionNo("tste1");
List<AlitripBtripCorpopApplyAddRequest.OpenUserInfo> list9 = new ArrayList<AlitripBtripCorpopApplyAddRequest.OpenUserInfo>();
AlitripBtripCorpopApplyAddRequest.OpenUserInfo obj10 = new AlitripBtripCorpopApplyAddRequest.OpenUserInfo();
list9.add(obj10);
obj10.setUserName("用户");
obj1.setExternalTravelerList(list9);
obj1.setHotelBudget(1000L);
obj1.setFlightBudget(1000L);
obj1.setTrainBudget(1000L);
obj1.setVehicleBudget(1000L);
obj1.setBudget(1000L);
obj1.setBudgetMerge(1L);
obj1.setLimitTraveler(1L);
obj1.setTogetherBookRule(1L);
AlitripBtripCorpopApplyAddRequest.HotelShareInfo obj11 = new AlitripBtripCorpopApplyAddRequest.HotelShareInfo();
obj11.setType("1");
obj11.setParam("70");
obj1.setHotelShare(obj11);
AlitripBtripCorpopApplyAddRequest.ExternalUserStandard obj12 = new AlitripBtripCorpopApplyAddRequest.ExternalUserStandard();
obj12.setFlightCabins("Y");
obj12.setEconomyDiscount(1L);
obj12.setBusinessDiscount(1L);
obj12.setFirstDiscount(1L);
obj12.setTrainSeats("1");
List<AlitripBtripCorpopApplyAddRequest.HotelCityFee> list14 = new ArrayList<AlitripBtripCorpopApplyAddRequest.HotelCityFee>();
AlitripBtripCorpopApplyAddRequest.HotelCityFee obj15 = new AlitripBtripCorpopApplyAddRequest.HotelCityFee();
list14.add(obj15);
obj15.setCityCode("330100");
obj15.setCityName("北京");
obj15.setFee(10000L);
obj12.setHotelCitys(list14);
obj12.setReserveType(1L);
obj12.setInternationalFlightCabins("Y");
obj12.setPremiumEconomyDiscount(1L);
obj1.setExternalTravelerStandard(obj12);
List<AlitripBtripCorpopApplyAddRequest.InternalUserStandard> list17 = new ArrayList<AlitripBtripCorpopApplyAddRequest.InternalUserStandard>();
AlitripBtripCorpopApplyAddRequest.InternalUserStandard obj18 = new AlitripBtripCorpopApplyAddRequest.InternalUserStandard();
list17.add(obj18);
obj18.setFlightCabins("Y");
obj18.setEconomyDiscount(1L);
obj18.setBusinessDiscount(1L);
obj18.setFirstDiscount(1L);
obj18.setTrainSeats("1");
List<AlitripBtripCorpopApplyAddRequest.HotelCityFee> list21 = new ArrayList<AlitripBtripCorpopApplyAddRequest.HotelCityFee>();
AlitripBtripCorpopApplyAddRequest.HotelCityFee obj22 = new AlitripBtripCorpopApplyAddRequest.HotelCityFee();
list21.add(obj22);
obj22.setCityCode("330100");
obj22.setCityName("北京");
obj22.setFee(100000L);
list19.setHotelCitys(list21);
obj18.setReserveType(1L);
obj18.setUserId("weifeng");
obj18.setInternationalFlightCabins("Y");
obj18.setPremiumEconomyDiscount(1L);
obj1.setTravelerStandard(list17);
obj1.setItineraryRule(0L);
List<AlitripBtripCorpopApplyAddRequest.OpenItinerarySetInfo> list24 = new ArrayList<AlitripBtripCorpopApplyAddRequest.OpenItinerarySetInfo>();
AlitripBtripCorpopApplyAddRequest.OpenItinerarySetInfo obj25 = new AlitripBtripCorpopApplyAddRequest.OpenItinerarySetInfo();
list24.add(obj25);
obj25.setItineraryId("sdfgh");
obj25.setTrafficType(0L);
obj25.setCitySet("北京,上海");
obj25.setCityCodeSet("BJS,SHA");
obj25.setDepDate("2017-01-01 00:00:00");
obj25.setArrDate("2017-01-01 00:00:00");
obj25.setCostCenterId(23456L);
obj25.setThirdpartCostCenterId("sdfgh");
obj25.setInvoiceId(123456L);
obj25.setThirdPartInvoiceId("cbjdkschnd");
obj25.setProjectCode("项目编号");
obj25.setProjectTitle("项目名称");
obj1.setItinerarySetList(list24);
obj1.setExtendField("{\"cost_center\":\"成本中心\"}");
req.setRq(obj1);
AlitripBtripCorpopApplyAddResponse rsp = client.execute(req, sessionKey);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<alitrip_btrip_corpop_apply_add_response>
    <result>
        <module>
            <apply_id>123</apply_id>
            <thirdpart_apply_id>12345</thirdpart_apply_id>
            <thirdpart_business_id>123</thirdpart_business_id>
        </module>
        <result_code>0</result_code>
        <result_msg>成功</result_msg>
        <success>true</success>
    </result>
</alitrip_btrip_corpop_apply_add_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案
9002 找不到申请人信息 在商旅企业管理后台维护申请人信息,或者通过同步企业人员接口同步申请人
9012 出行人列表用户ID(user_id)缺失 传入traveler_list的user_id字段
9016 总预算与类目预算不能同时存在 酒店预算,机票预算,火车票预算,用车预算不能与申请单总预算同时存在。hotel_budget,flight_budget,train_budget,vehicle_budget(单类目预算)这一组值,和budget(总预算)这一组,只能存在一组,不能同时存在
-202 union_no和单类目预算不能同时存在 传入union_no代表是按照总预算来管控,不可以传单类目预算。传入union_no的情况,如果需要预算管控,只能通过总预算(budget)来管控
9023 用户(%s)没有操作成本中心:%s的权限 传入的行程列表中的成本中心,申请单提交人没有权限使用。 检查行程列表中的成本中心是否归属于该申请单提交人
9000 审批单已存在 新增审批单的时候需要校验当前审批单是否已存在。 thirdpart_apply_id重复,需要修改thirdpart_apply_id
9020 酒店城市费用列表不能超过50个 酒店城市费用列表不能超过50个
9019 酒店城市费用列表(city_code,fee)不能为空 酒店城市费用列表(city_code,fee)不能为空
9022 同一审批单中的所有出行人只能都限制/都不限制差标 traveler_standard中的reserve_type只能都为0或者只能都为1
9007 用户成本中心缺失 用户没有可用的成本中心,需要企业管理员在企业管理后台给用户配置好成本中心
9008 用户发票抬头缺失 用户没有可用的发票抬头,需要企业管理员在企业管理后台给用户配置好发票抬头
9021 行程到达城市编码和出发城市编码只能都不限,或者都限制 itinerary_list中的dep_city_code和arr_city_code只能都为0或者都为具体的citycode
9014 新增外部出行人失败 新增外部出行人失败,需要重试一次
9017 union_no和单类目预算不能同时存在 unionNo不为空,代表是审批单一拆多情况,不能传hotel_budget,flight_budget,train_budget,vehicle_budget(单类目预算)。

API工具

如何获得此API

FAQ

返回
顶部