Tasvalúo SAI

Archivos

Subir el PDF antes de crear un avalúo con referencia a archivo.

Estos endpoints devuelven el file_id que después se envía en document.file_id de POST /v1/avaluos. Si prefieres una sola llamada, usa POST /v1/avaluos/procesar. Guía: crear un avalúo.

POST/v1/files/presignavaluos:write

URL prefirmada para subir el PDF

POST/v1/filesavaluos:write

Sube un PDF (multipart)

Subir un PDF (multipart)

POST/v1/filesavaluos:write

Sube un PDF (multipart)

Sube el PDF directamente en el campo file (máx. 30 MB, sólo PDF). Devuelve el file_id para usar en document.file_id de POST /v1/avaluos.

Cuerpo multipart/form-data
CampoTipoDescripción
filerequeridoarchivoArchivo PDF (máx. 30 MB, Content-Type: application/pdf).
Petición
curl -X POST "$API_URL/v1/files" \
  -H "x-api-key: $API_KEY" \
  -F "file=@avaluo.pdf;type=application/pdf"
Respuesta

201Archivo subido.

{
  "file_id": "uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf",
  "url": "https://storage.example.com/uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf?X-Amz-Signature=…",
  "tamano_bytes": 482133,
  "nombre_archivo": "avaluo.pdf"
}
Errores
HTTPCuándo ocurre
400Falta el archivo (Falta el archivo (campo "file")), no es un PDF (Solo se permiten archivos PDF) o se envió con otro nombre de campo (Unexpected field - <campo>).
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
413El archivo supera los 30 MB (File too large).
429Se superó el límite de peticiones (rate limit).

Pedir una URL prefirmada

POST/v1/files/presignavaluos:write

URL prefirmada para subir el PDF

Alternativa a POST /v1/files cuando no quieres que el PDF pase por el API: devuelve una URL prefirmada a la que el cliente sube el archivo con un PUT directo al almacenamiento. El Content-Type del PUT debe ser exactamente el content_type devuelto, o la firma se rechaza. Después usa el file_id en document.file_id de POST /v1/avaluos.

La URL caduca a los 15 minutos.

Cuerpo application/json
CampoTipoDescripción
filenamestringNombre del archivo. Sólo informativo: no se usa para construir el file_id, que siempre es aleatorio. (máx. 200 caracteres)
content_typestringContent-Type con el que se firma. El PUT debe enviar exactamente este valor. (máx. 120 caracteres, por defecto "application/pdf")
Petición
curl -X POST "$API_URL/v1/files/presign" \
  -H "x-api-key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filename": "avaluo.pdf",
  "content_type": "application/pdf"
}'
Respuesta

201URL prefirmada emitida.

{
  "file_id": "uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf",
  "upload_url": "https://storage.example.com/uploads/3f6c2a4e-8b1d-4c7a-9e2f-5d8b7a1c0e94.pdf?X-Amz-Signature=…",
  "content_type": "application/pdf"
}
Errores
HTTPCuándo ocurre
400Cuerpo o parámetros inválidos. message es un arreglo con un texto por problema (campo faltante, tipo incorrecto o campo no permitido). filename admite hasta 200 caracteres y content_type hasta 120.
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
429Se superó el límite de peticiones (rate limit).

Después, sube el archivo a upload_url:

curl -X PUT "$UPLOAD_URL" -H "Content-Type: application/pdf" --data-binary @avaluo.pdf

On this page