Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

Índice
maxLevel2
excludeÍndice

1. Jornada do Cliente

...

2. Pré-requisitos - Versões


TOTVS VAREJO PDV OMNISHOPOMNI3.2.148.0
TOTVS VAREJO PDV OMNISHOPOMNI3.2.159.0
TOTVS VAREJO FRANQUIAS E REDES

2022.9.15.8 (Corporativo) 

TOTVS AGENT19.8.12.0
TOTVS PRÉ REQUISITOS OMNISHOPPDV OMNI1.0.42.0



...

3. Autenticação 

Para que o consumo do métodos disponíveis da API seja possível é necessário que o SelfCheckout realize o processo de autenticação para obter o Token de Acesso. 

...

GET: http://<host>:9000/api/usuario/autenticar

Exemplo de Requisição

Produto (pelo código de barras):  http://<host>:9000/api/usuario/autenticar?Login=teste&senha=teste

Exemplo de Retorno


Bloco de código
languagejs
themeEclipse
titleExemplo de Requisição
collapsetrue
{
  "success": true,
  "message": "Usuario",
  "data": {
    "perfilId": 5,
    "nome": "Usuário Padrão",
    "cpf": "00000000000",
    "login": "",
    "senha": "",
    "administrador": 1,
    "tokenAcesso": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXJ9.eyJ1bmlxdWVfbmFtZSI6IlVzdcOhcmlvIFBhZHLDLCJyb2xlIjoiQWRtaW5pc3RyYWRvciIsIm5iZiI6MTY2MDY2Mjc0OCwiZXhwIjoxNjkyMTk4NzQ4LCJpYXQiOjE2NjA2NjI3NDh9.pXmH-sPu0CC2ks8uCP8lgMhHee3OyRq_w0v0IqBmDBs",
    "perfil": {
      "nome": "Administrador",
      "tipoPerfil": 1,
      "descontoMaximoItem": 100,
      "descontoMaximoTotal": 100,
      "funcionalidades": {},
    },
    "id": 1,
    "idRetaguarda": "",
    "situacao": 1,
    "dataCadastro": "2022-06-01T17:26:39.456566",
    "dataAtualizacao": "2022-06-01T17:26:39.456566",
    "_expandables": []
  }
}


...

4. Adicionando totem como dispositivo no PDV 

A loja já possuindo dispositivos móveis em funcionamento, deverá somente ser realizado o cadastro do dispositivo totem conforme abaixo. Caso a loja não irá trabalhar com dispositivos móveis, deverá ser realizado o cadastro do dispositivo totem conforme abaixo e posteriormente as configurações padrões de uma instalação para dispositivo móvel (modelo fiscal, série e numeração fiscal (para NFC-e), etc.).

...

O totem deverá armazenar a informação retornada no campo PDV, para que seja enviada a numeração ao finalizar uma venda.


...

5. Consultar Produto

Método utilizado para validar cadastro do produto e recuperar os dados do mesmo.

...

      Produtos informados no carrinho


5.1 Consultar produto com origem de balança etiquetadora

Método: api/Produto


Para realizar a busca de um produto de origem de balança emissora de etiqueta é necessário que o parâmetro chave 134 (utiliza balança emissora de etiqueta) esteja ativo e seja configurado os demais valores referente a leitura de etiqueta de acordo com o modelo de balança utilizada.

...

Totalizando um código com 13 dígitos(2100227016391) que será enviado na consulta do produto 

Exemplo de Requisição

Produto (pelo código de barras de balança emissora de etiqueta):  EXEMPLO CHAMADA

A partir dos dados  recuperados do código de barra será retornado o Valor total do produto fracionado, quantidade e preço unitário.



Exemplo de Retorno

Bloco de código
languagejs
themeEclipse
titleProduto
collapsetrue
 "Produtos": [
    {
      "Descricao": "69824  EKOS DES HID POLPA CRP CASTANHA NF",
      "Fracionado": true,
      "DataAtualizacao": "2021-11-24T08:00:17",
      "UnidadeMedida": "KG",
      "DescontoMaximo": 60,
      "TipoArredondaTrunca": "1",
      "TipoProduto": 2,
      "CodigoProduto": "100227",
      "CodigoAlternativo": "7908132224703",
      "IdImposto": 2,
      "IdNcm": 261,
      "OrigemProduto": "0",
      "IdRetaguarda": "d22e5b8d-f574-4603-b6a0-b5560c37224d",
      "Situacao": true,
      "IdPisCofins": 21542,
      "Preco": 10,
      "Quantidade": 1.639,
      "ValorTotal": 16.39,
      "Imagem": null,
      "Estoque": 19989.173,
      "EscalaRelevante": false,
      "ValorBaseMediaFCP": 34.9,
      "CnpjFornecedor": "71673990003940",
      "Id": 21542,
      "DataCadastro": "2021-11-24T03:20:18"
    }
  ],
  "Page": {
    "TotalRecords": 1,
    "CurrentPage": 1,
    "PageSize": 100,
    "OrderBy": "ID ASC",
    "OrderByColumn": "ID",
    "OrderByDirection": "ASC",
    "GroupByColumn": null,
    "GroupByDirection": null,
    "TotalPages": 1
  },
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}

...

6. Consultar Cliente 

Método utilizado para validar cadastro do cliente e recuperar os dados do mesmo. Comunicação com a API do TOTVS Varejo PDV OmnishopOmni/Self Checkout

Método: api/SelfCheckout/BuscarCliente

GET: http://<host>:9000/api/SelfCheckout/BuscarCliente?dto.cpfCnpj=<identificação>


Exemplo de Requisição

Cliente (pelo CPF): http://<host>:9000/api/SelfCheckout/BuscarCliente?dto.cpfCnpj=71063721881

Cliente (pelo CNPJ): http://<host>:9000/api/SelfCheckout/BuscarCliente?dto.cpfCnpj=27417445000128


Exemplo de Retorno

Bloco de código
languagejs
themeEclipse
titleCliente
collapsetrue
{
  "Clientes": [
    {
      "Nome": "João Felipe da Silva",
      "CpfCnpj": "76224778779",
      "RgInscricao": "15243912",
      "TipoDocumento": null,
      "Endereco": "RUA RUI BARBOSA",
      "Numero": "5",
      "Complemento": "",
      "Bairro": "Jardim Amélia",
      "Cidade": "Jundiaí",
      "Estado": "SP",
      "Cep": "38700-196",
      "Telefone": "(055)55536-4422",
      "Celular": "(058)34649-8622",
      "Email": "[email protected]",
      "DataNascimento": "1999-03-27T00:00:00",
      "Sexo": "Masculino",
      "EstadoCivil": "Solteiro",
      "AvatarUrl": null,
      "EnviarPnet": null,
      "Atividade": "Bronze",
      "Cracha": null,
      "PessoaFisica": true,
      "Fidelidade": null,
      "Id": 1,
      "DataCadastro": "2017-12-13T17:38:45.684301",
      "DataAtualizacao": "2017-12-13T17:38:45.684301",
      "Situacao": true,
      "IdRetaguarda": "9a826259-670e-441e-a920-ab5fd2768922"
    }
  ],
  "Id": null,
  "DataAtualizacao": null,
  "Erros": [],
  "Sucesso": true
}


...

7. Consultar Vendedor

Método utilizado para  recuperar os dados do vendedor que será atribuído na venda.

...

   Tela para informar o código do vendedor                   Tela de confirmação do vendedor

...

8. Promoções

Método utilizado para calcular as promoções da compra. Comunicação com a API do TOTVS Motor de Promoções

...

  • Calcular: calcular as promoções com base no carrinho do cliente (produtos e CPF do cliente, caso identificado);
  • Finalizar: finalizar uma venda no TOTVS Motor de Promoções, caso esta tenha sido concluída e aprovada no emissor fiscal;
  • Cancelar: cancelar uma venda no TOTVS Motor de Promoções, caso esta não tenha sido concluída (cancelada pelo usuário, pagamento não aprovado, não aprovado pelo emissor fiscal, etc.).

8.1 Calcular Promoção

Método: venda/calcularPromocao

...

Bloco de código
languagexml
themeEclipse
titleExemplo de Retorno
collapsetrue
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<beneficioPromocaoes>
    <beneficioPromocao>
        <codigoPromocao>[QA] 7 - ParaCada6</codigoPromocao>
        <descontoValorTotal>0.02</descontoValorTotal>
        <esgotado>false</esgotado>
        <mensagemPromocional></mensagemPromocional>
        <nomePromocao>Para Cada 6 Sai 10</nomePromocao>
        <produtos>
            <codigo>2000000</codigo>
            <desconto>22.98</desconto>
            <posicaoItem>1</posicaoItem>
        </produtos>
        <quantidadeDisponivel>0</quantidadeDisponivel>
        <vigencia>19/02/2020 a 01/01/2021</vigencia>
    </beneficioPromocao>
    <beneficioPromocao>
        <codigoPromocao>PRMSET20</codigoPromocao>
        <descontoValorTotal>3.65</descontoValorTotal>
        <esgotado>false</esgotado>
        <mensagemPromocional>Promoção 20% mensagem promocional</mensagemPromocional>
        <nomePromocao>Promoção Setembro 20%</nomePromocao>
        <quantidadeDisponivel>0</quantidadeDisponivel>
        <vigencia>10/09/2020 a 30/09/2020</vigencia>
    </beneficioPromocao>
</beneficioPromocaoes>


8.2 Finalizar 

Método: venda/finalizar

POST: http://<host>8181/motor2/api/v1/venda/finalizar

...

Retorno esperado: 204 (sucesso)


8.3 Cancelar 

Método: venda/cancelar

POST: http://<host>8181/motor2/api/v1/venda/cancelar

...

Retorno esperado: 204 (sucesso)


...

9. Finalizar Venda

Método utilizado para finalizar a venda no emissor fiscal (NFC-e ou SAT). Comunicação com a API TOTVS Varejo PDV OmnishopOmni/Self Checkout

Método: api/SelfCheckout/FecharVenda

POST:  api/SelfCheckout/FecharVenda


Exemplo de Requisição

Bloco de código
languagejs
themeEclipse
titleNFCe / SAT
collapsetrue
{
  "NumeroPDV": 24,
  "CodigoVendedor": "695",
  "CnpjLoja": "82373077000171",  
  "CpfFidelidade": 76224778779,
  "CpfConsumidor": 76224778779,
  "Descontos": [
    {
     "ValorDesconto":"0.02",
     "DescricaoMotivoDesconto":"Para Cada 6 Sai 10"
    },
    {
      "ValorDesconto":"3.65",
      "DescricaoMotivoDesconto":"Promoção Setembro 20%"
    }
  ],
  "Itens": [
    {
      "CodigoProduto": "2000000",
      "Quantidade": 6,
      "Preco": 5.50,
      "Descontos": [
        {
         "ValorDesconto":"22.98",
         "DescricaoMotivoDesconto":"Para Cada 6 Sai 10"
        }
      ],    
    },
    {
      "CodigoProduto": "1000097",
      "Quantidade": 3,
      "Preco": 2.75,      
      "Descontos": [], 
    }
  ],
  "Pagamentos": [
    {
      "Tipo": 3,
      "QuantidadeParcelas": 1,
      "ValorTotal": 2.60,
      "Autorizacao": "15635",
      "Nsu": "000024455",
      "Administradora": "5",
      "Bandeira": "00002"
    },
    {
      "Tipo": 2,
      "QuantidadeParcelas": 1,
      "ValorTotal": 12.00,
      "Autorizacao": "45678",
      "Nsu": "123444",
      "Administradora": "5",
      "Bandeira": "00002"
    }
  ]
}

...

Forma de pagamentoTipo
Outros0
Dinheiro1
Crédito2
Débito3


Exemplos de Retorno


  • Modelo fiscal NFCe

Bloco de código
languagejs
themeEclipse
titleEmitida online
collapsetrue
{
  "Mensagem": "NFC-e",
  "DadosVenda": {
    "Processado": true,
    "Numero": "13",
    "ChaveConsulta": "13200982373077000171653590000000131330451293",
    "DataTransmissao": "2020-09-16T21:28:56",
    "CodigoErro": "",
    "DetalhesProcessamento": "Lote processado",
    "Xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><nfeProc versao=\"4.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\" ><NFe><infNFe versao=\"4.00\" Id=\"NFe13200982373077000171653590000000131330451293\"><ide><cUF>13</cUF><cNF>33045129</cNF><natOp>VENDA</natOp><mod>65</mod><serie>359</serie><nNF>13</nNF><dhEmi>2020-09-16T21:28:50-03:00</dhEmi><tpNF>1</tpNF><idDest>1</idDest><cMunFG>1302603</cMunFG><tpImp>4</tpImp><tpEmis>1</tpEmis><cDV>3</cDV><tpAmb>2</tpAmb><finNFe>1</finNFe><indFinal>1</indFinal><indPres>1</indPres><procEmi>0</procEmi><verProc>1.0.0.0</verProc></ide><emit><CNPJ>82373077000171</CNPJ><xNome>R DAL RI</xNome><xFant>LOJA MANAUS</xFant><enderEmit><xLgr>RUA NOEL NUTELS</xLgr><nro>1762</nro><xBairro>CIDADE NOVA</xBairro><cMun>1302603</cMun><xMun>MANAUS</xMun><UF>AM</UF><CEP>69095000</CEP><cPais>1058</cPais><xPais>Brasil</xPais></enderEmit><IE>054134722</IE><CRT>3</CRT></emit><dest><CPF>76224778779</CPF><xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome><indIEDest>9</indIEDest></dest><det nItem=\"1\"><prod><cProd>2000000</cProd><cEAN>7896986231339</cEAN><xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd><NCM>18069000</NCM><CEST>1700600</CEST><indEscala>S</indEscala><CFOP>5405</CFOP><uCom>UN</uCom><qCom>6.0000</qCom><vUnCom>5.5000</vUnCom><vProd>33.00</vProd><cEANTrib>7896986231339</cEANTrib><uTrib>UN</uTrib><qTrib>6.0000</qTrib><vUnTrib>5.5000</vUnTrib><vDesc>24.99</vDesc><indTot>1</indTot></prod><imposto><vTotTrib>0.00</vTotTrib><ICMS><ICMS60><orig>0</orig><CST>60</CST></ICMS60></ICMS><PIS><PISNT><CST>04</CST></PISNT></PIS><COFINS><COFINSNT><CST>04</CST></COFINSNT></COFINS></imposto></det><det nItem=\"2\"><prod><cProd>1000097</cProd><cEAN>7896986231469</cEAN><xProd>TRUFFON ART CEREJA 30G</xProd><NCM>18069000</NCM><CEST>1700600</CEST><indEscala>S</indEscala><CFOP>5405</CFOP><uCom>UN</uCom><qCom>3.0000</qCom><vUnCom>2.7500</vUnCom><vProd>8.25</vProd><cEANTrib>7896986231469</cEANTrib><uTrib>UN</uTrib><qTrib>3.0000</qTrib><vUnTrib>2.7500</vUnTrib><vDesc>1.66</vDesc><indTot>1</indTot></prod><imposto><vTotTrib>0.00</vTotTrib><ICMS><ICMS60><orig>5</orig><CST>60</CST></ICMS60></ICMS><PIS><PISNT><CST>04</CST></PISNT></PIS><COFINS><COFINSNT><CST>04</CST></COFINSNT></COFINS></imposto></det><total><ICMSTot><vBC>0.00</vBC><vICMS>0.00</vICMS><vICMSDeson>0.00</vICMSDeson><vFCP>0.00</vFCP><vBCST>0.00</vBCST><vST>0.00</vST><vFCPST>0.00</vFCPST><vFCPSTRet>0.00</vFCPSTRet><vProd>41.25</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>26.65</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vIPIDevol>0.00</vIPIDevol><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>14.60</vNF><vTotTrib>0.00</vTotTrib></ICMSTot></total><transp><modFrete>9</modFrete></transp><pag><detPag><indPag>0</indPag><tPag>03</tPag><vPag>12.00</vPag><card><tpIntegra>2</tpIntegra></card></detPag><detPag><indPag>0</indPag><tPag>04</tPag><vPag>2.60</vPag><card><tpIntegra>2</tpIntegra></card></detPag><vTroco>0.00</vTroco></pag><infAdic><infCpl>OBSERVACOES DO CONTRIBUINTE                                         Trib Aprox: R$ 0.00 Fed, 0.00 Est, 0.00 Mun, Total R$ 0.00          Fonte IBPT 0                                                        Vend: Usuario Padrao                                                Compra realizada via Self Checkout                                  ***Compra nao pontuada no Fidelidade***</infCpl></infAdic><infRespTec><CNPJ>82373077000171</CNPJ><xContato>Desenvolvimento</xContato><email>[email protected]</email><fone>1145838800</fone></infRespTec></infNFe><infNFeSupl><qrCode><![CDATA[https://sistemas.sefaz.am.gov.br/nfceweb-hom/consultarNFCe.jsp?p=13200982373077000171653590000000131330451293|2|2|1|F2CE34662E9DC615092FDBAF0E729F6882AA1FAF]]></qrCode><urlChave>http://sistemas.sefaz.am.gov.br/nfceweb-hom/formConsulta.do</urlChave></infNFeSupl><Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/><SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/><Reference URI=\"#NFe13200982373077000171653590000000131330451293\"><Transforms><Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/><Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/><DigestValue>EiGmSq53mQ4BJplbYVJdBS5N/rs=</DigestValue></Reference></SignedInfo><SignatureValue>MVEsNgAp7+VmbgTLpMUT9jafmf6vGnIr67EQ0CfiOWlXXqOVGSWkcPxhOVi6deFqXm+KuJGcRyVtEJesVJVByf7s+RyovHIYaMAXdKEhtvCewSwc0nG8SXSd7dhkGuD54lRYveDU9gobTiNlH0VahsPkrI1gHc/SrLPXoOFm1t82HwEF0wGf9iLBOXZivqVsn1JbzBTt/9at3nLs392AwmLO82dwT2KhqNO0Le3q3RBBEZI6/4hM1BCfx7zHc9Os4zuSc0IzQCiSfYsSw+2DUJgkVQbYXTaCTKknvuodLT2WrfZXwOhlgkTPAlAlI+mFxhDNLTnXaPRczI8cDgp4Hw==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></NFe><protNFe versao=\"4.00\"><infProt><tpAmb>2</tpAmb><verAplic>AM3.10-4.00</verAplic><chNFe>13200982373077000171653590000000131330451293</chNFe><dhRecbto>2020-09-16T21:28:50-03:00</dhRecbto><nProt>113200008881996</nProt><digVal>EiGmSq53mQ4BJplbYVJdBS5N/rs=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e [Exija sempre a nota. Sao varios premios DIARIOS. Voce podera ser premiado na proxima!]</xMotivo></infProt></protNFe></nfeProc>"
  },
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}

...

Bloco de código
languagejs
themeEclipse
titleRejeição da SEFAZ
collapsetrue
{
  "Mensagem": "NFC-e",
  "DadosVenda": {
    "Processado": false,
    "Numero": "36487",
    "ChaveConsulta": "13200882373077000171650020000364871724447621",
    "DataTransmissao": null,
    "CodigoErro": "869",
    "DetalhesProcessamento": "Rejeicao: Valor do troco incorreto\r\nLote processado",
    "Xml": null
  },
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}


  • Modelo fiscal SAT

Bloco de código
languagejs
themeEclipse
titleEmitida com sucesso
collapsetrue
{
  "Mensagem": "SAT",
  "DadosVenda": {
    "Processado": true,
    "Numero": "1184",
    "ChaveConsulta": "41200782373077000171599000047660011842473616",
    "DataTransmissao": "2020-07-30T17:50:24",
    "CodigoErro": "",
    "DetalhesProcessamento": "venda SAT realizada com sucesso!",
    "Xml": "<?xml version=\"1.0\" encoding=\"utf-8\"?><CFe><infCFe Id=\"CFe41200782373077000171599000047660011842473616\" versao=\"0.07\" versaoDadosEnt=\"0.07\" versaoSB=\"020100\"><ide><cUF>41</cUF><cNF>247361</cNF><mod>59</mod><nserieSAT>900004766</nserieSAT><nCFe>001184</nCFe><dEmi>20200730</dEmi><hEmi>175024</hEmi><cDV>6</cDV><tpAmb>2</tpAmb><CNPJ>16716114000172</CNPJ><signAC>SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT</signAC><assinaturaQRCODE>Nw9w4FR+Nmbl8iet5E0a9bHGvTql7aVk7KkQzRJaUZ2pKhrG9mQcP32V/cJ4o81FXQVww7hVi8X/EDTiQ4CBAEcW08f/O1IBMLsrVcgArtX21a/mzZIypt5m6fDTg5+zQHmLHq/4IzmrmSg01kBaRPqMGpwkljKpi4N4Dhx/FyvJoojf0gp2aYS4/rV1R5UtTcSJIeLrjR2vbykjwSGteI2zt1IBMDMTpTMFbwemoABsvElSQajP7d5zOnxSW0eDNlyQNCRwzptexFZOFmywDVKAmLtIF7tjZUxEWWSB5aq/Ol+YmWdHvf4rxjZsXk0CL+DX+Jm7P7KSa1GEAUb6ag==</assinaturaQRCODE><numeroCaixa>001</numeroCaixa></ide><emit><CNPJ>82373077000171</CNPJ><xNome>BEMATECH S.A</xNome><enderEmit><xLgr>AVENIDA RUI BARBOSA</xLgr><nro>2529</nro><xCpl>: MODULOS 06 07 E 08;</xCpl><xBairro>IPE</xBairro><xMun>SAO JOSE DOS PINHAIS</xMun><CEP>83055320</CEP></enderEmit><IE>111111111111</IE><cRegTrib>1</cRegTrib><indRatISSQN>N</indRatISSQN></emit><dest><CPF></CPF></dest><det nItem=\"1\"><prod><cProd>40012</cProd><cEAN>7891033283910</cEAN><xProd>CBEM PROT SOL OL CAN FPS15 120</xProd><NCM>33049990</NCM><CFOP>5102</CFOP><uCom>PC</uCom><qCom>1.0000</qCom><vUnCom>129.90</vUnCom><vProd>129.90</vProd><indRegra>A</indRegra><vDesc>0.00</vDesc><vOutro>0.00</vOutro><vItem>129.90</vItem><obsFiscoDet xCampoDet=\"codcest\"><xTextoDet>2001500</xTextoDet></obsFiscoDet></prod><imposto><vItem12741>0.00</vItem12741><ICMS><ICMSSN102><Orig>0</Orig><CSOSN>102</CSOSN></ICMSSN102></ICMS><PIS><PISAliq><CST>01</CST><vBC>129.90</vBC><pPIS>0.0065</pPIS><vPIS>0.84</vPIS></PISAliq></PIS><COFINS><COFINSAliq><CST>01</CST><vBC>129.90</vBC><pCOFINS>0.0300</pCOFINS><vCOFINS>3.90</vCOFINS></COFINSAliq></COFINS></imposto></det><total><ICMSTot><vICMS>0.00</vICMS><vProd>129.90</vProd><vDesc>0.00</vDesc><vPIS>0.84</vPIS><vCOFINS>3.90</vCOFINS><vPISST>0.00</vPISST><vCOFINSST>0.00</vCOFINSST><vOutro>0.00</vOutro></ICMSTot><vCFe>129.90</vCFe><vCFeLei12741>0.00</vCFeLei12741></total><pgto><MP><cMP>04</cMP><vMP>129.90</vMP></MP><vTroco>0.00</vTroco></pgto><infAdic><infCpl>Complemento</infCpl><obsFisco xCampo=\"xCampo1\"><xTexto>xTexto1</xTexto></obsFisco></infAdic></infCFe><Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><SignedInfo xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"></CanonicalizationMethod><SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\"></SignatureMethod><Reference URI=\"#CFe41200782373077000171599000047660011842473616\"><Transforms><Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"></Transform><Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"></Transform></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha256\"></DigestMethod><DigestValue>DsS7NXK8+/0n3mJ1SG0IUo/uELTs5sxFRJPKoC0NhX0=</DigestValue></Reference></SignedInfo><SignatureValue>B8bQ23XpSgojvDTqwJbwFc5xtBi+nW5iaA2Enpbz/rWdGjsnvLffcFvG+ubC6wSH4DZJpanYa3ixES+zUKBED39mUcODYWB6n/L/smETGw45wZsqn2E+A7KJBgHEt4aa3SXCIvgLX/bCcT5X64kwUEE/iMa21nQ/j6Oy2avSZ1msstn7rzrN804gBaqYs/McFcVbCGIY22AiMYk5KZW3LabJJZmyIrtB2NfkSvx+freVnAo7TIGZaFqca3B/q6/q4gYQfZu4aRQJY26BZKGE+CU+DoRAlzkUYs3Jt6oNaBkbCmTMvma4jx3iSx5AmYEkFynTZ7TxMLOOxgOn044Y5w==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIGoTCCBImgAwIBAgIJARgCscEttc0TMA0GCSqGSIb3DQEBCwUAMGcxCzAJBgNVBAYTAkJSMTUwMwYDVQQKEyxTZWNyZXRhcmlhIGRhIEZhemVuZGEgZG8gRXN0YWRvIGRlIFNhbyBQYXVsbzEhMB8GA1UEAxMYQUMgU0FUIGRlIFRlc3RlIFNFRkFaIFNQMB4XDTIwMDIwNDAxMzM1NFoXDTI1MDIwNDAxMzM1NFowgaYxEjAQBgNVBAUTCTkwMDAwNDc2NjELMAkGA1UEBhMCQlIxDzANBgNVBAgTBlBhcmFuYTERMA8GA1UEChMIU0VGQVotU1AxDzANBgNVBAsTBkFDLVNBVDEoMCYGA1UECxMfQXV0ZW50aWNhZG8gcG9yIEFSIFNFRkFaIFNQIFNBVDEkMCIGA1UEAxMbQkVNQVRFQ0ggUy5BOjgyMzczMDc3MDAwMTcxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmd5M7yym++ErZ0Y7slJQZUD6XYvoiwuSvHJpvFB8kF7Sh8n6tlhE6fkUlh9FdiEZKsYrGTp2zjACvRVyQfg6FPe2s6SO9x/DuMC65ZcwabD8Tyr/jXNFrdG22i05DMMXWxHOqwCCFrkcjZ0twtdGWlfeaLC16kMa0C9xjyJvn0npAK817bnaXRkRH9ENGYV/NDLg5VXmJJyCJVqrTxAZ54byOtIkdh1Q2+dCR+3hbGF8l/2NCUc4RBz/JgaqHJ4EowOrnxxxs2eh6XenhWp1MsqB7Z4zO4y7BW3kvPjaiYkpTPxyiLxzvKJPILS1EQ0u8nGDrHGZ0/DlRlf+J0WKfwIDAQABo4ICDjCCAgowDgYDVR0PAQH/BAQDAgXgMHsGA1UdIAR0MHIwcAYJKwYBBAGB7C0DMGMwYQYIKwYBBQUHAgEWVWh0dHA6Ly9hY3NhdC5pbXByZW5zYW9maWNpYWwuY29tLmJyL3JlcG9zaXRvcmlvL2RwYy9hY3NhdHNlZmF6c3AvZHBjX2Fjc2F0c2VmYXpzcC5wZGYwawYDVR0fBGQwYjBgoF6gXIZaaHR0cDovL2Fjc2F0LXRlc3RlLmltcHJlbnNhb2ZpY2lhbC5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL2Fjc2F0c2VmYXpzcC9hY3NhdHNlZmF6c3BjcmwuY3JsMIGmBggrBgEFBQcBAQSBmTCBljA0BggrBgEFBQcwAYYoaHR0cDovL29jc3AtcGlsb3QuaW1wcmVuc2FvZmljaWFsLmNvbS5icjBeBggrBgEFBQcwAoZSaHR0cDovL2Fjc2F0LXRlc3RlLmltcHJlbnNhb2ZpY2lhbC5jb20uYnIvcmVwb3NpdG9yaW8vY2VydGlmaWNhZG9zL2Fjc2F0LXRlc3RlLnA3YzATBgNVHSUEDDAKBggrBgEFBQcDAjAJBgNVHRMEAjAAMCQGA1UdEQQdMBugGQYFYEwBAwOgEAQOODIzNzMwNzcwMDAxNzEwHwYDVR0jBBgwFoAUjjlBAFzyuAXaqG2YuQFGbW5j3wIwDQYJKoZIhvcNAQELBQADggIBAIGsMTVbXu9jobUZXTVubwRujiC+YAV+j5Q0zTUmEqlFDMPlVjCYgaonMgqg71agvTup4aIUtZ+q2dEv6I9krk+KWU2A465MqGGV8d6YAaBWzskoPp7PxzxWu8Ofyjn4pM743bmV157kqjD4CS2i3TQA3ERWYW2H1ov6/Nn4vVuRH1AZGr1TFszt/pa5Uw/TlGQiySxT9SQiOzUslVNTL2Ys++uyx3KxBUK3paNnOMdt1IDDeYh4hX/dWHlsh8SQOESL+w3CQdraMGKk1e7iXGsSBlQiZDWfPAw5On5v2ljY1KV9C3qoVn1A63Se2lGv7NgeafDSQuItPOfQ3pTbc2HXzzx2A6xrwNhK+0FmOjb9r1t6o8xqnt0j6uxeJqZiVsDXriw2LjQ1PmwhTgK7fE0hPsInTUghhuGF2bzt0Wjt8ixbkn3MhtOaOlstSJg4b0wzj4tijZzvK2EsQOnBy40b/hllGAE229pa5aF+Mz+10ZeLyHmxaon7WF6OxQ19NTB0kCoKY0lLsFZEnUmkN+dvigXQHqFmupVxKNvWpIf0hlCwKWr2ntN1Qjr49Qn4p6n/8UhPXrlqpWRmM6SzcDE6C+fTb/23y2ouSBn7ZTJT5RpYCzfA073Z+6vV9DuW1z3oTyVpEIwqiwHykwyy44snyVz1GpsGoE9fuvNpMwru</X509Certificate></X509Data></KeyInfo></Signature></CFe>"
  },
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}
Bloco de código
languagejs
themeEclipse
titleErro
collapsetrue
{
   "Mensagem":"Falha ao erro emissao de cupom fiscal! Modelo Fiscal:SAT",
   "DadosVenda":{
      "Processado":false,
      "Numero":null,
      "ChaveConsulta":null,
      "DataTransmissao":null,
      "CodigoErro":null,
      "DetalhesProcessamento":null,
      "Xml":null
   },
   "Id":null,
   "DataAtualizacao":null,
   "Erros":[
      {
         "Codigo":"Totvs.Pdv.Core.HttpClientExtended+TipoErro.2",
         "MensagemUsuario":"FalhaDeserializacaoHttp",
         "MensagemDesenvolvedor":"Erro ao deserializar resposta api: 'http://10.172.104.16:9001/TotvsPDV//SAT/EnviarDadosVenda/'",
         "Excecao":"Mensagem: Falha de comunicação\nStackTrace: em Totvs.Pdv.Core.HttpClientExtended.<Send>d__0`1.MoveNext() na C:\\Fontes\\PdvMobile\\3.2_release\\Fontes\\Pdv\\Framework\\Totvs.Pdv.Core\\HttpClientExtended.cs:linha 127\nSource: Totvs.Pdv.Core\nException: System.Exception: Falha de comunicação\r\n em Totvs.Pdv.Core.HttpClientExtended.<Send>d__0`1.MoveNext() na C:\\Fontes\\PdvMobile\\3.2_release\\Fontes\\Pdv\\Framework\\Totvs.Pdv.Core\\HttpClientExtended.cs:linha 127"
      }
   ],
   "Sucesso":false
}



...

10. Cancelar Venda 

Para o cancelamento da venda, são necessários três passos, adquirir dados da venda para validar status e obter informações utilizadas nos próximos requests, cancelamento fiscal  e caso seja retornado sucesso o cancelamento da venda no banco local para integração com o Retaguarda.

...

Método utilizado para localizar dados da venda no banco local. Comunicação com a API TOTVS Varejo PDV OmnishopOmni

Método: api/venda

GET: http://<host>:9000/venda

...

Exemplo de Requisição
http://<host>:9000/api/venda&Coo=205&SerieNota=0&Situacao=1

Exemplo de Retorno

Bloco de código
languagec#
themeEclipse
titleapi/Venda
collapsetrue
{
   "success":true,
   "message":"Venda",
   "data":[
      {
         "ccf":"205",
         "coo":"205",
         "vendaData":"2022-08-05T10:06:34.631533",
         "idTransacaoFidelidade":null,
         "numeroPdv":"1",
         "numeroReducaoZ":null,
         "situacaoVenda":0,
         "valorLiquido":921.5,
         "valorBruto":1031.5,
         "valorDescontoAcrescimo":null,
         "idMotivo":null,
         "idCaixa":"40",
         "idImpressoraSat":1,
         "sincronizadoVenda":1,
         "sincronizadoCancelamento":0,
         "sincronizadoFidelidade":0,
         "identificacaoCliente":null,
         "identificacaoFidelidade":"05414745889",
         "cpfCnpjConsumidor":"",
         "nomeConsumidor":"",
         "enderecoConsumidor":"",
         "idOperador":7,
         "chaveAcesso":"35220800740770000121590011985800002056261339",
         "idPreVenda":295,
         "serieNota":0,
         "tipoVenda":1,
         "modeloFiscal":1,
         "cepConsumidor":"",
         "numeroConsumidor":"",
         "complementoConsumidor":"",
         "bairroConsumidor":"",
         "cidadeConsumidor":"",
         "estadoConsumidor":"",
         "promocaoMotor":0,
         "promocaoSms":0,
         "campanhaPromocional":0,
         "codigoPromocional":"",
         "idCampanhaPromocional":null,
         "idTransacaoMotorPromocaoTerceiro":null,
         "idCanalVenda":null,
         "idPedidoOmni":null,
         "numeroPedidoOmni":null,
         "modalidadeVenda":null,
         "md5Paf":null,
         "sistemaPdv":2,
         "limiteCompra":null,
         "usuario":{},
         "vendaDescontosAcrescimos":[{ }],
         "vendaItens":[{ }],
         "vendaPagamentos":[{ }],
         "id":186,
         "idRetaguarda":"9b7d267d-760c-4366-bedd-f1689409a4ab",
         "situacao":1,
         "dataCadastro":"2022-08-05T10:06:34.633754",
         "dataAtualizacao":"2022-08-05T10:06:34.633755",
         "_expandables":[
            
         ]
      }
   ]
}  

...

Método utilizado para cancelar venda no emissor fiscal (NFC-e). Comunicação com a API Fiscal TOTVS Varejo PDV OmnishopOmni

Método: api/NFCe/CancelaNota

...

Método utilizado para cancelar venda no banco local. Comunicação com a API TOTVS Varejo PDV OmnishopOmni

Método: api/Venda

PACTH : http://<host>:9000/api/Venda

...

Bloco de código
languagejs
themeEclipse
titleExemplo de Retorno
collapsetrue
{
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}



...


11. Limite Compra

A rotina é responsável por realizar a validação do limite de compras disponível do cliente informado na venda, para que seja possível aplicar benefícios de desconto através do Motor de Promoções, no caso em que o cliente possuir saldo disponível no limite de Compras.

...

Cenário 2 - Limite de Compra indisponível


11.1 APIs responsáveis


  • Método utilizado para efetuar a consulta do limite disponível do cliente na API TOTVS PDV Omnishop.

...

Bloco de código
languagejs
themeEclipse
titleLimiteCompra
collapsetrue
CPF: "00011111111",

Exemplo de Retorno

Bloco de código
languagejs
themeEclipse
titleLimiteCompra
collapsetrue
{
  "Dados": {
    "Cpf": "00011111111",
    "LimiteCompra": 812.2,
    "SaldoCompra": 0
  },
  "Id": null,
  "DataAtualizacao": null,
  "Sucesso": true
}

...

Bloco de código
languagejs
themeEclipse
titleExemplo de Requisição
collapsetrue
{
  "Dados": null,
  "Id": null,
  "DataAtualizacao": null,
  "Erros": [
    {
      "Codigo": "Totvs.Pdv.Domain.Venda.Concretes.Services.LimiteCompraService+TipoErro.6",
      "MensagemUsuario": "servicoIndisponivel",
      "MensagemDesenvolvedor": "Serviço indísponivel. O limite de compra será atualizado após a disponibilidade do serviço."
    }
  ],
  "Sucesso": false
}



...


12. Configurações

Configuração para utilização do swagger no SO Windows:

...

  • Acessar o arquivo hosts da máquina utilizando o editor de preferência (vim, vi nano, etc) localizado em: /etc/hosts
    Exemplo de comando: sudo nano /etc/hosts
  • Adicionar a última linha do arquivo a informação a seguir: 191.234.160.215 WIN-BKLEOOH4GLS


Exemplo:
.
 





...

13. Identificação das vendas - Self Checkout


Todas as vendas realizadas no Self checkout serão gravadas no banco do PDV Omnishop e integradas normalmente na Retaguarda TVFR, onde fica disponível para visualização nos relatórios da aplicação.

...