Verifica o status atual do pedido, os possíveis status de um pedido estão descritos na tabela abaixo.
URL do Serviço:
| POST: http://{url_do_servidor}/PedidoVendaService.svc/StatusPedido | 
|---|
Status  | Código  | 
NaoEncontrado  | 0  | 
Recepcionado  | 1  | 
Expedido  | 2  | 
Entregue  | 3  | 
Concluido  | 4  | 
Cancelado  | 5  | 
Entregue: é para quando o pedido faturado com RetirarNaLoja
Request
{
	"parametros": {
		"CodigoExternoPedido": "16",
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}
Response
{
	"StatusPedidoResult": {
		"Erros": [],
		"Status": 1
	}
}
Retorna a quantidade de produto disponivel no periodo desejado
URL do Serviço:
| POST: http://{url_do_servidor}/PedidoVendaService.svc/ConsultarProdutoDisponibilidadeEstoque | 
|---|
Request
{
	"parametros": {
		"CodigoProduto": "1",
		"DataRetirada": "/Date(1612206090305)/",
		"DataDevolucao": "/Date(1612206090302)/",
		"CodigoEstabelecimento": "96700001PC13",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}
Response
{
	"ConsultarProdutoDisponibilidadeEstoqueResult": {
		"Erros": [],
		"QuantidadeDisponivel": 100
	}
}
URL do Serviço:
POST: http://{url_do_servidor}  | 
|---|
Request
Método de envio de pedido para os estabelecimentos.
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.
CodigoExternoPedido: 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).
PagamentoOnline: indica que o recebimento é de responsabilidade do aplicativo integrado.
RetirarNaLoja: indica que o cliente irá retirar o produto no estabelecimento, sendo assim não precisando informar o EnderecoEntrega e também nao pode ser cobrado taxa de entrega.
Exemplo de retirada na loja ou entrega no endereço do cliente:
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "1529453014",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "00000000181",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": null,
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 0,
			"Desconto": 0,
			"ValorTotal": 550.5,
			"Pagamentos": [
				{
					"Tipo": 2,
					"Valor": 550.5,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": true,
			"RetirarNaLoja": true,
			"DataEntrega": "/Date(1612281364000)/",
			"DataRetorno": "/Date(1612454164000)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "13",
						"Descricao": "A MODA DA CASA",
						"PrecoVenda": 54.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 540,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}
Exemplo de entrega no 2º endereço do cliente:
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "1529453015",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "00000000181",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": {
					"Logradouro": "RUA CENTRO",
					"Numero": "1000",
					"Complemento": "COMERCIAL",
					"Bairro": "CENTRO",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": null,
					"Telefone": null,
					"EMail": null,
					"IdentificacaoEndereco": "INDENTIFICACAO ENTREGA",
					"InformacoesAdicionais": null
				},
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 0,
			"Desconto": 0,
			"ValorTotal": 550.5,
			"Pagamentos": [
				{
					"Tipo": 2,
					"Valor": 550.5,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": true,
			"RetirarNaLoja": false,
			"DataEntrega": "/Date(1612281364000)/",
			"DataRetorno": "/Date(1612454164000)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "13",
						"Descricao": "A MODA DA CASA",
						"PrecoVenda": 54.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 540,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}
DataEntrega: data destinada para entrega no pedido ou retirada em loja
DataRetorno: data destinada para retorno dos itens do TipoOperacao Comodato(2) e ou Consignação(3)
Sexo: deve respeitar a tabela abaixo.
Sexo  | Código  | 
Masculino  | 0  | 
Feminino  | 1  | 
TipoPessoa: deve respeitar a tabela abaixo.
Tipo  | Código  | 
Física  | 0  | 
Jurídica  | 1  | 
CpfCnpj: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o CPF e para TipoPessoa Jurídica deve ser informado o CNPJ.
RgIE: deve conter apenas valores numéricos (sem máscara). Para TipoPessoa Física deve ser informado o RG e para TipoPessoa Jurídica deve ser informado o IE.
Itens
1- Tipo Operação
Tipo Operação  | Código  | 
Venda  | 1  | 
Comodato  | 2  | 
Consignacao  | 3  | 
Bonificacao  | 4  | 
TipoOperacao: Cada item tem deve conter um tipo operação associado, segue exemplo abaixo
A tabela abaixo indica a limitação de casa decimais de acordo com cada atributo:
Campo  | Decimais  | 
Quantidade  | 3  | 
Desconto  | 2  | 
Troco  | 2  | 
Forma de valor  | 2  | 
Valor Total Item  | 2  | 
Valor Total Pedido  | 2  | 
Quando o cálculo de ValorTotal do item tiver mais do que 2 casas decimais este resultado deve ser truncado em 2 casas conforme exemplo abaixo:
Produto  | Preço  | Quantidade  | Valor Total  | Valor Final  | 
Presunto Seara  | 4,25  | 2,654  | 11,2795  | 11,27  | 
Tipo: deve respeitar a tabela abaixo.
Forma de Pagamento  | Código  | 
Dinheiro  | 0  | 
Cheque  | 1  | 
Cartão de Credito  | 2  | 
Cartão de Debito  | 3  | 
Ticket  | 4  | 
CodigoReferencia: informar o código de cartões/operada (ex: Visa Electron) da aplicação integrada, através deste código é feita correspondência com o cadastro de cartões/operadoras do TOTVS Chef.
Desconto: deve ser informado em Reais (R$) e não pode ser maior ou igual ao valor total do pedido. Não é aceito desconto e acréscimo por itens, apenas no totalizador do pedido.
Troco: Indica o valor em Reais (R$) de troco que deve ser devolvido ao cliente, quando existir valor de troco este valor deve ser informado na forma de pagamento, exemplo:
Pedido
Total Itens  | 60,50  | 
Valor Total Pedido  | 60,50  | 
Pagamento em dinheiro com nota de R$ 100,00. Neste caso precisa informar o valor de troco:
Pagamento Dinheiro  | 100,00  | 
Troco  | 39,50  | 
{
	"parametros": {
		"Pedido": {
			"CodigoExternoPedido": "679698206",
			"CodigoIntegracao": 0,
			"Cliente": {
				"Id": null,
				"NomeCompleto": "TOTVS",
				"TipoPessoa": 0,
				"Sexo": 0,
				"CpfCnpj": "08291225249",
				"Endereco": {
					"Logradouro": "Av. 09 de Julho",
					"Numero": "2960",
					"Complemento": "1o Andar",
					"Bairro": "Vila Iracema",
					"Municipio": "Jundiai",
					"MunicipioNumeroIBGE": 3525904,
					"UF": "SP",
					"UFNumeroIBGE": 35,
					"CEP": "13208056",
					"DDD": "19",
					"Telefone": "12345678",
					"EMail": "[email protected]",
					"IdentificacaoEndereco": null,
					"InformacoesAdicionais": null
				},
				"EnderecoEntrega": null,
				"ConheceuComo": "TELEVISAO",
				"RgIE": ""
			},
			"CodigoPedido": 0,
			"CodigoCliente": 0,
			"Troco": 39.5,
			"Desconto": 0,
			"ValorTotal": 60.5,
			"Pagamentos": [
				{
					"Tipo": 0,
					"Valor": 100.0,
					"CodigoReferencia": "MC",
					"PagoOnline": false
				}
			],
			"TaxaDeEntrega": 10.5,
			"PagamentoOnline": false,
			"RetirarNaLoja": true,
			"DataEntrega": "/Date(1612195968203)/",
			"DataRetorno": "/Date(1612195968207)/",
			"Observacao": null,
			"PeriodoEntrega": null,
			"PeriodoRetorno": null,
			"Itens": [
				{
					"TipoItem": 0,
					"Produto": {
						"Codigo": "5",
						"Descricao": "COCA COLA",
						"PrecoVenda": 5.0,
						"PrecoOriginal": 0,
						"PrecoPromocional": 0,
						"Pesavel": true,
						"Processado": false,
						"ProdutoComposto": false,
						"BaixarEstoqueOnline": false,
						"QuantidadeEstoque": 0,
						"Composicoes": null
					},
					"Quantidade": 10,
					"Acrescimo": 0,
					"Desconto": 0,
					"MotivoAcrescimoDesconto": null,
					"AcrescimoDiferencaFracionada": 0,
					"Observacao": "",
					"ItensFracao": null,
					"ItensAdicionais": [],
					"ValorTotal": 50,
					"ValorDescontoItem": 0,
					"ValorServicoItem": 0,
					"ValorDescontoComboItem": 0,
					"ValorAcrescimoItem": 0,
					"TipoOperacao": 1
				}
			]
		},
		"CodigoEstabelecimento": "96700001PC1",
		"CodigoIntegracao": 99,
		"RequestID": null,
		"TipoServico": null
	}
}
Response
O serviço retorna um JSON no formato abaixo:
Sucesso
Sucesso = true indica que o pedido foi registrado corretamente.
{
	"EnviarPedidoResult": {
		"Erros": [],
		"Sucesso": true
	}
}
Erro
Sucesso = false indica que o pedido não foi registrado no sistema, no atributo Erros encontra a lista de motivos/problemas que ocorreram
{
	"EnviarPedidoResult": {
		"Erros": [
			"Data de Entrega 01/02/2021 16:12:48  está menor que a Data Atual 01/02/2021 16:16:57.",
			"Data de Retorno 01/02/2021 16:12:48  está menor que a Data Atual 01/02/2021 16:16:57.",
			"Pedido com retirada na loja e com taxa de entrega maior do que zero."
		],
		"Sucesso": false
	}
}
A tabela abaixo tem a relação completa de possíveis erros e validações que devem ser tratados pelo aplicado integrado.
Mensagem de erro  | 
Erro interno de processamento da requisição.  | 
Erro ao enviar pedido.  | 
Não foi possível estabelecer uma conexão com a loja.  | 
Pedido inválido.  | 
Código integração inválido.  | 
Código externo do pedido inválido.  | 
Duplicidade de pedido por código externo.  | 
Total do pedido difere do somatório dos itens.  | 
O pedido deve conter um cliente.  | 
Cliente sem CPF ou CPNJ ou Telefone.  | 
Cliente com nome inválido.  | 
Cliente sem endereço.  | 
Endereço do cliente com logradouro inválido.  | 
Endereço do cliente com município inválido.  | 
Endereço do cliente com UF inválida.  | 
Endereço do cliente com número inválido.  | 
Endereço do cliente com bairro inválido.  | 
O pedido deve conter no mínimo 1 item.  | 
Item inválido.  | 
Produto "{0}" com quantidade zero.  | 
O valor total do item "{0}" difere do cálculo do sistema.  | 
Produto "{0}" não permite fração.  | 
Produto "{0}" inválido.  | 
Produto "{0}" com preço desatualizado.  | 
Produto "{0}" sem preço de venda.  | 
O pedido deve conter no mínimo uma forma de pagamento.  | 
Formas de pagamento com valor inválido.  | 
Somatório das formas de pagamento difere do total do pedido.  | 
Erro ao salvar pedido no sistema.  | 
Cliente com CPF ou CPNJ inválido.  | 
Erro ao consultar status do pedido no sistema  | 
Erro ao consultar status do estabelecimento.  | 
O valor total do pedido deve ser igual ou superior a R$ 0,01.  | 
Pedido com retirada na loja e com taxa de entrega maior do que zero.  | 
Taxa de entrega com valor inválido.  | 
Quantidade do item é inválida para uma venda fracionada (1/2, 1/3 ou 1/4).  | 
A soma dos itens da venda fracionada deve completar 1 inteiro.  | 
O valor total do item fracionado deve ser igual ao preço do item de maior valor.  | 
Item fracionado deve conter no mínimo 2 frações (itens).  | 
O valor total do item deve ser truncado em 2 casas decimais.  | 
A quantidade do item deve conter no máximo 3 casas decimais.  | 
O valor total do item fracionado deve ser igual à soma dos valores das frações (itens).  | 
Item do tipo "normal" não aceita itens fração.  | 
Os itens da fração devem ser do tipo "normal".  | 
Os itens adicionais devem ser do tipo "normal".  | 
Produto "{0}" não é um adicional do produto "{1}".  | 
Cliente sem endereço de entrega.  | 
Data de Entrega invalida.  | 
Data de Retorno invalida.  | 
Data de Entrega {0} está menor que a Data Atual {1}.  | 
Data de Retorno {0} está menor que a Data Atual {1}.  | 
Data de Retorno {0} é menor que a data de Entrega {1}.  | 
Endereço de Entrega com logradouro inválido.  | 
Endereço de Entrega com município inválido.  | 
Endereço de Entrega com UF inválida.  | 
Endereço de Entrega com número inválido.  | 
Endereço de Entrega com bairro inválido.  | 
Este item {0} podera ser vendido apenas como Tipo Operacao {1}.  | 
Este item {0} não podera ser vendido como Tipo Operacao {1}.  | 
Endereço do cliente com CEP inválido.  | 
Endereço de Entrega com CEP inválido.  |