1.申请开票接口

1.1使用场景

①用户首次申请开具电子发票,后端保存好申请信息后,需要调用本接口进行开发票
②用户申请开具电子发票失败后,主动更新了自己的开票信息数据,后端更新好申请信息后,需要调用本接口进行再次的开发票

1.2使用说明

开发者保存或更新用户开票申请信息后,需要将用户的开票信息数据,订单信息数据和订单明细数据封装成InvoiceCreateRequest 对象丢入开票队列即可

1.3接口入参

注:*为必填字段

  1. {
  2. "operId":"操作人编号",
  3. "operName":"操作人姓名",
  4. "invoiceOrderInfoInDto": {
  5. *"orderNo": "订单号",
  6. *"orderSource": "订单来源:1:电商 2:全员营销 3:X6",
  7. *"applyId":"发票申请编号",
  8. *"totalAmount": "订单总金额",
  9. *"invoiceConfigId": "配置编号"
  10. },
  11. "invoiceOrderDetailInDtoList": [{
  12. *"id":"订单明细编号",
  13. *"name": "商品名称",
  14. "unit": "商品单位",
  15. "specificationModel": "商品规格型号",
  16. *"num": "数量",
  17. *"price": "单价",
  18. *"taxCode": "商品税务分类编码",
  19. *"amount": "商品明细小计"
  20. },....],
  21. "buyerInfoInDto": {
  22. *"name": "开票方名称(个人姓名或公司名称)",
  23. "taxpayerId": "公司税号",
  24. *"phone": "开票方手机号",
  25. "address": "开票方公司地址",
  26. "fixedTel": "开票方公司固定电话",
  27. "email": "开票方邮箱",
  28. "bankInfoAddress":"开票方银行地址信息",
  29. "bankInfoAccount":"开票方银行账号信息",
  30. *"enterpriseType": "企业类型:01:企业 02:.. 03:..."
  31. }
  32. }

1.4接口出参

注: 需要注册消费者消费队列消息

字段 说明 一定存在?
returnCode 响应码:
1:开具成功
2:购货方信息错误
3:发票业务异常,请联系客服人员
returnMsg 开具成功
购货方信息错误
发票业务异常,请联系客服人员
applyId 发票申请编号
operId 操作人编号
operName 操作人姓名

2.冲销发票(异步)

2.1使用场景

用户开完发票后进行了退货,此时此发票需要被作废(冲销),后端需要调用发票冲销接口完成冲销

2.2使用说明

开发者需要向接口传入订单号和发票单号即可,在调用本接口前一定要调用第4个接口来进行红冲发票的数据生成和红冲条件判断

2.3接口入参

注:*为必填字段

  1. {
  2. "operId":"操作人编号",
  3. "operName":"操作人姓名",
  4. *"invoiceFrom":"发票来源:1:电商 2:全员营销 3:X6",
  5. *"applyId":"发票申请编号",
  6. *"invoiceNo":"发票号",
  7. "invoiceOrderDetailInDtoList": [{
  8. *"id":"订单明细编号",
  9. *"name": "商品名称",
  10. "unit": "商品单位",
  11. "specificationModel": "商品规格型号",
  12. *"price": "单价",
  13. *"taxCode": "商品税码"
  14. },....],
  15. "buyerInfoInDto": {
  16. *"name": "开票名称(个人名称或公司名称)",
  17. "taxpayerId": "公司税号",
  18. *"phone": "开票方手机号",
  19. "address": "开票方公司地址",
  20. "fixedTel": "开票方公司固定电话",
  21. "email": "开票方邮箱",
  22. "bankInfoAddress":"开票方银行地址信息",
  23. "bankInfoAccount":"开票方银行账号信息",
  24. *"enterpriseType": "企业类型:01:企业 02:.. 03:..."
  25. }
  26. }

2.4接口出参

注: 需要注册消费者消费队列消息

字段 说明 一定存在?
returnCode 响应码:
1:红冲成功
2:开具错误
returnMsg 红冲成功
开具错误
applyId 发票申请编号
originalInvoiceNo 原发票号
operId 操作人编号
operName 操作人姓名

3.冲销发票(同步)/redFlushInvoice

3.1使用场景

与第2个接口相同

3.2使用说明

开发者向接口传入订单号和发票单号后,会同步接收到一个R的返回,此接口无需调用第4个接口

3.3接口入参

注:*为必填字段

  1. {
  2. *"invoiceFrom":"发票来源:1:电商 2:全员营销 3:X6",
  3. *"applyId":"发票申请编号",
  4. *"invoiceNo":"发票号",
  5. "invoiceOrderDetailInDtoList": [{
  6. *"id":"订单明细编号",
  7. *"name": "商品名称",
  8. "unit": "商品单位",
  9. "specificationModel": "商品规格型号",
  10. *"price": "单价",
  11. *"taxCode": "商品税码"
  12. },....],
  13. "buyerInfoInDto": {
  14. *"name": "开票名称(个人名称或公司名称)",
  15. "taxpayerId": "公司税号",
  16. *"phone": "开票方手机号",
  17. "address": "开票方公司地址",
  18. "fixedTel": "开票方公司固定电话",
  19. "email": "开票方邮箱",
  20. "bankInfoAddress":"开票方银行地址信息",
  21. "bankInfoAccount":"开票方银行账号信息",
  22. *"enterpriseType": "企业类型:01:企业 02:.. 03:..."
  23. }
  24. }

3.4接口出参

成功返回

  1. {
  2. "code": 200,
  3. "msg": null,
  4. "data": "发票流水号"
  5. }

错误返回

  1. {
  2. "code": 501,
  3. "msg": "发票信息不存在",
  4. "data": null
  5. }
  6. {
  7. "code": 501,
  8. "msg": "发票暂未开具成功,无法红冲",
  9. "data": null
  10. }
  11. {
  12. "code": 501,
  13. "msg": "发票已经被红冲",
  14. "data": null
  15. }

4.异步冲销发票数据生成 /isCanRedFlushInvoice

4.1使用场景

开发者希望使用异步的冲销发票接口(接口2),此时必须先调用本接口来对红冲发票进行相关判断并生成红冲发票信息

4.2使用说明

一定在异步冲销发票接口(2)调用前调用,R的返回为成功时可调用异步冲销接口(2接口)

4.3接口入参

和接口2完全相同

  1. {
  2. "operId":"操作人编号",
  3. "operName":"操作人姓名",
  4. *"invoiceFrom":"发票来源:1:电商 2:全员营销 3:X6",
  5. *"applyId":"发票申请编号",
  6. *"invoiceNo":"发票号",
  7. "invoiceOrderDetailInDtoList": [{
  8. *"id":"订单明细编号",
  9. *"name": "商品名称",
  10. "unit": "商品单位",
  11. "specificationModel": "商品规格型号",
  12. *"price": "单价",
  13. *"taxCode": "商品税码"
  14. },....],
  15. "buyerInfoInDto": {
  16. *"name": "开票名称(个人名称或公司名称)",
  17. "taxpayerId": "公司税号",
  18. *"phone": "开票方手机号",
  19. "address": "开票方公司地址",
  20. "fixedTel": "开票方公司固定电话",
  21. "email": "开票方邮箱",
  22. "bankInfoAddress":"开票方银行地址信息",
  23. "bankInfoAccount":"开票方银行账号信息",
  24. *"enterpriseType": "企业类型:01:企业 02:.. 03:..."
  25. }
  26. }

4.4接口出参

  1. {
  2. "code": 200,
  3. "msg": null,
  4. "data": null
  5. }

5.发票单列表获取 /obtainInvoiceList

5.1使用场景

开发者需要获取发票单的信息列表时调用

5.2使用说明

开发者需在发票申请信息的状态为已开票的状态下调用本接口

5.3接口入参

字段 说明 是否必填
invoiceFrom 发票申请来源:1:电商2:全员营销 3:X6
applyId 发票申请编号

5.4接口出参

  1. {
  2. "code": 200,
  3. "msg": null,
  4. "data": {
  5. "invoiceRecordOutDtoList": [
  6. {
  7. "invoiceSerialNo": "发票流水号",
  8. "invoiceNo": "发票号",
  9. "invoiceCode": "发票代码",
  10. "invoiceUrl": "发票链接",
  11. "invoiceStatus": "发票状态:1:未开票 2:已开票 3:已下载",
  12. "invoiceType":"发票类型 1-电子票2-纸质票",
  13. "invoiceTime":"开票日期",
  14. "isRed":"是否为红票 0-非红票 1-红票",
  15. "originalInvoiceNo":"原发票号",
  16. "originalInvoiceCode""原发票代码"
  17. }
  18. ]
  19. }
  20. }

6.电子发票手动下载 /downloadManualInvoice

6.1使用场景

开发者需要下载或获取指定发票流水号的发票链接地址

6.2使用说明

开发者向接口传入发票流水号即可

6.3接口入参

字段 说明 是否必填
invoiceSerialNo 发票流水号

6.4接口出参

成功的情况

  1. {
  2. "code": 200,
  3. "msg": null,
  4. "data": {
  5. "invoiceRecordOutDto": {
  6. "invoiceSerialNo": "发票流水号",
  7. "invoiceNo": "发票号",
  8. "invoiceCode": "发票代码",
  9. "invoiceUrl": "发票地址",
  10. "invoiceStatus": "发票状态:1:未开票 2:已开票 3:已下载"
  11. }
  12. }
  13. }

失败的情况

  1. #流水号有误
  2. {
  3. "code": 501,
  4. "msg": "发票流水号有误,无发票信息",
  5. "data": null
  6. }
  7. #未开具不可下载
  8. {
  9. "code": 501,
  10. "msg": "发票未开具成功,无法下载",
  11. "data": null
  12. }
  13. #未下载成功
  14. {
  15. "code": 501,
  16. "msg": "发票下载链接努力准备中,请稍后重试",
  17. "data": null
  18. }

7.纸质发票单号回填 /paperInvoiceBackFill

7.1使用场景

用户申请纸质发票,此时需要财务线下开具发票后回填发票号到系统

7.2使用说明

开发者将发票号等信息传入接口即可

7.3接口入参

字段 说明 是否必填
invoiceFrom 发票来源
orderNo 订单号
applyId 发票申请编号
invoiceNo 发票单号

7.4接口出参

成功返回

  1. {
  2. "code": 200,
  3. "msg": null,
  4. "data": null
  5. }

失败返回

  1. {
  2. "code": 501,
  3. "msg": "发票号重复",
  4. "data": null
  5. }