Produtos
Catálogo de produtos: itens, preços, textos, fotos, ficha técnica, categorias, marcas e submarcas, modelos de impressora compatíveis, códigos de chaves, estoque e arquivos digitais.
O que é
Produtos é o catálogo do tenant: itens à venda com preço, textos, fotos, categoria, marca, unidade e os modelos de impressora com que cada item é compatível.
Na prática: você lista e consulta produtos para sincronizar catálogo e alimentar integrações, ou cadastra o catálogo de um fornecedor inteiro — modelos de impressora, produtos com textos, fotos e preço em dólar, e a compatibilidade de cada um.
O que dá para fazer hoje
- Listar o catálogo, com filtros por status, visibilidade, tipo, categoria e busca.
- Consultar um produto com categoria, marca, unidade, textos e fotos.
- Criar um produto de qualquer tipo, de forma idempotente, já com textos, fotos, preço em dólar e modelos compatíveis.
- Atualizar (edição parcial) e arquivar um produto.
- Criar e manter categorias, marcas e modelos de impressora.
Importante
- A escrita reusa o mesmo serviço do painel: as regras por tipo (obrigatórios, Kit, montagem técnica, unicidade) valem igual.
- Leitura expõe só o catálogo público; custo, preço em dólar e comissão nunca saem.
- Qualquer gravação desliga a sincronização com o Mercado Livre, como no painel.
- Leitura exige
products:read; criar/editar/arquivar exigeproducts:writee a permissão correspondente em Gestão de Produtos.
Disponibilidade na API
Endpoints de Produtos e Catálogo
Gerencie produtos e consulte os recursos auxiliares usados pelo catálogo. Os exemplos abaixo são gerados pelo contrato OpenAPI oficial.
/api/v1/products
Lista os produtos
Exige o escopo `products:read` e a permissão de ver em Gestão de Produtos. Retorna o catálogo com os filtros documentados.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | Ativo (true) ou inativo (false). |
visibility_storequery | boolean | Não | Visível na loja (true) ou não (false). |
typequery | string | Não | Tipo do produto (produto-fisico, produto-digital, servico, kit, chave-codigo, assinatura, etc.). |
category_idquery | integer | Não | Filtra por categoria. |
brand_idquery | integer | Não | Filtra por marca. |
referencequery | string | Não | Referência (SKU) exata, para conferir se o item já foi cadastrado. |
printer_model_idquery | integer | Não | Só os produtos compatíveis com este modelo de impressora. |
searchquery | string | Não | Busca por nome ou referência. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/products" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/products
Cria um produto
Exige `products:write` e a permissão de criar em Gestão de Produtos. Reusa o serviço canônico do painel e vale para todos os tipos. Campos por tipo — `compositions` (kit), `related_key_product_id` (chave-codigo), `subscription_id` (assinatura). Aceita também os textos da aba de informações (`description`, `description_short` etc.), as fotos (`images`, itens já enviados à Biblioteca de Mídia por `POST /media`) e o preço em dólar (`usd_price*`). Qualquer gravação desliga a sincronização com o Mercado Livre, como no painel.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/products" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"type":"produto-fisico","name":"Camiseta Básica","reference":"CAM-001","price":"79,90","warranty_days":90,"validity_days":0,"category_id":4,"unit_id":1}'Exemplo de resposta JSON
{
"data": {
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/products/{product}
Exibe um produto
Exige o escopo `products:read`. Traz categoria, marca e unidade.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/products/{product}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/products/{product}
Atualiza um produto
Exige `products:write` e a permissão de editar em Gestão de Produtos. Edição parcial - todo campo é opcional e o omitido fica como está (tipo, nome, chave relacionada, compatibilidade, fotos, preços por quantidade, atributos, textos, fiscal, frete, embalagem e visibilidade). `images` enviado é a lista final de fotos - as que já estavam e continuam na lista mantêm o vínculo, as que saem são removidas como no painel. Aplica as mesmas regras do painel.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/products/{product}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '[]'Exemplo de resposta JSON
{
"data": {
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/products/{product}
Arquiva um produto
Exige `products:write` e a permissão de desabilitar em Gestão de Produtos. Desativa sem apagar; para reativar, POST /products/{product}/activate. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/products/{product}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/products/{product}/activate
Reativa um produto arquivado
Exige `products:write` e a permissão de desabilitar em Gestão de Produtos (a mesma do arquivar). O contrário do DELETE; idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/products/{product}/activate" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 1203,
"name": "Camiseta Básica",
"reference": "CAM-001",
"type": "produto-fisico",
"status": true,
"visibility_store": true,
"google_shopping_enabled": true,
"google_shopping_disabled_reason": null,
"availability": "disponivel",
"condition_type": "novo",
"price": 79.900000000000005684341886080801486968994140625,
"price_resale": 59.89999999999999857891452847979962825775146484375,
"category": {
"id": 4,
"name": "Vestuário"
},
"brand": {
"id": 2,
"name": "MiCore Wear"
},
"unit": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN"
},
"created_at": "2026-10-19T09:00:00-03:00",
"updated_at": "2026-10-19T09:00:00-03:00"
}
}Respostas possíveis
/api/v1/products/{product}/digital-files
Lista os arquivos digitais do produto
Exige `products:read`. Drivers, softwares e manuais da aba Arquivos, na ordem do produto. O link de download não sai na API: o arquivo é entregue ao cliente pela loja.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
statusquery | boolean | Não | true só ativos, false só desativados; sem o filtro, todos. |
Exemplo de requisição
curl "$MICORE_BASE_URL/products/{product}/digital-files" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 1,
"product_id": 1,
"title": "string",
"description": null,
"version": null,
"file_name": "string",
"extension": "string",
"size": 1,
"operational_system": {
"id": 1,
"name": "string"
},
"ink": null,
"paper": null,
"configuration": null,
"order": 1,
"featured": true,
"status": true,
"date_release": "2026-10-20",
"downloads": 1,
"created_at": "2026-10-20T10:00:00-03:00",
"updated_at": "2026-10-20T10:00:00-03:00"
}
]
}Respostas possíveis
/api/v1/products/{product}/digital-files
Envia um arquivo digital para o produto
Exige `products:write` e a permissão de editar em Gestão de Produtos. multipart/form-data com o arquivo em `file` (até 50 MB) e os dados da aba Arquivos. Vai para a pasta do produto; um arquivo com o mesmo nome substitui o anterior na pasta. Tipo sem aba de arquivos (embalagem) recusa. Idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/products/{product}/digital-files" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001"Exemplo de resposta JSON
{
"data": {
"id": 1,
"product_id": 1,
"title": "string",
"description": null,
"version": null,
"file_name": "string",
"extension": "string",
"size": 1,
"operational_system": {
"id": 1,
"name": "string"
},
"ink": null,
"paper": null,
"configuration": null,
"order": 1,
"featured": true,
"status": true,
"date_release": "2026-10-20",
"downloads": 1,
"created_at": "2026-10-20T10:00:00-03:00",
"updated_at": "2026-10-20T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/product-digital-files/{digitalFile}
Edita os dados de um arquivo digital
Exige `products:write` e a permissão de editar em Gestão de Produtos. Edição parcial dos dados; o arquivo em si não muda (para trocar, envie um novo e desative o antigo).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
digitalFilepath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | Não | Até 255 caracteres. |
operational_system_id | integer | Não | — |
description | string | null | Não | Até 255 caracteres. |
version | string | null | Não | Até 255 caracteres. |
ink | string | null | Não | Até 255 caracteres. |
paper | string | null | Não | Até 255 caracteres. |
configuration | string | null | Não | Até 255 caracteres. |
order | integer | null | Não | — |
featured | boolean | null | Não | — |
status | boolean | null | Não | — |
date_release | string | null (date) | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/product-digital-files/{digitalFile}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title":"string","operational_system_id":1,"description":null,"version":null,"ink":null,"paper":null,"configuration":null,"order":1,"featured":true,"status":true,"date_release":"2026-10-20"}'Exemplo de resposta JSON
{
"data": {
"id": 1,
"product_id": 1,
"title": "string",
"description": null,
"version": null,
"file_name": "string",
"extension": "string",
"size": 1,
"operational_system": {
"id": 1,
"name": "string"
},
"ink": null,
"paper": null,
"configuration": null,
"order": 1,
"featured": true,
"status": true,
"date_release": "2026-10-20",
"downloads": 1,
"created_at": "2026-10-20T10:00:00-03:00",
"updated_at": "2026-10-20T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/product-digital-files/{digitalFile}
Desativa um arquivo digital
Exige `products:write` e a permissão de editar em Gestão de Produtos. Desativa sem apagar do armazenamento; idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
digitalFilepath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/product-digital-files/{digitalFile}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 1,
"product_id": 1,
"title": "string",
"description": null,
"version": null,
"file_name": "string",
"extension": "string",
"size": 1,
"operational_system": {
"id": 1,
"name": "string"
},
"ink": null,
"paper": null,
"configuration": null,
"order": 1,
"featured": true,
"status": true,
"date_release": "2026-10-20",
"downloads": 1,
"created_at": "2026-10-20T10:00:00-03:00",
"updated_at": "2026-10-20T10:00:00-03:00"
}
}Respostas possíveis
/api/v1/operational-systems
Lista os sistemas operacionais
Exige `products:read`. Use o `id` em `operational_system_id` dos arquivos digitais.
Exemplo de requisição
curl "$MICORE_BASE_URL/operational-systems" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 1,
"name": "string"
}
]
}Respostas possíveis
/api/v1/products/{product}/key-codes
Resumo dos códigos de um produto chave
Exige `key-codes:read` e a permissão de ver em Gestão de Chaves/Códigos. Só as contagens: os códigos nunca saem na API.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/products/{product}/key-codes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"product_id": 1,
"available": 1,
"used": 1,
"total": 1
}
}Respostas possíveis
/api/v1/products/{product}/key-codes
Carrega códigos num produto chave
Exige `key-codes:write` e a permissão de criar em Gestão de Chaves/Códigos. Só produto ativo do tipo chave-codigo. Linhas vazias são ignoradas; um código repetido na lista ou já cadastrado em qualquer produto recusa a carga inteira (a mensagem lista os repetidos). Idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
codes | array<string> | Sim | — |
type_key | integer | Sim | 1 Classe S (a própria chave reativa), 2 Classe C (guardar o código de recuperação), 3 uso único. Valores: 1, 2, 3. |
description | string | null | Não | Observação gravada em todos os códigos da carga. Até 255 caracteres. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/products/{product}/key-codes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"codes":["XXXX-1111-AAAA","XXXX-2222-BBBB"],"type_key":3,"description":"Lote de novembro"}'Exemplo de resposta JSON
{
"data": []
}Respostas possíveis
/api/v1/products/{product}/stock
Saldo do produto por loja
Exige `stock:read`, o módulo Estoque e a permissão de ver em Gestão de Estoque. Estoque principal de cada loja do usuário responsável. `physical` (o que está na prateleira) é o número a enviar em `expected_quantity` na correção. Só produto físico, matéria-prima ou embalagem.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/products/{product}/stock" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"product_id": 1,
"unit": null,
"serial_control": true,
"stores": [
{
"store": {
"id": 1,
"name": "string"
},
"stock": {
"id": 1,
"name": "string"
},
"quantity": 1,
"committed": 1,
"physical": 1,
"minimum": 1,
"maximum": 1,
"addresses": [
{
"code": "string",
"quantity": 1
}
],
"blocking_order_ids": [
1
]
}
]
}
}Respostas possíveis
/api/v1/products/{product}/stock-corrections
Corrige o saldo do produto numa loja
Exige `stock:write`, o módulo Estoque e a permissão Gerenciar estoque em Gestão de Estoque. Mesma regra da tela de correção: motivo com pelo menos 50 caracteres, `expected_quantity` igual ao físico atual (se o saldo mudou desde a leitura, responde 409 e nada é gravado, o que também evita aplicar a mesma correção duas vezes), bloqueio enquanto houver pedido segurando o produto na loja e seriais das unidades que saem quando o produto controla serial. Os administradores recebem o aviso, como no painel.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
store_id | integer | Sim | — |
expected_quantity | number | Sim | O physical lido no GET /products/{product}/stock. |
counted_quantity | number | Sim | Quanto há na prateleira depois da contagem. |
reason | string | Sim | Até 1000 caracteres. |
serials | array<string> | Não | Seriais das unidades que saem, quando o produto controla serial. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/products/{product}/stock-corrections" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"store_id":2,"expected_quantity":10,"counted_quantity":12,"reason":"Contagem do inventário de novembro encontrou duas unidades a mais na prateleira A-01."}'Exemplo de resposta JSON
{
"data": {
"product_id": 1,
"store_id": 1,
"previous_physical": 1,
"physical": 1,
"difference": 1,
"quantity": 1,
"committed": 1
}
}Respostas possíveis
/api/v1/products/{product}/stock-limits
Define o estoque mínimo e máximo numa loja
Exige `stock:write`, o módulo Estoque e a permissão Gerenciar estoque em Gestão de Estoque. Máximo zero desliga a reposição; ligado, não pode ficar abaixo do mínimo. Respeita a precisão da unidade.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
store_id | integer | Sim | — |
minimum | number | Sim | — |
maximum | number | Sim | Zero desliga a reposição. |
Exemplo de requisição
curl -X PUT "$MICORE_BASE_URL/products/{product}/stock-limits" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"store_id":1,"minimum":1,"maximum":1}'Exemplo de resposta JSON
{
"data": {
"product_id": 1,
"store_id": 1,
"minimum": 1,
"maximum": 1
}
}Respostas possíveis
/api/v1/product-categories
Lista as categorias de produto
Exige o escopo `product-categories:read`. Use para descobrir o `category_id` ao criar ou editar um produto.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
parent_idquery | integer | Não | Filtra pelas categorias filhas de um pai. |
searchquery | string | Não | Busca por nome. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/product-categories" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 4,
"name": "Vestuário",
"parent_id": null,
"url": "vestuario",
"status": true
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/product-categories
Cria uma categoria de produto
Exige `product-categories:write` e a permissão de criar em Categorias. Criação idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
status | boolean | null | Não | — |
parent_id | integer | null | Não | Categoria pai (precisa existir). |
url | string | null | Não | Até 255 caracteres. |
description | string | null | Não | — |
meta_title | string | null | Não | Até 255 caracteres. |
meta_description | string | null | Não | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/product-categories" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"Vestuário","status":true,"parent_id":null,"url":"vestuario"}'Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Vestuário",
"parent_id": null,
"url": "vestuario",
"status": true
}
}Respostas possíveis
/api/v1/product-categories/{productCategory}
Exibe uma categoria de produto
Exige o escopo `product-categories:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productCategorypath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/product-categories/{productCategory}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Vestuário",
"parent_id": null,
"url": "vestuario",
"status": true
}
}Respostas possíveis
/api/v1/product-categories/{productCategory}
Atualiza uma categoria de produto
Exige `product-categories:write` e a permissão de editar em Categorias.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productCategorypath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
status | boolean | null | Não | — |
parent_id | integer | null | Não | Categoria pai (precisa existir). |
url | string | null | Não | Até 255 caracteres. |
description | string | null | Não | — |
meta_title | string | null | Não | Até 255 caracteres. |
meta_description | string | null | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/product-categories/{productCategory}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"Vestuário","status":true,"parent_id":null,"url":"vestuario"}'Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Vestuário",
"parent_id": null,
"url": "vestuario",
"status": true
}
}Respostas possíveis
/api/v1/product-categories/{productCategory}
Desativa uma categoria de produto
Exige `product-categories:write` e a permissão de desabilitar em Categorias. Desativa sem apagar; reativar é pelo painel. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productCategorypath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/product-categories/{productCategory}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 4,
"name": "Vestuário",
"parent_id": null,
"url": "vestuario",
"status": true
}
}Respostas possíveis
/api/v1/brands
Lista as marcas
Exige o escopo `brands:read`. Use para descobrir o `brand_id` ao criar ou editar um produto.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
searchquery | string | Não | Busca por nome. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 2,
"name": "MiCore Wear",
"status": true
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/brands
Cria uma marca
Exige `brands:write` e a permissão de criar em Marcas e Submarcas. Criação idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
status | boolean | null | Não | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"MiCore Wear","status":true}'Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "MiCore Wear",
"status": true
}
}Respostas possíveis
/api/v1/brands/{brand}
Exibe uma marca
Exige o escopo `brands:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
brandpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/brands/{brand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "MiCore Wear",
"status": true
}
}Respostas possíveis
/api/v1/brands/{brand}
Atualiza uma marca
Exige `brands:write` e a permissão de editar em Marcas e Submarcas.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
brandpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
status | boolean | null | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/brands/{brand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"MiCore Wear","status":true}'Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "MiCore Wear",
"status": true
}
}Respostas possíveis
/api/v1/brands/{brand}
Desativa uma marca
Exige `brands:write` e a permissão de desabilitar em Marcas e Submarcas. Desativa sem apagar; reativar é pelo painel. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
brandpath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/brands/{brand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 2,
"name": "MiCore Wear",
"status": true
}
}Respostas possíveis
/api/v1/sub-brands
Lista as submarcas
Exige o escopo `brands:read`. Submarcas são as linhas de uma marca (ex.: EcoTank, WorkForce) e aparecem no `sub_brand` dos modelos de impressora.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
brand_idquery | integer | Não | Só as submarcas ligadas a esta marca. |
searchquery | string | Não | Busca por nome. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/sub-brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 12,
"name": "EcoTank",
"status": true,
"brands": [
{
"id": 3,
"name": "Epson"
}
]
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/sub-brands
Cria uma submarca
Exige `brands:write` e a permissão de criar em Marcas e Submarcas. Nome único. Idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
status | boolean | null | Não | — |
brand_ids | array<integer> | Não | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/sub-brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"EcoTank","brand_ids":[3]}'Exemplo de resposta JSON
{
"data": {
"id": 12,
"name": "EcoTank",
"status": true,
"brands": [
{
"id": 3,
"name": "Epson"
}
]
}
}Respostas possíveis
/api/v1/sub-brands/{subBrand}
Exibe uma submarca
Exige o escopo `brands:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
subBrandpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/sub-brands/{subBrand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 12,
"name": "EcoTank",
"status": true,
"brands": [
{
"id": 3,
"name": "Epson"
}
]
}
}Respostas possíveis
/api/v1/sub-brands/{subBrand}
Atualiza uma submarca
Exige `brands:write` e a permissão de editar em Marcas e Submarcas. Edição parcial; `brand_ids` enviado substitui a lista de marcas.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
subBrandpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
status | boolean | null | Não | — |
brand_ids | array<integer> | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/sub-brands/{subBrand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","status":true,"brand_ids":[1]}'Exemplo de resposta JSON
{
"data": {
"id": 12,
"name": "EcoTank",
"status": true,
"brands": [
{
"id": 3,
"name": "Epson"
}
]
}
}Respostas possíveis
/api/v1/sub-brands/{subBrand}
Desativa uma submarca
Exige `brands:write` e a permissão de desabilitar em Marcas e Submarcas. Desativa sem apagar; idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
subBrandpath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/sub-brands/{subBrand}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 12,
"name": "EcoTank",
"status": true,
"brands": [
{
"id": 3,
"name": "Epson"
}
]
}
}Respostas possíveis
/api/v1/product-attributes
Lista os atributos da ficha técnica
Exige o escopo `product-attributes:read`. Cada atributo vem com as opções (nos de escolha). Use o `id` do atributo e, em radio e checkbox, o `id` da opção em `attributes[]` do produto.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
typequery | string | Não | — |
searchquery | string | Não | Busca por nome. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/product-attributes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 9,
"name": "Volume",
"description": null,
"type": "number_unit",
"allowed_units": [
"ml",
"l"
],
"default_unit": "ml",
"status": true,
"options": []
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/product-attributes
Cria um atributo da ficha técnica
Exige `product-attributes:write` e a permissão de criar em Atributos Personalizados. Nome único. No tipo number_unit, `allowed_units` lista as unidades (a primeira é a padrão). Idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
description | string | null | Não | Até 255 caracteres. |
type | string | Sim | Valores: text, textarea, radio, checkbox, number_unit. |
allowed_units | array<string> | Não | Só no number_unit; a primeira é a padrão. |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/product-attributes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"Volume","type":"number_unit","allowed_units":["ml","l"]}'Exemplo de resposta JSON
{
"data": {
"id": 9,
"name": "Volume",
"description": null,
"type": "number_unit",
"allowed_units": [
"ml",
"l"
],
"default_unit": "ml",
"status": true,
"options": []
}
}Respostas possíveis
/api/v1/product-attributes/{productAttribute}
Exibe um atributo da ficha técnica
Exige o escopo `product-attributes:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productAttributepath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/product-attributes/{productAttribute}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 9,
"name": "Volume",
"description": null,
"type": "number_unit",
"allowed_units": [
"ml",
"l"
],
"default_unit": "ml",
"status": true,
"options": []
}
}Respostas possíveis
/api/v1/product-attributes/{productAttribute}
Atualiza um atributo da ficha técnica
Exige `product-attributes:write` e a permissão de editar em Atributos Personalizados. Edição parcial; as unidades omitidas ficam como estão.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productAttributepath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
description | string | null | Não | Até 255 caracteres. |
type | string | Não | Valores: text, textarea, radio, checkbox, number_unit. |
allowed_units | array<string> | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/product-attributes/{productAttribute}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","description":null,"type":"text","allowed_units":["string"]}'Exemplo de resposta JSON
{
"data": {
"id": 9,
"name": "Volume",
"description": null,
"type": "number_unit",
"allowed_units": [
"ml",
"l"
],
"default_unit": "ml",
"status": true,
"options": []
}
}Respostas possíveis
/api/v1/product-attributes/{productAttribute}
Desativa um atributo da ficha técnica
Exige `product-attributes:write` e a permissão de desabilitar em Atributos Personalizados. Desativa sem apagar; os valores já gravados nos produtos ficam, mas o atributo deixa de ser aceito em novas gravações. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productAttributepath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/product-attributes/{productAttribute}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 9,
"name": "Volume",
"description": null,
"type": "number_unit",
"allowed_units": [
"ml",
"l"
],
"default_unit": "ml",
"status": true,
"options": []
}
}Respostas possíveis
/api/v1/product-attributes/{productAttribute}/options
Cria uma opção num atributo de escolha
Exige `product-attributes:write` e a permissão de criar em Atributos Personalizados. Só atributos radio ou checkbox têm opções. Idempotente (envie um Idempotency-Key).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
productAttributepath | integer | Sim | — |
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
status | boolean | null | Não | — |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/product-attributes/{productAttribute}/options" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"Preto"}'Exemplo de resposta JSON
{
"data": {
"id": 1,
"attribute_id": 1,
"name": "string",
"status": true
}
}Respostas possíveis
/api/v1/product-attribute-options/{attributeOption}
Atualiza uma opção de atributo
Exige `product-attributes:write` e a permissão de editar em Atributos Personalizados. Nome e status; desligada, a opção deixa de ser aceita em novas gravações.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
attributeOptionpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
status | boolean | null | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/product-attribute-options/{attributeOption}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name":"string","status":true}'Exemplo de resposta JSON
{
"data": {
"id": 1,
"attribute_id": 1,
"name": "string",
"status": true
}
}Respostas possíveis
/api/v1/units
Lista as unidades de medida
Exige o escopo `units:read`. Use para descobrir o `unit_id` ao criar ou editar um produto.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
searchquery | string | Não | Busca por nome ou abreviação. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/units" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 1,
"name": "Unidade",
"abbreviation": "UN",
"calculation_type": "inteiro",
"decimal_precision": 0,
"status": true
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/units/{unit}
Exibe uma unidade de medida
Exige o escopo `units:read`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
unitpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/units/{unit}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 1,
"name": "Unidade",
"abbreviation": "UN",
"calculation_type": "inteiro",
"decimal_precision": 0,
"status": true
}
}Respostas possíveis
/api/v1/printer-models
Lista os modelos de impressora
Exige o escopo `printer-models:read`. Use para descobrir o `printer_model_id` ao gravar a compatibilidade de um produto (`printer_model_id`) ou antes de cadastrar um modelo, para não repetir um que já existe (busque pelo nome com `search`).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
statusquery | boolean | Não | — |
brand_idquery | integer | Não | Filtra pelos modelos de uma marca. |
searchquery | string | Não | Busca por nome ou partnumber. |
per_pagequery | integer | Não | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/printer-models" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": [
{
"id": 15,
"name": "LaserJet Pro",
"partnumber": "HP-LJ-PRO",
"type_equipment_id": 3,
"type_equipment": "impressora",
"size": "A4",
"maintenance": true,
"why_not": null,
"is_generic": false,
"capabilities": {
"ink_levels": "tested",
"nozzle_check": "untested",
"head_clean": "untested",
"waste_reset": "unsupported"
},
"status": true,
"brand": {
"id": 2,
"name": "HP"
},
"sub_brand": null
}
],
"links": [],
"meta": []
}Respostas possíveis
/api/v1/printer-models
Cadastra um modelo de impressora
Exige `printer-models:write` e a permissão de criar em Modelos. Criação idempotente (envie um Idempotency-Key). Usa a mesma regra do painel - não pode existir outro modelo ativo com o mesmo tipo de equipamento, marca, submarca e nome (422). Descubra a marca em `GET /brands`, a submarca no `sub_brand` de um modelo já cadastrado e o tipo de equipamento em `GET /equipment-types`.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Idempotency-Keyheader | string | Sim | Identificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar. |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Até 255 caracteres. |
brand_id | integer | Sim | Marca (GET /brands). |
sub_brand_id | integer | null | Não | Submarca (ex.: WorkForce, EcoTank). |
type_equipment_id | integer | null | Não | Tipo de equipamento (GET /equipment-types). |
partnumber | string | null | Não | Até 255 caracteres. |
size | string | null | Não | Até 20 caracteres. |
maintenance | boolean | null | Não | Faz manutenção (padrão: sim). |
why_not | string | null | Não | Motivo de não fazer manutenção. |
is_generic | boolean | null | Não | — |
capabilities | object | null | Não | Situação de cada ferramenta do app da loja (padrão: untested). |
Exemplo de requisição
curl -X POST "$MICORE_BASE_URL/printer-models" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: board-request-0001" \
-H "Content-Type: application/json" \
-d '{"name":"WF-C5890","brand_id":1,"sub_brand_id":7,"type_equipment_id":3,"maintenance":true}'Exemplo de resposta JSON
{
"data": {
"id": 15,
"name": "LaserJet Pro",
"partnumber": "HP-LJ-PRO",
"type_equipment_id": 3,
"type_equipment": "impressora",
"size": "A4",
"maintenance": true,
"why_not": null,
"is_generic": false,
"capabilities": {
"ink_levels": "tested",
"nozzle_check": "untested",
"head_clean": "untested",
"waste_reset": "unsupported"
},
"status": true,
"brand": {
"id": 2,
"name": "HP"
},
"sub_brand": null
}
}Respostas possíveis
/api/v1/printer-models/{printerModel}
Exibe um modelo de impressora
Exige o escopo `printer-models:read`. Traz a marca e a submarca.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
printerModelpath | integer | Sim | — |
Exemplo de requisição
curl "$MICORE_BASE_URL/printer-models/{printerModel}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 15,
"name": "LaserJet Pro",
"partnumber": "HP-LJ-PRO",
"type_equipment_id": 3,
"type_equipment": "impressora",
"size": "A4",
"maintenance": true,
"why_not": null,
"is_generic": false,
"capabilities": {
"ink_levels": "tested",
"nozzle_check": "untested",
"head_clean": "untested",
"waste_reset": "unsupported"
},
"status": true,
"brand": {
"id": 2,
"name": "HP"
},
"sub_brand": null
}
}Respostas possíveis
/api/v1/printer-models/{printerModel}
Edita um modelo de impressora
Exige `printer-models:write` e a permissão de editar em Modelos. Edição parcial - só os campos enviados mudam. Recusa (422) quando o modelo passaria a ter a mesma combinação de outro modelo ativo.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
printerModelpath | integer | Sim | — |
Corpo da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Até 255 caracteres. |
brand_id | integer | Não | — |
sub_brand_id | integer | null | Não | — |
type_equipment_id | integer | null | Não | — |
partnumber | string | null | Não | Até 255 caracteres. |
size | string | null | Não | Até 20 caracteres. |
maintenance | boolean | Não | — |
why_not | string | null | Não | — |
is_generic | boolean | Não | — |
capabilities | object | Não | — |
Exemplo de requisição
curl -X PATCH "$MICORE_BASE_URL/printer-models/{printerModel}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"partnumber":"C11CJ05201"}'Exemplo de resposta JSON
{
"data": {
"id": 15,
"name": "LaserJet Pro",
"partnumber": "HP-LJ-PRO",
"type_equipment_id": 3,
"type_equipment": "impressora",
"size": "A4",
"maintenance": true,
"why_not": null,
"is_generic": false,
"capabilities": {
"ink_levels": "tested",
"nozzle_check": "untested",
"head_clean": "untested",
"waste_reset": "unsupported"
},
"status": true,
"brand": {
"id": 2,
"name": "HP"
},
"sub_brand": null
}
}Respostas possíveis
/api/v1/printer-models/{printerModel}
Desativa um modelo de impressora
Exige `printer-models:write` e a permissão de desabilitar em Modelos. Desativa sem apagar (a compatibilidade dos produtos continua gravada); reativar é pelo painel. Idempotente.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
printerModelpath | integer | Sim | — |
Exemplo de requisição
curl -X DELETE "$MICORE_BASE_URL/printer-models/{printerModel}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json"Exemplo de resposta JSON
{
"data": {
"id": 15,
"name": "LaserJet Pro",
"partnumber": "HP-LJ-PRO",
"type_equipment_id": 3,
"type_equipment": "impressora",
"size": "A4",
"maintenance": true,
"why_not": null,
"is_generic": false,
"capabilities": {
"ink_levels": "tested",
"nozzle_check": "untested",
"head_clean": "untested",
"waste_reset": "unsupported"
},
"status": true,
"brand": {
"id": 2,
"name": "HP"
},
"sub_brand": null
}
}