O Hub de Integração/Fidelidade em sua versão nova possui diversas mudanças, como uma interface atualizada, construção de novos parâmetros e layouts a serem utilizados, e uma conexão com o sistema do Venda Fácil. Com isso, as novas implantações tornarão o sistema atual e com maior facilidade de uso.
Configurações do novo Hub Fidelidade
Com a criação desta nova versão, foram introduzidos parâmetros únicos para a utilização do novo Hub Fidelidade, assim como um layout novo e fácil de utilizar.
Novo Parâmetro do Hub Fidelidade
Para identificar se o sistema está utilizando a versão nova do Hub Fidelidade naquele momento, o usuário deverá acessar o caminho "Empresa > Parâmetros Globais > Hub Fidelidade" e selecionar o parâmetro restrito "Utiliza novo Hub Fidelidade" (presente no campo específico Hub Fidelidade (Novo)), no qual deverá estar marcado para assim indicar que de fato a nova versão está em uso. Também estará presente a descrição do parâmetro indicando sua função, assim como, na área de checkbox, o sistema alertará para o usuário se a empresa faz uso do novo Hub Fidelidade. Ao ser ativado, o sistema migrará totalmente para a nova versão do Hub Fidelidade.

Parâmetro restrito "Utiliza Novo Hub Fidelidade"

Aviso sobre empresa que utiliza o novo Hub Fidelidade
Novo Layout do Hub Fidelidade
Com uma nova atualização visual, o novo Hub Fidelidade apresentará apenas campos pertinentes às necessidades atuais de configuração, assim como a distribuição de campos ao longo da nova página. Ao acessar o caminho "Integração > Hub Fidelidade (Novo)", serão listados os parceiros disponíveis para escolha, e após a escolha, haverão campos de dados das empresas relacionada ao parceiro.

Tela de seleção de parceiro

Listagem de empresas relacionadas ao parceiro selecionado
Os campos disponíveis para o usuário são:
- Empresa (Visualização);
- CNPJ (Visualização);
- Chave de Integração (Preenchimento);
- Ambiente (Seleção);
- Ativo (Seleção);
- Salvar configurações (Confirmação);
Após o salvamento, a tela de confirmação aparecerá para o usuário, mostrando que a ação foi bem sucedida. Porém, se houver algum erro, será mostrado um alerta indicando qual campo está vazio ou preenchido incorretamente.

Tela de salvamento de configurações bem sucedida

Alerta de erro ao salvar as configurações
Integração Venda Fácil x Hub Fidelidade Novo
O Hub Fidelidade novo também se adequa às utilizações realizadas no Venda Fácil, em relação às chamadas de seus métodos, respostas enviadas ou esperadas, e exibição de retornos em tela.
Também estará presente uma mensagem de retorno indicando o saldo do cliente, e exibindo o mesmo em tela, contendo os seguintes dados:
- Título;
- Nome;
- CPF;
- Saldo total;
- Saldo disponível;

Retorno de dados do cliente
O cadastro do consumidor será enviado e validado, verificando se houve alterações, e caso seja sucessivo, uma mensagem de retorno será exibida em tela para o usuário. Caso seja falho, uma mensagem de retorno sobre a falha será exibida para o usuário, assim como uma função de tentar realizar o cadastro novamente.

Mensagem de retorno sobre erro
Após a seleção do cliente, haverá um ícone ao lado direito para expandir, mostrando um menu que permite ao usuário selecionar a opção "Consultar Saldo Parceiro". Ao clicar no botão, a mesma tela mostrada nas opções de cadastrar/selecionar será mostrada, assim como os mesmos dados mencionados anteriormente.

Utilização de saldo
Ao clicar no botão de "Efetuar Pagamento", o fluxo com PIN (que deverá conter no máximo até 8 dígitos) mostrará o saldo a ser usado na hora de finalizar a venda, verificando o preenchimento de campos presentes no saldo. Ao clicar em "Continuar sem utilizar saldo", uma aba de confirmação será mostrada, no qual ao confirmar, direciona o usuário para a tela de pagamento (sem utilizar o saldo de fidelidade), e ao negar, retorna o usuário para a tela de utilização de saldo. Ao clicar em "Fechar", permanecerá na tela atual.


Tela de confirmação de pagamento (sem utilizar saldo de fidelidade)
Ao marcar "Utilizar Saldo", o botão "Enviar" ficará disponível, e ao clicar, as informações serão enviadas para o parceiro, baseando-se no fato do usuário ou parceiro usar ou não o PIN. No caso da falha de resgate do valor, o saldo será mantido como desconto, com um aviso informando que o ajuste de saldo deve ser feito manualmente na plataforma do parceiro. Após a validação sem erros, será gerada e autorizada a nota após o resgate do valor. Caso surja algum erro na validação, o estorno do valor do bônus será realizado. No caso de falha ao estornar, uma mensagem de erro será mostrada em tela, possibilitando ao usuário a fechar a aba ou tentar o processo novamente.

Tela de validação (utilizando PIN)

Mensagem de erro sobre falha no resgate do valor
No fluxo com DAV, ao finalizar a pré-venda e realizar o pagamento da mesma, o sistema voltará para a tela de itens para que "Efetuar Pagamento" seja clicado novamente. Os fluxos de fidelidade ocorrerão somente ao finalizar uma pré-venda.
Notificação de venda ao parceiro
Ao clicar em "Finalizar", as informações serão enviadas para o parceiro, retornando as campanhas disponíveis para a pontuação em tela. Após a seleção do usuário, o mesmo finalizará e após autorização, será impresso um comprovante com as informações atuais de saldo. A opção "Não Bonificar", somente aparecerá se o parceiro retornar que o botão está disponível para uso, disponibilidade esta que é provida através da API pelo parâmetro "HabilitaBotaoNaoBonificar".

Tela de finalização do envio de dados

Tela de retorno de saldo disponível

Tela com aviso sobre erro na geração de bônus
Será possível realizar a impressão de um comprovante não fiscal, contendo as informações de saldo do cliente no que diz respeito ao: uso de saldo como desconto na venda atual, geração de bônus para uso em próximas vendas e saldo total disponível para uso. Toda impressão, será feita manualmente ao expandir o menu, situado ao lado direito do botão "Imprimir comprovante".

Comprovante Venda Fácil
Estorno de saldos utilizados
É possível verificar que os estornos dos valores podem ocorrer quando uma venda finalizada for cancelada, ou quando ocorrer algum erro ao clicar em "Finalizar" (onde o saldo já foi descontado). Na aba "Venda Finalizada", localizada em "Configurações > Minhas vendas > Opções da venda > Cancelar", ao clicar em cancelar e com a nota tendo o status "Cancelado", as informações serão enviadas para o parceiro, onde ao ter sucesso em estornar, um pop-up de confirmação será mostrado em tela. No caso de falha ao estornar, uma mensagem de erro será mostrada em tela, possibilitando ao usuário a fechar a aba ou tentar o processo novamente.

Tela de vendas finalizadas canceladas

Mensagem de confirmação de estorno realizado com sucesso

Mensagem de erro referente ao estorno
Mensagem sobre problemas de configuração com o parceiro
No caso de uma falha de comunicação com o parceiro, será mostrada uma aba relatando o erro em si. Ao atualizar o cliente ou consultar o saldo do cliente no sistema, caso retorne uma falha, será mostrada a mensagem com a descrição do que ocorreu, assim como as opções de "Fechar" ou "Tentar Novamente".

Aba de erro referente à atualização de cliente e consulta de saldo do cliente

Quando o parceiro enviar retornar dados fora dos padrões da API.
Token de Cadastro/Autenticação
Em relação à utilização do Token de autorização para ser cadastrado nas configurações do sistema, o mesmo não possuirá expiração e terá no máximo 600 caracteres. Juntamente com este Token, um parâmetro relacionado ao CNPJ também será enviado, informando qual o CNPJ da loja que está sendo utilizada, assim como o ambiente atual em uso (produção ou homologação).
Parâmetro | Tipo | Valor |
Authorization | String | "eyJhbGciOiJodHRwOi8vd3d3..." |
cnpj | String | "54517628001593" |
tipo_ambiente | Inteiro | Homologação = 0, Produção = 1 |
produto_descricao | String | Microvix, Seta |
Segue abaixo a lista de endpoints da API, que devem ser implementados em uma única controller.
AtualizarCliente
{
"IdentificadorTransacao": "string",
"Nome": "string",
"RG": "string",
"CPF": "string",
"EstadoCivil": 1,
"DataNascimento": "2024-12-12T12:52:57.111Z",
"Sexo": 0,
"Profissao": "string",
"NomeMae": "string",
"NomePai": "string",
"NomeConjuge": "string",
"Naturalidade": "string",
"Escolariedade": 0,
"RendaMensal": 0,
"NumeroDependentes": 0,
"LocalDeTrabalho": "string",
"TempoNoAtualEmprego": "string",
"Endereco": {
"Cep": "string",
"Logradouro": "string",
"Numero": "string",
"Complemento": "string",
"Bairro": "string",
"Cidade": "string",
"UF": "string",
"Pais": "string"
},
"Contato": {
"Telefone": "string",
"Celular": "string",
"Email": "string"
}
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Nome | String |
|
RG | String |
|
CPF | String |
|
EstadoCivil | Inteiro | NaoInformado = 1, Casado = 2, Solteiro = 3, Divorciado = 4, Viuvo = 5, Outros = 6, Concubinato = 7 |
DataNascimento | String |
|
Sexo | Inteiro | NaoInformado = 0, Masculino = 1, Feminino = 2 |
Profissao | String |
|
NomeMae | String |
|
NomePai | String |
|
NomeConjuge | String |
|
Naturalidade | String |
|
Escolariedade | Inteiro | NaoInformado = 0, EnsinoFundamentalIncompleto = 1, EnsinoFundamentalCompleto = 2, EnsinoMedioCompleto = 3, GraduacaoCompleto = 4, PosGraduacaoCompleto = 5 |
RendaMensal | Decimal |
|
NumeroDependentes | Inteiro |
|
LocalDeTrabalho | String |
|
TempoNoAtualEmprego | String |
|
Cep | String |
|
Logradouro | String |
|
Numero | String |
|
Complemento | String |
|
Bairro | String |
|
Cidade | String |
|
UF | String |
|
Pais | String |
|
Telefone | String |
|
Celular | String |
|
Email | String |
|
{
"IdentificadorTransacao": "string",
"SaldoAtual": 0,
"SaldoDisponivel": 0,
"UtilizaPin": true,
"TipoPin": 1,
"ClienteCadastrado": true
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
SaldoAtual | Decimal |
| Obrigatório |
SaldoDisponivel | Decimal |
| Obrigatório |
UtilizaPin | Booleano |
| Obrigatório |
TipoPin | Inteiro | Celular = 1, Email = 2 |
|
ClienteCadastrado | Booleano |
|
|
ConsultarSaldoCliente
{
"IdentificadorTransacao": "string",
"Venda": {
"Cpf": "string",
"Vendedor": {
"Id": 0,
"Nome": "string"
},
"DataHora": "2024-12-12T12:56:54.891Z",
"ValorLiquido": 0,
"ValorBruto": 0,
"DescontoTotalValor": 0,
"QuantidadeTotalItens": 0,
"Itens": [
{
"ValorAcrescimo": 0,
"ValorUnitario": 0,
"Ordem": 0,
"Codigo": 0,
"Ean": "string",
"Produto": "string",
"QuantidadeTotal": 0,
"ValorLiquido": 0,
"ValorBruto": 0,
"ValorDesconto": 0
}
]
}
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Cpf | String |
|
Id | Inteiro |
|
Nome | String |
|
DataHora | String |
|
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
DescontoTotalValor | Decimal |
|
QuantidadeTotalItens | Inteiro |
|
ValorAcrescimo | Decimal |
|
ValorUnitario | Decimal |
|
Ordem | Inteiro |
|
Codigo | Inteiro |
|
Ean | String |
|
Produto | String |
|
QuantidadeTotal | Inteiro |
|
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
ValorDesconto | Decimal |
|
{
"IdentificadorTransacao": "string",
"SaldoAtual": 0,
"SaldoDisponivel": 0,
"UtilizaPin": true,
"TipoPin": 1,
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
SaldoAtual | Decimal |
| Obrigatório |
SaldoDisponivel | Decimal |
| Obrigatório |
UtilizaPin | Booleano |
| Obrigatório |
TipoPin | Inteiro | Celular = 1, Email = 2 |
|
SolicitarPin
{
"IdentificadorTransacao": "string",
"Celular": "string",
"Email": "string",
"Cpf": "string",
"TipoPin": 1
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Celular | String |
|
Email | String |
|
Cpf | String |
|
TipoPin | Inteiro | Celular = 1, Email = 2 |
{
"IdentificadorTransacao": "string"
}
ValidarPin
{
"IdentificadorTransacao": "string",
"Cpf": "string",
"Pin": "string"
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Cpf | String |
|
Pin | String |
|
{
"IdentificadorTransacao": "string",
"PinValido": true,
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
PinValido | Booleano |
| Obrigatório |
ConsultarCampanha
{
"IdentificadorTransacao": "string",
"Venda": {
"ValorLiquido": 0,
"ValorBruto": 0,
"ValorAcrescimo": 0,
"DescontoTotalValor": 0,
"ValorResgate": 0,
"CupomDesconto": "string",
"QuantidadeTotalItens": 0,
"FormasDePagamento": [
{
"Id": 1,
"ValorPago": 0
}
],
"Cpf": "string",
"Vendedor": {
"Id": 0,
"Nome": "string"
},
"DataHora": "2024-12-12T12:55:46.129Z",
"Itens": [
{
"Ordem": 0,
"Codigo": 0,
"Ean": "string",
"Produto": "string",
"QuantidadeTotal": 0,
"ValorLiquido": 0,
"ValorBruto": 0,
"ValorDesconto": 0,
"ValorAcrescimo": 0,
"ValorUnitario": 0
}
]
}
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
ValorAcrescimo | Decimal |
|
DescontoTotalValor | Decimal |
|
ValorResgate | Decimal |
|
CupomDesconto | String |
|
QuantidadeTotalItens | Inteiro |
|
FormasPagamento | Inteiro |
|
Cpf | Inteiro |
|
Id | Inteiro |
|
Nome | String |
|
DataHora | String |
|
Ordem | Inteiro |
|
Codigo | Inteiro |
|
Ean | String |
|
Produto | String |
|
QuantidadeTotal | Inteiro |
|
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
ValorDesconto | Decimal |
|
Em relação ao parâmetro FormasPagamento, há diversas configurações de atributos disponíveis para utilização, contendo um número e uma descrição. Os atributos referentes a esse parâmetro são:
Número | Descrição |
01 | Dinheiro |
02 | Cheque |
03 | Cartão de Crédito |
04 | Cartão de Débito |
05 | Cartão da Loja (Private Label), Crediário Digital, Outros Crediários |
10 | Vale Alimentação |
11 | Vale Refeição |
12 | Vale Presente |
13 | Vale Combustível |
14 | Duplicata Mercantil |
15 | Boleto Bancário |
16 | Depósito Bancário |
17 | Pagamento Instantâneo (PIX) - Dinâmico |
18 | Transferência bancária, Carteira Digital |
19 | Programa de fidelidade, Cashback, Crédito Virtual |
20 | Pagamento Instantâneo (PIX) - Estático |
21 | Crédito em Loja |
22 | Pagamento Eletrônico não Informado - falha de hardware do sistema emissor |
90 | Sem Pagamento |
99 | Outros |
{
"IdentificadorTransacao": "string",
"Campanhas": [
{
"Id": 0,
"Descricao": "string",
"TextoComplementar": "string",
"ValorDesconto": 0,
"DataInicio": "2024-12-12T12:56:02.198Z",
"DataFinal": "2024-12-12T12:56:02.198Z"
}
],
"HabilitaBotaoNaoBonificar": false
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
Campanhas | Objeto |
| Obrigatório |
HabilitaBotaoNaoBonificar | Booleano |
| Obrigatório |
ValidarBonus
{
"IdentificadorTransacao": "string",
"Cpf": "string",
"VendaValorLiquido": 0,
"ValorResgatado": 0
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Cpf | String |
|
VendaValorLiquido | Decimal |
|
ValorResgatado | Decimal |
|
{
"IdentificadorTransacao": "string"
}
GerarBonus
{
"IdentificadorTransacao": "string",
"Venda": {
"Cpf": "string",
"Vendedor": {
"Id": 0,
"Nome": "string"
},
"DataHora": "2024-12-12T12:56:54.891Z",
"ValorLiquido": 0,
"ValorBruto": 0,
"DocumentoNF": "string",
"SerieNF": "string",
"DescontoTotalValor": 0,
"ValorResgate": 0,
"CupomDesconto": "string",
"QuantidadeTotalItens": 0,
"FormasDePagamento": [
{
"Id": 1,
"ValorPago": 0
}
],
"Itens": [
{
"ValorAcrescimo": 0,
"ValorUnitario": 0,
"Ordem": 0,
"Codigo": 0,
"Ean": "string",
"Produto": "string",
"QuantidadeTotal": 0,
"ValorLiquido": 0,
"ValorBruto": 0,
"ValorDesconto": 0
}
]
},
"CampanhaId": 0
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Cpf | String |
|
Id | Inteiro |
|
Nome | String |
|
DataHora | String |
|
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
DocumentoNF | String |
|
SerieNF | String |
|
DescontoTotalValor | Decimal |
|
ValorResgate | Decimal |
|
CupomDesconto | String |
|
QuantidadeTotalItens | Inteiro |
|
FormasPagamento | Inteiro |
|
ValorAcrescimo | Decimal |
|
ValorUnitario | Decimal |
|
Ordem | Inteiro |
|
Codigo | Inteiro |
|
Ean | String |
|
Produto | String |
|
QuantidadeTotal | Inteiro |
|
ValorLiquido | Decimal |
|
ValorBruto | Decimal |
|
ValorDesconto | Decimal |
|
CampanhaId | Inteiro | Este campo poderá ser nulo |
Em relação ao parâmetro FormasPagamento, há diversas configurações de atributos disponíveis para utilização, contendo um número e uma descrição. Os atributos referentes a esse parâmetro são:
Número | Descrição |
01 | Dinheiro |
02 | Cheque |
03 | Cartão de Crédito |
04 | Cartão de Débito |
05 | Cartão da Loja (Private Label), Crediário Digital, Outros Crediários |
10 | Vale Alimentação |
11 | Vale Refeição |
12 | Vale Presente |
13 | Vale Combustível |
14 | Duplicata Mercantil |
15 | Boleto Bancário |
16 | Depósito Bancário |
17 | Pagamento Instantâneo (PIX) - Dinâmico |
18 | Transferência bancária, Carteira Digital |
19 | Programa de fidelidade, Cashback, Crédito Virtual |
20 | Pagamento Instantâneo (PIX) - Estático |
21 | Crédito em Loja |
22 | Pagamento Eletrônico não Informado - falha de hardware do sistema emissor |
90 | Sem Pagamento |
99 | Outros |
{
"IdentificadorTransacao": "string",
"SaldoBonusGeradoVenda": 0,
"SaldoBonusAtual": 0,
"MensagemComplementar": "string"
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
SaldoBonusGeradoVenda | Decimal |
| Obrigatório |
SaldoBonusAtual | Decimal |
| Obrigatório |
MensagemComplementar | String |
|
|
EstornarBonus
{
"IdentificadorTransacao": "string",
"DocumentoNF": "string",
"SerieNF": "string",
"Cpf": "string"
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
DocumentoNF | String |
|
SerieNF | String |
|
Cpf | String |
|
{
"IdentificadorTransacao": "string",
"ValorEstornadoUtilizado": 0,
"ValorEstornadoGerado": 0,
"SaldoBonusAtual": 0,
"MensagemComplementar": "string",
"DataHora": "2024-12-12T12:56:33.328Z"
}
Parâmetro | Tipo | Valor | Obrigatoriedade |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
|
ValorEstornadoUtilizado | Decimal |
| Obrigatório |
ValorEstornadoGerado | Decimal |
| Obrigatório |
SaldoBonusAtual | Decimal |
| Obrigatório |
MensagemComplementar | String |
|
|
DataHora | String |
| Obrigatório |
Para todas as rotas da API, ao retornar um erro de regra de negócio (HTTP 400 - Bad Request), a resposta deve seguir a estrutura abaixo:
{
"IdentificadorTransacao": "string",
"Codigo": 0,
"Mensagem": "string"
}
Parâmetro | Tipo | Valor |
IdentificadorTransacao | String | GUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301 |
Código | String |
|
Mensagem | String |
|