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
| Campo | Obligatorio | Descripción |
|---|---|---|
name | Sí | Nombre de visualización de su integrador. |
hostname | Sí | Hostname único para este integrador. Debe ser único entre todos los integradores. |
callbackUrl | Sí | URL donde ixblix envía las credenciales para verificación. |
force | No | Si es true, permite reemplazar un registro de hostname ya verificado. Predeterminado: false. |
subscriptionId | No | Identificador 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:
- Usted llama a
POST /api/integrators/register con sus datos. - 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.
- 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 });
});