Páginas filhas
  • API - Pedidos Online: Finalizar Venda (V2)


Prover a partir da Integração Pedidos Online/Intranet meio para finalização da venda com retorno dos dados fiscais e opcionalmente impressão no Caixa, para os modelos fiscais:

  • NFCe
  • S@t (necessário estar configurado G-SAT)


No cenário atual requer a instalação do executavel "Totvs.FoodService.FinalizarVenda.Api" na máquina com licença de "Caixa" para que a finalização ocorra.

Função disponivel a aprtir da versão TOTVS Food Service 2.28.09 ou superior.


FinalizarVenda


Enviar o método para finalizar a venda no caixa.


URL do Serviço:

POST: http://{url_do_servidor}/FinalizaVendaService.svc/v2/FinalizarVenda


Request


CodigoEstabelecimento: É o código do estabelecimento no cadastro do TOTVS Chef, este código deve ser vinculado ao cadastro de loja da aplicação integrada.

CodigoIntegracao: códigos inválidos ou inativados são rejeitados. Respeitar tabela de integrações.

CodigoExterno: refere-se ao código do pedido no aplicativo integrado, este código é utilizado para rastreio do pedido e para validação de duplicidade de pedido (Chave: CodigoIntegracao + CodigoEstabelecimento + CodigoExternoPedido).Deverá ser informado apenas para finalziação em pedidos do "Balcão".

ImprimirDocumento: Caso de TRUE será impresso o comprovante fiscal na impressora de Caixa.

TipoServico: Deve respeitar a tabela abaixo.


Tipo

Código

Balcão

1

Cartão

2

Mesa3


Request - Balcão

Json de Publicação para ExecAuto
{
	"parametros": {
		"FinalizaVenda": {
			"TipoServico": 1,
			"NumeroMesa": 0,
			"NumerosCadeiras": [],
			"CodigoExternoPedido": "16",
			"ImprimirDocumento": false,
			"EnviarEmail": false,
			"ExtratoResumido": false
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Request - Mesa com cadeira


Json de Publicação para ExecAuto
{
	"parametros": {
		"FinalizaVenda": {
			"TipoServico": 3,
			"NumeroMesa": 10,
			"NumerosCadeiras": [
				1
			],
			"CodigoExternoPedido": "",
			"ImprimirDocumento": false,
			"EnviarEmail": false,
			"ExtratoResumido": false
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Json de Publicação para ExecAuto
{
	"parametros": {
		"FinalizaVenda": {
			"TipoServico": 3,
			"NumeroMesa": 10,
			"NumerosCadeiras": [
				0
			],
			"CodigoExternoPedido": "",
			"ImprimirDocumento": false,
			"EnviarEmail": false,
			"ExtratoResumido": false
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}


Request - Cartão


Json de Publicação para ExecAuto
{
	"parametros": {
		"FinalizaVenda": {
			"TipoServico": 2,
			"NumeroMesa": 1,
			"NumerosCadeiras": [],
			"CodigoExternoPedido": "",
			"ImprimirDocumento": false,
			"EnviarEmail": false,
			"ExtratoResumido": false
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Response


Json de Publicação para ExecAuto
{
	"FinalizarVendaResult": {
		"Erros": null,
		"ReturnApi": "{\"success\":true,\"data\":{\"aggregateId\":\"1ee40f0c-7dbf-4da0-8394-54fd20974407\",\"messageType\":\"Protocolo registrado com sucesso!\",\"timestamp\":\"2021-02-01T16:45:29.6953519-03:00\",\"hostName\":\"http://192.168.15.11:5013\",\"periodoAbertura\":2,\"dataHoraAbertura\":\"2021-02-01T15:19:01\",\"tipoServico\":1,\"numeroMesa\":0,\"numerosCadeiras\":[],\"codigoExternoPedido\":\"16\",\"imprimirDocumento\":false,\"enviarEmail\":false,\"extratoResumido\":false,\"finalizaMesaInteira\":true,\"modeloFiscal\":\"NFC-e\",\"porta\":5013,\"numeroCupom\":62677}}",
		"Sucesso": true
	}
}



ConsultarStatusFinalizacaoVenda


Este método fará a recepção dos dados conforme o contrato definido contendo informações básicas que permitam identificar chaves da venda em questão e tenha como retorno possível as informações fiscais da finalização da venda ou estrutura de erro


URL do Serviço:

POST: http://{url_do_servidor}/FinalizaVendaService.svc/v2/ConsultarStatusFinalizacaoVenda


Request


HostName: Este valor é retornado na responde do "FinalizarVenda" campo "hostName'

AggregateIdEste valor é retornado na responde do "FinalizarVenda" campo "aggregateId'



Json de Publicação para ExecAuto
{
	"parametros": {
		"ConsultaStatusFinalizacaoVenda": {
			"HostName": "http://192.168.15.11:5013",
			"AggregateId": "62D36186-D4C3-48F6-A794-0762EDA1061B"
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}


Response - (NFCe)


Sucesso

Será retornado o XML da venda,conforme o exemplo abaixo:


Json de Publicação para ExecAuto
{
	"success": true,
	"data": {
		"qrCode": "http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?p=13210282373077000171652270000080031046928199|2|2|1|A54629A46F6E062AB8C6A590FC0F7D9FF0FB0A7F",
		"codigoDeBarras": "http://www.sefaz.am.gov.br/nfce/consulta/13210282373077000171652270000080031046928199",
		"numeroCupom": 62682,
		"success": true,
		"statusFinalizarVenda": {
			"chaveVenda": "62d36186-d4c3-48f6-a794-0762eda1061b",
			"codigoExterno": "52",
			"numeroMesa": 0,
			"numeroNota": 0,
			"numeroCaixa": 0,
			"statusFinalizacaoVenda": 100,
			"hostName": "http://192.168.15.11:5013",
			"xmlVenda": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><nfeProc versao=\"4.00\" xmlns=\"http://www.portalfiscal.inf.br/nfe\" ><NFe><infNFe versao=\"4.00\" Id=\"NFe13210282373077000171652270000080031046928199\"><ide><cUF>13</cUF><cNF>04692819</cNF><natOp>VENDA</natOp><mod>65</mod><serie>227</serie><nNF>8003</nNF><dhEmi>2021-02-01T16:45:14-03:00</dhEmi><tpNF>1</tpNF><idDest>1</idDest><cMunFG>1300029</cMunFG><tpImp>4</tpImp><tpEmis>1</tpEmis><cDV>9</cDV><tpAmb>2</tpAmb><finNFe>1</finNFe><indFinal>1</indFinal><indPres>1</indPres><procEmi>0</procEmi><verProc>02.28.12</verProc></ide><emit><CNPJ>82373077000171</CNPJ><xNome>PRODUTO LTDA</xNome><xFant>TOTVS CHEF PRODUTO - ALEXANDRE</xFant><enderEmit><xLgr>CENTRO NOVE DE JULHO</xLgr><nro>100</nro><xBairro>TESTE</xBairro><cMun>1300029</cMun><xMun>ALVARAES</xMun><UF>AM</UF><CEP>05310000</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>11111111111</fone></enderEmit><IE>999999990</IE><CRT>1</CRT></emit><dest><CPF>08291225249</CPF><xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome><indIEDest>9</indIEDest></dest><det nItem=\"1\"><prod><cProd>001</cProd><cEAN>SEM GTIN</cEAN><xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd><NCM>22011000</NCM><CFOP>5102</CFOP><uCom>KG</uCom><qCom>1.0000</qCom><vUnCom>49.9000</vUnCom><vProd>49.90</vProd><cEANTrib>SEM GTIN</cEANTrib><uTrib>KG</uTrib><qTrib>1.0000</qTrib><vUnTrib>49.9000</vUnTrib><indTot>1</indTot></prod><imposto><vTotTrib>7.50</vTotTrib><ICMS><ICMSSN102><orig>0</orig><CSOSN>400</CSOSN></ICMSSN102></ICMS></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>49.90</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</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>49.90</vNF><vTotTrib>7.50</vTotTrib></ICMSTot></total><transp><modFrete>9</modFrete></transp><pag><detPag><indPag>0</indPag><tPag>03</tPag><vPag>49.90</vPag><card><tpIntegra>2</tpIntegra></card></detPag><vTroco>0.00</vTroco></pag><infAdic><infCpl>Pedido: 62682  TOTVS CHEF  11  3003-2111  Aplicativo: TOTVS Chef 02.28.12 Serie: 96700001 Valor aproximado dos tributos deste cupom: Federal: R$ 4.01 Estadual: R$ 3.49 Municipal: R$ 0.00 Fonte IBPT/empresometro.com.br SP 5DC0AE</infCpl><obsCont xCampo=\"Series\"><xTexto>MjI3MDAwMDA4MDAzMjI3MDAwMDA4MDAz</xTexto></obsCont></infAdic><infRespTec><CNPJ>82373077000171</CNPJ><xContato>Renato Alves</xContato><email>[email protected]</email><fone>1120997271</fone></infRespTec></infNFe><infNFeSupl><qrCode><![CDATA[http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?p=13210282373077000171652270000080031046928199|2|2|1|A54629A46F6E062AB8C6A590FC0F7D9FF0FB0A7F]]></qrCode><urlChave>http://www.sefaz.am.gov.br/nfce/consulta</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=\"#NFe13210282373077000171652270000080031046928199\"><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>x6llhQHrF6xMZB+4Tlor1mcoCpg=</DigestValue></Reference></SignedInfo><SignatureValue>Wu76JezbM+K9F4Dfgb2etGu5+2LKpH8wX0DKMF6JyAbShF7c4TibMeyZvrHDyx2NS8jL78suRRmE49hxvXW3lFkWNT5J3e+RZXDMY67p+HV2KS0AInWa0UpnT5JrCi3z+Ud7QBKjAXlpjTQXGKUb0etlSzvR5/YFcMUHq5YUUKsmmjz+f8gXtmBAe9eIUO8FaKq4dARosal+Wfqerh5K/AbDBhBBJoESEnW85spy7GBXPoAGotli8aoZoOgLMksMU3Wf31SE5x+KwoDKSPp3Z4uBA+hyHVEKqZxzPC0uzYDBP699jRcC8fcUEt3Up6XILdIbFeEqPWxs3E8vB96+oQ==</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>13210282373077000171652270000080031046928199</chNFe><dhRecbto>2021-02-01T16:45:18-03:00</dhRecbto><nProt>113210009140259</nProt><digVal>x6llhQHrF6xMZB+4Tlor1mcoCpg=</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>",
			"formularioVenda": 0,
			"dataAtualizacao": "2021-02-01T16:45:13.037",
			"chaveDocumentoFiscal": "13210282373077000171652270000080031046928199",
			"qrCode": "http://homnfce.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp?p=13210282373077000171652270000080031046928199|2|2|1|A54629A46F6E062AB8C6A590FC0F7D9FF0FB0A7F",
			"numeroCupom": 62682,
			"codigoBarras": "http://www.sefaz.am.gov.br/nfce/consulta/13210282373077000171652270000080031046928199",
			"guidVendaMovimentacao": "00000000-0000-0000-0000-000000000000"
		},
		"aggregateId": "62d36186-d4c3-48f6-a794-0762eda1061b",
		"messageType": "RegistrarConsultarStatusVendaCommand",
		"timestamp": "2021-02-01T16:58:53.6639442-03:00"
	}
}


StatusFinalizacaoVenda: Segue o status conforme a tabela abaixo:


Tipo

Código

Iniciar 1
ValidarInicial

2

IniciarEmissaoNota

3

FinalizarEmitirNota 4
GravarTabelas

5

ApagarTabelas 6
Erro 7
PopulandoDTO 8
AtualizadoDadosAposEmissaoDocumentoFiscal 9
ReprocessarGravacao 10
Finalizado 100
None 0


Erro


Json de Publicação para ExecAuto
{
	"ConsultarStatusFinalizacaoVendaResult": {
		"Erros": [
			" Erro ao processar a requisição: {\"success\":false,\"errors\":[{\"code\":500,\"description\":\"Falha na comunicação com fiscal manager\\r\\nErro ao avaliar retorno da emissão da nota, código de retorno não previsto.\\r\\n\\r\\nNota: 8006, Série: 227, Código:500\",\"category\":5,\"type\":0}]}"
		],
		"ReturnApi": null,
		"Sucesso": false
	}
}


CancelarVenda


Este método fará a recepção dos dados conforme contrato definido contendo informações básicas que permitam identificar chaves da venda em questão e tenha como retorno possível as informações fiscais do cancelamento ou estrutura de erro.


URL do Serviço:

POST: http://{url_do_servidor}/FinalizaVendaService.svc/v2/CancelarVenda


Request


HostName: Este valor é retornado na responde do "FinalizarVenda" campo "hostName'.

AggregateIdEste valor é retornado na responde do "FinalizarVenda" campo "aggregateId'.

CodigoCancelamento:Deve se informar o código do motivo do cancelamento.

MotivoCancelamento:Deve se informar o motivo do cancelamento.

ImprimirCancelamentoPontoProducao: Caso de TRUE ao confirmar o cancelamento, será impresso nos pontos de produção o cancelamento dos produtos.



Json de Publicação para ExecAuto
{
	"parametros": {
		"CancelaVenda": {
			"HostName": "http://192.168.15.11:5013",
			"AggregateId": "62D36186-D4C3-48F6-A794-0762EDA1061B",
			"CodigoCancelamento": 1,
			"MotivoCancelamento": "CANCELAMENTO VENDA",
			"ImprimirCancelamentoPontoProducao": true
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}



Response - (NFCe)


Sucesso


Json de Publicação para ExecAuto
{
	"CancelarVendaResult": {
		"Erros": null,
		"ReturnApi": "{\"success\":true,\"data\":{\"motivoCancelamento\":\"CANCELAMENTO VENDA\",\"aggregateId\":\"62d36186-d4c3-48f6-a794-0762eda1061b\",\"messageType\":\"RegistrarCancelarVendaCommand\",\"timestamp\":\"2021-02-01T17:13:23.1266682-03:00\"}}",
		"Sucesso": true
	}
}



Erro


Json de Publicação para ExecAuto
{
	"CancelarVendaResult": {
		"Erros": [
			" Erro ao processar a requisição: {\"success\":false,\"errors\":[{\"description\":\"Código: 500 Descrição: Falha na comunicação com fiscal manager\",\"category\":2,\"type\":0}]}"
		],
		"ReturnApi": null,
		"Sucesso": false
	}
}
  • Sem rótulos