Carga
Mecanismos de identificación y autorización
Para la identificación y autorización de conexiones y accesos, dos son los mecanismos posibles :
- Identificación por certificado electrónico de cliente y comunicación SSL de doble sentido.
En este caso los certificados electrónicos empleados deben haber sido habilitados siguiendo los mecanismos establecidos en cada procedimiento.
- Identificación por credenciales según protocolo OAuth v1.
En este caso, las invocaciones a las interfaces deben ir firmadas de acuerdo a la especificación OAuth v1.0, en la que se utilizarán las siguientes credenciales, que se proporcionarán tras solicitud de los usuarios de acuerdo a los procedmientos publicados en la sede electrónica:
- customerKey
- customerSecret
Casos de uso de carga de ficheros
Las consolidaciones de la información remitida se realizan de forma asíncrona. Para conocer el resultado de una carga en cualquier momento, la interfaz proporciona las operaciones consultar_estado_carga y listar_cargas.
El formato y contenido de cada fichero dependerá del procedimiento que lo requiera, las consideraciones particulares se pueden consultar en la sección de cada uno de ellos:
Para tomar en consideración las características del fichero o los ficheros a cargar, especialmente los de gran tamaño, la interfaz proporciona diversas opciones.
Carga exprés
La carga de ficheros puede realizarse con la invocación de una única operación.
Carga elaborada
La interfaz proporciona otras operaciones para la gestión de cargas de varios ficheros y para la gestión del avance de las subidas, en caso de grandes ficheros.
El caso de carga de varios ficheros con operación simplificada se recoge a continuación.
En el caso de querer gestionar el avance de la subida de cada fichero, la subida se realiza por partes o chunks de los ficheros. El tamaño de cada parte o chunk estará limitado a un máximo de 150 MB y un mínimo de 5 MB, con excepción del tamaño del último chunk.
Es posible emplear ambos mecanismos –subida simplificada o subida fraccionada- indistintamente en una misma carga.
Cancelar carga
Descripción
Cancela la carga que se indique. Cancelar una carga, implica cancelar los ficheros, tanto los que se han terminado de subir como los que estén todavía en proceso.
Sólo se permite la cancelación de cargas en estado INICIADA, el resto no tienen efecto y provoca la aparición de un mensaje de error. Las cargas en estado CANCELADA también se pueden cancelar aunque no tenga efecto alguno.
id="cancelar_carga-Estructuradelaurl" Estructura de la url
https://api.cnmc.gob.es/carga/v1/cancelar_carga/ <uuidCarga> |
Petición
Esta petición se debe enviar utilizando los métodos HTTP GET o DELETE.
Este método no tiene ningún documento JSON asociado en el cuerpo, sino que el identificador de la carga se incluye en la URI de la petición.
Ejemplo Petición
https://api.cnmc.gob.es/carga/v1/cancelar_carga/550e8400-e29b-41d4-a716-446655440000 |
Respuesta
El método no contempla una respuesta específica. La cancelación de la carga se ha realizado correctamente si se recibe un código HTTP 200.
Errores epecíficos
Status | Title | Detail |
---|---|---|
461 | La carga ya había sido cancelada | Ejemplo: La carga de UUID 550e8400-e29b-41d4-a716-446655440000 ya se canceló en fecha 2015-03-31 |
Cancelar fichero
Descripción
Descarta y elimina la carga de un fichero que esté en marcha. Todos los datos ya cargados se perderán.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/cancelar_fichero/ <uuidUpload> |
Ejemplo URL
1 | http://api.cnmc.gob.es/ carga/v1/ cancelar_fichero/550e8400-e29b-41d4-a716-446655440365 |
Petición
Esta petición se debe enviar utilizando el método HTTP GET o DELETE.
El parámetro uuidUpload es el código que representa la subida, irá incluida dentro de la URI.
Respuesta
El método no contempla una respuesta especifica. El descarte del fichero se ha realizado correctamente si se recibe un código HTTP 200.
Errores
Cargar fichero completo
Descripción
Carga un sólo fichero de una vez. Permite cargar ficheros de hasta 10 Gb. Ver Límites de tamaño de los ficheros.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/cargar_fichero_completo?nifPresentador= <nifPresentador>&nifEmpresa=<nifEmpresa>&idProcedimiento=<idProcedimiento>&fechaEfecto=<fechaEfecto>&tipoFichero=<tipoFichero>&nombreFichero=<nombreFichero>&numeroBytes=<Tamaño del fichero>&hash=<> |
Petición
Esta petición recibirá los parámetros codificados en la URL. Estos no pueden ser enviados en el cuerpo de la petición.
Esta petición se debe enviar utilizando el método HTTP PUT.
En el cuerpo de la petición contendrá los bytes del fichero (tamaño máximo indicado arriba).
Los parámetros de la petición son los siguientes:
- nifPresentador: Identificador que representa a la persona (física o jurídica) que presenta el fichero.
- nifEmpresa: Identificador de la empresa a la que pertenece el fichero.
- idProcedimiento: Identificador numérico del procedimiento al que está asociado el fichero.
- fechaEfecto: Este parámetro opcional. Fecha que identifica el periodo para el que se realiza la carga. El formato de esta fecha es MM/DD/YYYY, atención porque es distinto a iniciar_carga
- tipoFichero: Código que identifica el contenido del fichero. Identificador textual. Ej.: FICHERO_REMESAS
- nombreFichero: Este parámetro es opcional. Nombre del fichero origen.
- hash: Este parámetro es opcional. Resumen del fichero, en formato MD5.
- numeroBytes: Tamaño del fichero en bytes.
- observaciones: Parámetro opcional. Mensaje con observaciones que aparecerá en las cargas. No tiene tratamiento automatizado. (Opcional).
Respuesta
La carga se ha realizado correctamente si se recibe un código HTTP 200.
El cuerpo de la respuesta contendrá un documento JSON con el siguiente atributo:
- uuidCarga: Identificador de la carga en formato UUID. Este identificador debe emplearse necesariamente en el resto de las operaciones asociadas a esta carga.
Posteriormente, de manera asíncrona, se generará la notificación correspondiente, esta está descrita en: Notificaciones de cargas.
Ejemplo document JSON Respuesta
1 2 3 4 |
|
Errores
Status | Title | Detail |
---|---|---|
454 | Parámetro incorrecto | El fichero no se ha podido consolidar |
Confirmar carga
Descripción
Consolida la carga de ficheros. Este método cierra el procedimiento de presentación de ficheros asociados a una carga a todos los efectos, incluido el de notificación de la misma.
Estructura de la url
https://api.cnmc.gob.es/carga/v1/confirmar_carga/ <uuidCarga> |
Petición
Esta petición se debe enviar utilizando el método HTTP GET.
El parámetro uuidCarga, que es el código que representa la carga, irá incluido dentro de la URI.
Ejemplo Petición
1 | https://api.cnmc.gob.es/carga/v1/confirmar_carga/550e8400-e29b-41d4-a716-446655440000 |
Respuesta
El método no contempla una respuesta específica. La solicitud de consolidación de la carga se ha realizado correctamente si se recibe un código HTTP 200.Posteriormente, de manera asíncrona, se generará la notificación correspondiente, esta está descrita en: Notificaciones de cargas.
Errores específicos
Status | Title | Detail |
---|---|---|
461 | La carga ya había sido cancelada | Ejemplo: La carga de UUID 550e8400-e29b-41d4-a716-446655440000 se canceló en fecha 2015-03-31 |
Confirmar subida fichero
Descripción
Informa de que la carga del fichero ha terminado y consolida el fichero dentro del sistema.
Estructura de la URL
http://api.cnmc.gob.es/carga/v1/confirmar_subida_fichero/ <uuidUpload> |
<3 id="confirmar_subida_fichero-Petición"> Petición
Esta petición se debe enviar utilizando el método HTTP GET.
El parámetro uuidUpload como código que representa la subida del fichero, irá incluida dentro de la URI.
Ejemplo Petición
1 | https://api.cnmc.gob.es/carga/v1/confirmar_subida_fichero/550e8400-e29b-41d4-a716-446655440365 |
Respuesta
El método no contempla una respuesta especifica. La carga del ficheroha realizado correctamente si se recibe un código HTTP 200.
Errores
Status | Title | Detail |
---|---|---|
404 | No encontrado | El uuidUpload indicado no existe |
452 | El UUID de carga no existe | La sesión de carga relacionada ha expirado |
500 | Error interno | No se ha podido verificar correctamente el hash del fichero |
Consultar estado carga
Descripción
Permite consultar el estado de una carga.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/consultar_estado_carga/<uuidCarga>
Petición
Esta petición se debe enviar utilizando el método HTTP GET.
Este método no tiene ningún documento JSON asociado en el cuerpo, sino que el identificador de la carga se debe incluir en la URI de la petición.
Ejemplo Petición
https://api.cnmc.gob.es/carga/v1/consultar_estado_carga/550e8400-e29b-41d4-a716-446655440000
Respuesta
El cuerpo de la respuesta contendrá un documento JSON que contendrá un estado descrito en: Estados de una carga y la información adicional necesaria, en caso de haber sido rechazada:
- estado: estado de la carga, valores posibles: Estados de una carga
- registrosProcesados: parámetro opcional, con el número de entradas recibidas por el procesador de la carga
- registrosErrores: parámetro opcional, informa del número de entradas erróneas detectadas
- numeroRegistroGeneral: parámetro opcional, informa del identificador del registro de entrada de la carga en el registro general de la CNMC
- posicionEnColaCargas: en caso de que la carga esté en estado CONFIRMADA se rellena con la posición ordinal en dicha cola
- justificante: fichero de justificante de presentación de los ficheros remitidos en la carga
- uuidUpload. Identificación del fichero del justificante.
- url. URL de descarga del fichero del justificante
- longitudBytes. Con el tamaño del fichero en bytes
- mensajeError: En caso de que exista un error general en el tratamiento del fichero se incluirá en este atributo
- errores: parámetro opcional. Lista de información de los errores asociados a los ficheros correspondientes a una carga:
- uuidUpload. Identificación del fichero subido, sobre el que se listan los errores.
- url. URL de descarga del fichero de descripción de los errores
- longitudBytes. Con el tamaño del fichero de errores en bytes
Ejemplo documento JSON Respuesta
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Iniciar carga
Descripción
Inicia una transacción de subida de ficheros asociados a un procedimiento. En posteriores operaciones se asociarán las subidas de ficheros correspondientes a dicha transacción, componiendo la carga completa. Se permitirá un número máximo de 10 cargas simultáneas por empresa y procedimiento
Estructura de la url
https://api.cnmc.gob.es/carga/v1/iniciar_carga |
Petición
Esta petición se debe enviar utilizando los métodos HTTP POST y HTTP PUT.
En el cuerpo de la petición contendrá un documento JSON con la siguiente estructura:
- nifPresentador: Identificador que representa a la persona (física o jurídica) que presenta los ficheros.
- nifEmpresa: Identificador de la empresa a la que pertenecen los ficheros.
- idProcedimiento: Identificador del procedimiento al que están asociados los ficheros.
- fechaEfecto: Parámetro opcional. Fecha que identifica el periodo para el que se realiza la carga. (Opcional).
- observaciones: Parámetro opcional. Mensaje con observaciones que aparecerá en las cargas. No tiene tratamiento automatizado. (Opcional).
Por defecto, permitirá un número máximo de 10 cargas simultáneas por empresa y procedimiento.
Ejemplo documento JSON Petición
1 2 3 4 5 6 |
|
Respuesta
El cuerpo de la respuesta contendrá un documento JSON con los siguientes parámetros:
- uuidCarga: Identificador de la carga en formato UUID. Este identificador debe emplearse necesariamente en el resto de las operaciones asociadas a esta carga.
- expiracionSegundos: Segundos para que caduque esta carga. Durante este tiempo es posible realizar operaciones sobre esta carga, incluida confirmar_carga. El valor por defecto es 172.800s (48h). En caso de alcanzar la caducidad sin la confirmación de la carga, se descartarán las operaciones, ficheros y datos asociados.
Ejemplo document JSON Respuesta
1 2 3 4 |
|
Errores específicos
Status | Title | Detail |
---|---|---|
460 | Se ha excedido el número máximo de cargas simultaneas |
Iniciar subida fichero
Descripción
Inicia una transacción de subida de un fichero indicando. El sistema responderá dando un identificador para controlar la carga.
Estructura de la url
https://api.cnmc.gob.es/carga/v1/iniciar_subida_fichero |
Petición
Esta petición se debe enviar utilizando el método HTTP POST o PUT.
En el cuerpo de la petición contendrá un documento JSON con la siguiente estructura:
- uuidCarga: Identificación de la carga.
- tipoFichero: Código que identifica el contenido del fichero.
- nombreFichero: Este parámetro es opcional. Nombre del fichero origen.
- numeroBytes: Este parámetro es opcional. Tamaño del fichero en bytes.
- hash: Este parámetro es opcional. Resumen fichero SHA-1.
Ejemplo Petición
1 2 3 4 5 6 |
|
Respuesta
En el cuerpo de la respuesta contendrá un documento JSON con el identificador de la subida.
Ejemplo Respuesta
1 2 3 |
|
Errores
Listar cargas
Descripción
Lista las cargas realizadas o en proceso, dependiendo del filtro establecido.
Estructura de la url
https://api.cnmc.gob.es/carga/v1/listar_cargas |
Petición
Esta petición se debe enviar utilizando los métodos HTTP POST o PUT.
El cuerpo de la petición contendrá un documento JSON con la siguiente estructura:
- nifPresentador: Parámetro opcional. Identificador que representa a la persona (física o jurídica) que presenta los ficheros.
- nifEmpresa: Parámetro opcional. Identificador de la empresa a la que pertenecen los ficheros.
- idProcedimiento: Parámetro opcional. Identificador del procedimiento al que están asociados los ficheros.
- uuidCarga: Parámetro opcional. Permite la consulta del detalle de una carga.
- estado: Parámetro opcional. Los valores permitidos se pueden consultar en Estados de una carga. También se puede usar TODAS, que es el valor por defecto.
Ejemplo documento JSON Petición
1 2 3 4 5 |
|
Respuesta
Como máximo, devolverá las últimas 1000 cargas. El cuerpo de la respuesta contendrá un documento JSON que contiene una lista y cada entrada de la lista contiene los siguientes datos:
- uuidCarga: Identificador de la carga.
- nifPresentador: Documento de identificación del presentador.
- nifEmpresa: Identificador de la empresa que presenta el procedimiento.
- idProcedimiento: Código que identifica el procedimiento para el que se esta realizando la carga.
- estado:{INICIADA|CANCELADA|CONFIRMADA|PROCESADA|RECHAZADA}.
- fechaInicio: Fecha de creación e inicio de la carga.
- fechaFin: Fecha de finalización de subida de los ficheros y confirmación de la carga, en su caso.
- fechaFinProceso: Fecha de procesamiento interno de la carga, en su caso.
- fechaEfecto: Fecha de valor de la carga, en caso de que sea periódica, en su caso.
- expiracionSegundos: Tiempo en segundos que restan a la sesión de carga, sólo en cuando esta esté en estado iniciada.
- ficheros: Lista de ficheros asociados a la carga. Cada entrada en la lista contendrá los siguientes datos:
- uuidUpload: Código que identifica la subida del fichero.
- fechaInicioUpload: Fecha de inicio de la subida del fichero.
- fechaFinUpload: Fecha de fin de la subida del fichero, en su caso.
- tipo: Código que identifica el tipo de fichero subido. Por ejemplo "SGDA", "SIPS_GAS_CONSUMOS", etc..
- nombre: Nombre del fichero subido, si se indicó al llamar al método /iniciar_subida_fichero.
- hash: Resumen fichero MD5. Si la subida del fichero no se ha completado, el HASH corresponderá a la parte cargada.
- numeroBytes: Tamaño del fichero en bytes, correspondiente a la parte ya subida.
- estado: Estado en el que se encuentra el fichero: {CARGANDO,CARGADO,RECHAZADO,EN_PROCESO,PROCESADO_OK,PROCESADO_ERROR}.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Listar chunks fichero
Descripción
Lista la información de un fichero concreto e informa de las partes cargadas.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/listar_chunks_fichero/ <uuidUpload> |
Petición
Esta petición se debe enviar utilizando el método HTTP GET.
El parámetro uuidUpload es el código que representa la subida del fichero, irá incluida dentro de la URI.
Respuesta
El cuerpo de la respuesta contendrá un documento JSON que contiene una lista y cada entrada de la lista contiene los siguientes datos:
- uuidUpload: Código que identifica el fichero.
- tipoFichero: Nombre corto que identifica el contenido del fichero.
- numeroBytes: Tamaño del fichero completo en bytes.
- partes: Un lista de las partes cargadas. Cada entrada de la lista contendrá los siguientes datos:
- numeroParte: Número de parte cargada.
- numeroBytes: Número de bytes que contiene la parte.
Ejemplo Petición
1 | https://api.cnmc.gob.es/carga/v1/listar_chunks_fichero/550e8400-e29b-41d4-a716-446655440365 |
Ejemplo Respuesta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Errores
Subir chunk fichero
Descripción
Permite cargar ficheros grandes en múltiples trozos. Esta operación ofrece la posibilidad de continuar la carga, si esta se interrumpiese.
Los contenidos se subirán usando el tipo de contenido: multipart/form-data
https://www.ietf.org/rfc/rfc2388.txt
Uso:
- Se hace una peticion a /iniciar_carga para abrir una sesión de subida de ficheros. En la respuesta se recibe un uuidCarga que identifica la carga.
- Se hace una petición a /iniciar_subida_fichero para abrir la transacción en el sistema para un fichero. En la respuesta recibirás un uuidUpload que identifica el fichero.
- Se hacen repetidas peticiones a /subir_chunk_fichero usando el uuidUpload para identificar la subida.
- Se hará una llamada a /confirmar_subida_fichero para consolidar la subida del fichero.
- Se repetirá del punto 2 al 4 tantas veces como ficheros se asocien a la carga.
- Se hace una petición a /confirmar_carga usando el uuidCarga, para consolidar presentación de todos los ficheros asociados a una carga.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/subir_chunk_fichero/ <uuidFichero>?numeroParte=<partNumber>&tamanoParte=<tamanoParte> |
Petición
Esta petición recibirá los parámetros codificados en la URL. Estos no pueden ser enviado en el cuerpo de la petición. El tamaño de chunck estará limitado a un máximo de 150 MB y un mínimo de 5 MB, con excepción del tamaño del último chunk. En caso de que sea una subida completa de un solo chunk (numeroParte no enviado) el tamaño máximo se amplia hasta 10 Gb.
Esta petición se debe enviar utilizando el método HTTP POST o PUT.
En el cuerpo de la petición contendrá los bytes del chunk, usando la codificación "multipart/form-data".
Los parámetros de la petición son los siguientes:
- uuidUpload: El identificador obtenido de la petición /iniciar_subida_fichero
- numeroParte: Posición del chunk en el fichero. En caso de consignarse, se presupone que el fichero se sube completamente con esta operación.
- tamanoParte: Tamaño en bytes del chunk.
Respuesta
El método no contempla una respuesta especifica. La carga del chunk ha realizado correctamente si se recibe un código HTTP 200.
Errores
Status | Title | Detail |
---|---|---|
404 | No encontrado | El uuidUpload indicado no existe |
452 | El UUID de carga no existe | La sesión de carga relacionada ha expirado |
454 | Parámetro incorrecto | El tamaño de chunk no se corresponde al indicado |
Subir fichero completo
Descripción
Permite subir ficheros en una única operación en el ámbito de una carga ya iniciada.
Uso:
- Se hace una petición a /iniciar_carga para abrir una sesión de subida de ficheros. En la respuesta se recibe un uuidCarga que identifica la carga.
- Se hace una petición a /isubir_fichero_completo.
- Se podrá repetir el punto 2 tantas veces como ficheros se asocien a la carga.
- Se hace una petición a /confirmar_carga usando el uuidCarga, para consolidar todos los ficheros.
Estructura de la URL
https://api.cnmc.gob.es/carga/v1/subir_fichero_completo?uuidCarga= <Id de la carga>&tipoFichero=<Id del tipo fichero>&nombreFichero=<Nombre opcional del fichero>&numeroBytes=<Tamaño del fichero>&hash=<> |
Petición
Esta petición recibirá los parámetros codificados en la URL. Estos no pueden ser enviado en el cuerpo de la petición. El tamaño máximo del fichero a enviar es de 10 Gb. Ver Límites de tamaño de los ficheros
Esta petición se debe enviar utilizando el método HTTP POST o PUT.
En el cuerpo de la petición contendrá los bytes del fichero.
Los parámetros de la petición son los siguientes:
- uuidCarga: Identificación de la carga.
- tipoFichero: Código que identifica el contenido del fichero.
- nombreFichero: Este parámetro es opcional. Nombre del fichero origen.
- numeroBytes: Tamaño del fichero en bytes.
- hash: Este parámetro es opcional. Resumen fichero MD5
Respuesta
El cuerpo de la respuesta contendrá un documento JSON con el identificador de la subida.
Ejemplo Respuesta
|
Errores
Status | Title | Detail |
---|---|---|
404 | No encontrado | El uuidUpload indicado no existe |
452 | El UUID de carga no existe | La sesión de carga relacionada ha expirado |
454 | Parámetro incorrecto | El tamaño de chunk no se corresponde al indicado |
Estados de una carga
El ciclo de vida de una carga, como se puede ver en los Casos de uso de carga de ficheros, incluye una serie de estados por los que puede pasar una carga de ficheros:
- INICIADA. La carga ha sido iniciada, por ejemplo con: iniciar_carga.
- CONFIRMADA. La carga ha sido incorporada al sistema pero todavía no se ha iniciado su tratamiento. Ej. al lanzar: confirmar_carga
- CANCELADA. La carga ha sido cancelada por el solicitante y todos sus ficheros eliminados. Llamando al servicio: cancelar_carga
- EN_PROCESO. El sistema receptor final (SGDA u otro) ha recibido la tarea de procesamiento de la carga.
- PROCESADA. El sistema receptor ha finalizado, sin especificar si ha sido exitosa o con fallo.
- ACEPTADA. El sistema receptor ha procesado la carga completa y todos los registros son correctos.
- ACEPTADA_PARCIALMENTE. El sistema receptor ha procesado la carga completa y ha incorporado algunos pero no en su totalidad. Los errores se pueden consultar en el fichero adjunto.
- RECHAZADA. El sistema receptor ha procesado la carga pero no ha incorporado ningún registro. Puede ser por algún error general de formato, en cualquier caso los errores se pueden consultar en el fichero adjunto. Esto se puede ver llmando a consultar_estado_carga
Límites de tamaño de los ficheros
Las cargas (subidas) de ficheros tienen un límite de 10Gb, tanto en las llamadas al API cargar_fichero_completo como subir_fichero_completo
Las descargas, en principio, no están limitadas.
Existe una política de bloqueo de solicitudes masivas/sucesivas para evitar el abuso y los ataques DoS