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

Obtém um pedido de venda

Request

Resgata um pedido de venda.

Security
OAuth2
Path
saleOrderIdinteger(int64)required

ID do pedido de venda.

curl -i -X GET \
  'https://cplug.redocly.app/_mock/openapi/api/v3/sale-orders/{saleOrderId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Dados deste pedido de venda.

Bodyapplication/json
idintegerread-only

Identificador numérico único do pedido de venda.

Example: 123
numberintegerread-only

Número do pedido de venda.

Example: 123
unique_idstring

Identificador único do pedido de venda.

Example: "cf2e0a5e-aa58-4181-9c9b-47702bd2be99"
customerobject(SaleCustomer)

Dados do cliente

addressobject(Address)

Endereço da venda

observationstring

Obervação da venda

Example: "Sem copo"
statusany

Status do pedido de venda.

  • canceled pedido de venda cancelada.
  • closed pedido de venda fechada.
  • in_preparation pedido em preparação.
  • in_route pedido em entrega.
  • open pedido de venda aberta.
  • reserved pedido de venda reservada.
  • takeout pedido para retirar.
  • waiting pedido de venda em espera.
Enum"canceled""closed""in_preparation""in_route""open""reserved""takeout""waiting"
itemsArray of objects(SaleItem)

Lista de produtos deste pedido de venda.

paymentsArray of objects(SalePayment)

Lista de pagamentos.

sellerobject(SaleSeller)

Dados do vendedor

carrierobject(SaleCarrier)

Dados do frete e do transportador

totalobject(SaleTotals)

Resumo monetário da venda

source_typestring(SourceType)

Canal de venda:

  • erp
  • pdv
  • store
Enum"erp""pdv""store"
company_namestring

Razão social da pessoa jurídica.

Example: "CPlug"
registration_datestring(date-time)read-only

Data do registro da venda.

Example: "2020-01-01T09:00:00-03:00"
delivery_typeany

Tipo de entrega do pedido:

  • delivery entrega
  • withdrawal retirada
Enum"delivery""withdrawal"
sale_idintegerread-only

Identificador numérico único de venda.

Example: 789
created_atstring(date-time)read-only

Data da criação da venda.

Example: "2020-01-01T09:00:00-03:00"
updated_atstring(date-time)read-only

Data da atualização da venda.

Example: "2020-01-01T09:00:00-03:00"
Response
application/json
{ "id": 123, "number": 123, "unique_id": "cf2e0a5e-aa58-4181-9c9b-47702bd2be99", "customer": { "id": 123, "name": "Nome do Cliente", "type": "individual", "birthday": "1990-12-25", "company_name": "MyCompany", "notes": "Minhas obervações do cliente", "documents": [], "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00" }, "address": { "id": 220, "type": "default", "street": "Avenida Paulista", "number": "42 A", "city_id": 1234, "ibge_code": "3550308", "state": "SP", "city": "São Paulo", "neighborhood": "Bela Vista", "complement": "Apto 2550", "zip_code": "01311000" }, "observation": "Sem copo", "status": "canceled", "items": [ {} ], "payments": [ {} ], "seller": { "id": 123, "name": "Fulano de tal", "email": "vendedor@email.com", "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00", "deleted_at": "2020-01-01T09:00:00-03:00" }, "carrier": { "shipping_fee": {}, "carrier_id": 1 }, "total": { "value": {}, "discount": {}, "total_value_ipi": {}, "other_expenses_value": {} }, "source_type": "erp", "company_name": "CPlug", "registration_date": "2020-01-01T09:00:00-03:00", "delivery_type": "delivery", "sale_id": 789, "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00" }

Atualiza um pedido de venda

Request

Atualiza um pedido de venda. Só permite que o pedido seja atualizado enquanto ele estiver em aberto, caso contrário, não será possível.

Security
OAuth2
Path
saleOrderIdinteger(int64)required

ID do pedido de venda.

Headers
Idempotency-Keystring(uuid)required

UUID aleatório gerado por você. 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 UUID, nós não duplicaremos o registro.

CPlug-Company-Idnumberrequired

Id da Empresa (Company).

Você pode localizar os IDs das empresas no endpoint de listagem de Empresas: GET /api/v3/companies.

Example: 12
Bodyapplication/jsonrequired

Corpo requisição de atualização de um pedido de venda.

itemsArray of objects(SaleOrderItemUpdateRequest)required

Lista de produtos deste pedido.

items[].​item_idintegerrequired

Id único do item

Example: 123
items[].​idinteger

Id único do item no pedido de vendas

Example: 123
items[].​grid_idinteger

Id único do grid que este item faz parte.

O grid_id é o ID do Product Grid

Example: 456
items[].​amountnumberrequired

quantidade

Example: 5
items[].​unitary_valueobject(Money)required

Valor unitário do item.

É a soma do valor base deste item com a soma dos adicionais e com a soma do total dos atributos.

Fórmula: unitary_value = valor base do item + sum(attributes.total_value) + sum(additionals.total_value)

items[].​unitary_value.​amountnumber(decimal)required

Valor expresso como um número decimal das principais unidades monetárias

Example: 99.95
items[].​unitary_value.​currencystring(iso-4217)required

Código de moeda de 3 letras conforme definido pela ISO-4217

Example: "BRL"
items[].​total_valueobject(Money)

Valor total do item.

É a multiplicação da quantidade pelo valor unitário deste item.

Fórmula: total_value = amount * unitary_value

items[].​unitary_value_ipiobject(Money)

Valor IPI unitário do item

items[].​discountobject(Money)

Desconto no item

items[].​notesstring

Id único do estoque

Example: "sem chocolate"
items[].​stock_idinteger

Id único do estoque

Example: 1234
items[].​attributesArray of objects(SaleOrderItemAttributeRequest)

Lista de atributos deste produto neste pedido.

items[].​additionalsArray of objects(SaleItemAdditionalBody)

Lista de adicionais deste produto nesta venda.

items[].​componentsArray of objects(SaleOrderItemUpdateBodyRequest)

Lista de componentes do combo. Obrigatório quando este item for um combo.

items[].​price_list_product_idinteger

Id único da lista de produto do produto.

Você pode localizar os IDs da lista de preço do produto no endpoint de listagem de produtos de uma lista de preço.

Example: 456
seller_idintegerrequired

Id único do vendedor

Example: 123
totalobject(SaleTotalsBody)required

Resumo monetário da venda

total.​valueobject(Money)required

Valor total da venda já considerando o desconto e o frete e o valor de outras despesas

total.​value.​amountnumber(decimal)required

Valor expresso como um número decimal das principais unidades monetárias

Example: 99.95
total.​value.​currencystring(iso-4217)required

Código de moeda de 3 letras conforme definido pela ISO-4217

Example: "BRL"
total.​total_value_ipiobject(Money)

Valor IPI total da venda

total.​discountobject(Money)

Valor de desconto na venda. Deixar em nulo quando um desconto no item for aplicado

total.​other_expenses_valueobject(Money)

Outros valores

source_typestring(SourceType)

Canal de venda:

  • erp
  • pdv
  • store
Enum"erp""pdv""store"
paymentsArray of objects(SalePaymentUpdateBody)required

Lista de pagamentos.

payments[].​idinteger

Id único do método do pagamento na relação

Example: 1
payments[].​payment_method_idintegerrequired

Id único do método do pagamento

Example: 1
payments[].​bank_account_idnumberrequired

Id único da conta bancária

Example: 5
payments[].​total_valueobject(Money)required

Valor total do pagamento

payments[].​total_value.​amountnumber(decimal)required

Valor expresso como um número decimal das principais unidades monetárias

Example: 99.95
payments[].​total_value.​currencystring(iso-4217)required

Código de moeda de 3 letras conforme definido pela ISO-4217

Example: "BRL"
payments[].​installmentsArray of objects(SaleInstallmentUpdateBody)required

Lista de parcelamento.

payments[].​installments[].​idinteger

Id único da parcela do método do pagamento na relação

Example: 1
payments[].​installments[].​due_datestring(date-time)required

Data do vencimento da parcela.

Example: "2020-01-01T09:00:00-03:00"
payments[].​installments[].​valueobject(Money)required

Valor da parcela

payments[].​installments[].​value.​amountnumber(decimal)required

Valor expresso como um número decimal das principais unidades monetárias

Example: 99.95
payments[].​installments[].​value.​currencystring(iso-4217)required

Código de moeda de 3 letras conforme definido pela ISO-4217

Example: "BRL"
payments[].​installments[].​observationstring

Observação da parcela

Example: "pagamento à vista"
payments[].​card_brand_idinteger

Id único da bandeira do cartão de crédito

Example: 1
payments[].​exchange_valueobject(Money)

Valor do troco

delivery_typeanyrequired

Tipo de entrega do pedido:

  • delivery entrega
  • withdrawal retirada
Enum"delivery""withdrawal"
nature_transaction_idinteger

Id da natureza da operação

Example: 123
carrierobject(SaleCarrierBody)

Dados do transportador e do frete

address_idinteger

Id do endereço

Example: 123
customer_idinteger

Id do cliente

Example: 123
document_numberstring

CPF ou CNPJ na nota

Example: "123.456.789-00"
observationstring

Obervação da venda

Example: "Sem copo"
user_idinteger

Id do usuário logado

Example: 123
company_idinteger

Id da empresa que fez o pedido de venda

Example: 123
sale_numberinteger

Número do pedido de venda. Este número pode ser gerado por você. Caso não envie, o sistema irá gerar automaticamente para você.

Example: 1234
contingency_codeinteger

Número do pedido de venda em contigência

Example: 12345
registration_datestring(date-time)

Data do registro do pedido de venda.

Example: "2020-01-01T09:00:00-03:00"
statusany

Status do pedido de venda.

Ao mudar o status para closed, gerará uma venda e não será mais permitido a alteração do pedido

  • canceled pedido de venda cancelada.
  • closed pedido de venda fechada.
  • in_preparation pedido em preparação.
  • in_route pedido em entrega.
  • open pedido de venda aberta.
  • reserved pedido de venda reservada.
  • takeout pedido para retirar.
  • waiting pedido de venda em espera.
Enum"canceled""closed""in_preparation""in_route""open""reserved""takeout""waiting"
curl -i -X PUT \
  'https://cplug.redocly.app/_mock/openapi/api/v3/sale-orders/{saleOrderId}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'CPlug-Company-Id: 12' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -d '{
    "items": [
      {
        "item_id": 123,
        "id": 123,
        "grid_id": 456,
        "amount": 5,
        "unitary_value": {
          "amount": 99.95,
          "currency": "BRL"
        },
        "total_value": {
          "amount": 99.95,
          "currency": "BRL"
        },
        "unitary_value_ipi": {
          "amount": 99.95,
          "currency": "BRL"
        },
        "discount": {
          "amount": 99.95,
          "currency": "BRL"
        },
        "notes": "sem chocolate",
        "stock_id": 1234,
        "attributes": [
          {
            "id": 456,
            "attribute_id": 789,
            "min_choices": 1,
            "max_choices": 2,
            "total_value": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "price_calculation_type": "Highest",
            "charge_from_quantity": 2,
            "options": [
              {
                "id": 123,
                "option_id": 123,
                "amount": 5,
                "unitary_value": {},
                "discount": {}
              }
            ]
          }
        ],
        "additionals": [
          {
            "additional_id": 123,
            "amount": 1,
            "unitary_value": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "discount": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "total_value": {
              "amount": 99.95,
              "currency": "BRL"
            }
          }
        ],
        "components": [
          {
            "item_id": 123,
            "id": 123,
            "combo_item_id": 123,
            "grid_id": 456,
            "amount": 5,
            "unitary_value": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "total_value": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "unitary_value_ipi": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "discount": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "notes": "sem chocolate",
            "stock_id": 1234,
            "attributes": [
              {
                "id": 456,
                "attribute_id": 789,
                "min_choices": 1,
                "max_choices": 2,
                "total_value": {},
                "price_calculation_type": "Highest",
                "charge_from_quantity": 2,
                "options": [
                  null
                ]
              }
            ],
            "additionals": [
              {
                "additional_id": 123,
                "amount": 1,
                "unitary_value": {},
                "discount": {},
                "total_value": {}
              }
            ],
            "price_list_product_id": 456
          }
        ],
        "price_list_product_id": 456
      }
    ],
    "seller_id": 123,
    "total": {
      "value": {
        "amount": 99.95,
        "currency": "BRL"
      },
      "total_value_ipi": {
        "amount": 99.95,
        "currency": "BRL"
      },
      "discount": {
        "amount": 99.95,
        "currency": "BRL"
      },
      "other_expenses_value": {
        "amount": 99.95,
        "currency": "BRL"
      }
    },
    "source_type": "erp",
    "payments": [
      {
        "id": 1,
        "payment_method_id": 1,
        "bank_account_id": 5,
        "total_value": {
          "amount": 99.95,
          "currency": "BRL"
        },
        "installments": [
          {
            "id": 1,
            "due_date": "2020-01-01T09:00:00-03:00",
            "value": {
              "amount": 99.95,
              "currency": "BRL"
            },
            "observation": "pagamento à vista"
          }
        ],
        "card_brand_id": 1,
        "exchange_value": {
          "amount": 99.95,
          "currency": "BRL"
        }
      }
    ],
    "delivery_type": "delivery",
    "nature_transaction_id": 123,
    "carrier": {
      "shippingFee": {
        "amount": 99.95,
        "currency": "BRL"
      },
      "carrier_id": 1234
    },
    "address_id": 123,
    "customer_id": 123,
    "document_number": "123.456.789-00",
    "observation": "Sem copo",
    "user_id": 123,
    "company_id": 123,
    "sale_number": 1234,
    "contingency_code": 12345,
    "registration_date": "2020-01-01T09:00:00-03:00",
    "status": "canceled"
  }'

Responses

Pedido de venda atualizado.

Bodyapplication/json
idintegerread-only

Identificador numérico único do pedido de venda.

Example: 123
numberintegerread-only

Número do pedido de venda.

Example: 123
unique_idstring

Identificador único do pedido de venda.

Example: "cf2e0a5e-aa58-4181-9c9b-47702bd2be99"
customerobject(SaleCustomer)

Dados do cliente

addressobject(Address)

Endereço da venda

observationstring

Obervação da venda

Example: "Sem copo"
statusany

Status do pedido de venda.

  • canceled pedido de venda cancelada.
  • closed pedido de venda fechada.
  • in_preparation pedido em preparação.
  • in_route pedido em entrega.
  • open pedido de venda aberta.
  • reserved pedido de venda reservada.
  • takeout pedido para retirar.
  • waiting pedido de venda em espera.
Enum"canceled""closed""in_preparation""in_route""open""reserved""takeout""waiting"
itemsArray of objects(SaleItem)

Lista de produtos deste pedido de venda.

paymentsArray of objects(SalePayment)

Lista de pagamentos.

sellerobject(SaleSeller)

Dados do vendedor

carrierobject(SaleCarrier)

Dados do frete e do transportador

totalobject(SaleTotals)

Resumo monetário da venda

source_typestring(SourceType)

Canal de venda:

  • erp
  • pdv
  • store
Enum"erp""pdv""store"
company_namestring

Razão social da pessoa jurídica.

Example: "CPlug"
registration_datestring(date-time)read-only

Data do registro da venda.

Example: "2020-01-01T09:00:00-03:00"
delivery_typeany

Tipo de entrega do pedido:

  • delivery entrega
  • withdrawal retirada
Enum"delivery""withdrawal"
sale_idintegerread-only

Identificador numérico único de venda.

Example: 789
created_atstring(date-time)read-only

Data da criação da venda.

Example: "2020-01-01T09:00:00-03:00"
updated_atstring(date-time)read-only

Data da atualização da venda.

Example: "2020-01-01T09:00:00-03:00"
Response
application/json
{ "id": 123, "number": 123, "unique_id": "cf2e0a5e-aa58-4181-9c9b-47702bd2be99", "customer": { "id": 123, "name": "Nome do Cliente", "type": "individual", "birthday": "1990-12-25", "company_name": "MyCompany", "notes": "Minhas obervações do cliente", "documents": [], "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00" }, "address": { "id": 220, "type": "default", "street": "Avenida Paulista", "number": "42 A", "city_id": 1234, "ibge_code": "3550308", "state": "SP", "city": "São Paulo", "neighborhood": "Bela Vista", "complement": "Apto 2550", "zip_code": "01311000" }, "observation": "Sem copo", "status": "canceled", "items": [ {} ], "payments": [ {} ], "seller": { "id": 123, "name": "Fulano de tal", "email": "vendedor@email.com", "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00", "deleted_at": "2020-01-01T09:00:00-03:00" }, "carrier": { "shipping_fee": {}, "carrier_id": 1 }, "total": { "value": {}, "discount": {}, "total_value_ipi": {}, "other_expenses_value": {} }, "source_type": "erp", "company_name": "CPlug", "registration_date": "2020-01-01T09:00:00-03:00", "delivery_type": "delivery", "sale_id": 789, "created_at": "2020-01-01T09:00:00-03:00", "updated_at": "2020-01-01T09:00:00-03:00" }

Atualiza um status de pedido de venda

Request

Atualiza um status de pedido de venda.

Security
OAuth2
Path
saleOrderIdinteger(int64)required

ID do pedido de venda.

Headers
Idempotency-Keystring(uuid)required

UUID aleatório gerado por você. 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 UUID, nós não duplicaremos o registro.

CPlug-Company-Idnumberrequired

Id da Empresa (Company).

Você pode localizar os IDs das empresas no endpoint de listagem de Empresas: GET /api/v3/companies.

Example: 12
Bodyapplication/jsonrequired

Corpo requisição de atualização do status de um pedido de venda.

statusanyrequired

Tipo de status do pedido:

  • canceled pedido cancelada.
  • closed pedido fechada.
  • in_preparation pedido em preparação.
  • in_route pedido em entrega.
  • open pedido aberto.
  • reserved pedido reservado.
  • takeout pedido para retirar.
  • waiting pedido em espera.

Ao mudar o status para closed, o pedido gerará uma venda e NÂO será possível mais mudar o status do pedido.

Enum"canceled""closed""in_preparation""in_route""open""reserved""takeout""waiting"
paymentsArray of objects(SaleOrderStatusPaymentUpdateRequest)

Lista de pagamentos que foram feitos.

curl -i -X PUT \
  'https://cplug.redocly.app/_mock/openapi/api/v3/sale-orders/{saleOrderId}/status' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'CPlug-Company-Id: 12' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -d '{
    "status": "canceled",
    "payments": [
      {
        "card_contract_id": 1,
        "payment_id": 1,
        "payment_method_id": 1,
        "card_brand_id": 1,
        "card_receipt": {
          "authorization": "999996",
          "nsu": "009999997",
          "receipt": "SITEF\n00001\nBIN\nVIA - ESTABELECIMENTO\nCPLUG COMERCIO DE SOFTWARE LTDA\nAvenida da CPlug\nCuritibaTT000181\nEC:000000033999999       TERM:TFI038B9\n************9999\nAUT=999996   CV=009999997   DOC=999998\n18/03/20       17:27:57              C\nVISA\nCREDITO A VISTA\nVALOR                           8.90\nTRANSACAO AUTORIZADA COM SENHA\n\n\nARQC: 35E8DF8A3234C308\nVISA CREDITO\nAID:A0000000031010\n(SiTef)"
        }
      }
    ]
  }'

Responses

No Content

Response
No content

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

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