Skip to content

Connect Plug API (3.0.0)

📋 Changelog

🚀 Introdução

A API da ConnectPlug permite que parceiros utilizem diversos recursos da plataforma como gerenciar suas lojas e seus pedidos.

A ConnectPlug oferece soluções para a operação e gestão das suas vendas e permite integrar seu PDV/POS ou qualquer outro aplicativo.

🗂️ Organização da Documentação

Esta documentação está organizada em categorias para facilitar a navegação:

  • 🔐 Autenticação: Endpoints para obter tokens de acesso
  • 📦 Catálogo de Produtos: Gerenciamento de produtos, categorias e unidades
  • 📦 Produtos - Funcionalidades Descontinuadas: ⚠️ Endpoints que serão removidos em breve
  • 📱 Aplicativos: Gerenciamento de aplicativos e disponibilidade de produtos
  • 💰 Financeiro: Pagamentos, contas bancárias e transações
  • 🛒 Vendas: Pedidos, vendas e promoções
  • 📦 Estoques: Gerenciamento de estoque e compras
  • 🏢 Empresa: Configurações da empresa e periféricos
  • 📊 Relatórios: Relatórios de vendas e estatísticas

🏗️ Arquitetura da API

A API está organizada utilizando os padrões REST.

Os recursos são orientados pelas URLs, aceitamos corpo de requisições (Body Requests) no formato JSON. As respostas também utilizam o formato JSON.

Sendo assim, todas as requests devem conter os Headers

Content-Type: application/json
Accept: application/json

Além disso, utilizamos os padrões HTTP: response codes, verbos HTTP e autenticação.

📚 Conhecimento Geral

🔐 Autenticação

A API utiliza Oauth2 com o fluxo password (Grant Type Password).

Todos os endpoints devem conter o Token de acesso no Header Authorization, exceto os endpoints /oauth/token e oauth/scopes que são utilizados para gerar os Tokens de Acesso (Access Token).

Para obter o access_token, você irá precisar das seguintes informações:

  • CLIENT_ID e CLIENT_SECRET do seu aplicativo.
  • email e password do usuário com acesso à API.

Exemplo de chamada para gerar o Access Token utilizando cURL:

curl --location --request POST 'http://erp.connectplug.com.br/oauth/token' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "grant_type": "password",
      "client_id": "<CLIENT_ID>",
      "client_secret": "<CLIENT_SECRET>",
      "username": "<email>",
      "password": "<password>",
      "scope": "*"
    }'

Exemplo de chamada para renovação do Access Token via Refresh Token utilizando cURL:

curl --location --request POST 'http://erp.connectplug.com.br/oauth/token' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "grant_type": "refresh_token",
      "client_id": "<CLIENT_ID>",
      "client_secret": "<CLIENT_SECRET>",
      "refresh_token": "<REFRESH_TOKEN>",
      "scope": "*"
    }'

Exemplo do uso do Access Token nas chamadas à API:

curl --location --request POST 'http://erp.connectplug.com.br/api/v3/categories' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <ACCESS_TOKEN>'

🔄 Verbos HTTP

Para cada endpoint, detalharemos as especificações dos parâmetros da requisição e do retorno, além dos métodos de requisição disponíveis (GET, PUT, POST e/ou DELETE). Parâmetros que exigem explicações mais detalhadas serão destacados após as informações de requisição e retorno de cada endpoint.

🔢 HTTP Status

CódigoNomeDescrição
200OKO recurso solicitado foi processado e retornado com sucesso.
201CreatedO recurso informado foi criado com sucesso.
401UnauthorizedA chave da API está desativada, incorreta ou não foi informada corretamente. Consulte a seção sobre autenticação da documentação.
403ForbiddenO acesso ao recurso não foi autorizado. Isso pode acontecer quando a loja não tem permissão para acessar o recurso
404Not FoundO recurso solicitado ou o endpoint não foi encontrado.
422Unprocessable EntityA requisição foi recebida com sucesso, porém contém parâmetros inválidos.
429Too Many RequestsO limite de requisições (Rate Limit) foi atingido.
400Bad RequestNão foi possível interpretar a requisição. Verifique as informações enviadas.
500Internal Server ErrorOcorreu uma falha na plataforma. Por favor, entre em contato com o suporte.

⚠️ Códigos de Erro

CódigoDescrição
bad_requestÉ retornado quando o servidor não consegue entender ou processar a solicitação, pois a solicitação está malformada, incompleta ou contém parâmetros inválidos.
not_foundÉ retornado quando o recurso solicitado não pode ser encontrado no servidor.
method_not_allowedÉ retornado quando o método HTTP não é permitido para o recurso solicitado.
unprocessable_entityÉ retornado quando houver erros de validação com os dados enviados.
too_many_requestsÉ retornado quando houver um número excessivo de requisições à API. Verifique a sessão de Rate Limit.
internal_server_errorÉ retornado quando houver uma falha na plataforma. Por favor, entre em contato com o suporte.
missing_headersÉ retornado quando um header obrigatório não estiver presente na requisição.
max_upload_size_exceededOcorre um retorno quando a imagem excede o limite de tamanho estabelecido.
unauthorizedÉ retornado quando a autenticação foi expirada.
invalid_scopeO retorno é gerado quando o escopo especificado na autenticação é inválido ou inexistente.
forbiddenO retorno ocorre quando se tenta realizar uma ação para a qual não se possui permissão.
uneditable_entityIsso ocorre quando há uma tentativa de edição de um recurso que não é suscetível a modificações.
undeleted_resource_associationIsso ocorre quando há a tentativa de excluir um recurso, contudo, tal exclusão é inviável devido à sua associação com outro recurso.
product_combo_empty_componentsProdutos do tipo "Combo" devem ter pelo menos um componente.
product_combo_attributes_not_allowedProdutos do tipo "Combo" não podem ter atributos.
product_combo_component_combo_not_allowedProdutos do tipo "Combo" não podem ter componentes do tipo "Combo".
product_combo_invalid_priceO valor do preço passado no produto do tipo "Combo" não é compatível com o calculo do preço dos componentes.
product_with_grid_cannot_have_componentsProdutos com grade de preços não podem ter componentes.
option_cannot_be_associated_with_gridAcontece quando uma opção de um atributo não pode ser associado em uma grade de preço.
grid_with_options_not_exclusive_by_attribute_groupUma grade de preços de um produto não pode ter duas ou mais opções do mesmo grupo de atributos.
grid_with_duplicate_set_of_optionsUma grade de preço de um produto não pode ter opções de atributos duplicados.

⏱️ Rate Limit

O Rate limit atual da API é de 60 requisições por minuto.

🔁 Chaves de Idempotência

A API utiliza idempotência nos endpoints que ocorrem operações de criação e atualização.

O Idempotency-Key é um ID aleatório gerado por você e deve ser passado no header Idempotency-Key das solicitações POST e PUT.

Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo Idempotency-Key, nós não duplicaremos o registro. Assim, se repetir ou houver duplicidade acidental da mesma request, não corre o risco de criar um segundo objeto ou efetuar a atualização duas vezes.

A idempotência funciona salvando o código de status resultante e o corpo da primeira solicitação feita para qualquer chave de idempotência, independentemente de ser bem-sucedida ou não. Os pedidos subsequentes com a mesma chave retornam o mesmo resultado, incluindo erros 500.

No response dos métodos POST e PUT é retornado dois headers adicionais:

  • Idempotency-Key: que deve conter o identificador da request que você enviou.
  • Idempotency-Replayed: que indica se a request é um replay de uma chamada anterior ou não.

Não é exigido um formato específico para o Idempotency-Key, porém sugerimos que utilize UUID ou alguma outra forma de geração de IDs aleatórios com entropia suficiente para evitar colisões. As chaves de idempotência têm um comprimento máximo de 100 caracteres.

📝 Formato dos Dados

Visando facilitar a compreensão das nossas APIs para o maior número de desenvolvedores parceiros, alguns retornos tiveram seus formatos normalizados. A seguir, especificamos alguns dos formatos mais relevantes dos retornos da nossa API:

📅 Datas e horários

Nossos campos que representam datas os horários são retornados no fuso horário da loja e são representadas em UTC utilizando o padrão ISO 8601.

A informação de qual Timezone é utilizada na loja vem no próprio valor retornado.

Para os métodos em que é necessário passar uma data e horário no parâmetro, basta enviar as informações do horário local com a informação que determina o fuso horário em UTC.

YYYY-MM-DDThh:mm:ss+hh:mm

Onde:

  • YYYY representa os 4 dígitos do ano.
  • MM representa os 2 dígitos do mês.
  • DD representa os 2 dígitos do dia do mês.
  • hh representa os 2 dígitos da hora.
  • mm representa os 2 dígitos do minuto.
  • ss representa os 2 dígitos do segundo.
  • +hh:mm representa o timezone, que pode ser positivo ou negativo. Por exemplo: o timezone America/Sao_Paulo é representado por -03:00.
2020-01-01T09:00:00-03:00

📅 Dias da semana

Para campos que representam dias de semana, são numeramos de 1 à 7, onde:

  • O dia 1 representa o domingo, e
  • o dia 7 representa o sábado.

📄 Paginação das respostas da API

Alguns de nossos endpoints possuem paginação. Implementamos paginação para endpoints que tem o potencial de retornar um grande número de resultados.

Neste caso, temos o parâmetro page para operar a paginação via query string.

No retorno de endpoints com paginação enviamos o objeto meta, para consulta e referência do desenvolvedor parceiro.

Todos os nossos endpoints com paginação seguem um formato específico. Retornamos os resultados no formato JSON, com os seguintes campos sempre presentes:

  • data: Campo utilizado para envolver a resposta da requisição.
  • meta: Campo utilizado para referência da paginação, para os endpoints que se utilizam de paginação.
  • meta.current_page: Campo utilizado para referência da paginação, para os endpoints que se utilizam de paginação.
  • meta.last_page: Campo que identifica a quantidade de páginas.
  • meta.per_page: Campo que identifica a quantidade por páginas.
  • meta.total: Campo que identifica a quantidade total de objetos.
{
  "data": {
    ...
  },
  "meta": {
    "current_page": 1,
    "last_page": 2,
    "per_page": 15,
    "total": 17
  }
}

📊 Tabelas

O sistema utiliza várias tabelas de dados para armazenar e organizar informações essenciais.

Tabela de Unidades de medida

A tabela de Unidades de Medida armazena informações sobre diferentes unidades de medida e suas descrições. Essa tabela é usada para garantir a padronização das unidades de medida em diversos contextos.

CódigoDescrição
AMPOLAAMPOLA
BALDEBALDE
BANDEJBANDEJA
BARRABARRA
BISNAGBISNAGA
BLOCOBLOCO
BOBINABOBINA
BOMBBOMBONA
CAPSCAPSULA
CARTCARTELA
CENTOCENTO
CJCONJUNTO
CMCENTIMETRO
CM2CENTIMETRO QUADRADO
CXCAIXA
CX2CAIXA COM 2 UNIDADES
CX3CAIXA COM 3 UNIDADES
CX5CAIXA COM 5 UNIDADES
CX10CAIXA COM 10 UNIDADES
CX15CAIXA COM 15 UNIDADES
CX20CAIXA COM 20 UNIDADES
CX25CAIXA COM 25 UNIDADES
CX50CAIXA COM 50 UNIDADES
CX100CAIXA COM 100 UNIDADES
DISPDISPLAY
DUZIADUZIA
EMBALEMBALAGEM
FARDOFARDO
FOLHAFOLHA
FRASCOFRASCO
GALAOGALÃO
GFGARRAFA
GRAMASGRAMAS
JOGOJOGO
KGQUILOGRAMA
KITKIT
LATALATA
LITROLITRO
MMETRO
M2METRO QUADRADO
M3METRO CÚBICO
MILHEIMILHEIRO
MLMILILITRO
MWHMEGAWATT HORA
PACOTEPACOTE
PALETEPALETE
PARESPARES
PCPEÇA
POTEPOTE
KQUILATE
RESMARESMA
ROLOROLO
SACOSACO
SACOLASACOLA
TAMBORTAMBOR
TANQUETANQUE
TONTONELADA
TUBOTUBO
UNIDUNIDADE
VASILVASILHAME
VIDROVIDRO
Download OpenAPI description
Languages
Servers
Mock server

https://cplug.redocly.app/_mock/openapi/

Dev

http://erp.connectplug.com.br/

Oauth2

Operações para autenticar um usuário.

Operations

Categorias

Operações de categoria de produtos.

Operations

Listas de Preço

Operações da lista de preço.

Operations

↳ Produtos de uma lista de preço

Operações de produtos em uma lista de preço

Operations

Atributos

Operações do cadastro de atributos de produto.

Operations

↳ Opções de um atributo

Operações do cadastro de opções de um atributo.

Operations

Unidades de medidas

Operações das unidades de medidas dos produtos.

Operations

Periféricos

Operações do cadastro de periféricos.

Operations

Fornecedores

Fornecedores de serviços ou produtos. Podem ser pessoas jurídicas ou físicas

Operations

Transportadoras

Operações de transportadoras.

Operations

Produtos

Operações de cadastro de produtos.

Operations

↳ Atributos de um produto

Operações de atributos de um produto.

Operations

↳ Componentes de um produto

Operações de componentes de um produto.

Operations

↳ Grade de preços de um produto

Operações de grade de preços de um produto.

Operations

↳ Fornecedores de um produto

Operações de fornecedores de um produto.

Operations

↳ Operações fiscais de produtos

Operações de configurações fiscais de produtos.

Operations

↳ Aplicativos de um produto

Operações de disponibilidade de um aplicativo em um produto.

Operations

Estoques

Operações de cadastro de estoques.

Operations

Movimentação de estoque

Operações de entrada e saída de produtos no estoque.

Operations

Categoria de movimentação de estoque

Operações de cadastro da categoria de movimentação de estoque.

Operations

Movimentação de estoque de um produto

Operações de movimentação de estoque de um produto no estoque.

Operations

Transferência entre estoques

Operações de transferência de produtos entre estoques.

Operations

Inventários de um estoque

Operações de cadastro de inventários de um estoque.

Operations

Compras

Operações de compras.

Operations

Importação de XML de Entrada

Importação de XML de Entrada.

Fluxo de importação padrão:

  1. Faz o upload da nota fiscal de entrada.

  2. Obtém informações sobre o XML para verificase se o fornecedor está cadastrado;

    a) Se o campo data.supplier.id estiver com valor null, quer dizer que precisa cadastrar um novo fornecedor.

  3. "Baixa" os itens do XML para o sistema por meio do endpoint Faz um pré-processamento dos itens da nota;

  4. Obtém a lista de itens do XML para ver se precisa fazer alguma alteração ou associar um produto já cadastrado;

  5. Faça as operações necessárias do item;

    a) Salva os itens em massa ou

    b) Salva um item ou

    c) Apaga um item do XML ou

    d) Reverte uma alteração para o estado inicial do XML ou

    e) Atualiza o preço de venda de todos os itens ou

    f) Atualiza os itens com os produtos do fornecedor.

  6. E finalmente faz a importação dos itens que foram salvos no item anterior, adicionando as formas de pagamento para poder gerar uma compra no sistema.

Operations

Vendas

Operações de vendas.

Operations

Pedidos de Venda

Operações de pedidos de venda.

Operations

Clientes

Operações de cadastro de clientes.

Operations

Categoria de Clientes

Operações de cadastro de categoria de clientes.

Operations

Status

Operações do cadastro dos status na ConnectPlug.

Operations

Promoções

Operações de promoções.

Operations

Caixas Registradoras

Operações de caixas registradoras.

Operations

PDV

Operações de PDV.

Operations

Séries de Comandas

Operações de séries de comandas.

Operations

Aplicativos

Operações do cadastro dos aplicativos ConnectPlug.

Operations

↳ Administração de aplicativos

Operações gerais de aplicativos.

Operations

↳ Produtos de um aplicativo

Operações de disponibilidade de um produto.

Operations

↳ Categorias de produtos de um aplicativo

Operações de disponibilidade de uma categoria.

Operations

↳ Métodos de pagamento de um aplicativo

Operações de métodos de pagamento do aplicativo.

Operations

↳ Contrato de cartão de um aplicativo

Operações de contratos de cartão do aplicativo.

Operations

Transações Financeiras

Operações de movimentações financeiras (Contas a pagar e Contas a receber).

Operations

Plano de Contas

Operações de plano de contas.

Operations

Métodos de Pagamentos

Operações do cadastro de métodos de pagamentos.

Operations

Contas Bancárias

Operações de cadastro de contas bancárias.

Operations

Centros de custos

Operações de cadastro de centros de custos.

Operations

Contratos de cartão

Operações de contratos de cartão.

Operations

Provedores de cartão

Operações de provedores de cartão.

Operations

Grupos Financeiros

Operações de grupos financeiros.

Operations

Bandeiras de cartão

Operações de bandeiras de cartão.

Operations

Bancos

Operações de cadastro de bancos.

Operations

Configurações gerais do ERP

Operações de configurações gerais do ERP.

Operations

Configurações gerais do terminal

Configurações gerais do terminal.

Operations

Monitor de pedidos (KDS)

Operações de monitoração de pedidos.

Operations

Customizações

Operações de customizações.

Operations

Mesas

Operações de mesas.

Operations

Ícones

Lista de ícones.

Operations

Áreas de Entrega

Operações de cadastro de áreas de entrega.

Operations

Horário de funcionamento

Operações do cadastro de horário de funcionamento.

Operations

Configurações do Whitelabel

Operações de configurações do whitelabel incluindo informações da empresa, contatos, cores e conteúdos.

Operations

Configurações Fiscais

Operações de configurações fiscais.

Operations

Lista os grupos de ICMS

Request

Retorna uma lista de grupos de ICMS da Empresa.

Security
OAuth2
Query
namestring

Filtra pelo nome do grupo de ICMS.

Example: name=Grupo ...
pagenumber>= 1

Indica a página da paginação.

Default 1
per_pagenumber[ 1 .. 100 ]

Indica a quantidade de itens por página.

Default 30
Headers
CPlug-Company-Idnumberrequired

Id da Empresa (Company).

Você pode localizar os IDs das empresas no endpoint de listagem de empresas.

Example: 12
curl -i -X GET \
  'https://cplug.redocly.app/_mock/openapi/api/v3/tax-settings/icms?name=Grupo+...&page=1&per_page=30' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'CPlug-Company-Id: 12'

Responses

Lista os grupos de ICMS da Empresa.

Bodyapplication/json
dataobject
metaobject(MetaPagination)

Representa as informações de Metadado da paginação da listagem.

Response
application/json
{ "data": { "icms": [] }, "meta": { "current_page": 1, "last_page": 10, "per_page": 20, "total": 200 } }

Lista os grupos de IPI

Request

Retorna uma lista de grupos de IPI da Empresa.

Security
OAuth2
Query
namestring

Filtra pelo nome do grupo de IPI.

Example: name=Grupo ...
pagenumber>= 1

Indica a página da paginação.

Default 1
per_pagenumber[ 1 .. 100 ]

Indica a quantidade de itens por página.

Default 30
Headers
CPlug-Company-Idnumberrequired

Id da Empresa (Company).

Você pode localizar os IDs das empresas no endpoint de listagem de empresas.

Example: 12
curl -i -X GET \
  'https://cplug.redocly.app/_mock/openapi/api/v3/tax-settings/ipi?name=Grupo+...&page=1&per_page=30' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'CPlug-Company-Id: 12'

Responses

Lista os grupos de IPI da Empresa.

Bodyapplication/json
dataobject
metaobject(MetaPagination)

Representa as informações de Metadado da paginação da listagem.

Response
application/json
{ "data": { "ipis": [] }, "meta": { "current_page": 1, "last_page": 10, "per_page": 20, "total": 200 } }

Lista os grupos de PIS/COFINS

Request

Retorna uma lista de grupos de PIS/COFINS da Empresa.

Security
OAuth2
Query
namestring

Filtra pelo nome do grupo de PIS/COFINS.

Example: name=Grupo ...
pagenumber>= 1

Indica a página da paginação.

Default 1
per_pagenumber[ 1 .. 100 ]

Indica a quantidade de itens por página.

Default 30
Headers
CPlug-Company-Idnumberrequired

Id da Empresa (Company).

Você pode localizar os IDs das empresas no endpoint de listagem de empresas.

Example: 12
curl -i -X GET \
  'https://cplug.redocly.app/_mock/openapi/api/v3/tax-settings/pis-cofins?name=Grupo+...&page=1&per_page=30' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'CPlug-Company-Id: 12'

Responses

Lista os grupos de PIS/COFINS da Empresa.

Bodyapplication/json
dataobject
metaobject(MetaPagination)

Representa as informações de Metadado da paginação da listagem.

Response
application/json
{ "data": { "pis_cofins": [] }, "meta": { "current_page": 1, "last_page": 10, "per_page": 20, "total": 200 } }

Notas Fiscais

Operações relacionadas a notas fiscais.

Operations

Empresas

Operações de cadastro de empresas.

Operations

Usuários

Operações de cadastro de usuários.

Operations

Perfil

Operações do cadastro de perfil de usuário.

Operations

Permissões

Lista de Permissões.

Operations

Estatísticas (Dashboard)

Operações de estatísticas.

Operations

Cidades

Lista de cidades.

Operations

Estados

Lista de estados.

Operations

Buscar Cep

Operação de busca do endereço a partir de um cep informado.

Operations

Processamento em massa

Operações de processamento em massa.

Operations

Integrações

Operações de integrações disponíveis no sistema.

Operations

Tipos de Negócio

Operações de tipos de negócio disponíveis no sistema.

Operations