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âmetroTipoValor
AuthorizationString"eyJhbGciOiJodHRwOi8vd3d3..."
cnpjString"54517628001593"
tipo_ambienteInteiroHomologação = 0, Produção = 1
produto_descricaoStringMicrovix, Seta
Estruturas Endpoints

Segue abaixo a lista de endpoints da API, que devem ser implementados em uma única controller.

Request - POST
{
  "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âmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
NomeString
RGString
CPFString
EstadoCivilInteiroNaoInformado = 1,  Casado = 2, Solteiro = 3, Divorciado = 4, Viuvo = 5, Outros = 6, Concubinato = 7
DataNascimentoString
SexoInteiroNaoInformado = 0, Masculino = 1, Feminino = 2
ProfissaoString
NomeMaeString
NomePaiString
NomeConjugeString
NaturalidadeString
EscolariedadeInteiroNaoInformado = 0, EnsinoFundamentalIncompleto = 1, EnsinoFundamentalCompleto = 2, EnsinoMedioCompleto = 3, GraduacaoCompleto = 4, PosGraduacaoCompleto = 5
RendaMensalDecimal
NumeroDependentesInteiro
LocalDeTrabalhoString
TempoNoAtualEmpregoString
CepString
LogradouroString
NumeroString
ComplementoString
BairroString
CidadeString
UFString
PaisString
TelefoneString
CelularString
EmailString
Response
{
  "IdentificadorTransacao": "string",
  "SaldoAtual": 0,
  "SaldoDisponivel": 0,
  "UtilizaPin": true,
  "TipoPin": 1,
  "ClienteCadastrado": true
}
ParâmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
SaldoAtualDecimal
Obrigatório
SaldoDisponivelDecimal
Obrigatório
UtilizaPinBooleano
Obrigatório
TipoPinInteiroCelular = 1, Email = 2
ClienteCadastradoBooleano

Request - POST
{ 
  "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âmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CpfString
IdInteiro
NomeString
DataHoraString
ValorLiquidoDecimal
ValorBrutoDecimal
DescontoTotalValorDecimal
QuantidadeTotalItensInteiro
ValorAcrescimoDecimal
ValorUnitarioDecimal
OrdemInteiro
CodigoInteiro
EanString
ProdutoString
QuantidadeTotalInteiro
ValorLiquidoDecimal
ValorBrutoDecimal
ValorDescontoDecimal
Response
{
  "IdentificadorTransacao": "string",
  "SaldoAtual": 0,
  "SaldoDisponivel": 0,
  "UtilizaPin": true,
  "TipoPin": 1,
}
ParâmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
SaldoAtualDecimal
Obrigatório
SaldoDisponivelDecimal
Obrigatório
UtilizaPinBooleano
Obrigatório
TipoPinInteiroCelular = 1, Email = 2
Request - POST
{
  "IdentificadorTransacao": "string",
  "Celular": "string",
  "Email": "string",
  "Cpf": "string",
  "TipoPin": 1
}
ParâmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CelularString
EmailString
CpfString
TipoPinInteiroCelular = 1, Email = 2
Response
{
  "IdentificadorTransacao": "string"
}
Request - POST
{
  "IdentificadorTransacao": "string",
  "Cpf": "string",
  "Pin": "string"
}
ParâmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CpfString
Pin String
Response
{
  "IdentificadorTransacao": "string",
  "PinValido": true,
}
ParâmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
PinValidoBooleano
Obrigatório
Request - POST
{ 
  "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âmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
ValorLiquidoDecimal
ValorBrutoDecimal
ValorAcrescimoDecimal
DescontoTotalValorDecimal
ValorResgateDecimal
CupomDescontoString
QuantidadeTotalItensInteiro
FormasPagamentoInteiro
CpfInteiro
IdInteiro
NomeString
DataHoraString
OrdemInteiro
CodigoInteiro
EanString
ProdutoString
QuantidadeTotalInteiro
ValorLiquidoDecimal
ValorBrutoDecimal
ValorDescontoDecimal

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úmeroDescrição
01Dinheiro
02Cheque 
03Cartão de Crédito
04Cartão de Débito
05Cartão da Loja (Private Label), Crediário Digital, Outros Crediários
10Vale Alimentação
11Vale Refeição
12Vale Presente
13Vale Combustível
14Duplicata Mercantil
15Boleto Bancário
16Depósito Bancário
17Pagamento Instantâneo (PIX) - Dinâmico
18Transferência bancária, Carteira Digital
19Programa de fidelidade, Cashback, Crédito Virtual
20Pagamento Instantâneo (PIX) - Estático
21Crédito em Loja 
22Pagamento Eletrônico não Informado - falha de hardware do sistema emissor
90Sem Pagamento
99Outros
Response
{
  "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âmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CampanhasObjeto
Obrigatório
HabilitaBotaoNaoBonificarBooleano
Obrigatório

Nota

  • Caso não queira enviar campanhas, deixar propriedade vazia ([]).
  • Por padrão, a tela sempre será iniciada com a primeira campanha selecionada.
  • Conforme o valor enviado na propridade 'HabilitaBotaoNaoBonificar', na tela ficará disponível o botão "Não Bonificar" (localizado ao lado do botão "Finalizar"). 
    • Portanto se o valor enviado for:
      • Verdadeiro (true): O vendedor poderá decidir se irá bonificar ou não.
      • Falso (false): Se houver campanhas, o vendedor sempre irá escolher uma campanha obrigatoriamente.
  • As propriedades abaixo só serão obrigatórias se "Campanhas" não for vazio.
    • ParâmetroTipoValorObrigatoriedade
      IdInteiro
      Obrigatório
      DescricaoString
      Obrigatório
      ValorDescontoDecimal
      Obrigatório
      DataInicioString
      Obrigatório
      DataFinalString
      Obrigatório
      TextoComplementarString

Request - POST
{
  "IdentificadorTransacao": "string",
  "Cpf": "string",
  "VendaValorLiquido": 0,
  "ValorResgatado": 0
}
ParâmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CpfString
VendaValorLiquidoDecimal
ValorResgatadoDecimal
Response
{
  "IdentificadorTransacao": "string"
}

A propriedade "VendaValorLiquido" refere-se ao total líquido da venda, o mesmo enviado nas rotas "ConsultarCampanha" e "GerarBonus" no objeto "Venda", na propriedade "ValorLiquido"

Esta rota sempre será executada no fluxo de venda do Hub, mesmo que não tenha sido gerado bônus.

Request - POST
{
  "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âmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CpfString
IdInteiro
NomeString
DataHoraString
ValorLiquidoDecimal
ValorBrutoDecimal
DocumentoNFString
SerieNFString
DescontoTotalValorDecimal
ValorResgateDecimal
CupomDescontoString
QuantidadeTotalItensInteiro
FormasPagamentoInteiro
ValorAcrescimoDecimal
ValorUnitarioDecimal
OrdemInteiro
CodigoInteiro
EanString
ProdutoString
QuantidadeTotalInteiro
ValorLiquidoDecimal
ValorBrutoDecimal
ValorDescontoDecimal
CampanhaIdInteiroEste 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úmeroDescrição
01Dinheiro
02Cheque 
03Cartão de Crédito
04Cartão de Débito
05Cartão da Loja (Private Label), Crediário Digital, Outros Crediários
10Vale Alimentação
11Vale Refeição
12Vale Presente
13Vale Combustível
14Duplicata Mercantil
15Boleto Bancário
16Depósito Bancário
17Pagamento Instantâneo (PIX) - Dinâmico
18Transferência bancária, Carteira Digital
19Programa de fidelidade, Cashback, Crédito Virtual
20Pagamento Instantâneo (PIX) - Estático
21Crédito em Loja 
22Pagamento Eletrônico não Informado - falha de hardware do sistema emissor
90Sem Pagamento
99Outros
Response
{
  "IdentificadorTransacao": "string",
  "SaldoBonusGeradoVenda": 0,
  "SaldoBonusAtual": 0,
   "MensagemComplementar": "string"
 }
ParâmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
SaldoBonusGeradoVendaDecimal
Obrigatório
SaldoBonusAtualDecimal
Obrigatório
MensagemComplementarString

Em caso de não haver bonificação na venda, o retorno dos parâmetros "SaldoBonusGeradoVenda" e "SaldoBonusAtual", o retorno do valor deverá ser 0. Portanto, irá retornar o response, contudo com as propriedades citadas zeradas.

Request - POST
{
  "IdentificadorTransacao": "string", 
  "DocumentoNF": "string",
  "SerieNF": "string",
  "Cpf": "string"
}
ParâmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
DocumentoNFString
SerieNFString
CpfString
Response
{
  "IdentificadorTransacao": "string",
  "ValorEstornadoUtilizado": 0,
  "ValorEstornadoGerado": 0, 
  "SaldoBonusAtual": 0,
  "MensagemComplementar": "string",
  "DataHora": "2024-12-12T12:56:33.328Z"
}
ParâmetroTipoValorObrigatoriedade
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
ValorEstornadoUtilizado Decimal
Obrigatório
ValorEstornadoGeradoDecimal
Obrigatório
SaldoBonusAtualDecimal
Obrigatório
MensagemComplementarString

DataHoraString
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:

Response
{
  "IdentificadorTransacao": "string",
  "Codigo": 0,
  "Mensagem": "string"
}
ParâmetroTipoValor
IdentificadorTransacaoStringGUID único para rastreamento da transação. Exemplo: 3F2504E0-4F89-41D3-9A0C-0305E82C3301
CódigoString
MensagemString

  • Sem rótulos