4.- Servicios de SRT

4.- Servicios de SRT

INDICE

 

1.- Registro Electrónico General (servicios SOAP)


1.1.- Servicio EntryService

En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.

1.1.1- Método 'listEntry'

Devuelve el listado con los datos de los asientos registrales que se corresponden a los criterios de búsqueda especificados.

1.1.1.1- Signatura ResultListEntries listEntry(String idApplication, ParamListEntries param) throws RemoteException, SRTException 1.1.1.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio info Info - Filtro de búsqueda en función de la información básica del asiento. Son obligatorios los campos organism, requestType y register. Sí consolidatedValue Int - Filtro para seleccionar los asientos consolidados (en Registro Físico), los no consolidados ó indistinto INDISTINTO = 0 NO CONSOLIDADOS = 1 CONSOLIDADOS = 2 No sender Actor - Interesado que envía el asiento No senderAgent Actor - Aportador (Agente emisor) No receiver Actor - Destinatario al que va dirigido el asiento No receiverAgent Actor - Representante del destinatario al que va dirigido el asiento No dateStart Date - Fecha (y hora) de presentación a partir de la cual se desea listar los asientos No dateEnd Date - Fecha (y hora) de presentación hasta la que se desea listar los asientos No specificData Data[] - Datos específicos asociados No sortColumn String - Ordenación por el nombre de la columna Sí ascending Boolean - Ordenación de las columnas ASCENDENTE = true DESCENDENTE = false Sí fromIndex Int - Valor desde el cual se busca Sí toIndex Int - Valor de búsqueda Sí El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person extends Actor Tipo Longitud máxima Descripción Obligatorio Nif String 255 caracteres Sí Name String 255 caracteres Nombre No Surname1 String 255 caracteres Primer apellido No Surname2 String 255 caracteres Segundo apellido No Mail String 255 caracteres Correo No Address String 255 caracteres Dirección No Organism extends Actor Tipo Longitud máxima Descripción Obligatorio Code String 255 caracteres Código del organismo Sí Name String 255 caracteres Descripción del organismo Sí Company extends Actor Tipo Longitud máxima Descripción Obligatorio Cif String 255 caracteres Cif Sí Name String 255 caracteres Nombre Sí UndefinedActor extends Actor Tipo Longitud máxima Descripción Obligatorio NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor  (SenderAgent) que presenta el documento sería de tipo Person. code String 255 caracteres Código Sí name String 255 caracteres Nombre Sí 1.1.1.3.- Parámetros de respuesta Nombre Tipo Descripción entries Entry[] Listado de asientos que cumplen los filtros de búsqueda establecidos. 1.1.1.4.- Validaciones Nombre Descripción InternalCoreException Se agrupan todos aquellos errores internos de funcionamiento del SRT. 1.1.1.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.1.1.6.- Ejemplo de invocación Ejemplo de invocación ParamListEntries paramListEntries = new ParamListEntries(); ResultListEntries entries = new ResultListEntries(); Info info = new Info(); // Código de organismo, es un atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setOrganism("ORGXXXXX"); //Código de Libro de registro info.setRegister("REG_XXX"); // Código de procedimiento, es un atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setProcessType("xxx"); //Tipo de Entry (Entrada(0), Salida(1)) info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); //Fecha de creación del Entry Calendar requestTime = Calendar.getInstance(); info.setRequestTime(requestTime); paramListEntries.setInfo(info); entries = entryClient.listEntry(paramListEntries);

1.1.2.- Método 'getEntryDetails'

Obtiene los datos sobre un asiento registral, a partir del identificador de su libro de registro y del número de asiento registral.

1.1.2.1.- Signatura ResultGetEntryDetails getEntryDetails(String idApplication, ParamGetEntryDetails param) throws RemoteException, SRTException 1.1.2.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio registerId String - Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. Sí requestType Int - Tipo de asiento ENTRADA = 0 SALIDA = 1 Sí entryId String - Nº de registro del asiento asociado al sistema telemático Sí consolidatedId String - Nº de registro del asiento asociado al sistema físico con el que se consolida No invokingId String - Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. No 1.1.2.3.- Parámetros de respuesta Nombre Tipo Descripción entry Entry Información general del asiento y datos específicos en 'specificdata' request String Contenido del documento de solicitud de alta de asiento (fichero PDF, XML, etc.) codificado en Base64 receipt String Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático attachments AttachmentInfo[] Datos generales de los documentos adjuntos 1.1.2.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. 1.1.2.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.1.2.6.- Ejemplo de invocación Ejemplo de invocación ParamGetEntryDetails paramGetEntryDetails = new ParamGetEntryDetails(); ResultGetEntryDetails resultGetEntryDetails = new ResultGetEntryDetails(); //Identificador de Libro de Registro paramGetEntryDetails.setRegisterId("REG_XXX"); //Código del Asiento Registral paramGetEntryDetails.setEntryId("PREF_XXXXXXXXXX/SUF"); //Tipo de Entry (Entrada(0), Salida(1)) paramGetEntryDetails.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); //paramGetEntryDetails.setInvokginId(null); paramGetEntryDetails.setInvokginId("NIF")); resultGetEntryDetails = entryClient.getEntryDetails(paramGetEntryDetails);

1.1.3.- Método 'getEntryAttachmentByFileRef'

1.1.3.1.- Signatura String getEntryAttachmentByFileRef(String idApplication,ParamGetEntryAttachment param) throws RemoteException, SRTException 1.1.3.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio registerId String - Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. Sí requestType int - Tipo de la solicitud Entrada = 0 Salida = 1 Sí entryId String - Identificador del tramite Sí idAttachment String - Identificador del documento adjunto Sí invokingId String - Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. No 1.1.3.3.- Parámetros de respuesta Nombre Tipo Descripción idRef String Identificador (“id”) del contenido del fichero dentro de la petición SOAP de invocación 1.1.3.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. 1.1.3.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.1.3.6.- Ejemplo de invocación Ejemplo de invocación ParamGetEntryAttachment paramGetEntryAttachment = new ParamGetEntryAttachment(); //Identificador de Libro de Registro paramGetEntryAttachment.setRegisterId("REG_XXX"); //Código del Asiento Registral paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF"); //Identificador del adjunto paramGetEntryAttachment.setIdAttachment("idAttachment"); //Tipo de Entry (Entrada(0), Salida(1)) paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); paramGetEntryAttachment.setInvokingId(null); InputStream inputStream = entryClient.getEntryAttachmentByFileRef(paramGetEntryAttachment);

1.1.4.- Método 'getEntrySpecificData'

Información general del asiento y datos específicos en 'specificdata'

1.1.4.1.- Signatura ResultGetEntrySpecificData getEntrySpecificData(String idApplication, ParamGetEntryDetails param)throws RemoteException, SRTException 1.1.4.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio registerId String - Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. Sí requestType int - Tipo de la solicitud Entrada = 0 Salida = 1 Sí entryId String - Identificador del tramite Sí consolidatedId String - Nº de registro del asiento asociado al sistema físico con el que se consolida No invokingId String - Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. No 1.1.4.3.- Parámetros de respuesta Nombre Tipo Descripción Entry Entry Información general del asiento y datos específicos en 'specificdata' 1.1.4.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. 1.1.4.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.1.4.6.- Ejemplo de invocación Ejemplo de invocación ResultGetEntrySpecificData result = new ResultGetEntrySpecificData(); ParamGetEntryDetails param = new ParamGetEntryDetails(); //Identificador de Libro de Registro paramGetEntryAttachment.setRegisterId("REG_xxx"); //Código del Asiento Registral paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF"); //Tipo de Entry (Entrada(0), Salida(1)) paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); result = entryClient.getEntrySpecificData(param);

1.1.5.- Método 'sendFullEntry'

Alta de asiento registral. Permite hacerlo tanto con ficheros adjuntos (bytes), que es la forma no recomendada, como mediante la integración a través de CCSV (la recomendada) Mediante la integración con CCSV, SRT recibe un documento almacenado en CCSV. Para almacenar un documento en CCSV, es necesario integrarse con el método createDocument. CCSV asocia un identificador único a cada documento y el cual debe indicarse a SRT en la petición. Además, también es posible recuperar datos del documento almacenado (hash, algoritmo...) a través del método getDocument de CCSV. La integración tanto con el método createDocument como con el método getDocument de CCSV puede verse en Servicios para la gestión de documentos

1.1.5.1.- Signatura ResultSendFullEntry sendFullEntry(String idApplication,ParamSendFullEntry param, FileInfo fileInfo, DataHandler file) throws RemoteException, SRTException 1.1.5.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio info Info - Información básica y común Sí requestPromoter RequestPromoter - Datos del Promotor No sender Actor - Interesado que envía el asiento Sí senderAgent Actor - Aportador (Agente emisor). Si se indica para asientos de salida, debe ser de tipo Person. No receiver Actor - Destinatario al que va dirigido el asiento Sí receiverAgent Actor - Representante del destinatario al que va dirigido el asiento No specificData Data[] Clave → 255 caracteres Valor → 255 caracteres Datos específicos asociados No invokingId String 255 caracteres Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. No fileInfo FileInfo - Datos del fichero adjunto. Nos permite enviar un documento adjunto sin necesidad de indicar código CCSV. No file DataHandler (no es propio de SRT. forma parte de la librería javax.activation) - Flujo de datos (bytes) para la transmisión de forma eficiente del fichero adjunto desde la aplicación invocante al sistema telemático. SRT obtiene los bytes del documento adjunto a través de este objeto.  SRT asignará un código CCSV a este documento adjunto y lo guardará en la tabla de datos específicos junto a los otros documentos adjuntos. No Info Tipo Longitud máxima Descripción Obligatorio subject String 255 caracteres Asunto Sí reportCode String 255 caracteres Código de informe No requestType Integer 1 Tipo de petición (0 = entrada y 1 = salida) Sí requestTime Calendar - Fecha de presentación No processTime Calendar - Fecha de registro No organism String 255 caracteres Código de organismo Sí register (No se usa, se debe indicar en datos específicos con clave TypeRegister y valor I (interno) o E (externo). Si no se indica, será por defecto externo)  String 255 caracteres Tipo de registro (I = Interno y E = externo). Si no se indica, el valor por defecto es nulo. No processType String 255 caracteres Código de procedimiento Sí RequestPromoter (opcional): Si el documento principal CSV_Request indicado en datos específicos no existe en CCSV, SRT creará el documento de solicitud con los datos proporcionados en el RequestPromoter. Tipo Longitud máxima Descripción Obligatorio request String - Bytes del documento principal en base 64 Sí fileName String 255 caracteres Nombre del documento principal Sí detachedSignature String - Firma del documento en base 64 Sí formatSignature Long 19 Formato de la firma Sí mimeType String 255 caracteres Tipo de archivo Sí Promoter: Se utiliza para crear una relación de metadatos para el documento de solicitud en CCSV. Promoter/identifierNumber String 255 caracteres Número de identificación Sí Promoter/name String 255 caracteres Nombre Sí Promoter/surname1 String 255 caracteres Primer apellido No Promoter/surname2 String 255 caracteres Segundo apellido No FileInfo Tipo Longitud máxima Descripción Obligatorio name String 255 caracteres Nombre del archivo Sí fileSize Long 19 dígitos Tamaño del archivo No description String 255 caracteres Descripción del archivo Sí detachedSignature String - Firma del archivo en base64 Sí formatSignature Long 19 dígitos Formato de la firma Sí mimeType String 255 caracteres Tipo de archivo Sí El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person extends Actor Tipo Longitud máxima Descripción Obligatorio nif String 255 caracteres Nif  Sí givenName String 255 caracteres Nombre No surname1 String 255 caracteres Primer apellido No surname2 String 255 caracteres Segundo apellido No mail String 255 caracteres Correo No address String 255 caracteres Dirección No Organism extends Actor Tipo Longitud máxima Descripción Obligatorio code String 255 caracteres Código del organismo Sí name String 255 caracteres Descripción del organismo Sí Company extends Actor Tipo Longitud máxima Descripción Obligatorio cif String 255 caracteres Cif Sí name String 255 caracteres Nombre Sí UndefinedActor extends Actor Tipo Longitud máxima Descripción Obligatorio NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor  (SenderAgent) que presenta el documento sería de tipo Person. code String 255 caracteres Código Sí name String 255 caracteres Nombre Sí AuthorizedOfficer extends Actor Tipo Longitud máxima Descripción Obligatorio NOTA: En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. name String 255 caracteres Nombre del funcionario habilitado Sí surname1 String 255 caracteres Primer apellido del funcionario habilitado Sí surname2 String 255 caracteres Segundo apellido del funconario habilitado No nif String 9 caracteres Nif del funcionario habilitado Sí rpt String 10 caracteres Código RPT del funcinario habilitado Sí organismCode (código organismo de SIU) String 10 caracteres Código organismo SIU del funcionario habilitado Sí organismName String 255 caracteres Nombre de organismo SIU del funcionario habilitado Sí departmentCode (código departamento de SIU) String 10 caracteres Código de departamento del funcionario habilitado Sí departmentName String 255 caracteres Nombre de departamento SIU del funcionario habilitado Sí role String 255 caracteres Rol del funcionario habilitado Sí mail String 255 caracteres Dirección de correo electrónico del funcionario habilitado Sí El SenderAgent pasa a ser opcional en asientos de salida. En caso de indicarlo, deberá ser obligatoriamente de tipo Person. 1.1.5.3.- Parámetros de respuesta Nombre Tipo Descripción id String Número de registro correspondiente al asiento registral realizado receipt Receipt Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático processTime Date Fecha y hora de proceso, primer día hábil desde el alta (pudiendo coincidir), en Registro Telemático CSVReceipt String CSV del recibo (justificante) de alta de asiento registral Información Para obtener la fecha efectiva de registro, revisar los casos de uso. 1.1.5.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. sender Si el asiento es de Salida, el sender debe ser de tipo Organism y su valor estar en info.organism senderAgent Para realizar un registro de salida es necesario identificar al aportador (Agente emisor) receiver Si el asiento es de Entrada, el receiver debe ser de tipo Organism y su valor estar en info.organism info.organism Se valida que exista el organismo en SIU, debe coincidir con el receiver en los de entrada y con el sender en los de salida info.register No es obligatorio ni se tiene en cuenta, será eliminado en un futuro info.processType Se valida que exista el tipo de procedimiento y que se pueda registrar en el organismo indicado specificData[SRTClientConstants.SPECIFIC_DATA_NAME_TYPE_REGISTER] El código de registro debe ser verificable. Puede tener los valores “I” para registro interno o “E” para registro externo. Para crear un asiento en un libro de registro interno es necesario que el organismo asociado al asiento tenga como dato extendido "InternalRegister" igual a libro de registro usado para hacer los asientos internos. specificData[SRTClientConstants.SPECIFIC_DATA_NAME_CSV_REQUEST] El estado de la solicitud enviada debe ser de tipo original o copia, no se permite registrar si el estado del documento en CCSV es de otro tipo. specificData[SRTClientConstants.SPECIFIC_DATA_NAME_CSV_ATTACHED] El estado de los adjuntos enviados debe ser de tipo original o copia, no se permite registrar si el estado de alguno de los documentos en CCSV es de otro tipo org_code_list_reg_in Es un alfanumérico, código de registro , son los organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. org_code_list_reg_out Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. 1.1.5.5.- Códigos error Tipo Descripción SRTException Error en la operación. SRTException El campo sender/senderAgent/receiverAgent no esta instanciado con el tipo correcto. Se ha instanciado con tipo Person, cuando deberia ser Company u Organism RemoteException Error remoto. 1.1.5.6.- Ejemplo de invocación Ejemplo de invocación // IMPORTANTE: Para más información ver anexo I ParamSendFullEntry paramSendFullEntry = new ParamSendFullEntry(); //InvokingId paramSendFullEntry.setInvokingId("00000000T"); //Info Info info = new Info(); // Asunto info.setSubject("Prueba"); // Organismo. Atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setOrganism("ORG07458"); // Tipo de asiento (entrada o salida) info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); // Procedimiento. Atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setProcessType("1"); paramSendFullEntry.setInfo(info); //Sender (datos emisor) Organism sender = new Organism(); sender.setCode("ORG14668"); sender.setName("SERVICIO DE ADMINISTRACIÓN ELECTRÓNICA"); paramSendFullEntry.setSender(sender); //SenderAgent (aportador) Person senderAgent = new Person(); senderAgent.setGivenName("NOMBRE"); senderAgent.setSurname1("APELLIDO"); senderAgent.setAddress("DIRECCION"); senderAgent.setNif("00000000T"); senderAgent.setMail("cotal@oesia.com"); paramSendFullEntry.setSenderAgent(senderAgent); //Receiver (datos destinatario) Actor[] receivers = new Actor[1]; Organism receiver = new Organism(); receiver.setCode("ORG07458"); receiver.setName("VICEPRESIDENCIA"); receivers[0] = receiver; paramSendFullEntry.setReceiver(receivers); //SpecificData Data[] specificData = new Data[8]; Data data1 = new Data("Asunto","Prueba"); specificData[0] = data1; // Código CSV del documento principal Data data2 = new Data("CSV_Request","CSVDD1X36L2V6A200SRT"); specificData[1] = data2; // Hash del documento principal Data data3 = new Data("CSV_hash_Request","/QzejY7NqZu8uZXDH9Y3D3Fbwb8="); specificData[2] = data3; // Algoritmo del documento principal Data data4 = new Data("CSV_algorithm_Request","SHA-1"); specificData[3] = data4; // Código CSV del adjunto 1 Data data5 = new Data("CSV_Attached_1","CSVI281DXS57F1H0BENT"); specificData[4] = data5; // Hash del adjunto 1 Data data6 = new Data("CSV_hash_Attached_1","o2CgxBb1DLKk+i5rF4YnOYmM7v4="); specificData[5] = data6; // Algoritmo del adjunto 1 Data data7 = new Data("CSV_algorithm_Attached_1","SHA-1"); specificData[6] = data7; Data data8 = new Data("TypeRegister", "E"); specificData[7] = data8; paramSendFullEntry.setSpecificData(specificData); // Fichero a enviar (fichero principal que se guardará en SRT en caso de que el documento CSV_Request indicado anteriormente no exista en CCSV) byte[] arrayFile = FileCopyUtils.copyToByteArray(new File("URL Fichero")); String fileSoli = BASE64Encoder.encode(arrayFile); // Firma del fichero a enviar byte[] arraySign = FileCopyUtils.copyToByteArray(new File("URL Firma")); String detachedSignature = BASE64Encoder.encode(arraySign); RequestPromoter request = new RequestPromoter(); //Formato del Documento request.setMimeType("Formato"); //Documento request.setRequest(fileSoli); //Nombre del Documento request.setFileName("Name"); //Firma request.setDetachedSignature(detachedSignature); //Formato de Firma request.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx); Promoter promoter = new Promoter(); promoter.setIdentifierNumber("00000000T"); promoter.setName("Nombre"); promoter.setSurname1("Apellido 1"); promoter.setSurname2("Apellido 2"); request.setPromoter(promoter); // Adjunto Firmado FileDataSource dataSource = new FileDataSource(new File("URLAdjunto")); DataHandler file = new DataHandler(dataSource); FileInfo fileInfo = new FileInfo(); // Nombre del Documento fileInfo.setName("Nombre+"."+Extension"); // Descripción del Documento fileInfo.setDescription ("Descripcion"); // Tamaño del Documento en bytes fileInfo.setFileSize("Tamaño"); // Formato del Documento (mime-type) fileInfo.setMimeType("Formato"); // Formato de Firma fileInfo.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx); // Realizar petición ResultSendFullEntry resultSendFullEntry = client.sendFullEntry(paramSendFullEntry, fileInfo, file); // Se recomienda enviar todos los adjuntos en datos específicos por lo que no se aconseja utilizar fileInfo ni file. La llamada quedaría de la siguiente forma: ResultSendFullEntry resultSendFullEntry = client.sendFullEntry(paramSendFullEntry, null, null);

1.1.6.- Método 'sendEntryOnlySaveReceipt'

Alta de asiento registral, sin que se almacene la solicitud (bytes) ni sus posibles adjuntos en el Sistema de Registro Telemático. Sólo se almacena en CCSV el fichero del recibo de registro, devolviéndose su contenido a la aplicación invocante. Se describe la integración con este método en ANEXO II: PROCESO DE INTEGRACIÓN MEDIANTE SISTEMA EXTERNO

1.1.6.1.- Signatura public ResultSendEntryOnlySaveReceipt sendEntryOnlySaveReceipt(String idApplication,ParamSendEntryOnlySaveReceipt param) throws SRTException 1.1.6.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio info Info - Información básica y común Sí requestPromoter RequestPromoter - Datos del Promotor No sender Actor - Interesado que envía el asiento Sí senderAgent Actor - Aportador (Agente emisor). Si se indica para asientos de salida, debe ser de tipo Person. No receiver Actor - Destinatario al que va dirigido el asiento Sí receiverAgent Actor - Representante del destinatario al que va dirigido el asiento No specificData Data[] Clave → 255 caracteres Valor → 255 caracteres Sí invokingId String 255 caracteres Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. No Info Tipo Longitud máxima Descripción Obligatorio subject String 255 caracteres Asunto Sí reportCode String 255 caracteres Código de informe No requestType Integer 1 Tipo de petición (0 = entrada y 1 = salida) Sí requestTime Calendar - Fecha de presentación No processTime Calendar - Fecha de registro No organism String 255 caracteres Código de organismo Sí register (No se usa, se debe indicar en datos específicos con clave TypeRegister y valor I (interno) o E (externo). Si no se indica, será por defecto externo) String 255 caracteres Tipo de registro (I = Interno y E = externo). Si no se indica, el valor por defecto es nulo. No processType String 255 caracteres Código de procedimiento Sí RequestPromoter Tipo Longitud máxima Descripción Obligatorio Promoter Promoter/identifierNumber String 255 caracteres Número de identificación Sí Promoter/name String 255 caracteres Nombre Sí Promoter/surname1 String 255 caracteres Primer apellido No Promoter/surname2 String 255 caracteres Segundo apellido No El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person extends Actor Tipo Longitud máxima Descripción Obligatorio Nif String 255 caracteres Nif  Sí Name String 255 caracteres Nombre No Surname1 String 255 caracteres Primer apellido No Surname2 String 255 caracteres Segundo apellido No Mail String 255 caracteres Correo No Address String 255 caracteres Dirección No Organism extends Actor Tipo Longitud máxima Descripción Obligatorio Code String 255 caracteres Código del organismo Sí Name String 255 caracteres Descripción del organismo Sí Company extends Actor Tipo Longitud máxima Descripción Obligatorio Cif String 255 caracteres Cif Sí Name String 255 caracteres Nombre Sí UndefinedActor extends Actor Tipo Longitud máxima Descripción Obligatorio NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor  (SenderAgent) que presenta el documento sería de tipo Person. code String 255 caracteres Código Sí name String 255 caracteres Nombre Sí AuthorizedOfficer extends Actor Tipo Longitud máxima Descripción Obligatorio NOTA: En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. name String 255 caracteres Nombre del funcionario habilitado Sí surname1 String 255 caracteres Primer apellido del funcionario habilitado Sí surname2 String 255 caracteres Segundo apellido del funconario habilitado No nif String 9 caracteres Nif del funcionario habilitado Sí rpt String 10 caracteres Código RPT del funcinario habilitado Sí organismCode (código organismo de SIU) String 10 caracteres Código organismo SIU del funcionario habilitado Sí organismName String 255 caracteres Nombre de organismo SIU del funcionario habilitado Sí departmentCode (código departamento de SIU) String 10 caracteres Código de departamento del funcionario habilitado Sí departmentName String 255 caracteres Nombre de departamento SIU del funcionario habilitado Sí role String 255 caracteres Rol del funcionario habilitado Sí mail String 255 caracteres Dirección de correo electrónico del funcionario habilitado Sí El SenderAgent pasa a ser opcional en asientos de salida. En caso de indicarlo, deberá ser obligatoriamente de tipo Person. 1.1.6.3.- Parámetros de respuesta Nombre Tipo Descripción id String Número de registro correspondiente al asiento registral realizado receipt Receipt Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático processTime Date Fecha y hora de proceso, primer día hábil desde el alta (pudiendo coincidir), en Registro Telemático CSVReceipt String CSV del recibo (justificante) de alta de asiento registral Información Para obtener la fecha efectiva de registro, revisar los casos de uso. 1.1.6.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. IdRequest Se valida para que este identificador nunca venga vacío sender Si el asiento es de salida, el sender debe ser de tipo organism y valor param.info.organism receiver Si el asiento es de entrada, el receiver debe ser de tipo organism y valor info.organism info.organism Se valida que exista el organismo info.register No es obligatorio ni se tiene en cuenta, será eliminado en un futuro info.processType Se valida que exista el tipo de procedimiento. specificData[SRTClientConstants.SPECIFIC_DATA_NAME_TYPE_REGISTER] El código de registro debe ser verificable. Puede tener los valores “I” para registro interno o “E” para registro externo. Para crear un asiento en un libro de registro interno es necesario que el organismo asociado al asiento tenga como dato extendido "InternalRegister" igual a libro de registro usado para hacer los asientos internos. org_code_list_reg_in Es un alfanumérico, código de registro , son los organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. org_code_list_reg_out Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. 1.1.6.5.- Códigos error Tipo Descripción SRTException Error en la operación. 1.1.6.6.- Ejemplo de invocación Ejemplo de invocación ResultSendEntryOnlySaveReceipt resultSendEntryOnlySaveReceipt = new ResultSendEntryOnlySaveReceipt (); ParamSendEntryOnlySaveReceipt paramSendEntryOnlySaveReceipt = new ParamSendEntryOnlySaveReceipt(); //Se rellena el 'Info' Info info = new Info(); info.setSubject(“Asunto”); // Código de organismo, es un atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setOrganism(“ORGXXXXX”); // Tipo de Entry (Entrada(0)/Salida(1)) info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT); Calendar requestTime = Calendar.getInstance(); info.setRequestTime(requestTime); // Código de procedimiento, es un atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación info.setProcessType(“xxx”); //Se rellena el 'sender' Organism sender = new Organism(“ORGXXXXX”); //Se rellena el 'senderAgent' Actor senderAgent = new Actor(); senderAgent = new Person(“NIF/CIF”, “Name”, “surmane1”, “surname2”,“Email”, “Adress”); //Se rellena el 'receiver' Actor[] receiver = new Actor[1]; Person person = new Person(); person.setAddress (“Adress”); person.setGivenName(“Name”); person.setMail(“Email”); person.setNif(“NIF/CIF”); person.setSurname1(“surmane1”); person.setSurname2(“surname2”); receiver[0] = person; //Se rellena el 'dataSpecific' Data[] dataList = new Data[3]; dataList[0] = new Data("TypeRegister ", "E"); dataList[1] = new Data("Name2", "Value2"); dataList[2] = new Data(SRTClientConstants.SPECIFIC_DATA_NAME_XXX,"Value3"); //Se rellena el 'request' RequestPromoter request = new RequestPromoter(); request.setMimeType (“Formato”); request.setRequest (null); request.setFileName (“Name”); request.setDetachedSignature(null); request.setFormatSignature (null); paramSendEntryOnlySaveReceipt.setInfo(info); paramSendEntryOnlySaveReceipt.setReceiver(receiver); paramSendEntryOnlySaveReceipt.setSender(sender); paramSendEntryOnlySaveReceipt.setSpecificData(dataList); paramSendEntryOnlySaveReceipt.setInvokingId("NIF"); if(sendSenderAgent){ paramSendEntryOnlySaveReceipt.setSenderAgent(senderAgent); } paramSendEntryOnlySaveReceipt.setRequestPromoter(request); resultSendEntryOnlySaveReceipt = entryClient.sendEntryOnlySaveReceipt(paramSendEntryOnlySaveReceipt); return resultSendEntryOnlySaveReceipt;

1.2.- Servicio AdminService

Realiza la consolidación de los asientos registrales entre el sistema telemático y el sistema físico de registro externo y perteneciente a la organización. Para ello se asocian los números de libro de registro de ambos sistemas. En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.

1.2.1.- Método 'consolidateEntries'

1.2.1.1.- Signatura ResultConsolidateEntries consolidateEntries(String idApplication, ParamConsolidateEntries param)throws RemoteException, SRTException 1.2.1.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio registerId String - Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. Sí consolidationList EntryConsolidation[] - Listado de consolidaciones de los asientos. Sí 1.2.1.3.- Parámetros de respuesta Nombre Tipo Descripción consolidationResult EntryConsolidatrionResult[] Listado de resultados de la consolidación de las entradas. 1.2.1.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. 1.2.1.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.2.1.6.- Ejemplo de invocación Ejemplo de invocación ResultConsolidateEntries resultConsolidateEntries = new ResultConsolidateEntries(); ParamConsolidateEntries param = new ParamConsolidateEntries(); EntryConsolidation[] consolidationList = new EntryConsolidation[1]; EntryConsolidation entryConsolidation = new EntryConsolidation(); // Identificador de consolidación entryConsolidation.setConsolidatedId("PRE_XXXXXXXXX/SUF"); // Identificador de asiento entryConsolidation.setId("PRE_XXXXXXXXX/SUF"); // Tipo: entrada(0), salida(1) entryConsolidation.setRequestType("0"); consolidationList[0] = entryConsolidation; param.setConsolidationList(consolidationList); // Identificador del libro de registro param.setRegisterId("REG_GA"); resultConsolidateEntries = adminClient.consolidateEntries(param);

1.3.- Servicio InfoService

1.3.1.- Método 'fullListRegisters'

Devuelve la información de los libros de registro sobre los que puede registrar para un organismo.

1.3.1.1.- Signatura ResultFullListRegisters fullListRegisters(String idApplication, ParamFullListRegisters param) throws RemoteException, SRTException 1.3.1.2.- Parámetros de invocación Nombre Tipo Longitud máxima Descripción Obligatorio organismCode String - Código administrativo del organismo que se recupera de SIU. Este código de Organismo puede cambiar en el futuro cuando cambie la estructura de organismos. No enabled Boolean - Accesibilidad de los libros de registro activado = true desactivado = false No exteriorVisible Boolean - Visibilidad de los libros de registro visible exterior = true no visible exterior = false No 1.3.1.3.- Parámetros de respuesta Nombre Tipo Descripción fullRegisters FullRegister[] Listado de libros de registro(código, nombre, activado, visible exterior) 1.3.1.4.- Validaciones Nombre Descripción idApplication Se valida que existe una aplicación dada de alta con ese código. 1.3.1.5.- Códigos error Tipo Descripción SRTException Error en la operación. RemoteException Error remoto. 1.3.1.6.- Ejemplo de invocación Ejemplo de invocación ParamFullListRegisters paramFullListRegisters = new ParamFullListRegisters(); ResultFullListRegisters resultFullListRegisters = new ResultFullListRegisters(); resultFullListRegisters = infoClient.fullListRegisters(paramFullListRegisters);

1.4.- Manejo de excepciones

Para obtener la información referente a la excepción, SRT incluye dos parámetros con la información del error.  

Ejemplo de captura de excepciones de los servicios SOAP de SRT.

try { log.info("BEGIN SRT EntryClient.sendFullEntry"); resultSendEntry = entryClient.sendFullEntry(paramSendFullEntry, null, null); log.info("END SRT EntryClient.sendFullEntry"); } catch (SRTException e) { String extraInfo = e.getCode() + ":" + e.getExtraInfo(); //Obtenemos el código y la información del error }

 

Ejemplo respuesta con error
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.userException</faultcode> <faultstring>com.tbsolutions.srt.webservice.exception.InternalCoreException</faultstring> <detail> <ns1:SRTExceptionElement xsi:type="ns1:InternalCoreException" xmlns:ns1="http://exception.webservice.srt.tbsolutions.com"> <code xsi:type="xsd:int">704</code> <extraInfo xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">El tamaño de la lista de asientos es mayor que uno, a causa de una codigo de asiento registral repetido,register=REG_GA,entry=RT_3001935003/2020,entryType=0</extraInfo> </ns1:SRTExceptionElement> <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">moz-ofm-03.aragon.local</ns2:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>

 

2.- Registro Electrónico Ágil (servicios REST)


2.1.- sendEntry

2.1.1.- Signatura ParamOutSendEntry sendEntry(ParamInSendEntry params) 2.1.2.- Parámetros Parámetro Tipo Descripción Obligatorio params ParamInSendEntry Parámetros de entrada para crear el asiento registral Sí El objeto ParamInSendEntry presenta la siguiente estructura: Parámetro Tipo Longitud máxima Descripción Obligatorio Info - Información general Sí Info/Subject String 255 caracteres Asunto Sí Info/RequestType enum (0 = Entrada y 1 = Salida) 1  Tipo de entrada (entrada / salida) Sí Info/RegisterType enum (I = Interno y E = Externo) 1 Tipo de registro (interno / externo) Sí Info/OrganismCode String 255 caracteres  Código de organismo Sí Info/ProcedureCode String 255 caracteres Código de procedimiento Sí Info/JustifyingRecipient JustifyingRecipient - Destinatario del justificante de registro Sí (obligatorio al menos uno de los dos: correo o movil ) Info/JustifyingRecipient/Mail String 255 caracteres Correo del destinatario Sí (si no se ha especificado teléfono) Info/JustifyingRecipient/Phone String 9 dígitos  Teléfono del destinatario Sí (si no se ha especificado correo) Sender Actor - Emisor Sí SenderAgent Actor - Aportador (Agente emisor) Sí (solamente es obligatorio para asientos de entrada → requestType = 0) Receivers List<Actor> - Listado de destinatarios Sí ReceiverAgent Actor - Destinatario MainDocument Document - Documento principal Sí MainDocument/Csv String  255 caracteres CSV del documento El estado debe ser ORIGINAL o COPIA MainDocument/Description String 255 caracteres Descripción del documento MainDocument/Hash String 255 caracteres Hash del documento MainDocument/Type String 255 caracteres Tipo de documento MainDocument/HashAlgorithm String 255 caracteres Algoritmo utilizado para generar el hash del documento AttachedDocuments List<Document> - Listado de documentos adjuntos Sí InvokingId String 255 caracteres Id de invocación Sí noComunicar Boolean - Parámetro para que el usuario decida si enviar o no comunicaciones al interesado. Por defecto el valor está false No          El emisor (Sender), agente emisor (SenderAgent), receptor/es (Receivers) y agente receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company, UndefinedActor o ExternalOrganism. Person extends Actor Tipo Longitud máxima Descripción Obligatorio Nif String 255 caracteres Nif  Sí Name String 255 caracteres Nombre No Surname1 String 255 caracteres Primer apellido No Surname2 String 255 caracteres Segundo apellido No Mail String 255 caracteres Correo No Address String 255 caracteres Dirección No Organism extends Actor Tipo Longitud máxima Descripción Obligatorio Code String 255 caracteres Código del organismo Sí Name String 255 caracteres Descripción del organismo Sí Company extends Actor Tipo Longitud máxima Descripción Obligatorio Cif String 255 caracteres Cif Sí Name String 255 caracteres Nombre Sí UndefinedActor extends Actor Tipo Longitud máxima Descripción Obligatorio En asientos de entrada (requestType = 0), solamente es posible utilizar este tipo para el Sender. Si se intenta utilizar para otro objeto, se obtendrá un error. En asientos de salida (requestType = 1), solamente es posible utilizar este tipo para el Receiver. Si se intenta utilizar para otro objeto, se obtendrá un error. Name String 255 caracteres Nombre Sí Surname1 String 255 caracteres Primer Apellido Sí Surname2 String 255 caracteres Segundo Apellido No ExternalOrganism extends Actor Tipo Longitud máxima Descripción Obligatorio En asientos de entrada (requestType = 0), debe utilizarse solamente para el Sender. Si se intenta utilizar para el Receiver, se obtendrá un error. En asientos de salida (requestType = 1), debe utilizarse solamente para el Receiver/s. Si se intenta utilizar para el Sender, se obtendrá un error. DIR3RootOrganismCode String 255 caracteres Código del organismo raíz Sí DIR3RootOrganismName String 255 caracteres Nombre del organismo raíz Sí DIR3RootOrganismNIF String 255 caracteres NIF del organismo raíz No DIR3OrganismCode String 255 caracteres Código del organismo nivel 2 Sí DIR3OrganismName String 255 caracteres Nombre del organismo nivel 2 Sí DIR3OrganismNIF String 255 caracteres NIF del organismo nivel 2 No DIR3OrganismCodeLevel3 String 255 caracteres Código del organismo nivel 3 No DIR3OrganismNameLevel3 String 255 caracteres Nombre del organismo nivel 3 No DIR3OrganismNIFLevel3 String 255 caracteres NIF del organismo nivel 3 No AuthorizedOfficer extends Actor Tipo Longitud máxima Descripción Obligatorio En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. Name String 255 caracteres Nombre del funcionario habilitado Sí Surname1 String 255 caracteres Primer apellido del funcionario habilitado Sí Surname2 String 255 caracteres Segundo apellido del funconario habilitado No Nif String 9 caracteres Nif del funcionario habilitado Sí Rpt String 10 caracteres Código RPT del funcinario habilitado Sí OrganismCode (código organismo de SIU) String 10 caracteres Código organismo SIU del funcionario habilitado Sí OrganismName String 255 caracteres Nombre de organismo SIU del funcionario habilitado Sí DepartmentCode (código departamento de SIU) String 10 caracteres Código de departamento del funcionario habilitado Sí DepartmentName String 255 caracteres Nombre de departamento SIU del funcionario habilitado Sí Role String 255 caracteres Rol del funcionario habilitado Sí Mail String 255 caracteres Dirección de correo electrónico del funcionario habilitado Sí Document Parámetro Tipo Longitud máxima Descripción Obligatorio Csv String 255 caracteres CSV del documento El estado debe ser ORIGINAL o COPIA Sí Description String 255 caracteres Descripción del documento Sí Hash String 255 caracteres Hash del documento No Type String 255 caracteres Tipo de documento No HashAlgorithm String 255 caracteres Algoritmo utilizado para generar el hash del documento No 2.1.3.- Resultado Tipo Descripción ParamOutSendEntry Datos del asiento registral en formato JSON El objeto ParamOutSendEntry presenta la siguiente estructura: Parámetro Tipo Descripción Result GeneralResult Objeto que contiene datos del asiento registral generado Result/EntryCode String Código del asiento registral Result/RequestTime String Fecha en la que se ha creado el asiento Result/RegisterTime String Fecha real en la que comienza el asiento registral. Si se crea el asiento un domingo, la fecha de registro será a partir del lunes. InvocationRequest ParamInSendEntry Objeto que contiene los datos que se habían proporcionado en la petición inicial. Los parámetros que devuelve son los mismos que los parámetros utilizados para realizar la petición. ParamInSendEntry/Info/RegisterBook Libro de registro utilizado. Por ejemplo: REG_GA. Este parámetro solamente forma parte de la respuesta. 2.1.5.- Ejemplo Ejemplo de invocación //Construimos los parámetros de entrada para crear el asiento registral ParamInSendEntry paramInSendEntry = new ParamInSendEntry(); //ID Aplicación paramInSendEntry.IdApplication = "SRT"; //Información paramInSendEntry.Info = new Info(); //Asunto paramInSendEntry.Info.Subject = "SUBJECT"; //Tipo de solicitud paramInSendEntry.Info.RequestType = paramInSendEntry.Info.RequestType.SALIDA; //Tipo de registro paramInSendEntry.Info.RegisterType = paramInSendEntry.Info.RegisterType.EXTERNO; //código de organismo paramInSendEntry.Info.OrganismCode = "ORG09609"; //código del procedimiento paramInSendEntry.Info.ProcedureCode = "CODIGO PROCEDIMIENTO"; //destinatario del justificante paramInSendEntry.Info.JustifyingRecipient = new JustifyingRecipient(); paramInSendEntry.Info.JustifyingRecipient.Mail = "MAIL"; paramInSendEntry.Info.JustifyingRecipient.Phone = "TELEFONO"; //Comunicar paramInSendEntry.Info.noComunicar = true; //Emisor Person person = new Person(); person.Nif = "NIF"; person.Name = "NOMBRE"; person.Surname1 = "APELLIDO 1"; person.Surname2 = "APELLIDO 2"; person.Mail = "MAIL"; person.Address = "DIRECCION"; //Asignamos persona emisora paramInSendEntry.Sender = person; // Representante del emisor Organism organism = new Organism(); organism.Code = "CODIGO"; organism.Name = "NOMBRE"; //Asignamos organismo representante del emisor paramInSendEntry.SenderAgent = organism; //Destinatarios List<Actor> receiversList = new ArrayList<Actor>(); Company company = new Company(); company.Cif = "CIF"; company.Name = "NOMBRE"; //Añadimos destinatario a la lista de destinatarios receiversList.add(company); //Asignamos lista de destinatarios paramInSendEntry.Receivers = receiversList; //Documento Principal paramInSendEntry.MainDocument = new Document(); paramInSendEntry.MainDocument.Csv = "CSVDD1X36L2V6A200SRT"; paramInSendEntry.MainDocument.Description = "Descripción"; //Documentos Adjuntos List<Document> attachedDocumentsList = new ArrayList<Document>(); Document attachedDocument = new Document(); attachedDocument.Csv = "CSVL916KYX34D1601PFI"; attachedDocument.Description = "prueba"; //Añadir documento adjunto a la lista de documentos adjuntos attachedDocumentsList.add(attachedDocument); attachedDocument = new Document(); attachedDocument.Csv = "CSVIW2QR9J65T1C01PFI"; attachedDocument.Description = "prueba gestor"; //Añadir documento adjunto a la lista de documentos adjuntos attachedDocumentsList.add(attachedDocument); //Asignamos la lista de documentos paramInSendEntry.AttachedDocuments = attachedDocumentsList; //Asignamos NIF del usuario que realiza la petición paramInSendEntry.InvokingId = "11111111H"; //Lanzamos método del webservice para crear el asiento registral client.sendEntry(paramInSendEntry); 2.1.6.- Códigos de error

Aplicación que causa el error (SRT invoca también a otras aplicaciones)

Código error

Descripción error

Aplicación que causa el error (SRT invoca también a otras aplicaciones)

Código error

Descripción error

SRT

0001

El id de la aplicación invocante es obligatorio

SRT

0002

La información general es obligatoria

SRT

0003

El asunto es obligatorio

SRT

0004

El tipo de entrada es obligatorio y solamente admite los siguientes valores: [0,1]

SRT

0005

El tipo de registro es obligatorio y solamente admite los siguientes valores: [I,E]

SRT

0006

El código de organismo de la información general es obligatorio

SRT

0007

El emisor es obligatorio

SRT

0008

El aportador del emisor es obligatorio

SRT

0009

Los destinatarios son obligatorios

SRT

0010

El organismo debe tener un código asociado

SRT

0011

El organismo debe tener un nombre asociado

SRT

0012

La persona debe tener un NIF/NIE asociado

SRT

0013

La compañía debe tener un CIF asociado

SRT

0014

La compañía debe tener un nombre asociado

SRT

0015

El tipo de actor no es válido. Valores admitidos: [Person,Organism,Company,UndefinedActor,ExternalOrganism,AuthorizedOfficer]

SRT

0016

El documento principal es obligatorio

SRT

0017

El id de invocación es obligatorio

SRT

0018

Registro duplicado {valor}

SRT

0019

Registro no encontrado {valor}

SRT

0020

Se ha encontrado más de un calendario para los parámetros de búsqueda establecidos

SRT

0021

No se ha encontrado ningún calendario para los parámetros de búsqueda establecidos

SRT

0022

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a persona.

SRT

0023

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a compañía.

SRT

0024

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a compañía.

SRT

0025

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a persona.

SRT

0026

RequestType: {valor} ReceiverType: {valor}. En asientos de entrada el receptor debe ser un organismo.

SRT

0027

RequestType: {valor} SenderType: {valor}. En asientos de salida el emisor debe ser un organismo.

SRT

0028

Error en la validación del organismo. Organismo Receptor = {valor} Organismo Info = {valor}. En asientos de entrada el código de organismo del receptor debe coincidir con el código de organismo de la información general.

SRT

0029

Error en la validación del organismo. Organismo Emisor = {valor} Organismo Info = {valor}. En asientos de salida el código de organismo del emisor debe coincidir con el código de organismo de la información general.

SRT

0030

En asientos de entrada solamente puede haber un destinatario. En este caso hay {valor}

SRT

0031

Para realizar un registro de salida es necesario identificar al representante del emisor

SRT

0034

Organismo incorrecto. No se puede registrar para el procedimiento indicado

Error al obtener el organismo sobre el que registrar

SRT

0035

El correo del justifying recipient no es correcto

SRT

0036

El teléfono del justifying recipient no es correcto

SRT

0037

El código de procedimiento es obligatorio

SRT

0038

El destinatario del justificante de registro debe tener asignado un correo electrónico y/o un teléfono

SRT

0039

El tipo de actor es obligatorio y solamente admite los siguientes valores: [Person,Organism,Company,UndefinedActor,ExternalOrganism,AuthorizedOfficer]

SRT

0040

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a undefinedActor.

SRT

0041

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a undefinedActor.

SRT

0042

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a undefinedActor.

SRT

0043

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a persona.

SRT

0044

RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a compañía.

SRT

0045

El nombre del undefinedActor es obligatorio.

SRT

0046

El primer apellido del undefinedActor es obligatorio.

SRT

0047

En asientos de entrada, el tipo UndefinedActor solamente se permite para el Sender.

SRT

0048

En asientos de salida, el tipo UndefinedActor solamente se permite para el Receiver.

SRT

0049

El código del organismo raíz externo es obligatorio.

SRT

0050

El nombre del organismo raíz externo es obligatorio.

SRT

0051

El código del organismo externo (nivel 2) es obligatorio.

SRT

0052

El nombre del organismo externo (nivel 2) es obligatorio.

SRT

0053

El nif no puede tener más de 20 caracteres.

SRT

0054

El cif no puede tener más de 20 caracteres.



0055

La persona debe tener un nombre asociado



0056

La persona debe tener un apellido asociado



0057

El campo name del AuthorizedOfficer es obligatorio.



0058

El campo surname1 del AuthorizedOfficer es obligatorio.



0059

El campo nif del AuthorizedOfficer es obligatorio.



0060

El campo nif del AuthorizedOfficer no puede tener más de 9 caracteres.



0061

El campo rpt del AuthorizedOfficer es obligatorio.



0062

El campo rpt del AuthorizedOfficer no puede tener más de 10 caracteres.



0063

El campo organismCode del AuthorizedOfficer es obligatorio.



0064

El campo organismCode del AuthorizedOfficer no puede tener más de 10 caracteres.



0065

El campo departmentCode del AuthorizedOfficer es obligatorio.



0066

El campo departmentCode del AuthorizedOfficer no puede tener más de 10 caracteres.



0067

El campo role del AuthorizedOfficer es obligatorio.



0068

El campo mail del AuthorizedOfficer es obligatorio.



0069

En asientos de entrada, el tipo AuthorizedOfficer solamente se permite para el SenderAgent.



0070

El tipo AuthorizedOfficer solamente es válido para registros externos.



0071

En asientos de salida, el tipo AuthorizedOfficer solamente se permite para el ReceiverAgent.



0072

El campo organismName del AuthorizedOfficer es obligatorio.



0073

El campo departmentName del AuthorizedOfficer es obligatorio.

CCSV

1000

Error en la llamada con CCSV:  'mensaje de error que devolvería CCSV'

CCSV

1001

Los parámetros contienen documentos que no existen en CCSV

CCSV

1002

El estado de {valor} debe ser ORIGINAL o COPIA

CCSV

1003

La descripción de {valor} no corresponde con el metadato de CCSV

CCSV

1004

Error al añadir los metadatos generales en CCSV

CCSV

1005

Error al guardar documento en CCSV

CCSV

1006

Error al obtener el documento de CCSV

SIFE

3000

Error en la llamada con SIFE

SIFE (timestamp)

NO_ALG_RESTAMP_ERROR

El valor del atributo timestampForm no es valido. Se trata de un resellado, únicamente se permite el valor 'XML'

SIFE (timestamp)

NO_DIGEST_ALGORITHM

El valor del atributo digestAlgorithm del objeto TimestampParameters es nulo

SIFE (timestamp)

NO_PREV_PARAMETERS_ERROR

Algunos de los parámetros para realizar el resellado es nulo

SIFE (timestamp)

NO_DOCUMENT_ERROR

El atributo document del objecto TimestampParameters es nulo

SIFE (timestamp)

REQUIRED_DATA_ERROR

Datos del contenido del documento son nulos

SIFE (timestamp)

REQUIRED_HASH_ERROR

Faltan datos para la realización de una firma a partir de HASH

SIFE (timestamp)

NO_MATCH_DIGEST_ALGORITHM

Valor del atributo digestAlgorithm del objeto TimestampParameters no coincide con el del documento

SIFE (timestamp)

NO_DOCUMENT_ERROR

No se ha podido recuperar el documento a firmar

PAU

4000

El método {valor} no tiene asociado un código en PAU

PAU

4001

Error al recuperar los atributos del procedimiento {valor}

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_00

Error durante el proceso de autorización.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_01

El parámetro alias de la aplicación la aplicación A es nulo.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_02

El parámetro alias de la aplicación B es nulo.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_03

El parámetro methodCode es nulo.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_04

El parámetro Ip es nulo.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_05

No existe una relación entre aplicaciones.

PAU (authorizeApplication)

AUTHORIZEAPPLICATION_06

La ip no está en la lista de ip's permitidas.

PAU (methodApplicationList)

METHODAPPLICATIONLIST_00

Error durante el proceso de búsqueda

PAU (methodApplicationList)

METHODAPPLICATIONLIST_01

El objeto ParamMethodApplicationList es nulo

PAU (methodApplicationList) 

METHODAPPLICATIONLIST_02

No hay Ips ni métodos asociados a la aplicación

PAU (methodApplicationList)

METHODAPPLICATIONLIST_03

Ha ocurrido algún error al realizar la búsqueda

PAU (methodApplicationList)

METHODAPPLICATIONLIST_04

El Alias de la Aplicación es nulo

PAU (procedureDetail)

PROCEDUREDETAIL_00

Error durante el proceso de búsqueda de procedure detail

PAU (procedureDetail)

PROCEDUREDETAIL_01

El objeto paramProcedureDetail es nulo

PAU (procedureDetail)

PROCEDUREDETAIL_02

No existe un procedimiento para esa signature

PAU (procedureDetail)

PROCEDUREDETAIL_03

La Signature es nula

PAU (getProcedureAttributes)

PROCEDUREATTRIBUTES_00

Error que proviene del webservices.

PAU (getProcedureAttributes)

PROCEDUREATTRIBUTES_01

El objeto paramGetProcedureAttributes es nulo.

PAU (getProcedureAttributes)

PROCEDUREATTRIBUTES_02

La signatura es nula.

PAU (getProcedureAttributes)

PROCEDUREATTRIBUTES_03

El idEntity es nulo.

SIU

5000

No se ha encontrado ningún libro de registro sobre el que se pueda registrar en toda la rama del organismo indicado.

SIU

5001

Error al recuperar información del organismo en SIU.

SIU

5002

Error recuperando el organismo padre.

No se ha encontrado el dato extendido [codigo de identidad] para este organismo.

SIU

5003

Se ha producido un error en la llamada a SIU, organismList

Error al recuperar la lista de organismos. El organismo {valor} no corresponde a ningún organismo ni de SIU ni de SRT.

Se ha pasado el organismo {valor}, que ha sido dado de baja, se ha intentado buscar un organismo válido y se ha llegado a que el organismo {valor} ha sido dado de baja pero no ha sido sustituido por otro. No se ha encontrado un organismo válido y es imposible continuar.

Error al recuperar la lista de organismos. El listado devuelto por SIU es nulo o vacío

SIU (organismList)

ORGANISMLIST_00

Error durante la consulta de los datos de organismos

SIU (organismList) 

ORGANISMLIST_01

El objeto paramOrganismList es nulo

SIU (organismList)

ORGANISMLIST_02

No se han encontrado organismos para estos parámetros de búsqueda

SIU (organismList) 

ORGANISMLIST_03

Ha ocurrido algún error al realizar la búsqueda

SIU (organismList)

ORGANISMLIST_04

No existe el organismo de entrada

SIU (rootFatherOrganismByOrganismCode)

ORGANISMROOTFATHER_00

Error durante la consulta de los datos del padre raíz del organismo

SIU (rootFatherOrganismByOrganismCode) 

ORGANISMROOTFATHER_01

El objeto paramRootFatherOrganism es nulo

SIU (rootFatherOrganismByOrganismCode)

ORGANISMROOTFATHER_02

No existe el organismo del que se pretende averiguar la raíz

SIU (rootFatherOrganismByOrganismCode)

ORGANISMROOTFATHER_03

Ha ocurrido algún error al realizar la búsqueda

SIU (rootFatherOrganismByOrganismCode)

5004

Se ha producido un error en la llamada a SIU, rootFatherOrganismByOrganismCode: {mensaje del error}

SGA

6001

Error al enviar mail de organismo dado de baja al usuario.

IMPORTANTE: Los errores anteriores siempre irán acompañados de un código de error numérico en la cabecera (header) de la respuesta HTTP: 401 (UNAUTHORIZED) → Este código se devuelve cuando la aplicación que realiza la invocación no está autorizada en PAU para utilizar el servicio 400 (BAD REQUEST) → Este código se devuelve cuando el error producido al dar de alta el asiento registral se debe a datos incorrectos introducidos por parte del usuario 500 (INTERNAL SERVER ERROR) → Este código se devuelve cuando se produce un error inesperado al dar de alta el asiento registral Si en la petición no se ha producido ningún error, se obtendrá el código de estado HTTP 200.
2.1.7.- Recepción del código del justificante de registro Una vez que se ha realizado la parte asíncrona, se enviará un evento a través de SGA a la aplicación integradora. Si el justificante de registro se ha generado correctamente, se enviará un evento con los siguientes datos CSV_REGISTER → código del justificante generado ENTRY_CODE → código del asiento registral para que la aplicación integradora pueda asociar el código CSV del justificante de registro al asiento registral obtenido en la petición síncrona ERROR → 0 Si el justificante de registro no se ha podido generar (ha quedado KO al haberse agotado todos los reintentos), se enviará un evento con los siguientes datos CSV_REGISTER → 0 ENTRY_CODE → código del asiento registral del cual no se ha podido generar el justificante ERROR → ERROR GENERACIÓN RECIBO La aplicación integradora debe estar dada de alta en SGA, debe estar suscrita al método "sendEntry" de SRT en SGA para poder recibir los eventos y además debe implementar un servicio REST para poder recibir los eventos y proporcionar la URL REST a SGA para que se de de alta y así, poderlos recibir. En el manual de integración de la aplicación SGA, en el apartado "2. - Servicio IEventsService" se explica el proceso de integración para poder recibir los eventos.

 

2.2.- obtainCalendarDays

2.2.1.- Signatura ParamOutObtainCalendarDays obtainCalendarDays(ParamInObtainCalendarDays params); 2.2.2.- Parámetros Parámetro Tipo Descripción Obligatorio params ParamInObtainCalendarDays Parámetros de entrada para la consulta del calendario Sí El objeto ParamInObtainCalendarDays presenta la siguiente estructura: Parámetro Tipo Longitud máxima Descripción Obligatorio IdApplication String 255 caracteres Id de la aplicación integradora Sí Year String 255 caracteres Año del calendario que se recuperará Si Base String 255 caracteres Indica si se recuperará el predeterminado No           2.2.3.- Resultado Tipo Descripción ParamOutObtainCalendarDays Datos que se recuperarán del calendario El objeto ParamOutObtainCalendarDays presenta la siguiente estructura: Parámetro Tipo Descripción Error GeneralError Objeto que contiene información sobre el error recibido Days List<CalendarDay> Lista de días asociados al calendario que se han recuperado Result/RequestTime String Fecha en la que se ha creado el asiento 2.2.4.- Ejemplo Ejemplo de invocación ParamInObtainCalendarDays param = new ParamInObtainCalendarDays(); param.setYear(2026); param.setIdApplication("APP_CODE"); ParamOutObtainCalendarDays result = restSrtClient.obtainCalendarDays(param); 2.2.5.- Códigos de error
IMPORTANTE: Los errores anteriores siempre irán acompañados de un código de error numérico en la cabecera (header) de la respuesta HTTP: 401 (UNAUTHORIZED) → Este código se devuelve cuando la aplicación que realiza la invocación no está autorizada en PAU para utilizar el servicio 400 (BAD REQUEST) → Este código se devuelve cuando el error producido al dar de alta el asiento registral se debe a datos incorrectos introducidos por parte del usuario 500 (INTERNAL SERVER ERROR) → Este código se devuelve cuando se produce un error inesperado al dar de alta el asiento registral Si en la petición no se ha producido ningún error, se obtendrá el código de estado HTTP 200.