• Stars
    star
    153
  • Rank 241,912 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

✉️ Calcular frete e pesquisar CEP com a API dos Correios

Correios Node.js

Build Status npm

NPM

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

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);
});

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.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'
}]

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 - String

    Có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 - String

    CEP de Origem sem hífen. Exemplo: 05311900

  • sCepDestino - String

    CEP de Destino sem hífen

  • nVlPeso - String

    Peso 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 - Inteiro

    Formato da encomenda (incluindo embalagem)

    • 1 = Formato caixa/pacote
    • 2 = Formato rolo/prisma
    • 3 = Envelope
  • nVlComprimento - Decimal

    Comprimento da encomenda (incluindo embalagem), em centímetros

  • nVlAltura - Decimal

    Altura da encomenda (incluindo embalagem), em centímetros. Se o formato for envelope, informar zero (0)

  • nVlLargura - Decimal

    Largura da encomenda (incluindo embalagem), em centímetros

  • nVlDiametro - Decimal

    Diâmetro da encomenda (incluindo embalagem), em centímetros

Não obrigatórios
  • nCdEmpresa - String

    Seu código administrativo junto à ECT. O código está disponível no corpo do contrato firmado com os Correios

  • sDsSenha - String

    Senha 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 - String

    Indica se a encomenda será entregue com o serviço adicional mão própria

    • S = sim
    • N = não PADRÃO
  • nVlValorDeclarado - Decimal

    Indica se a encomenda será entregue com o serviço adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais

  • sCdAvisoRecebimento - String

    Indica se a encomenda será entregue com o serviço adicional de aviso de recebimento

    • S = sim
    • N = não PADRÃO

Como utilizar a buscar por CEP

let Correios = require('node-correios');
let correios = new Correios();

correios.consultaCEP({ cep: '00000000' })
.then(result => {
  console.log(result);
})
.catch(error => {
  console.log(error);
});
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

twitter/vitorleal
Vitor Leal

Licença

Veja LICENSE.txt

More Repositories

1

matrix-led-python

🤖 Python module to control a 32x32 Matrix Led in the Raspberry Pi
C++
27
star
2

hex-2-rgb

👾 Sublime Text 2 package for converting CSS hexadecimal colors into RGB
Python
9
star
3

dotfiles

💎 My precious dotfiles
Shell
7
star
4

kit-iot

Kit Desenvolvimento IoT
JavaScript
6
star
5

ticketvr-android

💸 Ticket VR Android app
Java
4
star
6

jogos-escolares-da-juventude

🎮 Jogo HTML5 para os Jogos Escolares da Juventude
JavaScript
4
star
7

go-dweetio

Go-Dweetio is Go client for the Dweetio API
Go
4
star
8

vim-go-syntax

💻 Go lang syntax for Vim
Vim Script
4
star
9

say-something

📣 Use the Google Translate voice to make you apps and things talk!
JavaScript
4
star
10

payment

💰 Payment Gateway Proof of Concept
Go
3
star
11

express-example

Exemplo de servidor utilizando express para a aula de node.js
JavaScript
3
star
12

find-cine

🎥 Find movie theaters near a location using Google Movies
JavaScript
3
star
13

my-bulb

💡 Node.js simple server to control Lifx Smart Bulb
JavaScript
2
star
14

invoicing

💵 My invoice app
HTML
2
star
15

kit-iot-wearable-android

Kit IoT Wearable Android
Java
2
star
16

kit-iot-wearable-arduino

Sketch Arduino do Kit IoT Wearable
C++
2
star
17

vitorleal

2
star
18

kit-iot-wearable-ios

iOS Swift App to connect to the Kit IoT Wearable
Swift
2
star
19

find-cine-go

🎥 Find movie theaters close to an address using Golang
Go
2
star
20

intel-iot-roadshow-2014

🚁 Quadcopter project for the Intel IoT RoadShow Brazil 2014
JavaScript
2
star
21

node-apc220

Node.js module to connect to the APC220
JavaScript
1
star
22

quadcopter

🚁 My quadcopter
Arduino
1
star
23

arduino-socketio

Test project using Arduino, nodeJS and Socket.IO
JavaScript
1
star
24

ergodox

🎹 My Ergodox keyboard layout
1
star
25

BeaconTracker

👾 Projeto do Intel RoadShow 2015
JavaScript
1
star
26

talks

My Talks
1
star
27

vitorleal.github.io

✌️ My personal website
HTML
1
star
28

correios-server

Server using the correios API
JavaScript
1
star
29

flask-tests

Flask, AngularJS and MognoLabs tests
Python
1
star
30

angular-demo-app

Aplicativo simples em angular para demonstração
CSS
1
star
31

hyoga

Hyoga - Institutions microservice
Go
1
star
32

angular-start

Basic angular project to the AngularJS talk
JavaScript
1
star