Montagens
Endereço base: https://api.denaryx.com/admin/2026-10. Exemplos e regras no guia Montagens. Os erros seguem o formato comum. A especificação inteira: baixar o OpenAPI.
GET /assemblies
As montagens da loja
Escopo read_products
Os grupos de complementos dos produtos (a lente e os tratamentos da armação). Todas (no máximo 50), em ordem de nome, numa página só.
Resposta
200 Sucesso. (AssemblyList)
Os campos da resposta (18)
| Campo | Tipo | Descrição |
|---|---|---|
data | lista de Assembly | |
data[].id | string (uuid) | |
data[].name | string | |
data[].description | string | |
data[].active | boolean | |
data[].optional | boolean | |
data[].groups | lista de objeto | |
data[].groups[].code | string | |
data[].groups[].name | string | |
data[].groups[].required | boolean | |
data[].groups[].multiple | boolean | |
data[].groups[].product_ids | lista de string (uuid) | |
data[].collection_ids | lista de string (uuid) | |
data[].product_ids | lista de string (uuid) | |
data[].incomplete | boolean | |
data[].created_at | string (data e hora) | |
data[].updated_at | string (data e hora) | |
next_cursor | string ou null |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
POST /assemblies
Cria uma montagem
Escopo write_products
Com os grupos (até 8, cada um com até 30 produtos) e as coleções e os produtos aos quais ela se aplica. Uma coleção ou um produto que já usa outra montagem é recusado (409 assembly_already_linked).
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: AssemblyCreate
| Campo | Tipo | Descrição |
|---|---|---|
nameobrigatório | string | Até 80 caracteres. |
description | string | Até 500 caracteres.Sem ele: "". |
active | boolean | Sem ele: true. |
optional | boolean | Sem ele: false. |
groupsobrigatório | lista de objeto | Até 8 itens. |
groups[].nameobrigatório | string | Até 60 caracteres. |
groups[].code | string | |
groups[].required | boolean | Sem ele: false. |
groups[].multiple | boolean | Sem ele: false. |
groups[].product_idsobrigatório | lista de string (uuid) | Até 30 itens. |
collection_ids | lista de string (uuid) | Até 100 itens.Sem ele: []. |
product_ids | lista de string (uuid) | Até 500 itens.Sem ele: []. |
Resposta
201 Sucesso. (Assembly)
Os campos da resposta (16)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
name | string | |
description | string | |
active | boolean | |
optional | boolean | |
groups | lista de objeto | |
groups[].code | string | |
groups[].name | string | |
groups[].required | boolean | |
groups[].multiple | boolean | |
groups[].product_ids | lista de string (uuid) | |
collection_ids | lista de string (uuid) | |
product_ids | lista de string (uuid) | |
incomplete | boolean | |
created_at | string (data e hora) | |
updated_at | string (data e hora) |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).409O estado do recurso não permite a mudança, ou ele mudou desde a leitura (conflict).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
GET /assemblies/{id}
Uma montagem
Escopo read_products
Com os grupos e as ligações; optional diz se o produto também vai sem a montagem, e incomplete, que algum grupo obrigatório ficou sem produto à venda.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da montagem. |
Resposta
200 Sucesso. (Assembly)
Os campos da resposta (16)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
name | string | |
description | string | |
active | boolean | |
optional | boolean | |
groups | lista de objeto | |
groups[].code | string | |
groups[].name | string | |
groups[].required | boolean | |
groups[].multiple | boolean | |
groups[].product_ids | lista de string (uuid) | |
collection_ids | lista de string (uuid) | |
product_ids | lista de string (uuid) | |
incomplete | boolean | |
created_at | string (data e hora) | |
updated_at | string (data e hora) |
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
PATCH /assemblies/{id}
Muda campos de uma montagem
Escopo write_products
Só o que vier muda; as listas (groups, collection_ids, product_ids) trocam a anterior inteira.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da montagem. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Corpo application/json: AssemblyUpdate
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Até 80 caracteres. |
description | string | Até 500 caracteres. |
active | boolean | |
optional | boolean | |
groups | lista de objeto | Até 8 itens. |
groups[].nameobrigatório | string | Até 60 caracteres. |
groups[].code | string | |
groups[].required | boolean | Sem ele: false. |
groups[].multiple | boolean | Sem ele: false. |
groups[].product_idsobrigatório | lista de string (uuid) | Até 30 itens. |
collection_ids | lista de string (uuid) | Até 100 itens. |
product_ids | lista de string (uuid) | Até 500 itens. |
Resposta
200 Sucesso. (Assembly)
Os campos da resposta (16)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
name | string | |
description | string | |
active | boolean | |
optional | boolean | |
groups | lista de objeto | |
groups[].code | string | |
groups[].name | string | |
groups[].required | boolean | |
groups[].multiple | boolean | |
groups[].product_ids | lista de string (uuid) | |
collection_ids | lista de string (uuid) | |
product_ids | lista de string (uuid) | |
incomplete | boolean | |
created_at | string (data e hora) | |
updated_at | string (data e hora) |
Erros
400A chamada veio com campos inválidos; os campos recusados vão em fields (invalid_request).401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).409O estado do recurso não permite a mudança, ou ele mudou desde a leitura (conflict).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).
DELETE /assemblies/{id}
Exclui uma montagem
Escopo write_products
As coleções e os produtos ligados a ela ficam sem montagem; os produtos dos grupos continuam no catálogo.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da montagem. |
Idempotency-Key | cabeçalho | string | Até 255 caracteres. A mesma escrita mandada de novo com a mesma chave, em até 24 horas, devolve a resposta guardada (com Idempotent-Replayed: true) em vez de acontecer duas vezes. |
Resposta
204 Sucesso, sem corpo.
Erros
401O token falta, não existe, foi revogado ou venceu (authentication_error).403O token não tem o escopo da rota, ou, com write_content, mandou campos que pedem write_products, listados em fields (permission_error).404O recurso não existe nesta loja (not_found).429Chamadas demais: espere o Retry-After (rate_limited).500Erro do nosso lado (api_error).503A API está ocupada com outras chamadas: espere o Retry-After (api_error).