Saltar al contenido principal

Register New Company

POST 

/company/auth/register

Endpoint para registrar nuevas empresas y su usuario administrador inicial. Realiza las siguientes operaciones:

  1. Valida datos obligatorios (razón social, contraseñas coincidentes)
  2. Verifica unicidad del email
  3. Crea dirección fiscal
  4. Crea empresa en base de datos
  5. Crea usuario administrador
  6. Configura cuenta Stripe (customer + connected account)
  7. Envía email de bienvenida
  8. Crea tarifa inicial gratuita por 1 mes
  9. Vincula con proveedor existente si el taxid coincide

Flujo detallado:

  1. Cliente envía datos de empresa y usuario en formato JSON
  2. Servidor valida campos obligatorios (406 si faltan)
  3. Verifica taxid según normas fiscales españolas (406 si inválido)
  4. Comprueba unicidad de email (403 si existe)
  5. Crea dirección fiscal con datos proporcionados
  6. Registra empresa en base de datos
  7. Crea usuario administrador con contraseña hasheada
  8. Configura cuenta Stripe (customer + connected account) para pagos futuros
  9. Envía email de activación con token único
  10. Crea tarifa inicial gratuita por 30 días
  11. 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

Registro exitoso (retorna objeto vacío)

Response Headers