Autenticação
Inclua o header Authorization em todas as requisições autenticadas com o token obtido no login.
Header obrigatório
Authorization: Bearer {seu_token}curl -X POST https://api.mtofertas.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "lojista@exemplo.com",
"password": "sua_senha"
}'⚠️ Tokens expiram em 15 min. Use o refreshToken retornado no login para renovar sem refazer o login.
Ofertas
Crie, liste, atualize e remova ofertas do seu negócio. Rotas com 🔒 exigem autenticação.
Pedidos
Consulte os pedidos recebidos no seu negócio.
Lojista
Dados do lojista autenticado.
Webhooks
Configure uma URL HTTPS no painel do lojista para receber notificações em tempo real. Cada requisição inclui o header X-MT-Signature assinado com HMAC-SHA256.
order.createdNovo pedido pago e confirmadoorder.usedCupom validado pelo lojistaorder.cancelledPedido cancelado / reembolsadooffer.approvedOferta aprovada pela equipe MToffer.pausedOferta pausada (estoque zerado)Payload — order.created
{
"event": "order.created",
"timestamp": "2025-04-26T10:00:00.000Z",
"data": {
"orderId": "ord_xyz789",
"ofertaId": "clx9abc123",
"ofertaTitulo": "Combo Família 4 Pessoas",
"compradorNome": "João Silva",
"cupom": "ABCD-1234",
"valorPago": 99.90,
"validoAte": "2025-05-26T23:59:59.000Z"
}
}💡 Verificando a assinatura: Calcule HMAC-SHA256(body_raw, webhook_secret) e compare com X-MT-Signature. Rejeite requisições inválidas.
Erros & Limites
A API usa códigos HTTP padrão e retorna JSON em todos os erros.
200 / 201Sucesso400Dados inválidos — JSON com detalhes401Token ausente, inválido ou expirado403Sem permissão para este recurso404Recurso não encontrado429Rate limit: 100 req/min por lojista500Erro interno — entre em contatoExemplo de erro 400
{
"statusCode": 400,
"error": "Bad Request",
"message": ["precoOferta must be less than precoOriginal"]
}Precisa de ajuda?
Nossa API é voltada para integrações técnicas de lojistas parceiros. Se ainda não é parceiro, cadastre-se aqui.

