Solicitação de Coleta
POST http://dominiotransportadora.com.br/api/v1/coleta/
Disparo de dados para como ordem de coleta.
A Transportadora pode preparar um webservice para receber as solicitações de coleta do Embarcador.
A Frete Rápido irá disparar o conjunto de dados abaixo, através de uma requisição.
Envio:
Parâmetros do corpo da requisição:
Descrição | Formato / Exemplo | Informado | |
---|---|---|---|
canal | Canal utilizado no momento da cotação/simulação | String | Opcional |
data_coleta | Data de coleta informada pelo Embarcador | Date ("YYYY-MM-DD") | Opcional |
data_faturamento | Data de faturamento do pedido na loja | Datetime (YYYY-MM-DD HH:mm:ss) | Opcional |
data_pedido | Data de criação do pedido na loja | Datetime (YYYY-MM-DD HH:mm:ss) | Opcional |
destinatario | Objeto com dados de endereço do destinatário da carga | Objeto em json | * |
cnpj_cpf | CNPJ ou CPF do destinatário da carga. Você pode validar se é Pessoa Física ou Jurídica pela quantidade de caracteres. | String de 11 ou 14 caracteres sem formatação | * |
E-mail do destinatário da carga | String | Opcional | |
endereco | Objeto em json | * | |
bairro | Bairro do destinatário | String | * |
cep | CEP do destinatário | String | * |
cidade | Cidade do destinatário | String | * |
complemento | Complemento do endereço (se houver) | String | Opcional |
estado | Estado do destinatário (exemplo: ES) | String | * |
numero | Número do local do destinatário | String | * |
rua | Logradouro do destinatário | String | * |
inscricao_estadual | Inscrição Estadual do destinatário da carga | String | Se Pessoa Jurídica |
nome | Nome ou Razão Social do destinatário da carga | String | * |
telefone | Telefone do destinatário da carga | String | Opcional |
expedidor | Objeto com dados de endereço do expedidor da carga (se houver) | Objeto em json | Se houver expedidor |
cnpj | CNPJ do expedidor da carga | String de 14 caracteres sem formatação | Se houver expedidor |
endereco | Objeto em json | Se houver expedidor | |
bairro | Bairro do expedidor | String | Se houver expedidor |
cep | CEP do expedidor / retirada da carga | String | Se houver expedidor |
cidade | Cidade do expedidor | String | Se houver expedidor |
complemento | Complemento do endereço (se houver) | String | Opcional |
estado | Estado do expedidor (exemplo: MG) | String | Se houver expedidor |
numero | Número do local do expedidor | String | Se houver expedidor |
rua | Logradouro do expedidor | String | Se houver expedidor |
inscricao_estadual | Inscrição Estadual do expedidor da carga | String | Se houver expedidor |
nome_fantasia | Nome Fantasia do expedidor da carga | String | Se houver expedidor |
razao_social | Razão Social do expedidor da carga | String | Se houver expedidor |
forma_pagamento | Forma de pagamento do pedido | String | Opcional |
id_frete | Identificador único de cada cotação/frete na Frete Rápido. Através deste é possível obter e relacionar todos os outros dados. | String de 13 caracteres | * |
identificador | Identificador fornecido pela transportadora | String | Opcional |
metadados | Array de objetos contendo chave e valor com as informações adicionais da contratação | Array de objeto JSON contendo até 64 itens | Opcional |
chave | Nome do atributo de informação extra da solicitação de coleta, que são informadas pelo embarcador, deve ser nome único para chave | String de até 255 caracteres | Se houver metadados |
valor | Corresponde ao valor do atributo da chave informada. | String de até 255 caracteres | Se houver metadados |
nfe | Objeto com as informações da NF-e | Objeto em json | Opcional |
chave_acesso | Chave da NF | String | Se houver NF |
data_emissao | Data de emissão NF | DateTime ("YYYY-MM-DD hh:mm:ss") | Condicionalmente |
numero | Número da NF | String | Se houver NF |
quantidade_volumes | Quantidade de Volumes da NF | String | Condicionalmente |
serie | Série da NF | String | Se houver NF |
valor | Valor da NF | Numérico (float) | Se houver NF |
valor_itens | Valor dos itens na NF | Numérico (float) | Condicionalmente |
nfes | Array de objetos com as informações da(s) NF-e(s) | Array de objetos | Opcional |
chave_acesso | Chave da NF | String | Se houver NF |
data_emissao | Data de emissão NF | DateTime ("YYYY-MM-DD hh:mm:ss") | Condicionalmente |
numero | Número da NF | String | Se houver NF |
quantidade_volumes | Quantidade de Volumes da NF | String | Condicionalmente |
serie | Série da NF | String | Se houver NF |
valor | Valor da NF | Numérico (float) | Se houver NF |
valor_itens | Valor dos itens na NF | Numérico (float) | Condicionalmente |
numero_pedido | Número do pedido na loja | String | Opcional |
obs_cliente | Observação(texto livre) do cliente sobre o pedido | String | Opcional |
remetente | Objeto com dados de endereço do remetente / origem da carga | Objeto em json | * |
cnpj | CNPJ do remetente da carga | String de 14 caracteres sem formatação | * |
endereco | Objeto em json | * | |
bairro | Bairro do remetente | String | * |
cep | CEP do remetente | String | * |
cidade | Cidade do remetente | String | * |
complemento | Complemento do endereço (se houver) | String | Opcional |
estado | Estado do remetente (exemplo: SP) | String | * |
numero | Número do local do remetente | String | * |
rua | Logradouro do remetente | String | * |
inscricao_estadual | Inscrição Estadual do remetente da carga | String | * |
nome_fantasia | Nome Fantasia do remetente da carga | String | * |
razao_social | Razão Social do remetente da carga | String | * |
servico | Serviço informado na cotação de frete | String | * |
tipo_cobranca | String com o tipo de cobrança do frete | CIF ou FOB | * |
token | Token de integração | String de 32 caracteres | * |
token_oferta | Identificador da cotação realizada antes do frete ter sido contratado | String | * |
transportadora | Objeto com as informações da Transportadora | Objeto em json | * |
cnpj | CNPJ da Transportadora | String | * |
valor_cotado | Valor Cotado | String | * |
valor_pedido | Valor total do pedido | Numérico(float) | Opcional |
volumes | Array com um ou mais objetos dos volumes informados | Array em json | * |
Objeto com as características do volume informado | Objeto em json | * | |
altura | Altura do volume unitário em metros | Numérico (float) | * |
comprimento | Comprimento do volume unitário em metros | Numérico (float) | * |
descricao | Descrição do volume concatenada com a descrição do produto informado | String | Opcional |
largura | Largura do volume unitário em metros | Numérico (float) | * |
peso_real | Peso total (em Kg) dos volumes informados. Exemplo: 6 volumes com 0.5 Kg cada, o valor informado será de 3 Kg | Numérico (float) | * |
quantidade | Quantidade de volumes iguais e do mesmo tipo | Numérico (inteiro) | * |
sku | SKU do produto informado | String | Opcional |
tag | Tag do volume/produto informado | String | Opcional |
tipo | Tipo do volume informado (vide tabela de tipos de volumes) | Numérico (inteiro) | * |
valor | Valor total do conjunto de volumes informados. Exemplo: 6 volumes custando R$20,00 cada, então o valor informado será R$120,00 | Numérico (float) | * |
* Informados sempre
Exemplo de envio:
{
"canal": "",
"data_coleta": "",
"data_faturamento": "",
"data_pedido": "",
"destinatario": {
"cnpj_cpf": "",
"email": "",
"endereco": {
"bairro": "",
"cep": "",
"cidade":"",
"complemento": "",
"estado":"",
"numero": "",
"rua": "",
},
"inscricao_estadual": "",
"nome": "",
"telefone": "",
},
"expedidor": {
"cnpj": "",
"endereco": {
"bairro": "",
"cep": "",
"cidade": "",
"complemento": "",
"estado": "",
"numero": "",
"rua": ""
},
"inscricao_estadual": "",
"nome_fantasia": "",
"razao_social": ""
},
"forma_pagamento": "",
"id_frete": "",
"identificador":"",
"metadados": [
{
"chave": "",
"valor": ""
}
],
"nfe": {
"chave_acesso": "",
"data_emissao": "",
"numero": "",
"quantidade_volumes": "",
"serie": "",
"valor": 0.00,
"valor_itens": 0.00
},
"nfes": [
{
"chave_acesso": "",
"data_emissao": "",
"numero": "",
"quantidade_volumes": "",
"serie": "",
"valor": 0.00,
"valor_itens": 0.00
},
{
"chave_acesso": "",
"data_emissao": "",
"numero": "",
"quantidade_volumes": "",
"serie": "",
"valor": 0.00,
"valor_itens": 0.00
}
],
"numero_pedido": "",
"obs_cliente": "",
"remetente": {
"cnpj": "",
"endereco": {
"bairro": "",
"cep": "",
"cidade": "",
"complemento": "",
"estado": "",
"numero": "",
"rua": ""
},
"inscricao_estadual": "",
"nome_fantasia": "",
"razao_social": ""
},
"servico": "",
"tipo_cobranca": "",
"token": "",
"token_oferta":"",
"transportadora": {
"cnpj": "",
"valor_cotado": ""
},
"valor_pedido": 0.00,
"volumes": [
{
"altura": 0.00,
"comprimento": 0.00,
"descricao": "",
"largura": 0.00,
"peso_real": 0.00,
"quantidade": 0,
"sku": "",
"tag": "",
"tipo": 0,
"valor": 0.00
},
{
"altura": 0.00,
"comprimento": 0.00,
"descricao": "",
"largura": 0.00,
"peso_real": 0.00,
"quantidade": 0,
"sku": "",
"tag": "",
"tipo": 0,
"valor": 0.00
}
],
}
- Se a requisição obtiver sucesso, deve ser retornado o código de resposta HTTP 200. Senão, pode ser retornado uma mensagem de erro para que possamos investigar.
Reprocessamento
- O reprocessamento automático acontece nos casos onde o status do retorno seja:
Condição | Status |
---|---|
igual a | HTTP 408 |
igual a | HTTP 429 |
maior ou igual a | HTTP 500 |
Cada tentativa é realizada até que a API retorne um status de sucesso ou até que o número máximo de tentativas seja atingido.
O intervalo entre as tentativas de reprocessamento é relativo à tentativa anterior, ou seja, cada nova tentativa ocorre após um tempo adicional em relação à última tentativa, e não em relação ao momento de criação do webhook. O exemplo a seguir ilustra esse processo de re-tentativas, com o tempo adicional aplicado a cada nova tentativa:
- Tentativa 1: após 1 minuto (acumulado: 1 minuto)
- Tentativa 2: após 5 minutos (acumulado: 6 minutos)
- Tentativa 3: após 10 minutos (acumulado: 16 minutos)
Veja abaixo a tabela completa com as tentativas e seus respectivos tempos:
Tentativa | Tempo |
---|---|
1 | 1min |
2 | 2min |
3 | 3min |
4 | 5min |
5 | 10min |
6 | 15min |
7 | 30min |
8 | 1h |
9 | 1h30min |
10 | 2h |
11 | 2h30min |
12 | 4h |
13 | 5h |
14 | 7h |
- Ao solicitar o reprocessamento pelo Dash FR, caso o retorno não seja bem-sucedido, serão realizadas até 3 tentativas, todas com um intervalo de 1 minuto. As tentativas seguem a mesma lógica cumulativa utilizada no fluxo padrão, acumulando o tempo total decorrido entre elas.
Tentativa | Tempo |
---|---|
1 | 1min |
2 | 1min |
3 | 1min |