Skip to main content

Autenticación

Prueba peticiones firmadas en el navegador en el Sandbox de la API — pega tu API key y secret, y el playground firma las peticiones automáticamente.
La API de Integración de SalesOS usa el esquema de peticiones firmadas P2S-SIGN-V1 en el header Authorization. Las API Keys tienen alcance a un solo tenant, se hashean con bcrypt y soportan límites de tasa y listas de IPs permitidas.

Entornos

URL Base: https://api.play2sell.comDashboard: https://dashboard.play2sell.comApp: https://app.play2sell.com

Inicio Rápido

1. Crear una API Key

Ve a Integraciones > API Keys en el Dashboard de SalesOS:
  1. Haz clic en Crear API Key
  2. Nombra tu clave (ej., “Sincronización Nocturna CRM”, “Integración Formulario Web”)
  3. Selecciona el alcance: default:sync
  4. Haz clic en Crear
  5. Copia los dos valores inmediatamente — solo se muestran una vez:
    • API Key — identificador público, ej. sk_live_a1b2c3d4...
    • API Key Secret — usado para firmar peticiones, nunca se envía por la red

2. Firma y Envía una Petición

Para llamadas server-to-server, construye el header Authorization como P2S-SIGN-V1 API_KEY:TIMESTAMP:SIGNATURE. La SIGNATURE es el HMAC-SHA256 hex de una cadena de claves derivadas en 5 pasos:
  1. k1 = HMAC_SHA256(key=API_KEY_SECRET, msg=API_KEY)
  2. k2 = HMAC_SHA256(key=k1, msg=TIMESTAMP)
  3. k3 = HMAC_SHA256(key=k2, msg=METHOD)
  4. k4 = HMAC_SHA256(key=k3, msg=PATH)
  5. SIG = HMAC_SHA256_HEX(key=k4, msg=PAYLOAD_SHA256_HEX)
TIMESTAMP es Unix epoch en segundos, válido por 30 segundos. PAYLOAD_SHA256_HEX es el SHA-256 hex en minúsculas del cuerpo bruto de la petición (usa el digest de la cadena vacía e3b0c4...b855 cuando no haya body).
¿No quieres escribir el código de firma todavía? El Sandbox de la API firma las peticiones por ti en el navegador — pega tu API key y secret, luego haz clic en Try it out.

3. Verificar la Respuesta

Éxito (200):
Firma inválida o timestamp expirado (401):

Propiedades de la API Key


Formatos de Clave

SalesOS usa dos prefijos de clave para distinguir ambientes:
Usa claves sk_test_ durante el desarrollo y las pruebas de integración. Cambia a sk_live_ cuando pases a producción.

Errores de Autenticación

Ejemplo: Header Authorization faltante

Ejemplo: Firma inválida

Una firma que no coincide con la que recalcula el servidor — generalmente causada por un cambio en el body después de firmar, una divergencia en la canonicalización del path, o una clave desactualizada:

Ejemplo: Timestamp fuera de la ventana de 30s

Ejemplo: Clave sin el alcance requerido

Si tu clave solo tiene leads:read pero el endpoint requiere default:sync:

Ejemplo: Límite de tasa excedido

El campo retry_after indica cuántos segundos debes esperar. La ventana de límite de tasa se reinicia cada hora.

Límites de Tasa

Cada API key tiene un contador de límite de tasa independiente que se reinicia cada hora: Cómo funciona:
  1. Cada solicitud exitosa incrementa el contador
  2. Cuando el contador alcanza el límite, las solicitudes siguientes retornan 429
  3. El contador se reinicia a 0 una hora después de la primera solicitud en la ventana
Manejo de límites de tasa en código:

Mejores Prácticas de Seguridad

Nunca expongas API keys en código del lado del cliente. JavaScript en el navegador, aplicaciones móviles y repositorios públicos pueden filtrar tu clave. Siempre llama a la API de SalesOS desde tu servidor backend.
  • Usa variables de entorno — Almacena SALESOS_API_KEY en variables de entorno o un gestor de secretos, nunca en el código fuente
  • Rota las claves periódicamente — Crea una nueva clave, actualiza tu integración, luego revoca la anterior
  • Usa listas de IPs permitidas — Si tu integración se ejecuta desde IPs fijas, restringe la clave solo a esas IPs
  • Monitorea el uso — Revisa los logs de uso de la API en el Dashboard para detectar patrones inesperados
  • Usa sk_test_ para desarrollo — Las claves de prueba aíslan tu ambiente de desarrollo de producción
  • Revoca claves comprometidas inmediatamente — Ve a Dashboard > Admin > API Keys > Revocar

Ejemplo de rotación de claves


Proximos Pasos

Integracion por Defecto

Comienza a enviar actividades a SalesOS

API Keys

Gestiona claves programaticamente