Introdução à API

A Pilar Collector disponibiliza uma interface de programação web, no modelo REST. Por meio dessa interface, é possível conversar com o sistema da Pilar, comandando ações, verificando configurações e realizando a sincronização com os seus sistemas.

O endereço base de comunicação é pilarcollector.com.br, acompanhado sempre do protocolo seguro https:// como prefixo. As versões da API são agrupadas por diretório, sufixadas ao endereço base (https://pilarcollector.com.br/api/).

Endereço para comunicação com a API

Este documento trata da versão da API 1.0.

O endereço para se comunicar através desta versão é:
https://pilarcollector.com.br/api/

Autenticação

A autenticação na Pilar Collector é feita através da utilização de uma chave de API. Esta chave serve para que o sistema identifique a sua conta, e concede permissões para que o sistema se comunique com a pilar em nome da conta em questão.

Há duas etapas de autenticação, sendo a primeira enviando um requisição POST com usuário/email (um dos 2 parâmetros é obrigatório) e senha, será retornado o token de autenticação temporário (24h) esse token deverá ser utilizado em todas as requisições via API da pilar através do parâmetro de nome auth_token.

[POST] https://pilarcollector.com.br/api/login

Parâmetros:

  • usuario (string obrigatório)
  • email (string obrigatório)
  • senha (string obrigatório)

Exemplo de chamada (cURL):


  curl --location --request POST 'https://pilarcollector.com.br/api/login/' \
	--header 'Content-Type: application/x-www-form-urlencoded' \
	--header 'Content-Type: application/x-www-form-urlencoded' \
	--data-urlencode 'usuario=exemplo' \
	--data-urlencode 'email=teste@exemplo.com.br' \
	--data-urlencode 'senha=Teste123@'
	

Exemplo de retorno (JSON):


  {
     "status": true,
     "auth_token": "exemplo::pbkdf2_sha256$24000$HJMs7tozaitE$497y1jWZB515kXt5eGh00pWCULXR7LIPCCNU/W8sk6g=",
     "funcionario": {
        "funcao": {
            "pk": 1856,
            "nome": "Analista"
        },
        "celular": "(27)99723-9386",
        "telefone": "",
        "nome": "Usuário exemplo",
        "pk": 153403,
        "cliente": {
            "cnpj": "",
            "razao_social": "PILAR CONSULTORIA",
            "pk": 8,
            "grupo": {
                "pk": 45631,
                "nome": "TESTE"
            },
            "fantasia": "PILAR CONSULTORIA",
            "ativo": true
        },
        "ativo": true,
        "email": "teste@exemplo.com.br",
        "cpf": "000.000.000-00",
        "user": {
            "username": "exemplo",
            "pk": 57434,
            "is_staff": true,
            "is_active": true,
            "is_superuser": false
        }
     }
  }
	

Resposta em JSON

A fim de facilitar a interoperabilidade entre sistemas, todas as nossas chamadas de API respondem no formato JSON.

Como especificar o formato de resposta

Você tem duas formas de especificar o formato de resposta:

  1. Adicionar a extensão ".json" no final dos endereços de API.
  2. Enviar um Header HTTP contendo JSON como tipo de conteúdo: "Accept: application/json".

Atualizar Estoque

Importação (automática) de estoque do sistema do cliente via API.

[POST] https://pilarcollector.com.br/api/atualizar-estoque-sistema

Parâmetros:

  • auth_token (string obrigatório)
  • opcao_duplicados (string[1] obrigatório)
    • [1]: Ignorar os produtos duplicados
    • [2]: Somar quantidade dos produtos duplicados
    • [3]: Substituir os produtos duplicados
  • opcao_erros_planilha (string[1] obrigatório)
    • [1]: Ignorar os registros com erro e importar os outros
    • [2]: Não importar a planilha
  • estoque (array of objects estoque_item obrigatório)
    • estoque_item:
      • codigo (integer obrigatório)
      • codigo_barras (string obrigatório, máximo 20 caracteres)
      • codigo_barras_alternativo (string opcional, máximo 20 caracteres)
      • embalagem (integer opcional)
      • descricao (string obrigatório, máximo 80 caracteres)
      • qtd_estoque_sistema (decimal obrigatório, exemplo: 896,037)
      • custo_unitario (decimal obrigatório, exemplo: 4,99)
      • unidade (string obrigatório, exemplo: UN, KG, L, CX)
      • secoes (string opcional, exemplo: CEREAIS - LOJA;CEREAIS - DEPÓSITO)
      • grupo (string opcional, exemplo: HORTIFRUTI)
      • sub_grupo (string opcional, exemplo: FRUTAS)
      • familia (string opcional, exemplo: FRUTAS CÍTRICAS)
      • ativo (string opcional)
        • [0]: Inativo
        • [1]: Ativo

Exemplo de chamada (cURL):


  curl --location --request POST 'https://pilarcollector.com.br/api/atualizar-estoque-sistema/' \
  --header 'Content-Type: application/json' \
  --data-raw '{
     "auth_token": "exemplo::pbkdf2_sha256$24000$HJMs7tozaitE$497y1jWZB515kXt5eGh00pWCULXR7LIPCCNU/W8sk6g=",
     "opcao_duplicados": "1", 
     "opcao_erros_planilha": "1",
     "estoque": [
        {
        	"codigo": "42073",
        	"codigo_barras": "7898125081607",
        	"codigo_barras_alternativo": "",
        	"embalagem": "",
        	"descricao": "AIPIM PRE COZIDO SHEKINAH 800 G",
        	"qtd_estoque_sistema": "896,037",
        	"custo_unitario": "4,99",
        	"unidade": "UN",
        	"secoes": "CEREAIS - LOJA;CEREAIS - DEPÓSITO",
        	"grupo": "CEREAIS",
        	"sub_grupo": "CONGELADOS",
        	"familia": "PRE COZIDOS",
        	"ativo": "1"
        },
        {
        	"codigo": "32866",
        	"codigo_barras": "7898937237049",
        	"codigo_barras_alternativo": "",
        	"embalagem": "",
        	"descricao": "AMEIXA BLACK RUBY 1 2A CAMBUCA 650G",
        	"qtd_estoque_sistema": "26",
        	"custo_unitario": "5,99",
        	"unidade": "UN",
        	"secoes": "CEREAIS - LOJA",
        	"grupo": "HORTIFRUTI",
        	"sub_grupo": "FRUTAS",
        	"familia": "FRUTAS VERMELHAS",
        	"ativo": "1"
        }
     ]
  }'
	

Exemplo de retorno (JSON):


{
    "status": true,
    "message": "Estoque importado com sucesso."
}