A Enrich API roda transações de propriedade do cliente através do mesmo classificador que categoriza os Items da Malvo — mas sem exigir um Item nem uma conexão bancária. Você envia as transações que já tem (de qualquer origem: ERP, extrato importado, conciliação) e recebe de volta a categoria, o merchant identificado e a descrição normalizada.
A Enrich API fica no host único da Malvo: POST https://api.malvo.io/categorization. Não existe um subdomínio enrichment-api — todos os produtos de Inteligência & Enriquecimento são servidos em https://api.malvo.io e autenticados pelo header X-API-KEY.

Quando usar

  • Você já possui transações (não vindas de um Item Malvo) e quer categorizá-las com o catálogo da Malvo. Veja o catálogo em Categorização.
  • Você quer identificar o estabelecimento (merchant) por trás de uma descrição crua de extrato.
  • Você quer normalizar descrições (PAGTO PIX MERCADO PAOMercado Pão) antes de exibir ao usuário.
Diferente do Item Insights e dos Pagamentos recorrentes, a Enrich API não lê um Item: ela processa exatamente as transações do corpo da requisição.

O payload

Envie um objeto { "transactions": [...] }. Por transação, os campos obrigatórios são id, amount, date e description. Os demais são opcionais, mas melhoram materialmente a precisão do classificador.
Até 5.000 transações por requisição. Lotes maiores devem ser divididos — veja Lotes maiores que 5.000 abaixo. Uma requisição com mais de 5.000 itens é rejeitada.

Exemplo de requisição

Ler o response

A resposta é { "results": [...] }, com um resultado por transação enviada, na mesma ordem. Faça o join pelo id que você enviou.
O merchant só é preenchido quando há sinal suficiente para identificar o estabelecimento (CNPJ do recebedor em paymentData, MCC, ou a própria descrição). Quanto mais campos opcionais você enviar, maior a taxa de identificação.

Lotes maiores que 5.000

Para enriquecer mais de 5.000 transações, divida em lotes de no máximo 5.000 e faça uma requisição por lote. Os resultados de cada lote vêm com o id original, então você pode reagrupar localmente.

Boas práticas

1

Envie os campos opcionais que tiver

accountType, isBusinessAccount, paymentData.receiver.document e creditCardMcc melhoram a categoria e a identificação do merchant. O CNPJ do recebedor é o sinal mais forte.
2

Respeite o sinal do amount

Negativo = despesa, positivo = renda. O type (DEBIT/CREDIT) do response deriva disso.
3

Faça o join pelo id

Os resultados voltam com o id que você enviou. Não dependa apenas da ordem em integrações assíncronas.
4

Divida lotes acima de 5.000

Mantenha cada requisição em no máximo 5.000 transações.

Próximos passos

Item Insights

KPIs agregados por Item para crédito e segmentação.

Pagamentos recorrentes

Detecte assinaturas, salários e contas recorrentes de um Item.

Categorização

O catálogo de categorias e o join por categoryId.

Referência da API

O grupo Inteligência & Enriquecimento no playground.