Nanoseconds Produce Minutes

    @sthima/sigep
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.2 • Public • Published

    Sigep - Gerenciador de Postagens dos Correios

    Biblioteca criada com o intuito de facilitar a integração com o SIGEP

    Instalação (npm ou yarn)

    yarn add @sthima/sigep
    npm i @sthima/sigep

    Funções disponíveis

    • Busca CEP
    • Busca Cliente
    • Verifica disponibilidade de servico de entrega
    • Solicita etiquetas
    • Busca status de cartão postagem
    • Fecha PLP com varios serviços
    • Solicita Xml PLP
    • Etiquetas com Digito
    • Etiquetas sem Espaço
    • Range Etiquetas com Digito
    • Range Etiquetas sem Espaço

    Funcionamento

    • As funções podem ser chamadas com async/await caso queiram.
    • O Correios dispoe de duas URL sendo elas homologação e produção, para usar a lib em modo homologação basta colocar uma env APPHOM no projeto.

    Exemplo de um arquivo package.json

    "scripts": {
        "start": "env APPHOM=true ..."
    }

    Exemplo de um arquivo .env

    ...
    APPHOM=true
    ...

    Busca CEP

    import { Sigep } from '@sthima/sigep';
    
    Sigep.buscaCEP('45602520').then((cep) => console.log(cep));

    Busca Cliente

    import { Sigep } from '@sthima/sigep';
    
    // Dados fake que vem na documentação do correios
    const clienteObject = {
      idContrato: '9992157880',
      idCartaoPostagem: '0067599079',
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.buscaCliente(clienteObject).then((cliente) => console.log(cliente));

    Verifica disponibilidade de servico de entrega

    // Para facilitar a criação do objeto tem disponivel a interface dele
    import { Sigep, TipoDePostagem, IVerificaServico } from '@sthima/sigep';
    
    // Dados fake que vem na documentação do correios
    const verificaObject: IVerificaServico = {
      codAdministrativo: '17000190',
      numeroServico: TipoDePostagem.Pac.P41068.numeroServico,
      cepOrigem: '05311900',
      cepDestino: '05311900',
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.verificaDisponibilidadeServico(verificaObject).then((verifica) =>
      console.log(verifica)
    );

    Solicitar etiquetas

    // Para facilitar a criação do objeto tem disponivel a interface dele
    import { Sigep, ISolicitaEtiqueta } from '@sthima/sigep';
    
    // Dados fake que vem na documentação do correios
    const solicita: ISolicitaEtiqueta = {
      idServico: '124849',
      identificador: 34028316000103,
      qtdEtiquetas: 1,
      tipoDestinatario: 'C',
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.solicitaEtiquetas(solicita).then((solicitacao) =>
      console.log(solicitacao)
    );

    Busca status de cartão postagem

    import { Sigep } from '@sthima/sigep';
    
    // Dados fake que vem na documentação do correios
    const buscaCardObject = {
      numeroCartaoPostagem: '0067599079',
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.buscaStatusCartaoPostagem(buscaCardObject).then((buscaCard) =>
      console.log(buscaCard)
    );

    Fecha PLP com varios serviços

    // Para facilitar a criação do objeto tem disponivel a interface dele
    import {
      Sigep,
      IPLP,
      IObjetoPostalItem,
      IFechaPlpVariosServicos,
    } from '@sthima/sigep';
    
    /**
     * A interface vai auxiliar na montagem do objeto, mas recomendo ler a
     * documentação do correios para que tenha um entendimento melhor
     * da funcionalidade
     */
    const plp: IPLP = {};
    const objeto: IObjetoPostalItem = {};
    
    // Dados fake que vem na documentação do correios
    const usuarioEtiquetas: IFechaPlpVariosServicos = {
      cartaoPostagem: '0067599079',
      idPlpCliente: 123456,
      listaEtiquetas: ['SZ82702873BR'],
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.fechaPlpVariosServicos(plp, [objeto], usuarioEtiquetas).then((fechaPlp) =>
      console.log(fechaPlp)
    );

    Solicita Xml PLP

    // Para facilitar a criação do objeto tem disponivel a interface dele
    import { Sigep, ISolicitaXmlPlp } from '@sthima/sigep';
    
    // Dados fake que vem na documentação do correios
    const xmlplp: ISolicitaXmlPlp = {
      idPlpMaster: 50517263, //Id da PLP gerada na função anterior
      usuario: 'sigep',
      senha: 'n5f9t8',
    };
    
    Sigep.solicitaXmlPlp(xmlplp).then((solicitaXMLPLP) =>
      console.log(solicitaXMLPLP)
    );

    Abaixo tem funções auxiliares que podem ser utilizada como facilitador em algumas etapas

    Etiquetas com digito verificador

    import { etiquetasComDigito } from '@sthima/sigep';
    
    /**
     * Na montagem do PLP no campo <numero_etiqueta> é necessário colocar o numero
     * das etiquetas com o Dígito
     */
    const responseEtiquetasComDigito = etiquetasComDigito([
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
    ]);
    console.log(responseEtiquetasComDigito);

    Etiquetas sem espaço

    import { etiquetasSemEspaco } from '@sthima/sigep';
    
    /**
     * Na montagem do PLP no campo <listaEtiquetas> é necessário colocar o número
     * das etiquetas sem DIGITO e sem ESPAÇO
     */
    const responseEtiquetasSemEspaco = etiquetasSemEspaco([
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
      'SZ82702873 BR',
    ]);
    console.log(responseEtiquetasSemEspaco);

    Range etiquetas com digito verificador

    import { etiquetasRangeComDigito } from './utils';
    
    /**
     * Na montagem do PLP no campo <numero_etiqueta> é necessário colocar o numero
     * das etiquetas com o Dígito.
     *
     * - Quando a solicitação de etiqueta for com quantidade maior que 1, o
     * SIGEP retorna um range. A função abaixo retorna as etiquetas entre o
     * range informado
     */
    const etiqueComDigito = etiquetasRangeComDigito([
      'SZ82702873 BR',
      'SZ82702883 BR',
    ]);
    console.log(etiqueComDigito);

    Range etiquetas sem espaço

    import { etiquetasRangeSemEspaco } from './utils';
    
    /**
     * Na montagem do PLP no campo <listaEtiquetas> é necessário colocar o número
     * das etiquetas sem DIGITO e sem ESPAÇO.
     *
     * - Quando a solicitação de etiqueta for com quantidade maior que 1, o
     * SIGEP retorna um range. A função abaixo retorna as etiquetas entre o
     * range informado
     */
    const etiqueSemDigito = etiquetasRangeSemEspaco([
      'SZ82702873 BR',
      'SZ82702883 BR',
    ]);
    console.log(etiqueSemDigito);

    Install

    npm i @sthima/sigep

    DownloadsWeekly Downloads

    71

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    126 kB

    Total Files

    74

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar