Correios Node.js
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
Como instalar
npm install node-correios --save
Como utilizar o calculo de frete
let Correios = ;let correios = ; correios;
Respostas
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;
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'
Métodos
Os métodos implementados são: calcPreco e calcPrecoPrazo
correios.calcPreco(args);
correios.calcPrecoPrazo(args);
Para executar o comando tem que enviar os campos obrigatórios. Para mais detalhes e informações veja o PDF da API dos correios
Obrigatórios
-
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
Não obrigatórios
-
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 mão própria
- S = sim
- N = não PADRÃO
Como utilizar a buscar por CEP
let Correios = ;let correios = ; correios;
Resposta
bairro: 'Ipanema' cep: '22421030' localidade: 'Rio de Janeiro' logradouro: 'Rua Redentor' uf: 'RJ'
Testes unitários
Para rodas os testes unitários:
$ npm test
Autor
Vitor Leal |
Licença
Veja LICENSE.txt