sigep-js

Modulo para trabalhar com o SIGEP dos correios

Usage no npm install needed!

<script type="module">
  import sigepJs from 'https://cdn.skypack.dev/sigep-js';
</script>

README

SIGEP-JS - DESENVOLVIMENTO

Objetivo

Uma camada para facilitar as chamadas para o sigep em NODE e geração pdf das etiquetas.

Instalação

npm install sigep-js
yarn add sigep-js

Metodos

iniciando os serviços adicione as informações do contrato no init para ter acessos aos serviços

const SIGEP = require("sigep-js").init({
    usuario,
    senha,
    codAdministrativo,
    idContrato,
    idCartaoPostagem,
    identificador, //cnpj
    cepOrigem
})

await SIGEP.verificaDisponibilidadeServico({ 
    cepDestino, 
    numeroServico, 
    cepOrigem // opcional 
});

await SIGEP.consultaCEP( cep );

await SIGEP.solicitaEtiquetas({
    qtdEtiquetas
    idServico
});


SIGEP.geraDigitoVerificadorEtiquetas([ 'SZ80600533 BR', 'SZ80600534 BR' ]);

//modelos JSON para ajudar na montagem do PLP - recomendado ler a documentaçao dos Correios
let plp = SIGEP.PLPModel.plp
let objPostal = SIGEP.PLPModel.objetoPostal

/**
 * A lista de etiquetas precisa estar na ordem do adicionado no JSON PLP
 * ex: modelo exemplo em __tests__/etiquetas.jest.js
 */
await SIGEP.solicitaJsonPlp({
    jsonPLP,
    idPlpCliente,
    listaEtiquetas //array, [ 'SZ80600533BR', 'SZ80600534BR' ] 
})

await SIGEP.calcPrecoPrazo({
    nCdEmpresa, //não obrigatório
    sDsSenha, //não obrigatório
    nCdServico,
    sCepOrigem,
    sCepDestino,
    nVlPeso, //Decimal ex: 1 = 1kg
    nCdFormato, //1 – Formato caixa/pacote, 2 – Formato rolo/prisma, 3 – Envelope
    nVlComprimento, //Decimal ex: 1 = 1cm
    nVlAltura, //Decimal ex: 1 = 1cm
    nVlLargura //Decimal ex: 1 = 1cm
    nVlDiametro, //Decimal ex: 1 = 1cm
    sCdMaoPropria, //"S" = sim, "N" = não
    nVlValorDeclarado //Decimal ex: 1 = R$1,00
    sCdAvisoRecebimento //"S" = sim, "N" = não
});

await SIGEP.buscaCliente();

await SIGEP.verificarStatusCartaoPostagem( idCartaoPostagem //oprcional );

await SIGEP.bloquearObjeto( 
    etiqueta, 
    idPLP
);

//BREVE
SIGEP.rastrearObjeto();

//BREVE
SIGEP.cancelarObjeto();

IMPRESSÃO

Por enquanto os pdf das etiquetas são feitas com puppeteer e html, nesse momento tem apenas a etiqueta pequena outro modelos em breve.

//exemplo __tests__/etiquetas.jest.js
const jsonPLP = {} //o objeto JSON do plp enviado para o SIGEP

const path = require('path')
const dir = path.dirname(__dirname)
const SIGEPPDF = require('sigep-js').pdfPLP( '44022831', jsonPLP, dir + '/__tests__/tmp/', 'teste_sigep'  )


await SIGEPPDF.tagsToPDF( dir + '/__tests__/tmp/arquivo.pdf' )
await SIGEPPDF.voucherToPDF( dir + '/__tests__/tmp/arquivo_voucher.pdf', '20/01/2020' )