Aprovisionamiento de cuentas
Crea cuentas de Met desde tu propio producto y cárgales energía, con una API key de partner.
Si integras Met dentro de tu producto, no necesitas que cada cliente se registre a mano: puedes crear su cuenta desde tu backend y dejarla lista para usar. Es el caso "Meteor como servicio".
Está disponible para Tech Partners aprobados, con una API key de partner. Una key de workspace no puede hacerlo: los permisos de esta guía solo existen en keys de partner.
Scopes
| Scope | Para qué |
|---|---|
workspaces:provision | Crear una cuenta nueva con su dueño |
workspaces:recharge | Cargarle energía a una cuenta que creaste |
Los dos son exclusivos de keys de partner y ninguno funciona con una key de prueba (met_test_): las cuentas que se crean son reales y los cobros también.
Crear una cuenta
import Met from '@meteor.ia/sdk';
const met = new Met(process.env.MET_PARTNER_KEY!);
const cuenta = await met.workspaces.create({
business_name: 'Inmobiliaria Andes',
owner_email: 'ana@andes.co',
owner_name: 'Ana Gómez',
owner_phone: '+573001234567',
country: 'CO',
});
console.log(cuenta.id, cuenta.operational); // 1234 falsefrom meteor_ia import Met
met = Met(api_key=os.environ["MET_PARTNER_KEY"])
cuenta = met.workspaces.create(
business_name="Inmobiliaria Andes",
owner_email="ana@andes.co",
owner_name="Ana Gómez",
owner_phone="+573001234567",
country="CO",
)La cuenta nace con el plan Tech Partner: mensual, sin cargo fijo, con la Energía a tarifa premium. Tu cliente puede subir a un plan comercial cuando quiera, y a partir de ahí paga la tarifa de ese plan.
Tres cosas que conviene saber antes
La cuenta nace sin energía
La respuesta trae operational: false y balance_usd: 0. Una cuenta sin energía no puede correr ni un solo turno de Met: el primer mensaje responde que no hay presupuesto.
La energía la paga siempre la cuenta que la consume, así que el paso siguiente es cargarle saldo (más abajo) o pedirle a tu cliente que lo haga. No lo dejes para después del primer mensaje.
Tú no defines la contraseña
No mandas contraseña en la llamada, y no hay forma de hacerlo. Met le envía al dueño un correo con un enlace para que defina la suya. El campo owner.invitation_sent te dice si ese correo salió; si volvió false, tu cliente puede pedirlo de nuevo desde "Olvidé mi contraseña".
Reintentar no duplica
La cabecera Idempotency-Key es obligatoria. El SDK genera una por ti si no la pasas, pero conviene que pases la tuya —el id de tu propio registro, por ejemplo—: así un reintento por timeout de red devuelve la misma cuenta en vez de crear una segunda.
await met.workspaces.create(datos, { idempotencyKey: `alta-${miRegistro.id}` });
Cargar energía
const pago = await met.workspaces.recharge(cuenta.id, 50);
// pago.checkout_url → enlace de pago de Stripe
La recarga no acredita el saldo al instante: devuelve un checkout_url y la energía entra cuando el pago se completa. El mínimo es USD 5.
Solo funciona sobre cuentas que creaste tú. Una cuenta ajena responde 403.
Cupos
Cada nivel de partner tiene un cupo mensual de cuentas nuevas:
| Nivel | Cuentas por mes |
|---|---|
| Bronce | 100 |
| Plata | 300 |
| Oro | 1000 |
Al agotarse, la creación responde 403 con el cupo, lo que llevas consumido y cuándo se reinicia. El contador vuelve a cero el primer día de cada mes.
Errores
| Código | Qué pasó |
|---|---|
403 scope_not_allowed_for_owner | Estás usando una key de workspace; esto necesita una key de partner |
403 test_mode_restricted | Estás usando una key met_test_; estas operaciones son reales |
403 con mensaje de capacidad | Tu cuenta de partner no tiene la capacidad Tech Partner aprobada |
403 con mensaje de cupo | Se agotó tu cupo del mes |
400 | Falta la cabecera Idempotency-Key, o algún dato del dueño no es válido |
Para el detalle de reintentos e idempotencia, ver Errores e idempotencia.