EVO · API Externa

Vendas — Documentação da API

Consulta das vendas, agregadas por venda, com os pagamentos detalhados por cobrança. Todos os valores agregados consideram apenas as cobranças pagas.

GET https://api.metodoevo.com.br/api/v1

Autenticação

A API é somente leitura (apenas GET) e retorna um objeto por venda. Envie a chave da credencial no header Authorization, no formato Bearer:

Authorization: Bearer evo_key

Endpoints

MétodoCaminhoDescrição
GET/api/v1/meIdentifica a credencial autenticada (teste de conexão).
GET/api/v1/vendasLista vendas, agregadas por venda.
GET/api/v1/vendas/:id_vendaDetalhe de uma venda pelo código.

Parâmetros de consulta

Query string de GET /api/v1/vendas. Todos opcionais.

ParâmetroTipoDescrição
data_inicio, data_fimstringYYYY-MM-DD, sobre a data da venda. Default: últimos 30 dias. Janela máxima: 366 dias.
statusstringContém no status da venda (ex.: pago, aguardando, estornado).
eventostringContém no nome do evento.
recorrenciabooleantrue ou false.
id_vendaintegerLookup exato pelo código da venda.
cpfstringLookup pelo CPF do cliente (só dígitos).
emailstringLookup pelo e-mail do cliente.
telefonestringLookup pelo telefone / WhatsApp do cliente (só dígitos).
page, page_sizeintegerPaginação (page_size máx. 100, default 50).

Lookups & período. Ao usar um lookup (id_venda, cpf, email, telefone) sem data explícita, a janela de data é ignorada e a busca cobre todo o histórico. Passar data_inicio/data_fim volta a restringir o período.

Envelope da resposta

AtributoTipoDescrição
successbooleanIndica se a requisição foi bem-sucedida.
dataarrayLista de objetos venda.
pageintegerPágina atual.
page_sizeintegerTamanho da página (máx. 100).
has_morebooleanIndica se há mais páginas. Pagine até false.
periodoobject · nullJanela de datas aplicada (data_inicio/data_fim). null quando um lookup ignora a janela.

Campos da resposta

Objeto venda

Cada item de data é um objeto venda.

AtributoTipoDescrição
id_vendaintegerCódigo da venda.
statusstringStatus da venda (ex.: PAGO, AGUARDANDO PAGAMENTO, ESTORNADO).
recorrenciabooleanIndica se a venda é uma assinatura (recorrência).
eventoobjectDados do evento.
produtoobjectDados do produto.
clienteobjectDados do cliente.
valoresobjectValores financeiros (soma das cobranças pagas).
cobrancasarrayCobranças individuais da venda, em ordem cronológica.
vendaobjectMetadados da venda.
recebedoresarrayRecebedores do split. Produtora recebe só a própria fatia.

evento

Objeto evento.

AtributoTipoDescrição
nomestringNome do evento.

produto

Objeto produto.

AtributoTipoDescrição
descricaostringDescrição do(s) produto(s) da venda; vários unidos por " | ".

cliente

Objeto cliente.

AtributoTipoDescrição
nomestringNome do cliente.
emailstringE-mail do cliente.
whatsappstringTelefone / WhatsApp do cliente (só dígitos).
cpfstringCPF do cliente (só dígitos).

valores

Todos os valores somam apenas as cobranças pagas da venda.

AtributoTipoDescrição
moedastringMoeda dos valores (ex.: BRL).
valor_vendanumberValor total da venda (preço do produto).
valor_pagonumberTotal pago (soma das cobranças pagas), com juros.
valor_sem_jurosnumberValor base sem juros (soma das cobranças pagas).

cobrancas[]

Cada item é uma cobrança da venda (ordem cronológica). Assinatura inclui os ciclos futuros (Pendente); tentativas de checkout não pagas ficam fora. parcelas_cartao e ciclo/ciclos são mutuamente exclusivos (depende de recorrencia).

AtributoTipoDescrição
id_cobrancaintegerCódigo da cobrança.
statusstringStatus da cobrança (ex.: Pago, Pendente, Estornado).
forma_pagamentostringForma de pagamento da cobrança (Pix, Cartão de Crédito, Boleto...).
valornumberValor da cobrança, COM juros quando parcelada.
valor_sem_jurosnumberValor base da cobrança, sem juros.
valor_pagonumberValor efetivamente pago (0 quando não paga).
parcelas_cartaointegerSó quando recorrencia = false. Parcelamento no cartão (1 cobrança em N× na fatura). null quando a forma não é cartão (Pix, Boleto...).
ciclo, ciclosintegerSó quando recorrencia = true. Ciclo desta cobrança e total de ciclos (ex.: 3 de 18).
data_pagamentodatetimeData real do pagamento. null quando não paga.
data_vencimentodateVencimento da cobrança (ciclos de assinatura). null quando não se aplica.

venda

Objeto venda (metadados).

AtributoTipoDescrição
criada_emdatetimeData de criação da venda.
concluidabooleanIndica se a venda foi concluída (quitada).

recebedores[]

Cada item é um recebedor do split. Produtora vê só a própria fatia.

AtributoTipoDescrição
nomestringNome do recebedor (nome fantasia da produtora).
valornumberValor recebido (soma das cobranças pagas).
percentualnumberPercentual do recebedor no split (%, 2 casas) — calculado sobre o valor sem juros.

Exemplo de resposta

{
  "success": true,
  "page": 1,
  "page_size": 50,
  "has_more": false,
  "periodo": { "data_inicio": "2026-06-01", "data_fim": "2026-06-30" },
  "data": [
    {
      "id_venda": 17705,
      "status": "PAGO",
      "recorrencia": false,
      "evento": { "nome": "CURSO MENTALIDADE DE CURA | 2026" },
      "produto": { "descricao": "CURSO MENTALIDADE DE CURA • INGRESSO DUPLO" },
      "cliente": {
        "nome": "NOME DO CLIENTE",
        "email": "cliente@dominio.com",
        "whatsapp": "34991946492",
        "cpf": "35157313691"
      },
      "valores": {
        "moeda": "BRL",
        "valor_venda": 97,
        "valor_pago": 104.9,
        "valor_sem_juros": 97
      },
      "cobrancas": [
        {
          "id_cobranca": 27651,
          "status": "Pago",
          "forma_pagamento": "Cartão de Crédito",
          "valor": 104.9,
          "valor_sem_juros": 97,
          "valor_pago": 104.9,
          "parcelas_cartao": 3,
          "data_pagamento": "2026-06-06T00:03:12",
          "data_vencimento": null
        }
      ],
      "venda": { "criada_em": "2026-06-06T00:03:12", "concluida": true },
      "recebedores": [
        { "nome": "PRODUTORA EXEMPLO LTDA", "valor": 91.18, "percentual": 94 }
      ]
    }
  ]
}

Erros

CódigoDescrição
401Credencial ausente, inválida, revogada, desativada ou expirada.
400Parâmetro inválido (mensagem em statusMessage).
404Venda inexistente ou fora do escopo da credencial.
429Limite de 120 requisições por minuto excedido (aguarde o header Retry-After).

Limites

120 requisições por minuto por credencial. Ao exceder, a API responde 429 com o header Retry-After — aguarde o tempo indicado antes de repetir a requisição.