Skip to content

Configuración de Empresa

Esta sección documenta los endpoints relacionados con la configuración básica de empresas, incluyendo la gestión de firmas digitales, logotipos corporativos y actualización de información general.

  • Endpoint: PUT /api/v1/companies/update-signature
  • Método: PUT
  • Autenticación: Bearer Token requerido
  • Descripción: Permite actualizar la firma digital de la empresa para la firma electrónica de documentos
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
CampoTipoRequeridoDescripción
account_idstringID de la cuenta de la empresa
passwordstringContraseña del certificado digital
signaturestringCertificado digital en formato base64
{
"account_id": "61247344",
"password": "mi_password_seguro",
"signature": "MIIiTAIBAzCCIgYGCSqGSIb3DQEHAaCCIfcEgiHzMIIh7zCCBZQGCSqGSIb3DQEHAaCCBYUEggWBMIIFfTCCBXkGCyqGSIb3DQEMCgECoIIE+jCCBPYwKAYKKoZIhvcNAQwBAzAaBBTXW/......"
}
{
"message": "Documento creado",
"status": "CREATED",
"payload": {
"uuid": 61247344,
"ruc": "0952615177001",
"name": "EDWARD REYES VILLON",
"commercial_name": "EDWARD REYES VILLON",
"matriz_address": "Km 51 vía a la Costa.",
"environment": "TEST",
"status_process": "processing",
"warnings": null,
"is_contable": "NO",
"currency": "DOLAR",
"has_configured": true,
"has_mysign": true,
"mail_cc": "[email protected]",
"establishments": []
}
}

Respuesta de Error (422 Unprocessable Content)

Section titled “Respuesta de Error (422 Unprocessable Content)”
{
"message": "El archivo no está en formato base64 válido.",
"status": "ERROR",
"payload": null,
"error": {
"signature": [
"El archivo no está en formato base64 válido."
]
}
}
Terminal window
curl -X PUT \
{{apiFacEcDev}}/api/v1/companies/update-signature \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {{bearerToken}}' \
-H 'Content-Type: application/json' \
-d '{
"account_id": "61247344",
"password": "mi_password_seguro",
"signature": "MIIiTAIBAzCCIgYGCSqGSIb3DQEHAaCCIfcEgiHzMIIh7z..."
}'

  • Endpoint: PUT /api/v1/companies/upload-logo
  • Método: PUT
  • Autenticación: Bearer Token requerido
  • Descripción: Permite subir o actualizar el logotipo corporativo de la empresa
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
CampoTipoRequeridoDescripción
account_idstringID de la cuenta de la empresa
logostringImagen del logotipo en formato base64
{
"account_id": "61247344",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="
}
{
"message": "Logo actualizado",
"status": "UPDATED",
"payload": {
"route": "http://api-factura.test/api/v1/companies/show-logo/61247344"
}
}
Terminal window
curl -X PUT \
{{apiFacEcDev}}/api/v1/companies/upload-logo \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {{bearerToken}}' \
-H 'Content-Type: application/json' \
-d '{
"account_id": "61247344",
"logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="
}'

  • Endpoint: PUT /api/v1/companies/update-company
  • Método: PUT
  • Autenticación: Bearer Token requerido
  • Descripción: Permite actualizar la información general de la empresa
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
CampoTipoRequeridoDescripción
account_idstringID de la cuenta de la empresa
namestringNoNombre o razón social
commercial_namestringNoNombre comercial
addressstringNoDirección de la empresa
emailstringNoCorreo electrónico
phonestringNoTeléfono de contacto
{
"account_id": "61247344",
"name": "EMPRESA ACTUALIZADA S.A.",
"commercial_name": "EMPRESA ACTUALIZADA",
"address": "Nueva dirección empresarial",
"email": "[email protected]",
"phone": "+593987654321"
}
  • 200 OK: Logotipo actualizado exitosamente
  • 201 Created: Firma digital actualizada exitosamente
  • 400 Bad Request: Datos inválidos en la solicitud
  • 401 Unauthorized: Token de autorización inválido
  • 422 Unprocessable Entity: Error de validación en los datos
  • Almacene las contraseñas de certificados de forma segura
  • Use conexiones HTTPS para todas las transmisiones
  • Valide la integridad del certificado antes del envío
  • Verifique el formato base64 antes del envío
  • Limite el tamaño de archivos (logotipos < 2MB)
  • Use formatos de imagen estándar (PNG, JPG, SVG)
  • Implemente caché para logotipos frecuentemente accedidos
  • Use compresión de imágenes para optimizar tamaño
  • Considere CDN para distribución de logotipos
  • Implemente reintentos para errores temporales
  • Valide datos antes del envío
  • Proporcione mensajes de error claros al usuario
// Flujo completo de configuración
const configureCompany = async (companyData) => {
try {
// 1. Actualizar información básica
await updateCompanyInfo(companyData.basicInfo);
// 2. Subir logotipo
await uploadLogo(companyData.logo);
// 3. Configurar firma digital
await updateSignature(companyData.signature);
console.log('Configuración completada exitosamente');
} catch (error) {
console.error('Error en configuración:', error);
}
};
// Actualización de múltiples empresas
foreach ($companies as $company) {
try {
$this->updateCompanyConfiguration($company);
Log::info("Empresa {$company['name']} actualizada");
} catch (Exception $e) {
Log::error("Error actualizando {$company['name']}: {$e->getMessage()}");
}
}
  • Certificados Digitales: Deben estar en formato PKCS#12 (.p12) convertido a base64
  • Logotipos: Se recomienda usar imágenes cuadradas de al menos 200x200 píxeles
  • Validaciones: Todos los campos son validados según estándares ecuatorianos
  • Caché: Los logotipos se almacenan en caché para mejorar rendimiento
  • Auditoría: Todas las actualizaciones quedan registradas en logs del sistema