Skip to main content

📚 Documentação da API Krayin CRM

Guia Completo de Integração e Uso

Versão: 2.1.1 Data: Janeiro 2026 URL Base: https://crm.memudecore.com.br/api/v1/ Documentação Interativa: https://crm.memudecore.com.br/api/documentation


🎯 VISÃO GERAL

A API REST do Krayin CRM permite integrar facilmente o sistema de CRM com aplicações externas, automatizações e outros sistemas empresariais. Esta API oferece acesso completo aos recursos de leads, contatos, atividades e configurações.

🔑 Características Principais

  • Autenticação: Laravel Sanctum (Token-based)
  • Formato: JSON REST API
  • Protocolo: HTTPS
  • Documentação: Swagger/OpenAPI 3.0
  • Rate Limiting: Configurável
  • Versionamento: v1 (atual)

🚀 INÍCIO RÁPIDO

1. Obter Token de Acesso

curl -X POST "https://crm.memudecore.com.br/api/v1/login" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Accept: application/json" \
  -d "email=admin@example.com&password=admin123&device_name=MinhaAplicacao"

Resposta:

{
  "data": {
    "id": 1,
    "name": "Example Admin",
    "email": "admin@example.com",
    "role": {
      "name": "Administrador",
      "permission_type": "all"
    }
  },
  "message": "Login successful.",
  "token": "4|TqQU5H7ExZbrM8ErdwxXGC4Q2yWWFGZ5DjarC5q0050411c7"
}

2. Usar o Token nas Requisições

curl -X GET "https://crm.memudecore.com.br/api/v1/leads" \
  -H "Authorization: Bearer 4|TqQU5H7ExZbrM8ErdwxXGC4Q2yWWFGZ5DjarC5q0050411c7" \
  -H "Accept: application/json"

📋 RECURSOS DISPONÍVEIS

🎯 Leads /api/v1/leads

Gerenciamento completo de prospects e oportunidades de vendas.

Método Endpoint Descrição
GET /leads Listar todos os leads
POST /leads Criar novo lead
GET /leads/{id} Obter lead específico
PUT /leads/{id} Atualizar lead
DELETE /leads/{id} Excluir lead

👥 Contatos /api/v1/contacts

Gestão de pessoas e organizações.

Método Endpoint Descrição
GET /contacts/persons Listar pessoas
POST /contacts/persons Criar pessoa
GET /contacts/organizations Listar organizações
POST /contacts/organizations Criar organização

📋 Atividades /api/v1/activities

Registro de tarefas, reuniões e interações.

Método Endpoint Descrição
GET /activities Listar atividades
POST /activities Criar atividade
GET /activities/{id} Obter atividade
PUT /activities/{id} Atualizar atividade

⚙️ Configurações /api/v1/configuration

Acesso às configurações do sistema.


💡 EXEMPLOS PRÁTICOS

📝 Criar um Novo Lead

curl -X POST "https://crm.memudecore.com.br/api/v1/leads" \
  -H "Authorization: Bearer {SEU_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Novo Lead - Empresa ABC",
    "description": "Interesse em nosso produto premium",
    "lead_value": 5000,
    "sales_owner_id": 1,
    "lead_source_id": 1,
    "lead_type_id": 1,
    "person": {
      "name": "João Silva",
      "emails": [
        {"value": "joao@empresaabc.com", "label": "work"}
      ],
      "contact_numbers": [
        {"value": "11999999999", "label": "mobile"}
      ]
    }
  }'

📊 Listar Leads com Filtros

curl -X GET "https://crm.memudecore.com.br/api/v1/leads?page=1&limit=10&sort=created_at&order=desc" \
  -H "Authorization: Bearer {SEU_TOKEN}" \
  -H "Accept: application/json"

📋 Criar uma Atividade

curl -X POST "https://crm.memudecore.com.br/api/v1/activities" \
  -H "Authorization: Bearer {SEU_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Reunião com Cliente",
    "type": "meeting",
    "comment": "Discussão sobre proposta comercial",
    "schedule_from": "2026-01-20 14:00:00",
    "schedule_to": "2026-01-20 15:00:00",
    "lead_id": 1,
    "user_id": 1
  }'

🔐 AUTENTICAÇÃO E SEGURANÇA

Token de Acesso

  • Tipo: Bearer Token
  • Formato: Laravel Sanctum
  • Localização: Header Authorization: Bearer {token}
  • Expiração: Configurável (padrão: 365 dias)

Boas Práticas de Segurança

  1. Armazene tokens de forma segura (variáveis de ambiente)
  2. Use HTTPS apenas para todas as requisições
  3. Implemente rate limiting em sua aplicação
  4. Renove tokens periodicamente
  5. Monitore logs de acesso

Exemplo de Configuração Segura

// Node.js/Express exemplo
const API_BASE = 'https://crm.memudecore.com.br/api/v1';
const API_TOKEN = process.env.KRAYIN_API_TOKEN;

const headers = {
  'Authorization': `Bearer ${API_TOKEN}`,
  'Content-Type': 'application/json',
  'Accept': 'application/json'
};

🔄 INTEGRAÇÕES COMUNS

🌐 Integração com Site/Landing Page

// Capturar lead do formulário web
async function criarLead(dadosFormulario) {
  const response = await fetch('https://crm.memudecore.com.br/api/v1/leads', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + API_TOKEN,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      title: `Lead do site - ${dadosFormulario.empresa}`,
      description: dadosFormulario.mensagem,
      lead_value: dadosFormulario.valorEstimado,
      person: {
        name: dadosFormulario.nome,
        emails: [{value: dadosFormulario.email, label: 'work'}],
        contact_numbers: [{value: dadosFormulario.telefone, label: 'mobile'}]
      }
    })
  });

  return response.json();
}

📱 Integração com WhatsApp/Chat

# Python - Sync com WhatsApp Business API
import requests

def sincronizar_contato_whatsapp(numero_whatsapp, nome):
    url = "https://crm.memudecore.com.br/api/v1/contacts/persons"
    headers = {
        "Authorization": f"Bearer {API_TOKEN}",
        "Content-Type": "application/json"
    }
    data = {
        "name": nome,
        "contact_numbers": [
            {"value": numero_whatsapp, "label": "whatsapp"}
        ]
    }

    response = requests.post(url, json=data, headers=headers)
    return response.json()

🔗 Integração com N8N (Automação)

{
  "nodes": [
    {
      "type": "n8n-nodes-base.webhook",
      "webhook": {
        "path": "novo-lead"
      }
    },
    {
      "type": "n8n-nodes-base.httpRequest",
      "url": "https://crm.memudecore.com.br/api/v1/leads",
      "method": "POST",
      "headers": {
        "Authorization": "Bearer {{$env.KRAYIN_TOKEN}}"
      }
    }
  ]
}

📊 Integração com BI/Analytics

-- Exemplo de extração para Power BI/Tableau
-- Via script Python que consome a API

import pandas as pd
import requests

def extrair_leads_para_bi():
    headers = {'Authorization': f'Bearer {API_TOKEN}'}
    response = requests.get(
        'https://crm.memudecore.com.br/api/v1/leads?limit=1000',
        headers=headers
    )

    leads_data = response.json()
    df = pd.DataFrame(leads_data['data'])

    # Salvar em CSV para BI
    df.to_csv('leads_export.csv', index=False)
    return df

⚡ CASOS DE USO PRÁTICOS

1. E-commerce → CRM

Sincronizar automaticamente novos pedidos como leads:

// Webhook no e-commerce
app.post('/webhook/novo-pedido', async (req, res) => {
  const pedido = req.body;

  await criarLead({
    title: `Pedido #${pedido.id} - ${pedido.cliente.nome}`,
    lead_value: pedido.total,
    person: {
      name: pedido.cliente.nome,
      emails: [{value: pedido.cliente.email, label: 'work'}]
    }
  });
});

2. Sistema de Tickets → CRM

Converter tickets em atividades:

// PHP - Converter ticket em atividade
function converterTicketEmAtividade($ticket) {
    $data = [
        'title' => "Suporte: " . $ticket['assunto'],
        'type' => 'call',
        'comment' => $ticket['descricao'],
        'lead_id' => buscarLeadPorEmail($ticket['email_cliente'])
    ];

    return chamarApiKrayin('POST', '/activities', $data);
}

3. Marketing Automation → CRM

Sync de campanhas com leads:

# Mailchimp/RD Station → Krayin
def sincronizar_campanha_email():
    # Obter dados da campanha
    campanhas = obter_campanhas_mailchimp()

    for campanha in campanhas:
        for contato in campanha['contatos_convertidos']:
            criar_lead_krayin({
                'title': f"Lead da campanha: {campanha['nome']}",
                'description': f"Converteu via email: {campanha['assunto']}",
                'person': contato
            })

📊 MONITORAMENTO E LOGS

Logs da API

# Verificar logs em tempo real
docker exec krayin_krayin.1.xxxxx tail -f storage/logs/laravel.log

# Filtrar por API requests
docker exec krayin_krayin.1.xxxxx grep "api/v1" storage/logs/laravel.log

Métricas Importantes

  • Taxa de sucesso das requisições
  • Tempo de resposta médio
  • Picos de uso
  • Tipos de erro mais comuns

🔧 TROUBLESHOOTING

Erros Comuns

401 Unauthorized

{"message": "Unauthenticated."}

Solução: Verificar se o token está correto e não expirado.

422 Validation Error

{
  "message": "The given data was invalid.",
  "errors": {
    "email": ["The email field is required."]
  }
}

Solução: Verificar campos obrigatórios na documentação.

429 Too Many Requests

{"message": "Too many attempts."}

Solução: Implementar rate limiting na aplicação cliente.

Testes de Conectividade

# Testar conectividade básica
curl -I https://crm.memudecore.com.br/api/v1/

# Testar autenticação
curl -H "Authorization: Bearer {TOKEN}" \
  https://crm.memudecore.com.br/api/v1/leads?limit=1

📖 RECURSOS ADICIONAIS

  • Documentação Interativa: https://crm.memudecore.com.br/api/documentation
  • Swagger UI: Interface para testar endpoints
  • Postman Collection: Importar collection (se disponível)

Contato Técnico

  • Suporte: [seu-email-suporte]
  • Documentação: Este documento
  • Updates: Acompanhar releases do Krayin CRM

📝 CHANGELOG E VERSIONING

v2.1.1 (Atual)

  • ✅ API REST completa implementada
  • ✅ Autenticação Sanctum
  • ✅ Documentação Swagger
  • ✅ Endpoints CRUD completos
  • ✅ Suporte a webhooks

Próximas Versões

  • 🔄 Webhooks customizáveis
  • 🔄 Filtros avançados
  • 🔄 Bulk operations
  • 🔄 GraphQL support

⚖️ TERMOS DE USO

Rate Limits

  • Padrão: 60 requisições/minuto por token
  • Burst: 1000 requisições/hora
  • Enterprise: Limites customizáveis

SLA

  • Disponibilidade: 99.9%
  • Tempo de resposta: < 200ms (média)
  • Suporte: Horário comercial

Documentação gerada em Janeiro 2026 Versão 1.0 - API Krayin CRM v2.1.1