Registro de Integrador

Registre su aplicación (CRM, help desk, sistema de tickets) como integrador para recibir credenciales de API.

Endpoint de Registro

cURL
curl -X POST https://api.ixblix.app/api/integrators/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My CRM Platform",
    "hostname": "mycrm.example.com",
    "callbackUrl": "https://mycrm.example.com/ixblix/callback"
  }'

Campos de la Solicitud

CampoObligatorioDescripción
nameSíNombre de visualización de su integrador.
hostnameSíHostname único para este integrador. Debe ser único entre todos los integradores.
callbackUrlSíURL donde ixblix envía las credenciales para verificación.
forceNoSi es true, permite reemplazar un registro de hostname ya verificado. Predeterminado: false.
subscriptionIdNoIdentificador de suscripción en el formato {paymentProvider}:{id}. La parte id es opaca para la API y es interpretada internamente por el proveedor de pago. Obligatorio cuando el proveedor de pago asignado necesita una referencia de suscripción.

Flujo de Verificación vía Callback

El registro ocurre en tres fases:

  1. Usted llama a POST /api/integrators/register con sus datos.
  2. ixblix envía un desafío a su callbackUrl:
    Payload del desafío
    {
      "challenge": "mycrm.example.com"
    }
    Su endpoint debe responder con 200 OK y el payload de registro exacto que envió en la fase 1.
  3. ixblix envía sus credenciales al mismo callbackUrl:
    Payload de credenciales
    {
      "event": "INTEGRATOR_CREDENTIALS",
      "integratorId": "int_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "accessToken": "ixblix_integrator_token_xxxxxxxxxxxx",
      "timestamp": "2026-01-15T10:30:00.000Z"
    }
    Su endpoint debe hacer eco del payload de credenciales con 200 OK.

Almacene las credenciales de forma segura — se usan en todas las llamadas de API posteriores.

Usando las Credenciales

Use las credenciales del integrador como HTTP Basic Auth:

cURL
curl https://api.ixblix.app/api/plans \
  -u "int_a1b2c3d4-...:ixblix_integrator_token_xxxx"

Ejemplo de Handler

Handler Express
import express from 'express';
const app = express();
app.use(express.json());

// Payload de registro enviado en la fase 1
const registrationPayload = {
  name: "My CRM Platform",
  hostname: "mycrm.example.com",
  callbackUrl: "https://mycrm.example.com/ixblix/callback",
};

app.post('/ixblix/callback', async (req, res) => {
  // Fase 2: responde al desafío con el payload de registro original
  if (req.body?.challenge) {
    return res.status(200).json(registrationPayload);
  }

  // Fase 3: almacena las credenciales y las hace eco de vuelta
  if (req.body?.event === "INTEGRATOR_CREDENTIALS") {
    const { integratorId, accessToken } = req.body;
    await saveIntegratorCredentials({ integratorId, accessToken });
    return res.status(200).json(req.body);
  }

  res.status(200).json({ received: true });
});