openapi: 3.0.0
info:
  title: API Logtrade / WDC
  description: |
    Bem-vindo a API do SyslogWeb.
    <br><br>
    Consolidamos nessa página as informações técnicas de consulta dos processos SyslogWeb.
    <br><br>
    Todos os serviços (IMP/EXP/DBK/TRA) seguem o protocolo de acesso com autenticação via token, baseado no CNPJ criptografado para os que ja são clientes LOGTRADE. Este Token tem validade de apenas 30 minutos caso haja inatividade.<br><br>
    A API do SyslogWeb foi desenvolvida baseada na arquitetura REST. Será utilizado o formato JSON. Além disso, toda a nossa API usará o formato UTF-8.
  contact:
    name: Ti Logtrade
    url: https://www.logtrade.com.br
    email: ti@logtrade.com.br
  version: 1.0.06
servers:
  - url: http://api.logtrade.com.br
    description: API Logtrade
paths:
  /rest01/gerar_po:
    post:
      tags:
        - Process
      parameters:
        - name: token
          in: header
          description: |
            Token de acesso enviado para a integração dos sistemas.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 64
            type: string

      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                purchase_order:
                  type: object
                  properties:
                    cnpj:
                      type: string
                    filial:
                      type: string
                    numeroPO:
                      type: string
                    dataPO:
                      type: string
                    fornecedor:
                      type: string
                    nome_fornecedor:
                      type: string
                    loja_fornecedor:
                      type: string
                    nome_loja_fornecedor:
                      type: string
                    cliente:
                      type: string
                    nome_cliente:
                      type: string
                    loja_cliente:
                      type: string
                    nome_loja_cliente:
                      type: string
                    codigo_comprador:
                      type: string
                    nome_comprador:
                      type: string
                    importador:
                      type: string
                    agente:
                      type: string
                    via_transporte:
                      type: string
                    origem:
                      type: string
                    destino:
                      type: string
                    condicao_pgto:
                      type: string
                    incoterm:
                      type: string
                    moeda":
                      type: string
                    data_paridade:
                      type: string
                    data_import:
                      type: string
                    emitido:
                      type: string
                    observacao:
                      type: string
                    usuarioNome:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                    replicarPara:
                      type: array
                      items:
                        type: string

                    itens:
                      type: array
                      items:
                        type: object
                        properties:
                          codigo_produto:
                            type: string
                          descricao_produto:
                            type: string
                          unidade_requisitante:
                            type: string
                          preco_unitario:
                            type: number
                          fabricante:
                            type: string
                          loja_fabricante:
                            type: string
                          quantidade:
                            type: number
                          data_coleta:
                            type: string
                          data_embarque:
                            type: string
                          data_entrega:
                            type: string
                          data_chegada:
                            type: string
                          data_liberacao:
                            type: string
                          data_estimada:
                            type: string
                          data_registro:
                            type: string
                          local_destino:
                            type: string
                          numSi:
                            type: string
                          pedido_venda:
                            type: string

                  required:
                    - cnpj
                    - numeroPO
                    - usuarioNome
                    - emails

              example:
                purchase_order:
                  cnpj: '05917486000140'
                  filial: '09'
                  numeroPO: 'SOPHO 2023-2022'
                  dataPO: '2023-11-13'
                  fornecedor: '007233'
                  nome_fornecedor: 'NOME DO FORNECEDOR'
                  loja_fornecedor: '01'
                  nome_loja_fornecedor: 'LOJA FORNECEDOR 01'
                  cliente: '425757'
                  nome_cliente: 'CLIENTE FULANO DE TAL'
                  loja_cliente: '01'
                  nome_loja_cliente: 'LOJA DO CLIENTE 01'
                  codigo_comprador: '089'
                  nome_comprador: 'COMPRADOR FULANO DE TAL'
                  importador: '09'
                  agente: 'WDC   '
                  via_transporte: '50'
                  origem: 'MIA'
                  destino: 'GRU'
                  condicao_pgto: 'P60DD'
                  incoterm: 'EXW'
                  moeda: 'US$'
                  data_paridade: '2018-10-11'
                  data_import: '    -  -  '
                  emitido: 'Sim'
                  observacao: 'PXCE37'
                  usuarioNome: 'RAIMISON'
                  emails: ['raimison@logtrade.com.br', 'paulo@logtrade.com.br']
                  replicarPara: ['ti@logtrade.com.br']
                  itens:
                    - codigo_produto: '4000196131397'
                      descricao_produto: 'XS107Z36ZZNCAA - XGS 107 Xstream'
                      unidade_requisitante: 'ESTOQ'
                      preco_unitario: 722.96
                      fabricante: '007233'
                      loja_fabricante: '01'
                      quantidade: 1
                      data_coleta: '2023-11-13'
                      data_embarque: '2023-11-13'
                      data_entrega: '2023-11-20'
                      data_chegada: '2023-12-05'
                      data_liberacao: '2023-12-13'
                      data_estimada: '2023-12-14'
                      data_registro: '2023-12-11'
                      local_destino: 'Ilheus'
                      numSi: '504251'
                      pedido_venda: ' '

      responses:
        '200':
          description: |
            Atributos do retorno de Sucesso:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gerar_po_200'
        '400':
          description: |
            Atributos do retorno de Erro:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gerar_po_400'
      x-swagger-router-controller: Process

  /rest01/gerar_embarque:
    post:
      tags:
        - Process
      parameters:
        - name: token
          in: header
          description: |
            Token de acesso enviado para a integração dos sistemas.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 64
            type: string

      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                embarque:
                  type: object
                  properties:
                    cnpj:
                      type: string
                    filial:
                      type: string
                    processo:
                      type: string
                    numeroPO:
                      type: string
                    incoterm:
                      type: string
                    data_processo:
                      type: string
                    codigo_despachante:
                      type: string
                    referente_despachante:
                      type: string
                    recebimento_documento:
                      type: string
                    previsao_embarque:
                      type: string
                    data_eta:
                      type: string
                    local:
                      type: string
                    tipo_declaracao:
                      type: string
                    codigo_importador:
                      type: string
                    previsao_desembarque:
                      type: string
                    data_encerramento:
                      type: string
                    data_embarque:
                      type: string
                    via_transporte:
                      type: string
                    origem:
                      type: string
                    destino:
                      type: string
                    agente:
                      type: string
                    peso_total:
                      type: number
                    taxa_us_di:
                      type: number
                    vmle_moeda:
                      type: number
                    total_fob:
                      type: number
                    total_invoice:
                      type: number
                    numero_nfe:
                      type: string
                    data_nfe:
                      type: string
                    valor_nfe:
                      type: number
                    valor_frete:
                      type: number
                    data_entrega:
                      type: string
                    previsao_entrega:
                      type: string
                    data_registro:
                      type: string
                    di_da_duimp:
                      type: string
                    data_pagamento_imp:
                      type: string
                    data_desembarque:
                      type: string
                    numero_duplicata:
                      type: string
                    usuarioNome:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                    replicarPara:
                      type: array
                      items:
                        type: string
                    itens:
                      type: array
                      items:
                        type: object
                        properties:
                          codigo_produto:
                            type: string
                          descricao_produto:
                            type: string
                          unidade_requisitante:
                            type: string
                          ncm:
                            type: number
                          quantidade:
                            type: number
                          preco_unitario:
                            type: number
                          numero_pli:
                            type: string
                          opercao:
                            type: string
                          posicao:
                            type: string
                          peso:
                            type: number
                          data_embarque:
                            type: string
                          data_chegada:
                            type: string
                          data_liberacao:
                            type: string
                          data_estimada:
                            type: string
                          data_registro:
                            type: string
                          local_destino:
                            type: string
                        required:
                          - ncm
                          - quantidade
                          - preco_unitario

                  required:
                    - cnpj
                    - processo
                    - numeroPO
                    - incoterm
                    - usuarioNome
                    - emails

              example:
                embarque:
                  cnpj: '05917486000140'
                  filial: '01'
                  processo: 'LVTS8090/24B'
                  numeroPO: 'SOPHO 2024-354'
                  incoterm: 'CIF'
                  data_processo: '2024-03-17'
                  codigo_despachante: 'LOG   '
                  referente_despachante: 'SOFTWARE       '
                  recebimento_documento: '    -  -  '
                  previsao_embarque: '2024-03-18'
                  data_eta: '    -  -  '
                  local: 'ILH'
                  tipo_declaracao: '01'
                  codigo_importador: '  '
                  previsao_desembarque: '    -  -  '
                  data_encerramento: '2024-03-17'
                  data_embarque: '    -  -  '
                  via_transporte: '  '
                  origem: '   '
                  destino: '   '
                  agente: '      '
                  peso_total: 0
                  taxa_us_di: 5.674
                  vmle_moeda: 0
                  total_fob: 100
                  total_invoice: 0
                  numero_nfe: '                    '
                  data_nfe: '    -  -  '
                  valor_nfe: 0
                  valor_frete: 0
                  data_entrega: '2024-03-17'
                  previsao_entrega: '    -  -  '
                  data_registro: '2022-01-11'
                  di_da_duimp: '21/7779301-0   '
                  data_pagamento_imp: '2024-03-17'
                  data_desembarque: '2024-03-17'
                  numero_duplicata: '         '
                  usuarioNome: 'RAIMISON'
                  emails: ['raimison@logtrade.com.br']
                  replicarPara: ['ti@logtrade.com.br']
                  itens:
                    - codigo_produto: '4000196131397'
                      descricao_produto: 'XS107Z36ZZNCAA - XGS 107 Xstream'
                      unidade_requisitante: 'ESTOQ'
                      ncm: 99990000
                      quantidade: 1
                      preco_unitario: 100
                      numero_pli: '00018186'
                      opercao: '4000 '
                      posicao: '0001'
                      peso: 0.01
                      data_embarque: '2024-03-18'
                      data_chegada: '2024-03-18'
                      data_liberacao: '2024-03-18'
                      data_estimada: '2024-03-18'
                      data_registro: '2024-03-18'
                      local_destino: 'Ilheus'

      responses:
        '200':
          description: |
            Atributos do retorno de Sucesso:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gerar_embarque_200'
        '400':
          description: |
            Atributos do retorno de Erro:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gerar_embarque_400'
      x-swagger-router-controller: Process

  /rest01/atualizar_embarque:
    post:
      tags:
        - Process
      parameters:
        - name: token
          in: header
          description: |
            Token de acesso enviado para a integração dos sistemas.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 64
            type: string

      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                embarque:
                  type: object
                  properties:
                    cnpj:
                      type: string
                    processo:
                      type: string
                    numeroPO:
                      type: string
                    previsao_embarque:
                      type: string
                    data_embarque:
                      type: string
                    previsao_desembarque:
                      type: string
                    data_desembarque:
                      type: string
                    data_eta:
                      type: string
                    data_import:
                      type: string
                    data_pagamento_imp:
                      type: string
                    previsao_entrega:
                      type: string
                    data_entrega:
                      type: string
                    data_encerramento:
                      type: string
                    data_nfe:
                      type: string
                    usuarioNome:
                      type: string
                    emails:
                      type: array
                      items:
                        type: string
                    replicarPara:
                      type: array
                      items:
                        type: string
                    itens:
                      type: array
                      items:
                        type: object
                        properties:
                          codigo_produto:
                            type: string
                          numero_pli:
                            type: string
                          data_coleta:
                            type: string
                          data_embarque:
                            type: string
                          data_entrega:
                            type: string
                          data_chegada:
                            type: string
                          data_liberacao:
                            type: string
                          data_estimada:
                            type: string
                          data_registro:
                            type: string
                          local_destino:
                            type: string

                        required:
                          - codigo_produto
                          - numero_pli

                  required:
                    - cnpj
                    - processo
                    - numeroPO
                    - usuarioNome
                    - emails

              example:
                embarque:
                  cnpj: '05917486000140'
                  processo: 'LVTS8090/24B'
                  numeroPO: 'SOPHO 2024-354'

                  previsao_embarque: '2024-03-17'
                  data_embarque: '2024-03-17'
                  previsao_desembarque: '2024-03-17'
                  data_desembarque: '2024-03-17'
                  data_eta: '2024-03-17'
                  data_import: '2024-03-17'
                  data_pagamento_imp: '2024-03-17'
                  previsao_entrega: '    -  -  '
                  data_entrega: '2024-03-17'
                  data_encerramento: '2024-03-17'
                  data_nfe: '2024-03-17'
                  usuarioNome: 'RAIMISON'
                  emails: ['raimison@logtrade.com.br']
                  replicarPara: ['ti@logtrade.com.br']
                  itens:
                    - codigo_produto: '4000196131397'
                      numero_pli: '00018186'
                      data_coleta: '2024-03-18'
                      data_embarque: '2024-03-18'
                      data_entrega: '2024-03-18'
                      data_chegada: '2024-03-18'
                      data_liberacao: '2024-03-18'
                      data_estimada: '2024-03-18'
                      data_registro: '2024-03-18'
                      local_destino: 'Simoes Filho'

      responses:
        '200':
          description: |
            Atributos do retorno de Sucesso:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/atualizar_embarque_200'
        '400':
          description: |
            Atributos do retorno de Erro:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/atualizar_embarque_400'
      x-swagger-router-controller: Process

  /rest01/gravar_arquivo:
    post:
      tags:
        - Process

      parameters:
        - name: token
          in: header
          description: |
            Token de acesso enviado para a integração dos sistemas.
          required: true
          style: simple
          explode: false
          schema:
            maxLength: 64
            type: string

      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                cnpj:
                  type: string
                processo:
                  type: string
                numeroPO:
                  type: string
                descricao:
                  type: string
                arquivo:
                  type: string
                  format: binary
                  default: 'file'
                  description: 'arquivo no formato base64'
                extensao:
                  type: string
                  description: 'extensao do arquivo (pdf, docx, xlsx, etc)'
                usuarioNome:
                  type: string
                emails:
                  type: string
                  description: 'Emails separados por ;'
                replicarPara:
                  type: string
                  description: 'Emails separados por ;'

              required:
                - cnpj
                - processo
                - numerPO
                - descricao
                - arquivo
                - extensao
                - usuarioNome
                - emails

              example:
                cnpj: '05917486000140'
                processo: 'LVTS8090/24B'
                numeroPO: 'SOPHO 2024-354'
                descricao: 'Comercial Invoice'
                arquivo: 'file base64'
                extensao: 'pdf'
                usuarioNome: 'USUARIO'
                emails: 'raimison@logtrade.com.br; gabriel@logtrade.com.br'
                replicarPara: 'ti@logtrade.com.br'

      responses:
        '200':
          description: |
            Atributos do retorno de Sucesso:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gravar_arquivo_200'
        '400':
          description: |
            Atributos do retorno de Erro:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/gravar_arquivo_400'
      x-swagger-router-controller: Process

components:
  schemas:
    gerar_po_200:
      type: object
      properties:
        gerar_po:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            cliente:
              type: string
            nrEmbarque:
              type: string
            tpServico:
              type: string
            dtPedido:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gerar_po:
          codigo: 201
          nrProcesso: 'SOPHO 2023-2022'
          cliente: '90'
          nrEmbarque: 'LIVTC-016/24PCO'
          tpServico: 'PCO'
          dtPedido: '2024-04-19 17:05:40'
          status: 'success'
          message: 'PO criada com sucesso.'

    gerar_po_400:
      type: object
      properties:
        gerar_po:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            cliente:
              type: string
            nrEmbarque:
              type: string
            tpServico:
              type: string
            dtPedido:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gerar_po:
          codigo: 400
          nrProcesso: 'SOPHO 2023-2022'
          cliente: '90'
          nrEmbarque: 'LIVTC-016/24PCO'
          tpServico: 'PCO'
          dtPedido: '2024-04-19 17:05:40'
          status: 'error'
          message: 'PO ja aberta no sistema.'

    gerar_embarque_200:
      type: object
      properties:
        gerar_embarque:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            cliente:
              type: string
            nrEmbarque:
              type: string
            tpServico:
              type: string
            dtPedido:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gerar_embarque:
          codigo: 201
          nrProcesso: 'SOPHO 2023-2022'
          cliente: '90'
          nrEmbarque: 'LIVTC-016/24PCO'
          tpServico: 'PCO'
          dtPedido: '2024-04-19 17:05:40'
          status: 'success'
          message: 'PO criada com sucesso.'

    gerar_embarque_400:
      type: object
      properties:
        gerar_embarque:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            cliente:
              type: string
            nrEmbarque:
              type: string
            tpServico:
              type: string
            dtPedido:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gerar_embarque:
          codigo: 400
          nrProcesso: 'SOPHO 2023-2022'
          cliente: '90'
          nrEmbarque: 'LIVTC-016/24PCO'
          tpServico: 'PCO'
          dtPedido: '2024-04-19 17:05:40'
          status: 'error'
          message: 'PO ja aberta no sistema.'

    atualizar_embarque_200:
      type: object
      properties:
        atualizar_embarque:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            nrEmbarque:
              type: string
            tpServico:
              type: string
            cliente:
              type: string
            dtPedido:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        atualizar_embarque:
          codigo: 201
          nrProcesso: 'SOPHO 2023-2022'
          nrEmbarque: 'LIVTC-016/24PCO'
          tpServico: 'PCO'
          cliente: '05917486000140'
          dtPedido: '2024-04-19 17:05:40'
          status: 'success'
          message: 'Processo atualizado com sucesso.'

    atualizar_embarque_400:
      type: object
      properties:
        atualizar_embarque:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            dtRequisicao:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        atualizar_embarque:
          codigo: 400
          nrProcesso: 'SOPHO 2023-2022'
          dtRequisicao: '2024-04-19 17:05:40'
          status: 'error'
          message: 'Processo nao localizado no SyslogWeb'

    gravar_arquivo_200:
      type: object
      properties:
        gravar_arquivo:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            tpServico:
              type: string
            cliente:
              type: string
            dtPedido:
              type: string
            arquivo:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gravar_arquivo:
          codigo: 201
          nrProcesso: 'TESTE-007/24DIA'
          tpServico: 'IMP'
          cliente: '3628'
          dtPedido: '2024-04-19 17:05:40'
          arquivo: 'Instrução DI'
          status: 'success'
          message: 'Arquivo salvo com sucesso.'

    gravar_arquivo_400:
      type: object
      properties:
        gravar_arquivo:
          type: object
          properties:
            codigo:
              type: number
            nrProcesso:
              type: string
            dtRequisicao:
              type: string
            status:
              type: string
            message:
              type: string

      example:
        gravar_arquivo:
          codigo: 400
          nrProcesso: 'TESTE-007/24DIA'
          dtRequisicao: '2024-04-19 17:05:40'
          status: 'error'
          message: 'Mensagem de erro...'
