Enviar a firmar

Introducción

La Plataforma de Firma Remota permite enviar a firmar un documento para que en el teléfono, tableta o PC el firmante pueda revisar y aceptar el contenido a firmar.

En función del tipo de autenticación que requerimos de la persona que va a firmar y su resultado hay varias opciones:

1. Remota biométrica. Con el dedo sobre el teléfono o tableta, o con el ratón en el ordenador realizando el grafo de la firma.
2. Remota con autenticación fuerte. Después de aceptar el contenido del documento, el firmante recibe un código OTP a través de SMS a su teléfono para completar el proceso de firma.
3. Notificación fehaciente. Como si de un burofax se tratase, se guarda evidencias de la entrega y apertura del documento.

La Plataforma de Firma Remota ecoSignature desarrollada por edatalia goza de las garantías que otorgan valor probatorio al documento firmado electrónicamente y le enviste de eficacia jurídica, siendo admisible como prueba en procedimientos judiciales según el artículo 25.1 del Reglamento (CE) N.º 910/2014 del Parlamento Europeo y del Consejo, de 23 de julio de 2014, por:

  1. Estar vinculada al firmante de manera única (recibe un link de descarga del documento en su correo electrónico o SMS en su teléfono móvil y un código PIN único);
  2. Permitir su identificación (mediante la introducción de PIN o mediante firma biométrica);
  3. Haber sido creada por medios que el firmante puede mantener bajo su exclusivo control (correo electrónico y teléfono móvil).
  4. Estar vinculada a los datos a que se refiere de forma tal que cualquier cambio ulterior de estos datos o manipulación de la firma sea detectable (se añade resellado de tiempo al momento del inicio del proceso de firma).

Cabecera de las peticiones

En ellas hay que informar el token de acceso:

<AuthToken xmlns="http://www.edatalia.com/">
  <Token>token de acceso</Token>
</AuthToken>

Recuerde solicitar el suyo en…

método NewDocumentSet

Permite enviar un documento para que lo firme el interesado en su terminal. Cada interviniente recibirá en su correo electrónico una notificación con un enlace para acceder al documento y proceder a validar o firmarlo.

Para realizar una petición, la estructura de la llamada es la siguiente:

<NewDocumentSet xmlns="http://www.edatalia.com/">
  <DocumentSet>
    <DocumentSetSender>Remitente-usuario de la Plataforma de Firma Remota. Solicite uno.</DocumentSetSender>
    <DocumentSetName>Nombre o descripción del envío</DocumentSetName>
    <DocumentSetReminder>Número de días para enviar un recordatorio si el firmante no ha aceptado-firmado el documento</DocumentSetReminder>
    <DocumentSetExpirationDate>Número de días para establecer la fecha de caducidad del documento.</DocumentSetExpirationDate>
    <DocumentSetLanguage>Opcional. Por defecto castellano.</DocumentSetLanguage>
    <DocumentSetCompany>Opcional. Identificador de empresa del remitente. Permite tener varias personalizaciones de los envíos.</DocumentSetCompany>
    <DocumentSetItems>
      <!--Lista de documentos para firmar. Por cada documento-->
        <ItemId>Identificador de documento(1, 2, 3...etc)</ItemId>
        <ItemOrder>Orden de firma del dcoumento (1, 2, 3...etc.)</ItemOrder>
        <ItemMandatory>Indica si es obligatorio que el documento esté firmado (1 si, 0 no)</ItemMandatory>
        <ItemName>Nombre del documento</ItemName>
        <ItemPDFContentB64>Documento PDF en base64</ItemPDFContentB64>
      </Item>
    </DocumentSetItems>
    <DocumentSetRecipients>
      <!--Lista de intervinientes en el proceso de firma: firmantes, validadores o receptores adicionales del documento-->
      <Recipient>
        <RecipientId>Identificador del interviniente (1, 2, 3...etc)</RecipientId>
        <RecipientOrder>Orden del interviniente en el proceos de firma (1, 2, 3...etc.)</RecipientOrder>
        <RecipientName>Nombre y apellidos del interviniente</RecipientName>
        <RecipientIdCard>DNI, Pasaporte del Interviniente</RecipientIdCard>
        <RecipientCellPhone>Número de teléfono del interviniente. Para firma OTP debe ser un número de teléfono móvil</RecipientCellPhone>
        <RecipientMail>Dirección de correo electrónico del interviniente</RecipientMail>
      </Recipient>
    </DocumentSetRecipients>
    <DocumentSetActions>
      <!--Por cada documento e interviniente, definir el comportamiento en el proceso-->
      <ItemRecipientAction>
        <ItemId>Identificador del documento</ItemId>
        <RecipientId>Identificador del interviniente</RecipientId>
        <RequestedAction>Tipo de firma: 0=firma biométrica, 1=OTP, 2=Aceptación</RequestedAction>
        <!-- si la firma es biométrica u OTP, es necesario definir la posición de la visualización de la firma en el documento-->
        <WidgetPosition>                  	
     <Page>Número de página en la que se sitúa la firma</edat:Page>
     <PositionX>Posición horizontal en pixels desde el margen izquierdo</PositionX>
     <PositionY>Posición vertical en pixels desde el margen superior</PositionY>
     <Height>Alto en pixels. Recomendado 40.</Height>
     <Width>Ancho en pixels. Recomendado 120</Width>
        </WidgetPosition>
      </ItemRecipientAction>
    </DocumentSetActions>
  </DocumentSet>
</NewDocumentSet>

Respuesta:

<NewDocumentSetResponse xmlns="http://www.edatalia.com/">
  <NewDocumentSetResult>
    <DocumentSetId>Identificador del envío en la Plataforma de Firma Remota</DocumentSetId>
    <ResponseCode>1 si todo ha ido OK, en otro caso código de error. </ResponseCode>
    <Message>Descripción del error (si se ha producido) </Message>
    <Url>string</Url>
  </NewDocumentSetResult>
</NewDocumentSetResponse>

 

 

NewDocumentSetUrl

Permite enviar un documento para que lo firme el interesado en su terminal. Al momento de subir el documento a la Plataforma, envía como respuesta el enlace al documento de forma que el proceso de firma para el primer firmante se puede embeber dentro su aplicación. El primer firmante no recibe notificación por correo del proceso pendiente de firma pero si los demás.

<NewDocumentSet xmlns="http://www.edatalia.com/">
  <DocumentSet>
    <DocumentSetSender>Remitente-usuario de la Plataforma de Firma Remota. Solicite uno.</DocumentSetSender>
    <DocumentSetName>Nombre o descripción del envío</DocumentSetName>
    <DocumentSetReminder>Número de días para enviar un recordatorio si el firmante no ha aceptado-firmado el documento</DocumentSetReminder>
    <DocumentSetExpirationDate>Número de días para establecer la fecha de caducidad del documento.</DocumentSetExpirationDate>
    <DocumentSetLanguage>Opcional. Por defecto castellano.</DocumentSetLanguage>
    <DocumentSetCompany>Opcional. Identificador de empresa del remitente. Permite tener varias personalizaciones de los envíos.</DocumentSetCompany>
    <DocumentSetItems>
      <!--Lista de documentos para firmar. Por cada documento-->
        <ItemId>Identificador de documento(1, 2, 3...etc)</ItemId>
        <ItemOrder>Orden de firma del dcoumento (1, 2, 3...etc.)</ItemOrder>
        <ItemMandatory>Indica si es obligatorio que el documento esté firmado (1 si, 0 no)</ItemMandatory>
        <ItemName>Nombre del documento</ItemName>
        <ItemPDFContentB64>Documento PDF en base64</ItemPDFContentB64>
      </Item>
    </DocumentSetItems>
    <DocumentSetRecipients>
      <!--Lista de intervinientes en el proceso de firma: firmantes, validadores o receptores adicionales del documento-->
      <Recipient>
        <RecipientId>Identificador del interviniente (1, 2, 3...etc)</RecipientId>
        <RecipientOrder>Orden del interviniente en el proceos de firma (1, 2, 3...etc.)</RecipientOrder>
        <RecipientName>Nombre y apellidos del interviniente</RecipientName>
        <RecipientIdCard>DNI, Pasaporte del Interviniente</RecipientIdCard>
        <RecipientCellPhone>Número de teléfono del interviniente. Para firma OTP debe ser un número de teléfono móvil</RecipientCellPhone>
        <RecipientMail>Dirección de correo electrónico del interviniente</RecipientMail>
      </Recipient>
    </DocumentSetRecipients>
    <DocumentSetActions>
      <!--Por cada documento e interviniente, definir el comportamiento en el proceso-->
      <ItemRecipientAction>
        <ItemId>Identificador del documento</ItemId>
        <RecipientId>Identificador del interviniente</RecipientId>
        <RequestedAction>Tipo de firma: 0=firma biométrica, 1=OTP, 2=Aceptación</RequestedAction>
        <!-- si la firma es biométrica u OTP, es necesario definir la posición de la visualización de la firma en el documento-->
        <WidgetPosition>                  	
           <Page>Número de página en la que se sitúa la firma</edat:Page>
           <PositionX>Posición horizontal en pixels desde el margen izquierdo</PositionX>
           <PositionY>Posición vertical en pixels desde el margen superior</PositionY>
           <Height>Alto en pixels. Recomendado 40.</Height>
           <Width>Ancho en pixels. Recomendado 120</Width>
        </WidgetPosition>
      </ItemRecipientAction>
    </DocumentSetActions>
  </DocumentSet>
</NewDocumentSet>

Respuesta:

<NewDocumentSetUrlResponse xmlns="http://www.edatalia.com/">
  <NewDocumentSetUrlResult>
    <DocumentSetId>Identificador del documento en la Plataforma</DocumentSetId>
    <ResponseCode>1 si el proceso finaliza OK, otro si hay error</ResponseCode>
    <Message>Descripción del error</Message>
    <Url>url de acceso al proceso</Url>
  </NewDocumentSetUrlResult>
</NewDocumentSetUrlResponse>

 

ResendDocumentSet

Permite enviar de nuevo la notificación para solicitar la firma de un documento. La notificación llegará al primero de los intervinientes que por el orden establecido en el envío no haya firmado o aceptado aún el contenido.

El formato de la petición es el siguiente:

<ResendDocumentSet xmlns="http://www.edatalia.com/">
      <DocumentSetId>Identificador del envío en la plataforma obtenido en los métodos NewDocumentSet y NewDocumentSetUrl</DocumentSetId>
    </ResendDocumentSet>

Respuesta:

<ResendDocumentSetResult>
  <ResponseCode>1 si el proceso finaliza OK, otro en caso de error</ResponseCode>
  <Message>Descipción del error</Message>
</ResendDocumentSetResult>

 

GetDocumentSet

Obtiene los datos relacionados con un envío:

La petición tiene la siguiente estructura:

<GetDocumentSet xmlns="http://www.edatalia.com/">
  <DocumentSetId>Identificador del envío en la plataforma. Se obtiene en los métodos NewDocumentSet y NewDocumentSetUrl</DocumentSetId>
  <SendDocument>1 si se quiere obtener el documento en el estado que se encuentre en la plataforma (sin firmas, con firmas parciales o completamente firmado), 0 en otro caso</SendDocument>
</GetDocumentSet>

Respuesta:

<GetDocumentSetResponse xmlns="http://www.edatalia.com/">
   <GetDocumentSetResult>
      <Date>Fecha y hora de la última actualización</Date>
      <ResponseCode>1</ResponseCode>
      <Reminder>Número de días de envío de recordatorio</Reminder>
      <GlobalStatus>Estado: Pending, </GlobalStatus>
      <Name>Nombre del envío</Name>
      <Owner>Remitente</Owner>
      <Validity>Fecha y hora de caducidad</Validity>
      <Documents>
         <!--por cada documento-->
         <Document>
            <B64Document>Si SendDocument=1, se obtiene el documento PDF en base64 </B64Document>
            <Status>Pending, Signed..etc</Status>
            <FullySigned>true, si está completamente firmado, false en otro caso</FullySigned>
            <TermAccepted>true, si el interviniente aceptó los términos de uso de la plataforma</TermAccepted>
            <DocumentName>Nombre del documento</DocumentName>
            <RecipientDocuments>
               <RecipientDocument>
                  <Mail>Correo electrónico del interviniente</Mail>
                  <Name>Nombre y apellidos del interviniente</Name>
                  <Phone>Número de teléfono del interviniente</Phone>
                  <SignedAction>False</SignedAction>
                  <SignedDateAction>Fecha y hora de la firma</SignedDateAction>
                  <RequestedAction>Tipo de firma</RequestedAction>
               </RecipientDocument>
            </RecipientDocuments>
         </Document>
      </Documents>
   </GetDocumentSetResult>
</GetDocumentSetResponse>

 

GetLog

Permite obtener las evidencias de firma del proceso desde el momento del envío a través de la plataforma hasta el estado actual del documento.

La petición tiene el siguiente formato:

<GetLog xmlns="http://www.edatalia.com/">
  <DocumentSetId>Identificador del envío en la Plataforma</DocumentSetId>
  <SendDocument>1 si se quiere obtener el certificado de evidencias en formato PDF en la respuesta, 0 en otro caso</SendDocument>
</GetLog>

Respuesta:

<GetLogResponse xmlns="http://www.edatalia.com/">
   <GetLogResult>
      <ResponseCode>1</ResponseCode>
      <DocumentSetId>3856</DocumentSetId>
      <DocumentSetItemsLog>
         <!--por cada uno de los documentos del envío -->
         <DocumentSetItemLog documentSetItemId="identificador valor ItemId del envío">
            <DocumentSetItemName>Nombre del documento</DocumentSetItemName>
            <DocumentSetItemStatus>Estado</DocumentSetItemStatus>
            <Logs>
               <!-- por cada uno de los eventos del proceso-->
               <Log>
                  <Date>2Fecha y hora del evento</Date>
                  <ReceiverEMail>Correo electrónico del interviniente</ReceiverEMail>
                  <Status>Estado</Status>
                  <Logevent>Descripción del evento (en castellano)</Logevent>
               </Log>
            </Logs>
         </DocumentSetItemLog>
      </DocumentSetItemsLog>
   </GetLogResult>
</GetLogResponse>

 

GetCompaniesSet

Si el el usuario en la plataforma tiene más de una personalización, se puede recuperar el identificador para informarlo en el parámetro DocumentSetCompany del método NewDocumentSet y NewDocumentSetUrl

La petición no tiene parámetros.

Respuesta:

   <GetCompaniesSetResult>
      <ResponseCode>1 si el resultado es OK, código de error en otro caso</ResponseCode>
      <!-- por cada resultado -->
      <Company>
         <Id>Identificador</Id>
         <Name>Nombre</Name>
      </Company>
   </GetCompaniesSetResult>
</GetCompaniesSetResponse>

 

CancelDocumentSet

Cancela un envío en la plataforma.

El formato de la petición es

<CancelDocumentSet xmlns="http://www.edatalia.com/">
  <DocumentSetId>identificador del envío en la Plataforma</DocumentSetId>
</CancelDocumentSet>

Respuesta:

<CancelDocumentSetResponse xmlns="http://www.edatalia.com/">
   <CancelDocumentSetResult>
      <ResponseCode>1 si ha finalizado OK, otro en caso de error</ResponseCode>
   </CancelDocumentSetResult>
</CancelDocumentSetResponse>

ejemplo SOAP-UI - firma remota

Puede descargar un proyecto con llamadas preconfiguradas desde este enlace.

Recuerde solicitar un token de acceso y un usuario remitente para poder realizar peticiones.

Documentación técnica

Puede consultar el manual técnico desde aquí.