Buscas e Filtros

Métodos de listagem que aceitam o parâmetro query podem receber filtros para especificar quais registros deverão ser retornados.

Exemplo:

<https://app.vindi.com.br/api/v1/customers?query=name:paulo>

A consulta acima retornará todos os clientes que contém a string "paulo" no atributo nome. O conteúdo do parâmetro query deverá ser codificado (URL Encoded).

Por motivos de simplificação, os exemplos desta documentação não estão codificados.

Para criar uma consulta, você pode utilizar uma ou mais condições, opcionalmente agrupadas por operadores:

query=<atributo><consulta><valor>

Através desta funcionalidade também é possível executar as seguintes pesquisas:

QueryRetorno
name:pauloBusca por registros contendo a string "paulo" (case insensitive) no campo "nome".
code=42Busca o único cliente com o campo do código externo exatamente igual a "42" .
created_at>=2015-01-15Clientes criados a partir do dia 15/01/2015.
status:active AND email:gmail.comClientes ativos com o email contendo a string "gmail.com".

Exemplo:

query=nome:Carlos atributo: "nome" consulta: ":" (contém) valor: "Carlos"

As seguintes consultas são suportadas pela API:

ConsultaDescriçãoExemplosObservações
:Contémname:verônicaCase-insensitive, sempre ignorando acentos. A busca ao lado retornará nomes que contém "VERÔNICA", "veronica", "verONICA", etc.
A API não suporta este operador nos campos code, registry_code e email. Neste caso, utilize o operador de igualdade.
=Igualname="Paulo Costa"
code=42
Busca exatamente pelo valor informado, case-insensitive e ignorando acentos da mesma forma que o operador acima. Utilize aspas caso o valor desejado possua espaços.
Em campos do tipo data/hora, o operador de igualdade irá buscar por registros entre 00:00:00 e 23:59:59 da data informada.
>Maiorcreated_at>"2015-02-28 14:00:00"
quantity>3
Utilize aspas caso deseje buscar por campos do tipo data/hora informando o horário.
> =Maior ou igualcreated_at>=2015-03-01
id>=1020
<Menorquantity<5
<=Menor ou igualid<=200
NOT/not/-Negação-status:activeO exemplo ao lado busca por clientes que não possuem o status "ativo", porém é possível negar qualquer atributo.
()Agrupamento(status:active AND name:paulo) OR name:marianaAgrupa condições.

Operadores disponíveis: AND/and e OR/or. Caso mais de uma condição seja informada e o operador seja omitido, AND será assumido como padrão.

Portanto:

status=active name:luis

É equivalente a:

status=active AND name:luis

Os atributos que podem ser usados nos filtros estão definidos dentro da documentação de cada método.

Buscas por data e hora

Campos do tipo data/hora devem ser consultados levando o horário em consideração, ou seja, se desejar buscar faturas pagas dentro de uma faixa de dias, termine a consulta com 23:59:59:

paid_at=>"2019-01-01" AND paid_at<="2019-01-03 23:59:59"

Se o horário não for informado, consideraremos 00:00:00. O exemplo acima busca por todos os pagamentos feitos nos dias 1, 2 e 3, independente do horário. Caso o horário fosse omitido do término, a busca seria realizada apenas no dia 1 e 2.

Buscas em campos do tipo data/hora utilizando o operador de igualdade irão buscar por registros dentro do dia informado, das 00:00:00 até 23:59:59:

paid_at=2019-01-01

Ordenação

A plataforma também permite ordenar os resultados de qualquer listagem usando atributos que podem ser pesquisados (descritos na documentação de cada método). Para isso, utilize os seguintes parâmetros na query string:

ParâmetroDescriçãoExemplos
sort_byAtributo da ordenação. Default: idname, code, id
sort_orderSentido da ordenação: Ascendente ou descendente. Default: ascasc, desc