Módulo de Node.js que utilizar a API SOAP dos Correios para calcular frete de envio e buscar endereço pelo CEP. API dos Correios
npm install node-correios --save
Para a ver a lista de parâmetros aceitos em args
, acesse Métodos
let Correios = require('node-correios');
let correios = new Correios();
let args = {}
correios.calcPreco(args)
.then(result => {
console.log(result);
})
.catch(error => {
console.log(error);
});
Com sucesso:
[{
Codigo: 40010,
Valor: '23,30',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: '0',
MsgErro: {}
}]
Com erro:
[{
Codigo: 40215,
Valor: '0',
ValorMaoPropria: '0',
ValorAvisoRecebimento: '0',
ValorValorDeclarado: '0',
Erro: '008',
MsgErro: 'Serviço indisponível para o trecho informado.',
ValorSemAdicionais: '0'
}]
Para consultar mais de um serviço na mesma requisição, basta passar vários códigos de serviço, separados por vírgula,
para o parâmetro nCdServico
(ver descrição dos parâmetros abaixo). Neste caso, o array da resposta conterá um objeto
por cada código informado, sendo que alguns podem apresentar erro e outros podem ter tido sucesso.
let args = {
nCdServico: '40010,41106,40215',
// demais parâmetros ...
}
correios.calcPreco(args)
.then(result => {
console.log(result);
})
.catch(error => {
console.log(error)
});
[{
Codigo: 40010,
Valor: '24,10',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: {},
MsgErro: {},
ValorSemAdicionais: '24,10'
},{
Codigo: 41106,
Valor: '16,80',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: {},
MsgErro: {},
ValorSemAdicionais: '16,80'
},{
Codigo: 40215,
Valor: '0',
ValorMaoPropria: '0',
ValorAvisoRecebimento: '0',
ValorValorDeclarado: '0',
Erro: '008',
MsgErro: 'Serviço indisponível para o trecho informado.',
ValorSemAdicionais: '0'
}]
Os métodos implementados são: calcPreco e calcPrecoPrazo
Para executar o comando tem que enviar os campos obrigatórios. Para mais detalhes e informações veja o PDF da API dos correios
-
nCdServico
- StringCódigo do serviço:
- 04014 = SEDEX à vista
- 04065 = SEDEX à vista pagamento na entrega
- 04510 = PAC à vista
- 04707 = PAC à vista pagamento na entrega
- 40169 = SEDEX12 ( à vista e a faturar)
- 40215 = SEDEX 10 (à vista e a faturar)
- 40290 = SEDEX Hoje Varejo
-
sCepOrigem
- StringCEP de Origem sem hífen. Exemplo: 05311900
-
sCepDestino
- StringCEP de Destino sem hífen
-
nVlPeso
- StringPeso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor máximo permitido será 1 kg
-
nCdFormato
- InteiroFormato da encomenda (incluindo embalagem)
- 1 = Formato caixa/pacote
- 2 = Formato rolo/prisma
- 3 = Envelope
-
nVlComprimento
- DecimalComprimento da encomenda (incluindo embalagem), em centímetros
-
nVlAltura
- DecimalAltura da encomenda (incluindo embalagem), em centímetros. Se o formato for envelope, informar zero (0)
-
nVlLargura
- DecimalLargura da encomenda (incluindo embalagem), em centímetros
-
nVlDiametro
- DecimalDiâmetro da encomenda (incluindo embalagem), em centímetros
-
nCdEmpresa
- StringSeu código administrativo junto à ECT. O código está disponível no corpo do contrato firmado com os Correios
-
sDsSenha
- StringSenha para acesso ao serviço, associada ao seu código administrativo. A senha inicial corresponde aos 8 primeiros dígitos do CNPJ informado no contrato
-
sCdMaoPropria
- StringIndica se a encomenda será entregue com o serviço adicional mão própria
- S = sim
- N = não PADRÃO
-
nVlValorDeclarado
- DecimalIndica se a encomenda será entregue com o serviço adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais
-
sCdAvisoRecebimento
- StringIndica se a encomenda será entregue com o serviço adicional de aviso de recebimento
- S = sim
- N = não PADRÃO
let Correios = require('node-correios');
let correios = new Correios();
correios.consultaCEP({ cep: '00000000' })
.then(result => {
console.log(result);
})
.catch(error => {
console.log(error);
});
{
bairro: 'Ipanema',
cep: '22421030',
localidade: 'Rio de Janeiro',
logradouro: 'Rua Redentor',
uf: 'RJ'
}
Para rodas os testes unitários:
$ npm test
Vitor Leal |
Veja LICENSE.txt