Endpoints de la API de carga (2019/03)
Los endpoints de Upload permiten a los usuarios enviar archivos al servidor BSN.Cloud.
URL base para este endpoint: https://api.bsn.cloud/Upload/2019/03/REST
_________________________________________________________________________
ELIMINAR /Sessions/{SessionToken}/
Cancela la sesión de carga de contenido especificada
______________________________________________________________
Segmento
- TokenDeSesión string: El token de la sesión Content Upload generado por el servidor
______________________________________________________________
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en WIxMjM0NTY3ODkwIiwibmF
DELETE /Upload/2019/03/REST/Sessions/WIxMjM0NTY3ODkwIiwibmF/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate______________________________________________________________
Respuesta exitosa
204: La sesión Content Upload especificada se canceló correctamente
Respuesta de error
401: El token de acceso no es válido o no se especificó
403: El token de acceso proporcionado, aunque válido, no brinda acceso a este método
404: No se encontró la sesión Content Upload con el token de sesión especificado
412: El estado actual de la sesión Content Upload tiene una marca de tiempo diferente a la especificada en la solicitud
5XX: Cualquier código 500 es un error interno del servidor
PUBLICAR /Sessions/{SessionToken}/Uploads/
Crea una nueva Content Upload ya sea dentro del alcance de la sesión Content Upload especificada o de forma independiente
______________________________________________________________
Segmento
- TokenDeSesión string: El token de la sesión Content Upload generado por el servidor o Ninguno si la nueva Content Upload es independiente
______________________________________________________________
Cuerpo de la solicitud
______________________________________________________________
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en WIxMjM0NTY3ODkwIiwibmF
Ejemplo de Content Upload
POST /Upload/2019/03/REST/Sessions/WIxMjM0NTY3ODkwIiwibmF/Uploads/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.content.upload.status.201903+json, application/vnd.bsn.content.upload.negotiation.status.201903+json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflateEsta solicitud admite múltiples representaciones de payload para los diferentes casos de uso:
- La representación application/vnd.bsn.start.content.upload.arguments.201903+json se utiliza para iniciar la nueva carga de Entidad de contenido (2022/06) como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.content.upload.arguments.201903+json
Content-Length: 277
{
"sessionToken": null,
"uploadToken": null,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.start.content.update.arguments.201903+json se utiliza para modificar la Entidad de contenido (2022/06) cargada previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.content.update.arguments.201903+json
Content-Length: 300
{
"sessionToken": null,
"uploadToken": null,
"contentId": 12345,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json se utiliza para modificar el Entidad de activos de página web (2022/06) cargado previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json
Content-Length: 371
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": null,
"webPageAssetId": 0,
"relativePath": "/assets/text/",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}______________________________________________________________
Cuerpo de la respuesta correcta
201: Devuelve el URI y la marca de tiempo de la entidad Estado de carga de contenido (2019/03)
Ejemplos
Esta respuesta admite múltiples representaciones de payload para los diferentes casos de uso:
- La representación application/vnd.bsn.content.upload.status.201903+json de Estado de carga de contenido (2019/03) que se utiliza para cargas de contenido que no tienen equivalentes en la carpeta de destino:
{
"sessionToken": "",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 0,
"fileName": "Hello World.txt",
"fileSize": 12,
"shA1Hash": "",
"state": "Started",
"startTime": "2025-08-26T23:47:37.937Z",
"endTime": null,
"lastActivityTime": "2025-08-26T23:47:37.937Z",
"chunks": [
{
"count": 0,
"length": 12,
"state": "Uploading"
}
]
}- La representación application/vnd.bsn.content.upload.negotiation.status.201903+json de Estado de negociación de contenido (2019/03) que se utiliza para indicar que hay contenido equivalente en la carpeta de destino y proporcionar detalles al respecto:
{
"sessionToken": "",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 0,
"fileName": "Hello World.txt",
"fileSize": 12,
"shA1Hash": "",
"state": "Started",
"startTime": "2025-08-26T23:47:37.937Z",
"endTime": null,
"lastActivityTime": "2025-08-26T23:47:37.937Z",
"chunks": null,
"matchingFiles": [
{
"id": 12345,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Text",
"fileSize": 12,
"shA1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"uploadDate": "2025-08-05T16:30:15.003Z"
}
]
}Respuesta de error
300: No se especifican las representaciones aceptables de Content Upload
400: Los Content Upload Arguments especificados están incompletos o no son aceptables
401: El token de acceso es inválido o no se especificó
404: No se encontró la sesión de carga de contenido con el token de sesión especificado
406: La representación especificada de la entidad Content Upload no es aceptable
415: La representación especificada de los argumentos de Content Upload es inválida o no es compatible
5XX: Cualquier código 500 es un error interno del servidor
GET /Sessions/{SessionToken}/Uploads/{UploadToken}/
Recupera el estado de la Content Upload especificada
______________________________________________________________
Segmento
- TokenDeSesión string: El Content Upload Session Token generado por el servidor o Ninguno si la nueva Content Upload es independiente
- Token de carga string: El Upload Token generado por el servidor
______________________________________________________________
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en Ninguno
- Token de carga se establece en 321e6fc1-553f-4bb0-8c7a-d5bf859be6b2
GET /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.content.upload.status.201903+json
Accept-Encoding: gzip,deflate______________________________________________________________
Cuerpo de la respuesta exitosa
200: Se recuperó correctamente Estado de carga de contenido (2019/03)
Ejemplo
{
"sessionToken": "",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 0,
"fileName": "Hello World.txt",
"fileSize": 12,
"shA1Hash": "",
"state": "Started",
"startTime": "2025-08-26T23:47:37.937Z",
"endTime": null,
"lastActivityTime": "2025-08-26T23:47:37.937Z",
"chunks": [
{
"count": 0,
"length": 12,
"state": "Uploading"
}
]
}Respuesta exitosa
304: La marca de tiempo especificada en la solicitud es igual o más reciente que la marca de tiempo en el estado actual de Content Upload
Respuesta de error
300: No se especifican representaciones aceptables de Content Upload Session
401: El token de acceso es inválido o no se especificó
404: No se encontró una sesión de Content Upload con el token de sesión especificado o no se encontró la Content Upload con el token de carga especificado
406: La representación especificada de la entidad Content Upload Session no es aceptable
5XX: Cualquier código 500 es un error interno del servidor
PUT /Sessions/{SessionToken}/Uploads/{UploadToken}/
Actualiza el estado de la Content Upload especificada
______________________________________________________________
Segmento
- SessionToken string: El Content Upload Session Token generado por el servidor o Ninguno si la nueva carga de contenido es independiente
- Token de carga string: El Content Upload Token generado por el servidor
______________________________________________________________
Cuerpo de la solicitud
- Los ArgumentosDeCargaDeContenido (2019/03) para una nueva carga de contenido, o ArgumentosDeActualizaciónDeContenido (2019/03) para editar el contenido existente (cargado previamente), o ArgumentosDeCargaDeRecursosDePáginaWeb (2019/03) para una nueva carga de recursos de página web.
______________________________________________________________
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en Ninguno
- Token de carga se establece en 321e6fc1-553f-4bb0-8c7a-d5bf859be6b2
Ejemplo de carga, inicio y finalización de contenido
PUT /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.content.upload.status.201903+json, application/vnd.bsn.content.upload.negotiation.status.201903+json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflateEsta solicitud admite múltiples representaciones de payload para los diferentes casos de uso:
- La representación application/vnd.bsn.start.content.upload.arguments.201903+json se utiliza para iniciar una carga de entidad @content dentro de una sesión en curso como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.content.upload.arguments.201903+json
Content-Length: 345
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.content.upload.arguments.201903+json se utiliza para aclarar una carga de Entidad de contenido (2022/06) en curso como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.content.upload.arguments.201903+json
Content-Length: 351
{
"sessionToken": null,
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.complete.content.upload.arguments.201903+json se utiliza para completar cargas de Entidad de contenido (2022/06) iniciadas previamente como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.complete.content.upload.arguments.201903+json
Content-Length: 351
{
"sessionToken": null,
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.start.content.update.arguments.201903+json se utiliza para iniciar una nueva carga que modifica el Entidad de contenido (2022/06) cargado previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.content.update.arguments.201903+json
Content-Length: 368
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 12345,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.content.update.arguments.201903+json se utiliza para aclarar una carga en curso que modifica un Entidad de contenido (2022/06) cargado previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.content.update.arguments.201903+json
Content-Length: 374
{
"sessionToken": null,
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 12345,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.complete.content.upload.arguments.201903+json se utiliza para finalizar una carga que modifica el Entidad de contenido (2022/06) cargado previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.complete.content.upload.arguments.201903+json
Content-Length: 374
{
"sessionToken": null,
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 12345,
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json se utiliza para mostrar el estado de una nueva carga de Entidad de activos de página web (2022/06) como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json
Content-Length: 371
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"webPageAssetId": 0,
"relativePath": "/assets/text/",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.webpage.asset.upload.arguments.201903+json se utiliza para aclarar una carga en curso de Entidad de activos de página web (2022/06) como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.webpage.asset.upload.arguments.201903+json
Content-Length: 445
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"webPageAssetId": 0,
"relativePath": "/assets/text/",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}- La representación application/vnd.bsn.complete.webpage.asset.upload.arguments.201903+json se utiliza para completar cargas de Entidad de activos de página web (2022/06) iniciadas previamente, como se muestra en el siguiente ejemplo:
Content-Type: application/vnd.bsn.complete.webpage.asset.upload.arguments.201903+json
Content-Length: 445
{
"sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"webPageAssetId": 0,
"relativePath": "/assets/text/",
"fileName": "Hello World.txt",
"virtualPath": "\\Shared\\Unsorted\\",
"mediaType": "Auto",
"fileSize": 12,
"fileLastModifiedDate": "0001-01-01T00:00:00",
"sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"fileThumb": null,
"tags": {}
}______________________________________________________________
Cuerpo de la respuesta exitosa
200: Devuelve el Estado de carga de contenido (2019/03)
Ejemplo
{
"sessionToken": "",
"uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
"contentId": 0,
"fileName": "Hello World.txt",
"fileSize": 12,
"shA1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
"state": "Started",
"startTime": "2025-08-26T23:47:37.937Z",
"endTime": null,
"lastActivityTime": "2025-08-26T23:47:37.937Z",
"chunks": [
{
"count": 0,
"length": 12,
"state": "Uploading"
}
]
}Respuesta de error
300: No se especifican las representaciones aceptables de la sesión de carga de contenido
400: Los argumentos de la sesión de carga de contenido especificados están incompletos o no son aceptables
401: El token de acceso no es válido o no fue especificado
404: No se encontró la sesión de carga de contenido con el token de sesión especificado o no se encontró la carga de contenido con el token de carga especificado
406: La representación especificada de la entidad de sesión de carga de contenido no es aceptable
412: El estado actual de la sesión de carga de contenido tiene una marca de tiempo diferente a la especificada en la solicitud
415: La representación especificada de los argumentos de la sesión de carga de contenido no es válida o no es compatible
5XX: Cualquier código 500 es un error interno del servidor
ELIMINAR /Sessions/{SessionToken}/Uploads/{UploadToken}/
Cancela la carga de contenido especificada
______________________________________________________________
Segmento
- TokenDeSesión string: El token de sesión de carga de contenido generado por el servidor o Ninguno si la nueva carga de contenido es independiente
- Token de carga string: El token de carga de contenido generado por el servidor
______________________________________________________________
Ejemplo de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en Ninguno
- Token de carga se establece en 321e6fc1-553f-4bb0-8c7a-d5bf859be6b2
DELETE /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate______________________________________________________________
Respuesta exitosa
204: La carga de contenido especificada fue cancelada correctamente
Respuesta de error
401: El token de acceso no es válido o no fue especificado
404: No se encontró la sesión de carga de contenido con el token de sesión especificado o no se encontró la carga de contenido con el token de carga especificado
412: El estado actual de la carga de contenido tiene una marca de tiempo diferente a la especificada en la solicitud
5XX: Cualquier código 500 es un error interno del servidor
GET /Sessions/{SessionToken}/Uploads/{UploadToken}/Chunks/
Recupera el estado de los Content Chunks en la Content Upload activa especificada
______________________________________________________________
Segmento
- TokenDeSesión string: El Content Upload Session Token generado por el servidor o Ninguno si la nueva Content Upload es independiente
- Token de carga string: El Content Upload Token generado por el servidor
______________________________________________________________
Ejemplos de solicitud
Los parámetros y encabezados de la solicitud de ejemplo se establecen de la siguiente manera:
- TokenDeSesión se establece en Ninguno
- Token de carga se establece en 321e6fc1-553f-4bb0-8c7a-d5bf859be6b2
GET /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/Chunks/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.upload.content.chunk.status.list.201903+json
Accept-Encoding: gzip,deflate______________________________________________________________
Cuerpo de la respuesta satisfactoria
200: Se recuperó correctamente una matriz de entidades ContentChunkStatus (2019/03)
Ejemplo
[
{
"count": 0,
"length": 12,
"state": "Uploading"
}
]Respuesta de error
300: Las representaciones aceptables de Content Upload Session no están especificadas
401: El token de acceso no es válido o no está especificado
404: No se encontró una Content Upload Session con el token de sesión especificado o no se encontró la Content Upload con el token de carga especificado
406: La representación especificada de la entidad Content Chunk no es aceptable
5XX: Cualquier código 500 es un error interno del servidor
POST /Sessions/{SessionToken}/Uploads/{UploadToken}/Chunks/
Carga un nuevo Content Chunk dentro del alcance del ContentChunkStatus (2019/03)
______________________________________________________________
Parámetros de Query String
- desplazamiento string required: Posición inicial de la parte del archivo actual
______________________________________________________________
Segmento
- TokenDeSesión string: El Content Upload Session Token generado por el servidor o Ninguno si la nueva Content Upload es independiente
- Token de carga string: El token de carga de contenido generado por el servidor
______________________________________________________________
Cuerpo de la solicitud
______________________________________________________________
Ejemplos de solicitud
Los parámetros y encabezados de solicitud de ejemplo se configuran de la siguiente manera:
- desplazamiento se establece en 0
- TokenDeSesión se establece en Ninguno
- Token de carga se establece en 321e6fc1-553f-4bb0-8c7a-d5bf859be6b2
POST /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/Chunks/?offset=0 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/octet-stream
Content-Length: 12Este es el cuerpo de solicitud de ejemplo:
Hello World!______________________________________________________________
Respuesta exitosa
202: El Content Chunk especificado se ha agregado correctamente a la cola
Respuesta de error
400: Los datos del Content Chunk especificado están incompletos o no son aceptables
401: El token de acceso no es válido o no se ha especificado
404: No se encontró una sesión de carga de contenido con el token de sesión especificado o no se encontró la carga de contenido con el token de carga especificado
415: El formato del Content Chunk especificado no es válido o no es compatible
5XX: Cualquier código 500 es un error interno del servidor