Clientes
Endereço base: https://api.denaryx.com/admin/2026-10. Exemplos e regras no guia Clientes. Os erros seguem o formato comum. A especificação inteira: baixar o OpenAPI.
GET /customers
Os clientes da loja
Escopo read_customers
As contas que os compradores abriram na loja (a área do cliente, com o código mandado ao e-mail), com os endereços salvos. Quem compra sem conta não aparece aqui: os dados dele estão nos pedidos. Na ordem da última mudança, da mais antiga à mais nova, com o id para desempatar: para sincronizar, guarde o updated_at do último que leu e peça updated_at_min na próxima vez. Entrar na conta não conta como mudança. Cada cliente traz o e-mail, o telefone, o CPF e os endereços.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
limit | consulta | integer | Quantos itens por página, de 1 a 100 (50 sem ele). |
cursor | consulta | string | O next_cursor da página anterior, como veio. Os filtros continuam os mesmos. |
ids | consulta | string | Só estes ids, separados por vírgula (até 100). |
email | consulta | string | Só a conta deste e-mail (exato, sem diferença de maiúsculas): o jeito de achar a conta de quem comprou. |
updated_at_min | consulta | string (data e hora) | Só o que mudou a partir desta data (ISO 8601): a sincronização incremental. |
created_at_min | consulta | string (data e hora) | Só o criado a partir desta data (ISO 8601). |
created_at_max | consulta | string (data e hora) | Só o criado até esta data (ISO 8601). |
Resposta
200 Sucesso. (CustomerList)
Os campos da resposta (22)
| Campo | Tipo | Descrição |
|---|---|---|
data | lista de Customer | |
data[].id | string (uuid) | |
data[].email | string | |
data[].name | string | |
data[].phone | string ou null | |
data[].cpf | string ou null | |
data[].accepts_marketing | boolean | |
data[].accepts_marketing_at | string (data e hora) ou null | |
data[].addresses | lista de objeto | |
data[].addresses[].id | string (uuid) | |
data[].addresses[].name | string | |
data[].addresses[].zip | string | |
data[].addresses[].street | string | |
data[].addresses[].number | string | |
data[].addresses[].complement | string | |
data[].addresses[].neighborhood | string | |
data[].addresses[].city | string | |
data[].addresses[].state | string | |
data[].addresses[].default | boolean | |
data[].created_at | string (data e hora) | |
data[].updated_at | string (data e hora) | |
next_cursor | string ou null |
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).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 /customers/{id}
Um cliente
Escopo read_customers
A conta, com os endereços salvos. O id é o customer.id dos pedidos feitos com ela. A conta excluída (pelo próprio comprador ou pela loja, em Privacidade) dá 404.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
idobrigatório | caminho | string (uuid) | O id da conta do cliente. |
Resposta
200 Sucesso. (Customer)
Os campos da resposta (20)
| Campo | Tipo | Descrição |
|---|---|---|
id | string (uuid) | |
email | string | |
name | string | |
phone | string ou null | |
cpf | string ou null | |
accepts_marketing | boolean | |
accepts_marketing_at | string (data e hora) ou null | |
addresses | lista de objeto | |
addresses[].id | string (uuid) | |
addresses[].name | string | |
addresses[].zip | string | |
addresses[].street | string | |
addresses[].number | string | |
addresses[].complement | string | |
addresses[].neighborhood | string | |
addresses[].city | string | |
addresses[].state | string | |
addresses[].default | 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).