Register New Company
POST/company/auth/register
Endpoint para registrar nuevas empresas y su usuario administrador inicial. Realiza las siguientes operaciones:
- Valida datos obligatorios (razón social, contraseñas coincidentes)
- Verifica unicidad del email
- Crea dirección fiscal
- Crea empresa en base de datos
- Crea usuario administrador
- Configura cuenta Stripe (customer + connected account)
- Envía email de bienvenida
- Crea tarifa inicial gratuita por 1 mes
- Vincula con proveedor existente si el taxid coincide
Flujo detallado:
- Cliente envía datos de empresa y usuario en formato JSON
- Servidor valida campos obligatorios (406 si faltan)
- Verifica taxid según normas fiscales españolas (406 si inválido)
- Comprueba unicidad de email (403 si existe)
- Crea dirección fiscal con datos proporcionados
- Registra empresa en base de datos
- Crea usuario administrador con contraseña hasheada
- Configura cuenta Stripe (customer + connected account) para pagos futuros
- Envía email de activación con token único
- Crea tarifa inicial gratuita por 30 días
- Si existe un company_provider con el mismo taxid, lo vincula
Requisitos de datos:
- Taxid/NIF/CIF válido según normativa española (opcional pero recomendado)
- Razón social completa
- Email corporativo no registrado
- Contraseña segura (mínimo 8 caracteres, mayúsculas, números y especiales)
- Dirección fiscal completa
Estructura del request:
{
"user": {
"email": "admin@empresa.com",
"password": "ContraseñaSegura123!",
"password_confirm": "ContraseñaSegura123!"
},
"invoice_data": {
"taxid": "B12345678",
"email": "admin@empresa.com",
"socialName": "Transportes Ejemplo S.L.",
"phone": "+34123456789"
},
"socialName": "Transportes Ejemplo S.L.",
"address": {
"place_id": "ChIJgTwKgJcpQg0RaSKMYcHeNs",
"formatted_address": "Calle Mayor 123, Madrid, 28013, Spain",
"geometry": {
"location": { "lat": 40.4168, "lng": -3.7038 }
},
"phone": "+34123456789"
}
}
Códigos de error:
- 400: Error al crear dirección
- 403: Email ya registrado (COMPANY_EXISTS)
- 406: Datos faltantes, taxid inválido, contraseñas no coinciden, usuario ya existe, usuario deshabilitado recuperable, o error en asignación de compañía
- 500: Error interno del servidor
Notas importantes:
- El endpoint retorna un objeto vacío
{}en caso de éxito - Si el email del usuario ya existe (incluso deshabilitado), retorna error
- Si existe un company_provider con el mismo taxid, se vincula automáticamente
- Se crea automáticamente una cuenta Stripe (customer + connected account)
Request
Responses
- 200
- 400
- 403
- 406
Registro exitoso (retorna objeto vacío)
Response Headers
Error al crear dirección o UTC inválido
Response Headers
Email ya registrado
Response Headers
Error de validación