Cria pedido de envio ou reversa.
Módulo: Pedido
Descrição
Para criar um pedido de logística reversa, envie "tipoPedido": "reversa" junto com o objeto dadosReversa e o campo numeroPedidoEnvioPai (número do pedido de envio original existente na loja).
Os campos de situação da reversa (solicitanteReversa, motivoReversa, tipoReversa, resolucaoReversa e pagadorFreteReversa) aceitam apenas valores cadastrados na collection ReversaSituacoes. Além disso, o campo tipoReversa deve iniciar com um dos prefixos "Ponto", "Postagem" ou "Coleta".
Para obter a lista atualizada de valores válidos de cada campo de situação (e montar seus formulários dinamicamente), consulte o endpoint GET api/v1/reversa/situacoes (retorna todos os tipos) ou GET api/v1/reversa/situacoes/{tipo} (retorna um tipo específico, ex.: resolucaoReversa). Recomendamos consultar esse endpoint antes de criar a reversa, pois os valores podem ser atualizados sem aviso.
Quando um campo obrigatório de reversa estiver ausente ou contiver valor inválido, a API retorna HTTP 400 com o corpo no formato:
{"mensagem": "<descrição do erro>"}
A mensagem indica qual campo falhou na validação e, para os campos de situação, lista os valores aceitos. Exemplo:
{"mensagem": "Solicitante de reversa inválido. Aceito apenas: Cliente, Loja"}
Parâmetros de Entrada
| Campo | Descrição | Tipo | Tamanho | Obrigatório |
| numeroPedido | Seu número de pedido | string | 100 | sim |
| tipoPedido | Informar envio para vendas e reversa para retorno da venda (retorno ao destinatário) | string | 7 | sim |
| pedidoAuxiliar | Número de pedido adicional para controle (pedido marketplace/erp) | string | 100 | não |
| numeroPedidoEnvioPai | Número do pedido de envio original existente na loja. Obrigatório quando "tipoPedido" for "reversa". | string | 100 | condicional |
| plataforma | Sistema que está gerando o pedido. Campo livre. | string | 255 | não |
| canal | Nome do canal de cotação. Informar apenas se o campo idCotacao não for informado. | string | 255 | não |
| intermediadorVenda | Nome da empresa/site que intermediou a venda. Esse campo ajuda o cliente a entender melhor seu rastreio, pois iremos mostrar o nome do local/site da compra e o nome da empresa que vendeu o produto, além dos dados da transportadora. | string | 255 | não |
| idCotacao | Código da cotação, informar o código completo com a opção selecionada. Exemplo: Código da cotação + filial + método de envio. Se não informado o sistema ira realizar uma nova cotação e selecionar o melhor preço ou prazo conforme configurado na loja. Se informando "transporteProximo" o sistema selecionará a transportadora mais próxima que atenda ao valor e prazo de entrega do pedido. Aconselhamos sempre usar o idCotação que foi realizada anteriormente no momento da venda. |
string | 25 | não |
| valorFretePedido | Valor de frete cobrado do cliente. | numeric | (9,3) | sim |
| controleEtiqueta | Deixar vazio ou utilizar a palavra "app" para controle de etiqueta utilizando usa aplicação ou de terceiros (pedido será criado no allpost como Despachado). Utilizar "allPost" para gerar as etiquetas pelo sistema allPost (o pedido criado no allPost como Faturado). | string | 8 | não |
| enderecoEntrega | Dados do destinatário | object | sim | |
| nome | Nome ou razão social do cliente. | string | 60 | sim |
| E-mail de contato. | string | 255 | sim | |
| cpfCnpj | CPJ ou CNPJ. | string | 14 | sim |
| cep | CEP de destino | string | 8 | sim |
| uf | Estado de destino | string | 2 | sim |
| cidade | Cidade de destino | string | 50 | sim |
| endereco | Endereço de entrega | string | 50 | sim |
| numero | Número do endereço de entrega | string | 6 | sim |
| bairro | Bairro do endereço de entrega | string | 50 | sim |
| referencia | Referência da entrega | string | 50 | sim |
| telefones | Array com os telefones de contato. | array/string | 11 | sim |
| envio | Informações sobre o envio. Um pedido pode ter mais de um envio. | array | sim | |
| nome | Nome do envio. Campo livre. | string | 100 | não |
| peso | Peso total do envio em Quilos(Kg). Se não informado o sistema irá somar os pesos totais dos itens do produto. | numeric | (9,3) | não |
| altura | Dimensões da embalagem que compõem o envio. Em centímetros (cm). Se não informado as dimensões da embalagem, o sistema irá criar uma embalagem sobre os itens enviado. | numeric | (9,3) | não |
| largura | Dimensões da embalagem que compõem o envio. Em centímetros (cm). | numeric | (9,3) | não |
| profundidade | Dimensões da embalagem que compõem o envio. Em centímetros (cm). | numeric | (9,3) | não |
| quantidade | Quntidade de produtos que compõem o envio. | integer | sim | |
| quantidadeVolumes | Total de volumes que compõem o envio. | integer | sim | |
| codigoRastreio | Código de rastreio do envio. Para transporte correios o campo é obrigatório o preenchimento. | string | 20 | não |
| plp | Código plp dos correios. | integer | não | |
| urlRastreioExterno | Se informado a url de rastreio o sistema irá redirecionar automaticamente o cliente para esta url. Se o pedido possuir mais de um envio o sistema irá criar botões para que o usuário possa clicar e ser redirecionado. | text | não | |
| mapaDeCarga | Código do mapa de carga gerado pelo seu ERP. | string | 255 | não |
| prazoDeEntrega | Prazo limite de entrega | date | sim | |
| nomeTransportadora | Nome da transportadora: informar o nome apenas se houver troca de transportadora, ou seja, a cotação foi realizada por uma transportadora e enviada por outra. O nome tem que ser igual ao cadastrado no allPost. | string | 100 | não |
| nomeMetodoEnvio | Nome do método de envio: informar o nome apenas se houver troca de transportadora, ou seja, a cotação foi realizada por uma transportadora e enviada por outra. O nome tem que ser igual ao cadastrado no allPost. | string | 100 | não |
| deParaMeli | Para vendas do Mercado Livre, o campo deParaMeli permite definir o método de transporte, desde que o de/para de transportadoras e métodos de envio esteja configurado. A regra só funciona quando não existe idCotação: nesses casos, o sistema realiza a cotação e seleciona automaticamente o método cujo ID corresponda ao informado no deParaMeli. | string | 2 | não |
| produtos | Lista de produtos que compõem o envio. | array | sim | |
| peso | Peso unitário do produto em quilos | numeric | (9,3) | sim |
| peso | Altura da embalagem unitária do produto em centímetros | numeric | (9,3) | sim |
| largura | Largura da embalagem unitária do produto em centímetros | numeric | (9,3) | sim |
| profundidade | Profundidade da embalagem unitária do produto em centímetros | numeric | (9,3) | sim |
| preco | Preço de venda unitário do produto em reais | numeric | (9,2) | sim |
| titulo | Título do produto. | string | 255 | não |
| sku | Código sku da integração. | string | 50 | sim |
| sku | Código sku da integração. | string | 50 | sim |
| categoria | Categoria do produto | string | 200 | não |
| quantidade | Quantidade de vendas | integer | sim | |
| quantidadeVolumes | Quantidade de volumes que compõem um o produto. (unitário) | integer | sim | |
| notaFiscal | Informações da nota fiscal do envio. | object | sim | |
| filialERP | Informar o código da filial ERP (centro de distribuição de origem) | string | 30 | sim |
| pedidoERP | Informar o número do pedido no ERP | string | 30 | não |
| chave | Chave da nota fiscal | string | 44 | sim |
| data | Data do faturamento | date | sim | |
| valorTotal | Valor total da nota fiscal | numeric | (9,2) | sim |
| valorTotalProdutos | Valor total dos produtos | numeric | (9,2) | sim |
| dadosAdicionaisEnvio | Dados adicionais do envio (campo livre: chave valor). O mesmo pode ser utilizado para armazenar dados adicionais, onde você pode obtê-los na consulta do pedido. | array | não | |
| chave | nome do campo | string | 100 | sim |
| valor | valor do campo | string | 100 | sim |
| dadosReversa | Dados da logística reversa. Obrigatório quando "tipoPedido" for "reversa" (ignorado para "envio"). Os campos de situação (solicitanteReversa, motivoReversa, tipoReversa, resolucaoReversa e pagadorFreteReversa) só aceitam valores cadastrados na collection ReversaSituacoes. Quando um valor inválido é enviado, a API retorna HTTP 400 no formato {"mensagem": "..."} indicando o campo e a lista de valores aceitos (ex.: "Solicitante de reversa inválido. Aceito apenas: valor1, valor2, ..."). |
object | condicional | |
| solicitanteReversa | Quem solicitou a reversa. Valor obtido da collection ReversaSituacoes. | string | 50 | sim |
| motivoReversa | Motivo da reversa. Valor obtido da collection ReversaSituacoes. | string | 50 | sim |
| tipoReversa | Tipo da reversa. Valor obtido da collection ReversaSituacoes. Deve iniciar com um dos prefixos "Ponto", "Postagem" ou "Coleta"; caso contrário a API retorna HTTP 400 indicando que o tipo de reversa não está parametrizado. | string | 50 | sim |
| resolucaoReversa | Resolução da reversa. Valor obtido da collection ReversaSituacoes. | string | 50 | sim |
| pagadorFreteReversa | Responsável pelo pagamento do frete da reversa. Valor obtido da collection ReversaSituacoes. | string | 50 | sim |
| remetente | Dados de quem envia a reversa (origem da coleta/postagem). | object | sim | |
| nome | Nome ou razão social do remetente. | string | 60 | sim |
| cpfCnpj | CPF ou CNPJ do remetente. Somente dígitos: 11 (CPF) ou 14 (CNPJ). | string | 14 | sim |
| E-mail de contato do remetente. | string | 255 | sim | |
| cep | CEP de origem da reversa. Somente dígitos (7 a 8). | string | 8 | sim |
| uf | UF de origem (sigla do estado). | string | 2 | sim |
| cidade | Cidade de origem da reversa. | string | 50 | sim |
| endereco | Logradouro de origem da reversa. | string | 50 | sim |
| numero | Número do endereço de origem. | string | 6 | sim |
| bairro | Bairro do endereço de origem. | string | 50 | sim |
| referencia | Referência do endereço de origem. | string | 30 | não |
| telefones | Array com os telefones de contato do remetente. Cada telefone somente dígitos (10 ou 11). Mínimo de 1 telefone. | array/string | 11 | sim |
| valorAcordado | Valor acordado da reversa (precisão de 2 casas decimais). | numeric | (9,2) | não |
| observacoesReversa | Observações adicionais da reversa. | string | 500 | não |
| prazoColeta | Prazo de coleta em dias úteis (mínimo 1). Quando informado, o sistema calcula a data de coleta convertendo dias úteis em dias corridos, considerando feriados. | integer | não | |
| dadosAdicionais | Dados adicionais no pedido (campo livre: chave valor). O mesmo pode ser utilizado para armazenar dados adicionais, onde você pode obtê-los na consulta do pedido. | array | não | |
| chave | nome do campo | string | 100 | sim |
| valor | valor do campo | string | 100 | sim |
Parâmetros de Retorno
| Campo | Descrição | Tipo | Tamanho |
| mensagem | Mensagem de retorno: sucesso | string | 255 |
| chavePedido | Chave do pedido para consultar consulta de rastreio e demais informações. Armazenar a mesma para compor o link publico de rastreio. Exemplo: https://www.allpost.com.br/rastreio/123/999d99999a2c1f8bcc9d32f83c22c581 |
string | 40 |
| numeroPedido | Seu número de pedido | string | 255 |
Exemplo de link de rastreio que pode ser enviado ao cliente: https://www.allpost.com.br/rastreio/{numeroPedido}/{chavePedido}
Body
{
"numeroPedido": "",
"tipoPedido": "envio ou reversa",
"pedidoAuxiliar": "",
"numeroPedidoEnvioPai": "",
"plataforma": "",
"canal": "",
"intermediadorVenda": "",
"idCotacao": "66666666666666-1-2",
"valorFretePedido": 0,
"controleEtiqueta": "allPost",
"enderecoEntrega": {
"nome": "",
"email": "",
"cpfCnpj": "",
"cep": "",
"uf": "",
"cidade": "",
"endereco": "",
"numero": "",
"bairro": "",
"referencia": "",
"telefones": ["1155555555", "11999999999"]
},
"envio": [{
"nome": "",
"peso": 0,
"altura": 0,
"largura": 0,
"profundidade": 0,
"quantidade": 0,
"quantidadeVolumes": 1,
"codigoRastreio": "YY111111111BR",
"plp": null,
"urlRastreioExterno": "",
"mapaDeCarga": "",
"prazoDeEntrega": "2022-08-02",
"nomeTransportadora": "",
"nomeMetodoEnvio": "",
"deParaMeli": null,
"produtos": [{
"peso": 0,
"altura": 0,
"largura": 0,
"profundidade": 0,
"preco": 0,
"titulo": "",
"sku": "",
"categoria": "",
"quantidade": 0,
"quantidadeVolumes": 0
}],
"notaFiscal": {
"filialERP": "",
"pedidoERP": "",
"chave": "",
"data": "2022-01-04",
"valorTotal": 0,
"valorTotalProdutos": 0
},
"dadosAdicionaisEnvio": {
"chave": "valor"
}
}],
"dadosAdicionais": {
"chave": "valor"
}
}
// ----------------------------------------------------------------------
// Exemplo de corpo para pedido de REVERSA (tipoPedido: "reversa")
// ----------------------------------------------------------------------
{
"numeroPedido": "REV-10023",
"tipoPedido": "reversa",
"numeroPedidoEnvioPai": "PED-10023",
"canal": "",
"idCotacao": "transporteProximo",
"valorFretePedido": 0,
"controleEtiqueta": "allPost",
"dadosReversa": {
"solicitanteReversa": "Cliente",
"motivoReversa": "Produto com defeito",
"tipoReversa": "Coleta no Cliente",
"resolucaoReversa": "reenvio do mesmo produto",
"pagadorFreteReversa": "Loja",
"remetente": {
"nome": "",
"cpfCnpj": "",
"email": "",
"cep": "",
"uf": "",
"cidade": "",
"endereco": "",
"numero": "",
"bairro": "",
"referencia": "",
"telefones": ["1155555555", "11999999999"]
},
"valorAcordado": 0.00,
"observacoesReversa": "",
"prazoColeta": 1
},
"envio": [{
"nome": "reversa1",
"peso": 0,
"quantidade": 1,
"quantidadeVolumes": 1,
"prazoDeEntrega": "2022-08-02",
"produtos": [{
"peso": 0,
"altura": 0,
"largura": 0,
"profundidade": 0,
"preco": 0,
"titulo": "",
"sku": "",
"quantidade": 1,
"quantidadeVolumes": 1
}],
"notaFiscal": {
"filialERP": "",
"chave": "",
"data": "2022-01-04",
"valorTotal": 0,
"valorTotalProdutos": 0
}
}]
}
Response
{
"mensagem": "sucesso",
"chavePedido": "999d99999a2c1f8bcc9d32f83c22c581",
"numeroPedido": ""
}