跳转至

原始需求

# ECERPH-28313 【巴西发票】新增发票发票管理页面 🚀 0-1 需求 | 状态:已完成 | 创建:2025-05-26 | 最后更新:2026-05-18 云效链接 负责人:梁康太 | 需求类型:交付先锋(便捷性等) | 模块:销售-客服管理 | 迭代:20250630-紧急-6月紧急迭代

原始需求描述

  1. 背景(谁?什么问题?有什么影响?为什么?)

UI图:https://www.figma.com/design/9FiI688Zkm8KsDgzADtl1Y/CJY%E9%9C%80%E6%B1%82?node-id=0-1&p=f&t=6ldbV7fPj9wkNBwO-0

oapi提供的接口:https://eccang.yuque.com/gv76wn/dfz5b2/zchwmz8noprskaad

Bling接口文档:

https://developer.bling.com.br/bling-api#introdu%C3%A7%C3%A3o

  1. 需求(做什么?怎么做?有什么要注意的?)

前置需求:

1.https://devops.aliyun.com/projex/req/ECERPH-28011# 《【巴西发票】仓配系统》产品资料新增支持填入税务信息NCM和CEST》

2.https://devops.aliyun.com/projex/req/ECERPH-27925# 《【巴西发票】订单系统》shopee订单新增待上传发票和已上传发票的标识》

3.https://devops.aliyun.com/projex/req/ECERPH-27601# 《【巴西发票】订单系统》shopee订单保存订单的CPF》

4.https://devops.aliyun.com/projex/req/ECERPH-28014# 《【巴西发票】新增Bling平台授权功能》

中台需求:

1.https://devops.aliyun.com/projex/req/ECERPJ-7664# 《中台》shopee需要提供一个拉取订单list的透传接口接口》【已上线】

关联文档:

https://eccang.yuque.com/gv76wn/kz11w8/sfog071znefqc8gn

2.https://devops.aliyun.com/projex/req/ECERPJ-7601# 《中台》shopee新增对接上传发票的接口》【已上线】

【以上基础需求需要和巴西发票需求一起上线】

----------------------------------------------------------------------------------------------------------------------------------------------------------

订单系统》巴西发票管理

  1. 新增巴西发票管理-店铺绑定页面

(1)展示当前授权的Bling账号以及绑定的店铺账号别名。

(2)点击查看全部和绑定店铺弹出如下绑定店铺弹窗

 

①添加绑定店铺弹窗如下,支持一次性多选多个店铺,选择多个店铺后按照每个店铺一行进行保存数据。

 

②添加店铺内仅展示Shopee巴西店铺以及未绑定Bling账号的店铺。

③发票商品金额支持以下2个设置方式

④发票运费金额支持选择不含买家运费和含买家运费

(2)编辑绑定设置弹窗如下

(3)删除绑定设置弹窗如下:

(4) 日志

操作场景

日志内容

绑定店铺关系

将XX店铺和此Bling账号绑定,发票商品金额按照商品金额百分比:10%,不含买家运费进行开票

编辑店铺关系

XX店铺的发票商品金额设置由按照商品金额百分比:10%调整为按照订单全额开票

删除店铺关系

删除和XX店铺的绑定关系

(5)筛选项

Bling账号:支持多选筛选

店铺账号:仅显示shopee店铺,支持多选筛选

授权状态:已授权/授权异常/已过期,单选筛选

账号状态:开启/关闭,单选筛选

2.在shopee订单上待发货审核状态下新增按钮

(1)勾选的订单不是待上传发票的订单提示

 

(2))勾选的订单的订单号在系统内已经申请开票过了

 

 

(2)勾选的订单都是待上传发票订单的时候弹窗如下:

①点击开票的时候检验订单所在店铺有没有绑定Bling店铺

②检验商品信息中是否缺失NCM码

③检查订单中是否所有商品都设置了不发

④订单的商品缺失产品商品英文名

 

⑤已经成功加入创建发票队列

  

 

(3)①以上勾选的订单仅加入待开发票的队列等待等待订单审核成功后按照订单审核后的订单内容生成发票

②这些订单在审核的时候要推送给仓配系统,通知仓配系统这些订单为待上传发票的订单,暂缓进行订单预报。

③创建发票成功(即订单发票状态为开票中)后需要在订单日志中记录:”订单已提交开票,请在巴西发货管理页面查看开票结果。此订单将在发票上传成功后再进行预报。”

(4)创建发票接口调用详情说明

参数名

必选

类型

说明

服务商字段名

系统取值说明

account

是

object

帐号信息(params.account)

url

否

string

API请求地址 不填会使用默认地址:https://www.bling.com.br

authCompanyCode

是

string

帐号中心公司代码

传这2个字段时,将会使用帐号中心的授权信息

客户代码

platformSellerId

是

string

帐号中心店铺帐号

Bling店铺账号英文名

username

是

string

bling账号

传这3个字段时,将会使用OAPI的授权功能

clientId

是

string

bling开发者clientId

clientSecret

是

string

bling开发者clientSecret

order

是

object

订单信息

(params.order)

orderNo

是

string

订单号

系统订单号

weightUnit

否

string

重量单位,可选值(KG、G、LB、OZ),默认KG

KG 千克

G 克

LB 磅

OZ 盎司

createTime

否

string

签发时间(巴西时间)

example: 2025-05-12 12:34:19

不传值时默认传当前时间

dataOperacao

创建发票的时间(使用巴西首都的时间UTC-3)

shippingAmount

否

string

发票相关的额外费用。这些费用可以是运输费、手续费、包装费等,通常会影响发票的总金额。

默认为0

despesas

根据订单上用户的设置决定是否填写运费

discountAmount

否

string

对发票总金额的折扣。折扣可以是固定金额或百分比,通常用于促销、客户优惠或批量购买

默认为0

desconto

remark

否

string

备注

不传值时默认取第1个商品英文名

observacoes

ext

是

object

订单信息扩展字段

(params.order.ext)

naturezaOperacaoId

否

string

操作性质ID

这个 ID 是 Bling 系统内部生成的,用于区分不同的操作性质

您可登录 Bling 系统,导航到 Cadastros > Naturezas de Operação,在列表中查找您需要的操作性质,并记录其 ID。

naturezaOperacao.id

invoiceNum

否

string

发票序号

如果不传,则会从bling获取最大发票序号再加1生成

numero

products

是

[]object

产品信息

params.order.products

nameEn

是

string

英文品名

descricao

仓库SKU产品英文名。如果缺失英文名则报错提示

sku

否

string

产品sku

为空时取nameEn值

codigo

仓库SKU编码

quantity

是

int

数量

quantidade

仓库SKU数量

quantityUnit

否

string

数量单位

默认:PCS

unidade

price

是

float

产品单价

最多保留2位小数

valor

根据订单设置计算:

(1)全额:按照订单商品单价原价进行取值

(2)自定义比例:按照订单单价原价*自定义比例计算取值

grossWeight

否

float

毛重

最多保留2位小数

pesoBruto

netWeight

否

float

净重

最多保留2位小数

pesoLiquido

ext

是

object

扩展字段

(params.products.*.ext)

商品扩展

ncm

否

string

NCM(Nomenclatura Comum do Mercosul,南方共同市场通用命名法)是一个用于商品分类的编码系统。它是巴西和其他南方共同市场国家(如阿根廷、巴拉圭、乌拉圭等)用于标识商品类型和适用税率的标准编码。

classificacaoFiscal

根据仓配系统用户在仓库SKU上填写的NCM推送

cest

否

string

CEST(Código Especificador da Substituição Tributária,替代税特定代码)是一个用于标识商品是否适用 替代税制度(Substituição Tributária, ST) 的编码。CEST 编码与 NCM 编码结合使用,帮助确定商品的税务处理方式。

cest

根据仓配系统用户填写在仓库SKU上填写的的Cest推送

source

否

string

Origem(来源)用于标识商品的来源地。这个字段与巴西的税务规则(如 ICMS 税率)密切相关,直接影响税费的计算。默认为0.

0 国产商品(Nacional)

1 进口商品(Estrangeira - Importação Direta)

2 进口商品(Estrangeira - Adquirida no Mercado Interno)

3 国产商品,且符合特定法律条件(Nacional, Conteúdo de Importação >= 40%)

4 国产商品,且符合特定法律条件(Nacional, Cuja Produção Seguiu Processos Produtivos Básicos)

5 国产商品,且符合特定法律条件(Nacional, Conteúdo de Importação < 40%)

6 进口商品(Estrangeira - Importação Direta, sem Similar Nacional)

7 进口商品(Estrangeira - Adquirida no Mercado Interno, sem Similar Nacional)

8 国产商品,且符合特定法律条件(Nacional, Conteúdo de Importação >= 70%)

origem

serviceCode

否

string

服务代码,是用于标识发票(Nota Fiscal de Serviço, NFS-e)中提供的服务类型的代码。这个代码是巴西市政服务税(ISS)计算和申报的关键信息。

codigoServico

shipper

是

object

发件人信息(params.shipper)

name

否

string

姓名

companyName

否

string

公司名称

nomeUsuario

countryCode

否

string

国家二字简码

stateOrProvince

否

string

州/省

city

否

string

城市

address1

否

string

地址1

address2

否

string

地址2

houseNo

否

string

门牌号

postalCode

否

string

邮编

phone

否

string

电话号码

mobile

否

string

电话号码

phoneExtension

否

string

电话分机号

email

否

string

E-mail

vatNum

否

string

cnpj税号

cnpj

consignee

是

object

收件人信息(params.consignee)

name

是

string

姓名

nome

收件人名称

countryCode

是

string

国家二字简码

默认为BR

pais

收件人国家二字码

stateOrProvince

是

string

州/省

uf

州/省

city

是

string

城市

municipio

城市

address1

是

string

地址1

endereco

地址1

address2

否

string

地址2

地址2

houseNo

否

string

门牌号

numero

门牌号

postalCode

否

string

邮编

cep

邮编

phone

是

string

电话号码

telefone(有手机优先取手机,否则取电话)

mobile

否

string

手机号码

手机号码

email

否

string

邮箱号

email

邮箱号

vatNum

是

string

CNPJ(公司) 或 CPF(个人) 税号

numeroDocumento

CPF

ext

是

object

扩展字段

(params.consignee.ext)

personType

否

联系人的类型

F-Física 个人

J-Jurídica 公司

E-Estrangeira 外国联系人

不填默认 F

tipoPessoa

根据用户选择

taxPayer

否

string

纳税人类型(可不传)

1 Contribuinte do ICMS 需要缴纳 ICMS 的正规企业

2 Contribuinte isento de ICMS 享受 ICMS 免税政策的行业或交易

9 Não contribuinte 个人消费者

如果未传值时,会自动根据 personType值传值:如果 personType 为 J 时传 1; 为 F 时,传 9;默认传2

contribuinte

stateTaxNum

是

string

州税号

当personType为 J 时必填

ie

用户填写则提供

specialAttr

是

object

运输属性

insuranceValue

否

float

与发票相关的保险费用。保险费用通常用于保障货物在运输过程中的安全,可能会影响发票的总金额。

默认为0

3.发票管理页面

(1)发票状态说明

状态

场景说明

可操作按钮

开票中

加入系统创建发票队列未推送到Bling的发票

查看详情

日志

开票失败

调用了Bling接口开票失败的发票。(需要区分创建发票接口报错还是发送发票接口报错)

查看详情

日志

已开票

调用Bling接口开票成功的发票

查看详情

下载XML

下载DANFE(下载PDF)

(2)查看详情

(3)下载XML/下载DANFE/下载

以上按钮仅在已开票状态下显示。

下载按钮的情况下,如果勾选了发票则导出勾选发票,如果没有勾选发票则导出筛选条件下的发票。

导出的多个发票的时候合并在一个压缩包内,压缩包的名称为:”日期+时间+发票XML/发票Danfe“。例如:202505261130:01发票XML

(4)列表字段说明

字段名称

取值说明

系统订单号

系统订单号+系统订单状态

发票号

已开票状态显示发票号,点击发票号弹出发票详情弹窗

Bling账号

发票关联的Bling 账号,显示别名和英文名

店铺账号

订单所属的店铺,显示别名和英文名

开票金额

订单中商品开票金额+运费开票金额之和

收件人名称

发票的收票人的名称以及CPF

时间

创建时间:发票在系统的创建时间

开票时间:发票推送给Bling的时间

上传时间:发票推送给平台的时间

开票失败原因

仅在开票失败下显示。

需要根据返回判断是创建发票失败还是发送发票失败,并且显示对应的提示词。如下:

创建发票失败,请查看以下失败原因,然后按照失败原因编辑发票后提交重新开票

平台返回失败原因

创建发票失败,请查看以下失败原因,然后按照失败原因编辑发票后提交重新开票

系统返回失败原因(仓库SKU缺失NCM码;仓库SKU缺失英文名称)

发送发票失败,请查看以下失败原因,然后按照失败原因登陆Bling平台编辑发票后再提交开票

平台返回失败原因

上传状态

待上传:发票未生成的时候,等待上传发票的状态 

上传中:已生成发票并且进入上传队列的状态

已上传:发票已经成功上传到shopee的状态

上传失败:发票上传到shopee失败的状态

(6)筛选功能

全部店铺:显示shopee的巴西店铺支持多选筛选

全部Bling账号:显示Bling账号,支持多选筛选

开票失败原因:创建发票失败/发送发票失败,支持单选

系统订单号/参考号/发票号:单个搜索时候模糊搜索,多个搜索的时候精确搜索

上传状态:待上传、上传中、已上传、上传失败

时间筛选项:创建时间/开票时间/上传时间。默认选中最近3个月的创建时间

(7)订单的发票状态已开票状态并且通过系统上传发票到shopee成功则需要在对应订单的日志中记录“通过系统成功上传发票,发票号:XXXXXXXXX”

(8)在审核的时候要推送给仓配系统,通知仓配系统这订单为待上传发票的订单暂缓进行订单预报。

这些订单如果通过系统上传发票成功或者此订单更新为已上传发票的订单则再次通知仓配系统此订单可以进行预报了。

关联需求:https://devops.aliyun.com/projex/req/ECERPH-29587# 《仓配系统》shopee巴西待上传发票的订单需要上传发票成功后再进行预报》