Um mandate é o limite que o agente coloca em si mesmo: teto por operação, teto diário e lista de contrapartes autorizadas.
POST https://api.luniumpay.com/mesh/agents/{agent_id}/mandate
X-API-Key: lun_live_…
{"max_por_operacao_cents": 30000,
"max_diario_cents": 200000,
"contrapartes": ["12345678901"]}
O mandate só aperta, nunca afrouxa. O teto que vale é sempre o menor entre o limite da plataforma para aquela operação e o do seu mandate. É por isso que você mesmo pode defini-lo sem aprovação: o pior que ele faz é limitar você.
Uma recusa por mandate se resolve editando a própria política — nunca pedindo aumento de limite. Por isso o erro é mandate_valor_acima_do_teto, e não o mesmo código do teto da API: o agente precisa saber de quem é a política que o barrou.
| Operação | Limite da plataforma |
|---|---|
Venda de cripto → PIX (cash-out) | R$ 6,00 a R$ 250.000,00 por transação, e R$ 100.000,00 por dia para o CPF/CNPJ de quem recebe o PIX — quando a chave não é documento (e-mail, telefone, aleatória), esse teto diário vale por chave. Não há teto diário de plataforma por chave de API. |
Compra PIX → cripto (cash-in) e payouts | No cash-in, a faixa efetiva por cobrança é dinâmica e inclui a taxa; leia GET /keys/me, faça o preview e consulte GET /cashin/limits para o pagador. No payout valem a faixa por operação e o saldo disponível. Não há teto diário imposto pela Lunium por chave. |
Como o teto diário do cash-out é do recebedor, o máximo efetivo de uma venda para quem ainda não recebeu nada no dia é R$ 100.000,00 — não R$ 250.000,00. A API devolve os dois: limits.max_brl_cents (o que vale agora) e limits.max_brl_cents_por_transacao. O número da sua chave está sempre em GET /keys/me.
A mesma recusa, com os mesmos códigos. Política que só existe em produção não pode ser testada — e você descobriria o próprio teto no primeiro dia real.