Credenciais

A credencial para acessar essa API é um token, que será disponibilizado no portal Smartload, após fechamento da parceria. Qualquer tentativa de acesso sem esse parâmetro será recusada.

Averbação

Para realizar a averbação utilize estes parâmetros:

método: POST
url: https://qa-smartfunctions-smartload-br.azurewebsites.net/averbacoes
token: 8fb08b44-55d4-4e7a-9b98-b5fec7d78956 (exemplo)

Nota

O token deverá ser enviado no header da requisição.

Nota

O XML deverá ser enviado no body da requisição.

Consulta

Para realizar a consulta do arquivo averbado ou cancelado utilize estes parâmetros:

método: GET
url: https://smartfunctions-smartload-br.azurewebsites.net/averbacoes/{file_id}
ou
url: https://smartfunctions-smartload-br.azurewebsites.net/averbacoes/{canceled_file_id}
token: 8fb08b44-55d4-4e7a-9b98-b5fec7d78956 (exemplo)

Nota

O token deverá ser enviado no header da requisição.

Averbação

Nessa seção você irá encontrar o schema e layout do XML que deveverá ser enviado para realizar a averbação de sua carga.

Averbando CTe

POST/

Header: token
Body: XML CTe (exemplo)

Tags Complementares

Você tem a opção de inserir tags complementares no XML do seu CTe. Estas tags são para complementar algumas informações que serão utilizadas para realizar a averbação de sua carga. No caso do CTe, essas tags ficam dentro de uma outra tag própria do CTe chamada: <compl></compl>.
As tags <cMunIni />, <UFIni />, <cMunFim />, <UFFim /> dentro da <compl/>, só serão obrigatóriamente enviadas caso a tag <fluvial /> esteja como "S".

Tag Descrição Formato Tamanho Tipo Condição
valContainer Valor destinado à proteção do container 000000.00 1-6.2 Double opcional
valAvarias Valor destinado à proteção de avarias 000000.00 1-6.2 Double opcional
valImpostos Valor destinado aos impostos suspensos 000000.00 1-6.2 Double opcional
OCD Quando possuir operação de carga e descarga S - Sim, N - Não 1 String opcional
OCDI Quando possuir operação de carga e descarga e içamento S - Sim, N - Não 1 String opcional
fluvial Quando possuir percurso fluvial S - Sim, N - Não 1 String opcional
cMunIni Código do munícipio de início do percurso complementar 0000000 7 Int opcional
UFIni Sigla da UF de início do percurso complementar XX 2 String opcional
cMunFim Código do munícipio final do percurso complementar 0000000 7 Int opcional
UFFim Sigla da UF final do percurso complementar XX 2 String opcional
dhEmbarque Data do embarque YYYY-MM-DD HH:mm:ss UTC 19 String opcional
respSeg Indicador do responsável do seguro 0 - Remetente, 1 - Expedidor, 2 - Recebedor, 3 - Destinatário 1 Int opcional
movInterna Quando possuir movimentação interna S - Sim, N - Não 1 String opcional
cargaFrigorificada Quando possuir carga frigorificada S - Sim, N - Não 1 String opcional
cargasEspeciais Quando possuir cargas especiais S - Sim, N - Não 1 String opcional
CODSMART Código de liberação da Smartload 2347552 7 Int opcional
aereo Quando houver percurso aéreo S - Sim, N - Não 1 String opcional
rodoviario Quando houver percurso rodoviário S - Sim, N - Não 1 String opcional
ferroviario Quando houver percurso ferroviário S - Sim, N - Não 1 String opcional
rastreado Quando houver rastreamento S - Sim, N - Não 1 String opcional
escolta Quando houver escolta S - Sim, N - Não 1 String opcional
tpmercadoria Quando houver necessidade informe o tipo de mercadoria geral | especifica 5-10 String opcional
Exemplo tags complementares
				
<compl>
	<valContainer>100845.39</valContainer>
	<valAvarias>100845.39</valAvarias>
	<valImpostos>16.39</valImpostos>
	<OCD>S</OCD>
	<OCDI>N</OCDI>
	<fluvial>S</fluvial>
	<cMunIni>3205002</cMunIni>
	<UFIni>ES</UFIni>
	<cMunFim>3205002</cMunFim>
	<UFFim>ES</UFFim>
	<dhEmbarque>2021-08-09T15:29:46-03:00</dhEmbarque>
	<respSeg>0</respSeg>
	<movInterna>S</movInterna>
	<cargaFrigorificada>N</cargaFrigorificada>
	<cargasEspeciais>S</cargasEspeciais>
	<CODSMART>2347552</CODSMART>
	<aereo>S</aereo>
	<rodoviario>N</rodoviario>
	<ferroviario>N</ferroviario>
	<rastreado>S</rastreado>
	<escolta>N</escolta>
	<tpmercadoria>geral</tpmercadoria>
</compl>
						

Averbando NFe

POST/

Header: token
Body: XML NFe (exemplo)

Tags Complementares

Você tem a opção de inserir tags complementares no XML da sua NFe. Estas tags são para complementar algumas informações que serão utilizadas para realizar a averbação de sua carga. No caso da NFe, essas tags ficam dentro de uma outra tag própria da NFe chamada: <infAdic></infAdic>.
As tags <cMunIni />, <UFIni />, <cMunFim />, <UFFim /> dentro da <infAdic/>, só serão obrigatóriamente enviadas caso a tag <fluvial /> esteja como "S".

Tag Descrição Formato Tamanho Tipo Condição
valContainer Valor destinado à proteção do container 000000.00 1-6.2 Double opcional
valAvarias Valor destinado à proteção de avarias 000000.00 1-6.2 Double opcional
OCD Quando possuir operação de carga e descarga S - Sim, N - Não 1 String opcional
OCDI Quando possuir operação de carga e descarga e içamento S - Sim, N - Não 1 String opcional
fluvial Quando possuir percurso fluvial S - Sim, N - Não 1 String opcional
cMunIni Código do munícipio de início do percurso complementar 0000000 7 Int opcional
UFIni Sigla da UF de início do percurso complementar XX 2 String opcional
cMunFim Código do munícipio final do percurso complementar 0000000 7 Int opcional
UFFim Sigla da UF final do percurso complementar XX 2 String opcional
dhEmbarque Data do embarque YYYY-MM-DD HH:mm:ss UTC 19 String opcional
respSeg Indicador do responsável do seguro 0 - Remetente, 1 - Expedidor, 2 - Recebedor, 3 - Destinatário 1 Int opcional
movInterna Quando possuir movimentação interna S - Sim, N - Não 1 String opcional
cargaFrigorificada Quando possuir carga frigorificada S - Sim, N - Não 1 String opcional
cargasEspeciais Quando possuir cargas especiais S - Sim, N - Não 1 String opcional
CODSMART Código de liberação da Smartload 2347552 7 Int opcional
aereo Quando houver percurso aéreo S - Sim, N - Não 1 String opcional
rodoviario Quando houver percurso rodoviário S - Sim, N - Não 1 String opcional
ferroviario Quando houver percurso ferroviário S - Sim, N - Não 1 String opcional
rastreado Quando houver rastreamento S - Sim, N - Não 1 String opcional
escolta Quando houver escolta S - Sim, N - Não 1 String opcional
tpmercadoria Quando houver necessidade informe o tipo de mercadoria geral | especifica 5-10 String opcional
Exemplo tags complementares
				
<infAdic>
	<valContainer>100845.39</valContainer>
	<valAvarias>100845.39</valAvarias>
	<OCD>S</OCD>
	<OCDI>N</OCDI>
	<fluvial>S</fluvial>
	<cMunIni>3205002</cMunIni>
	<UFIni>ES</UFIni>
	<cMunFim>3205002</cMunFim>
	<UFFim>ES</UFFim>
	<dhEmbarque>2021-08-09T15:29:46-03:00</dhEmbarque>
	<movInterna>S</movInterna>
	<cargaFrigorificada>N</cargaFrigorificada>
	<cargasEspeciais>S</cargasEspeciais>
	<CODSMART>2347552</CODSMART>
	<aereo>S</aereo>
	<rodoviario>N</rodoviario>
	<ferroviario>N</ferroviario>
	<rastreado>S</rastreado>
	<escolta>N</escolta>
	<tpmercadoria>geral</tpmercadoria>
</infAdic>
						

Averbando Smartdoc (outros documentos)

POST/

Header: token
Body: XML Smartdoc (exemplo)

O padrão SmartDoc serve para que os segurados possam averbar outros tipos de documentos, tais como nota fiscal de serviço, minuta, ordem de coleta entre outros.

Nota

Preencher a tag <mod></mod> da seguinte forma:

89: smartdoc-outros

Nota

Dentro da tag <dest></dest> você deve preencher da seguinte forma:

Utilize a tag: <CNPJ></CNPJ> - Quando o destinatário for uma pessoa jurídica.
Exemplo: XML Smartdoc

ou

Utilize a tag:<CPF></CPF> - Quando o destinatário for uma pessoa física.
Exemplo: XML Smartdoc


Tags Complementares

Você tem a opção de inserir tags complementares no XML do seu Smartdoc. Estas tags são para complementar algumas informações que serão utilizadas para realizar a averbação de sua carga. No caso do Smartdoc, essas tags ficam dentro de uma outra tag própria do Smartdoc chamada: <compl></compl>.
As tags <cMunIni />, <UFIni />, <cMunFim />, <UFFim /> dentro da <compl/>, só serão obrigatóriamente enviadas caso a tag <fluvial /> esteja como "S".

Tag Descrição Formato Tamanho Tipo Condição
valContainer Valor destinado à proteção do container 000000.00 1-6.2 Double opcional
valAvarias Valor destinado à proteção de avarias 000000.00 1-6.2 Double opcional
valImpostos Valor destinado aos impostos suspensos 000000.00 1-6.2 Double opcional
OCD Quando possuir operação de carga e descarga S - Sim, N - Não 1 String opcional
OCDI Quando possuir operação de carga e descarga e içamento S - Sim, N - Não 1 String opcional
fluvial Quando possuir percurso fluvial S - Sim, N - Não 1 String opcional
cMunIni Código do munícipio de início do percurso complementar 0000000 7 Int opcional
UFIni Sigla da UF de início do percurso complementar XX 2 String opcional
cMunFim Código do munícipio final do percurso complementar 0000000 7 Int opcional
UFFim Sigla da UF final do percurso complementar XX 2 String opcional
dhEmbarque Data do embarque YYYY-MM-DD HH:mm:ss UTC 19 String opcional
respSeg Indicador do responsável do seguro 0 - Remetente, 1 - Expedidor, 2 - Recebedor, 3 - Destinatário 1 Int opcional
movInterna Quando possuir movimentação interna S - Sim, N - Não 1 String opcional
cargaFrigorificada Quando possuir carga frigorificada S - Sim, N - Não 1 String opcional
cargasEspeciais Quando possuir cargas especiais S - Sim, N - Não 1 String opcional
CODSMART Código de liberação da Smartload 2347552 7 Int opcional
aereo Quando houver percurso aéreo S - Sim, N - Não 1 String opcional
rodoviario Quando houver percurso rodoviário S - Sim, N - Não 1 String opcional
ferroviario Quando houver percurso ferroviário S - Sim, N - Não 1 String opcional
rastreado Quando houver rastreamento S - Sim, N - Não 1 String opcional
escolta Quando houver escolta S - Sim, N - Não 1 String opcional
tpmercadoria Quando houver necessidade informe o tipo de mercadoria geral | especifica 5-10 String opcional
Exemplo tags complementares
				
<compl>
	<valContainer>100845.39</valContainer>
	<valAvarias>100845.39</valAvarias>
	<valImpostos>16.39</valImpostos>
	<OCD>S</OCD>
	<OCDI>N</OCDI>
	<fluvial>S</fluvial>
	<cMunIni>3205002</cMunIni>
	<UFIni>ES</UFIni>
	<cMunFim>3205002</cMunFim>
	<UFFim>ES</UFFim>
	<dhEmbarque>2021-08-09T15:29:46-03:00</dhEmbarque>
	<respSeg>0</respSeg>
	<movInterna>S</movInterna>
	<cargaFrigorificada>N</cargaFrigorificada>
	<cargasEspeciais>S</cargasEspeciais>
	<CODSMART>2347552</CODSMART>
	<aereo>S</aereo>
	<rodoviario>N</rodoviario>
	<ferroviario>N</ferroviario>
	<rastreado>S</rastreado>
	<escolta>N</escolta>
	<tpmercadoria>geral</tpmercadoria>
</compl>
						

Transmitindo MDFe

POST/

Header: token
Body: XML MDFe (exemplo)

Cancelando Averbação CTe

POST/

Header: token
Body: XML CTe Cancelado (exemplo)

Cancelando Averbação NFe

POST/

Header: token
Body: XML NFe Cancelada (exemplo)

Cancelando Averbação Smartdoc

POST/

Header: token
Body: XML Smartdoc Cancelado (exemplo)

Retornos da API

A API da Smartload possui um padrão bem estabelecido de retornos, fazendo com que o conteúdo deste seja acertivo e de fácil entendimento. Para isto determinamos código de sucesso, e em caso de erro, a API retornará a tag onde ocorreu o erro, a descrição, e qual a sugestão de solução para o problema identificado.


Respeitando o seguinte padrão:

Averbado com Sucesso

HTTP 201

Retorno de Sucesso

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
averbation_number Número da averbação String
file_id ID do arquivo averbado String
Exemplo de retorno

{
  "protocol": "8f0f775e-110b-4a98-8308-f3308ecee256",
  "name": "SuccessfullyAverbation",
  "message": "sua averbação foi realizada com sucesso",
  "averbation_number": "1234514212477541200016158002060000033832",
  "file_id": "e616f333-6cc1-4f6a-9207-51e9032b4d1d"
}
						

Cancelado com Sucesso

HTTP 200

Retorno de Sucesso

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
canceled_file_id ID do arquivo cancelado String
Exemplo de retorno

{
  "protocol": "070c6c27-4fef-4951-9e20-4afe1c705d67",
  "name": "SuccessfullyCancellation",
  "message": "sua averbação foi cancelada com sucesso",
  "canceled_file_id": "ced979fe-0219-4878-88d8-0ec82bcef824"
}
						

Erro Documento Já Averbado

HTTP 422

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
averbation_number Número da averbação String
file_id ID do arquivo averbado String
Exemplo de retorno

{
  "protocol": "2af63555-28b7-410f-927a-deec0a7040bb",
  "name": "AlreadyAssuredError",
  "message": "Arquivo já foi averbado anteriormente",
  "solution": "Verificar arquivo",
  "averbation_number": "1234512212476541200032357005000002848899",
  "file_id": "10ec29de-8066-4544-8f1d-6c86bc161702"
}
						

Erro Documento Já Cancelado

HTTP 422

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
canceled_file_id ID do arquivo cancelado String
Exemplo de retorno

{
  "protocol": "070c6c27-4fef-4951-9e20-4afe1c705d67",
  "name": "AlreadyCanceledError",
  "message": "Arquivo já foi cancelado anteriormente",
  "solution": "Verificar arquivo",
  "canceled_file_id": "ced979fe-0219-4878-88d8-0ec82bcef824"
}
						

Erro de Sessão

HTTP 401

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "c2fc49ea-c00b-42aa-a763-a30f1f2f91ad",
  "name": "SessionError",
  "message": "Acesso Negado",
  "solution": "Token inválido"
}
						

Erro de Autorização

HTTP 403

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "f403a350-0d8f-4e57-ab59-8db7dca35a31",
  "name": "UnauthorizedError",
  "message": "CNPJ emissor não autorizado para averbar",
  "solution": "Verificar CNPJ emitente"
}
						

Erro de Documento Inválido

HTTP 400

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "e0d739be-836e-4d17-b86a-324aa545f0ec",
  "name": "InvalidDocumentError",
  "message": "Arquivo inválido",
  "solution": "Verificar arquivo enviado"
}
						

Erro de Documento Não Encontrado

HTTP 406

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "e0d739be-836e-4d17-b86a-324aa545f0ec",
  "name": "DocumentNotFoundError",
  "message": "Documento não encontrado",
  "solution": "Verificar o id do arquivo"
}
						

Erro de Conteúdo do Documento

HTTP 400

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
tag Tag do documento onde ocorreu o erro String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "bfcb4bff-af4c-4205-ad1e-858db1932d02",
  "name": "ContentDocumentError",
  "tag": "ide/serie",
  "message": "Tag obrigatória",
  "solution": "Verificar se no arquivo consta a tag ide/serie"
}
						

Erro de Averbação

HTTP 406

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
Exemplo de retorno

{
  "protocol": "7eefbd6b-f7a1-42c5-baf0-11a62b5d4257",
  "name": "AverbationError",
  "message": "Cancelamento invalido, arquivo não averbado",
  "solution": "Verificar arquivo"
}
						

Erro Interno

HTTP 500

Retorno de Erro

Schema do retorno
Key Descrição Tipo
protocol Protocolo da requisição efetuada String
name Nome do processo retornado String
message Descrição da mensagem String
solution Sugestão para solucionar o erro String
phone Telefone para contatar o suporte String
Exemplo de retorno

{
  "protocol": "7c513a82-e3ef-41c8-8a28-551028b694a7",
  "name": "InternalServerError",
  "message": "Erro Interno",
  "solution": "Contatar equipe de suporte smartload",
  "phone": "(11) 2222-1289"
}