API de Tesoro y webhooks guía completa para desarrolladores
Integra Tesoro CRM con tus propias aplicaciones mediante REST API y webhooks. Automatiza flujos de trabajo, construye integraciones personalizadas y sincroniza datos en tiempo real.
Integra Tesoro CRM con tus propias aplicaciones mediante REST API y webhooks. Automatiza flujos de trabajo, construye integraciones personalizadas y sincroniza datos en tiempo real.
const axios = require('axios');
const API_KEY = process.env.TESORO_API_KEY;
const BASE_URL = 'https://api.tesoro.estate/v1';
// Crear contacto
async function createContact(contactData) {
  try {
    const response = await axios.post(
      `${BASE_URL}/contacts`,
      contactData,
      {
        headers: {
          'Authorization': `Bearer ${API_KEY}`,
          'Content-Type': 'application/json'
        }
      }
    );
    return response.data;
  } catch (error) {
    console.error('Error creating contact:', error.response?.data);
    throw error;
  }
}
// Uso
const newContact = await createContact({
  firstName: 'Maria',
  lastName: 'Garcia',
  email: '[email protected]',
  phone: '+34612345678',
  type: 'buyer'
});import requests
import os
API_KEY = os.getenv('TESORO_API_KEY')
BASE_URL = 'https://api.tesoro.estate/v1'
def create_contact(contact_data):
    headers = {
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    }
    
    response = requests.post(
        f'{BASE_URL}/contacts',
        json=contact_data,
        headers=headers
    )
    response.raise_for_status()
    return response.json()
# Uso
new_contact = create_contact({
    'firstName': 'Maria',
    'lastName': 'Garcia',
    'email': '[email protected]',
    'phone': '+34612345678',
    'type': 'buyer'
})const express = require('express');
const crypto = require('crypto');
const app = express();
app.use(express.json());
const WEBHOOK_SECRET = process.env.TESORO_WEBHOOK_SECRET;
function verifySignature(payload, signature) {
  const hash = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(payload))
    .digest('hex');
  return signature === `sha256=${hash}`;
}
app.post('/webhooks/tesoro', (req, res) => {
  const signature = req.headers['x-tesoro-signature'];
  
  if (!verifySignature(req.body, signature)) {
    return res.status(401).send('Invalid signature');
  }
  
  const { event, data } = req.body;
  
  switch (event) {
    case 'contact.created':
      console.log('Nuevo contacto:', data);
      // Tu lógica personalizada aquí
      break;
    case 'deal.won':
      console.log('Negocio ganado:', data);
      // Activar automatización de celebración
      break;
    default:
      console.log('Evento no manejado:', event);
  }
  
  res.status(200).send('OK');
});
app.listen(3000);