Um cliente Node.js para a API dos Correios, que permite fácil integração e gerenciamento de vários serviços dos Correios, como Token, Preço, Prazo, CEP e Rastreamento.
npm install correios-api-client
Primeiro, você precisa inicializar o cliente da API com sua configuração.
const apiClient = require('correios-api-client');
const configuration = {
ambiente: "PRODUCAO",
idCorreios: "00000000",
codigoAcesso: "xxxxxxxxxxxxxx",
contrato: "000000000",
}
apiClient.initialize(configuration);
Autentique-se na API dos Correios para receber tokens.
const token = await apiClient.Token.autentica();
const tokenCartaoPostagem = await apiClient.Token.autenticaCartaoPostagem();
const tokenContrato = await apiClient.Token.autenticaContrato();
Pesquise um endereço por CEP ou recupere vários endereços.
const endereco = await apiClient.Cep.search("85070555");
const enderecos = await apiClient.Cep.searchMany(["85070555", "85070200"]);
Calcule o prazo de entrega para encomendas nacionais.
const prazo = await apiClient.Prazo.nacional("04014", "85070555", "85070200");
Rastreie pacotes usando o número de rastreamento.
const rastro = await apiClient.Rastro.search("LX697446262CN");
Obtenha o preço estimado para uma entrega de pacote.
const consultaPreco = {
alturaCm: 20,
cepDestino: "85070555",
cepOrigem: "85070222",
comprimentoCm: 20,
diametroCm: 0,
tipoObjeto: TiposObjeto.Pacote,
larguraCm: 20,
pesoEmGramas: 300,
codigoProduto: "03220",
isAvisoRecebimento: false,
isMaoPropria: false,
valorDeclarado: 200
};
const preco = await apiClient.Preco.nacional(consultaPreco);
A biblioteca utiliza várias interfaces e enums para representar estruturas de dados.
interface Token {
readonly ambiente: "PRODUCAO" | "HOMOLOGACAO";
// ... outras propriedades ...
}
enum CorreiosAPIs {
Token = 5,
Preco = 34,
Prazo = 35,
Cep = 41,
Rastro = 87
}
interface Endereco {
readonly cep: string;
// ... outras propriedades ...
}
interface Prazo {
public readonly coProduto: string;
// ... outras propriedades ...
}
interface Rastro {
readonly versao: string;
// ... outras propriedades ...
}
interface Objeto {
codObjeto: string;
// ... outras propriedades ...
}
Para a lista completa de interfaces e suas propriedades, consulte o código-fonte.
Pull requests e problemas são bem-vindos. Se você encontrar algum bug ou quiser sugerir melhorias, crie um problema.
Esta biblioteca é de código aberto e licenciada sob a Licença MIT.