Alcance y conservación
bb-sign respalda cada documento firmado con integridad, identificación del firmante y evidencia, y lo conserva durante un plazo fijo. Esta página explica qué cubre el servicio, cuánto tiempo guarda los documentos y cómo su organización puede archivar cada sobre para conservarlo el tiempo que exija la ley o sus propias reglas.
Qué cubre bb-sign
Sección titulada «Qué cubre bb-sign»- Integridad. Cada documento firmado queda sellado y cualquier cambio posterior se detecta.
- Identificación. El firmante se identifica por su correo y, si la organización lo exige, por un código de un solo uso.
- Registro del acuerdo. Lo que el firmante vio y aceptó queda registrado con fecha y hora.
- Consistencia de la evidencia. La cadena de auditoría permite comprobar que no se insertó ni se eliminó ningún registro.
- Valor probatorio. La evidencia (quién, qué, cuándo y desde dónde) se puede consultar y descargar.
- Trazabilidad. Cada acción relevante sobre un sobre queda en su historial.
bb-sign conserva los documentos durante un plazo fijo, establecido en sus términos. Una vez vencido ese plazo, la conservación corresponde a la organización que envió los documentos.
Política de conservación
Sección titulada «Política de conservación»Estos son los compromisos del servicio, recogidos en la cláusula de conservación de los Términos y condiciones (borrador de la Versión 2).
| Concepto | Política |
|---|---|
| Conservación de documentos firmados y evidencia | 365 días. Plazo fijo, igual para todas las organizaciones. |
| Paso a archivo en frío | A los 90 días. Un archivo en frío no se descarga de inmediato. |
| Restauración | A solicitud. La copia restaurada queda disponible durante 7 días. Normalmente toma pocas horas, sin un tiempo garantizado. |
| Después del plazo | La conservación es responsabilidad del cliente (Ley 527 de 1999, artículo 12). |
Cómo se aplica la política actualmente
Sección titulada «Cómo se aplica la política actualmente»Esta tabla describe el comportamiento vigente del servicio, verificado en la plataforma.
| Elemento | Comportamiento actual |
|---|---|
| Documentos: paso a almacenamiento de acceso poco frecuente | A los 30 días. |
| Documentos: paso a archivo en frío | A los 90 días. |
| Restauración a solicitud | Se gestiona con Binary Bridges. Para obtener un documento que ya pasó a archivo en frío, solicítelo a Binary Bridges; no se descarga desde la aplicación. |
| Paso del sobre a “Archivados” | 30 días después de su creación, un sobre completado, cancelado o vencido pasa a la vista “Archivados”. El registro se conserva. |
Fuera de producción, la página Almacenamiento de la aplicación muestra valores por defecto de pruebas, no la configuración de producción. Ver Almacenamiento.
Lo que dice la Ley 527 de 1999
Sección titulada «Lo que dice la Ley 527 de 1999»El artículo 12 establece las condiciones para que un mensaje de datos conservado cumpla una obligación legal de conservación:
Artículo 12. Conservación de los mensajes de datos y documentos. Cuando la ley requiera que ciertos documentos, registros o informaciones sean conservados, ese requisito quedará satisfecho, siempre que se cumplan las siguientes condiciones:
- Que la información que contengan sea accesible para su posterior consulta.
- Que el mensaje de datos o el documento sea conservado en el formato en que se haya generado, enviado o recibido o en algún formato que permita demostrar que reproduce con exactitud la información generada, enviada o recibida, y
- Que se conserve, de haber alguna, toda información que permita determinar el origen, el destino del mensaje, la fecha y la hora en que fue enviado o recibido el mensaje o producido el documento.
No estará sujeta a la obligación de conservación, la información que tenga por única finalidad facilitar el envío o recepción de los mensajes de datos.
Los libros y papeles del comerciante podrán ser conservados en cualquier medio técnico que garantice su reproducción exacta.
El artículo 13 permite cumplir esa obligación por medio de terceros:
Artículo 13. Conservación de mensajes de datos y archivo de documentos a través de terceros. El cumplimiento de la obligación de conservar documentos, registros o informaciones en mensajes de datos, se podrá realizar directamente o a través de terceros, siempre y cuando se cumplan las condiciones enunciadas en el artículo anterior.
bb-sign actúa como ese tercero durante el plazo de la política. El PDF sellado que usted descarga cumple la segunda condición, porque reproduce con exactitud lo firmado, y su sello incluye el nombre, el correo y la fecha de cada firma. Para conservarlo durante los años que exija su obligación, guárdelo en el archivo de su organización.
Archivar cada sobre al completarse
Sección titulada «Archivar cada sobre al completarse»La forma más confiable es automática: cuando llega el evento envelope.completed, liste los
documentos del sobre y descargue la copia firmada de cada uno en el archivo de su organización.
- Cree un webhook suscrito a
envelope.completed. Ver Webhooks. - Verifique la firma de cada entrega antes de procesarla. El identificador del sobre llega en
data.envelope.id. - Llame a
GET /api/v1/envelopes/{id}/documentscon una credencial que tenga el permisodocument:downloaden el espacio del sobre (rol auditor o superior). Sin ese permiso, el camposignedUrlllega vacío. - Descargue cada
signedUrl. Los enlaces son válidos durante 3.600 segundos; descárguelos al recibirlos, sin almacenarlos.
# After the envelope.completed webhook checks out, data.envelope.id is the envelope.ENVELOPE_ID="3f8c1c2e-7d0a-4f3b-9d2a-0a1b2c3d4e5f"mkdir -p "archive/$ENVELOPE_ID"
curl -sSf -H "Authorization: Bearer $TOKEN" \ "$BBSIGN_BASE_URL/api/v1/envelopes/$ENVELOPE_ID/documents" \ | jq -r '.[] | "\(.signedUrl // "MISSING")\t\(.filename)"' \ | while IFS=$'\t' read -r url filename; do if [ "$url" = "MISSING" ]; then echo "No signed copy for $filename: the credential needs document:download" >&2 exit 1 fi curl -sSf -o "archive/$ENVELOPE_ID/$filename" "$url" doneimport { createClient } from '@binarybridges/bb-sign-sdk'import { mkdir, writeFile } from 'node:fs/promises'
const client = createClient({ baseUrl: process.env.BBSIGN_BASE_URL, tokenUrl: process.env.BBSIGN_TOKEN_URL, clientId: process.env.BBSIGN_CLIENT_ID, clientSecret: process.env.BBSIGN_CLIENT_SECRET,})
// Call this from your webhook handler once the envelope.completed signature checks out.export async function archiveEnvelope(envelopeId) { const documents = await client.envelopes.listEnvelopeDocuments({ id: envelopeId }) await mkdir(`archive/${envelopeId}`, { recursive: true })
for (const document of documents) { if (!document.signedUrl) { throw new Error(`No signed copy for ${document.filename}: the credential needs document:download`) } const response = await fetch(document.signedUrl) if (!response.ok) { throw new Error(`Download of ${document.filename} failed: HTTP ${response.status}`) } await writeFile(`archive/${envelopeId}/${document.filename}`, Buffer.from(await response.arrayBuffer())) }}import co.binarybridges.sign.sdk.BbSignClient;import co.binarybridges.sign.sdk.generated.model.DocumentWithUrlsResponse;import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.nio.file.Files;import java.nio.file.Path;import java.util.List;import java.util.UUID;
// Call this from your webhook handler once the envelope.completed signature checks out.void archiveEnvelope(BbSignClient client, UUID envelopeId) throws Exception { List<DocumentWithUrlsResponse> documents = client.execute(client.envelopes().listEnvelopeDocuments(envelopeId)); Path folder = Files.createDirectories(Path.of("archive", envelopeId.toString())); HttpClient http = HttpClient.newHttpClient();
for (DocumentWithUrlsResponse document : documents) { if (document.getSignedUrl() == null) { throw new IllegalStateException("No signed copy for " + document.getFilename() + ": the credential needs document:download"); } HttpRequest request = HttpRequest.newBuilder(URI.create(document.getSignedUrl())).GET().build(); HttpResponse<Path> response = http.send(request, HttpResponse.BodyHandlers.ofFile(folder.resolve(document.getFilename()))); if (response.statusCode() != 200) { throw new IllegalStateException("Download of " + document.getFilename() + " failed: HTTP " + response.statusCode()); } }}Si no cuenta con una integración, descargue los documentos firmados desde la página del sobre. Ver Descargar documentos firmados.