Saltar al contenido principal

Quickstart

Esta guía recorre el camino mínimo para obtener un resultado de classification desde DVS. Validation funciona igual — basta reemplazar el endpoint del paso 3 y el evento de resultado del paso 5.

Prerrequisitos

Es necesario contar previamente con:

  • Credenciales de sandbox (client_id y client_secret) emitidas por OSIGU. Todos los ejemplos de esta guía apuntan a sandbox — al pasar a producción, cambiar a los hosts de producción (https://dvs-ingestion-api.osigu.com para la API y https://api.osigu.com/v1/oauth/token para OAuth) y usar las credenciales de producción.
  • Acceso de red desde los servidores hacia https://dvs-ingestion-api.sandbox.osigu.com (DVS) y https://sandbox.osigu.com (OAuth).
  • Un documento de prueba (PDF o imagen) para clasificar.

1. Obtener un access token

Grant_type OAuth2 client credentials. Enviar client_id:client_secret como HTTP Basic auth y grant_type como parámetro en el query string:

curl --location --request POST \
"https://sandbox.osigu.com/v1/oauth/token?grant_type=client_credentials" \
--header "Authorization: Basic $(echo -n "$CLIENT_ID:$CLIENT_SECRET" | base64)"

Response:

{
"access_token": "7dd4f350-676e-4257-9d7b-f3c5ac4dfi14",
"token_type": "bearer",
"expires_in": 86399,
"scope": "read write",
"extensions": { "provider_slug": "br-gamma" }
}

El access_token es una cadena opaca (no un JWT), válida por ~24 horas por defecto. El mapa extensions lleva metadatos del tenant (p. ej., provider_slug) — útiles para logging y debugging.

Cachear el token en memoria y reutilizarlo hasta acercarse a la expiración. No golpear el endpoint OAuth en cada llamada a la API.

Ver Obtención de Access Tokens para la referencia completa.

2. Preparar el documento

Es posible enviar el documento de una de tres formas:

Recomendado para archivos de menos de 3 MB. No requiere configuración previa.

BASE64=$(base64 -i document.pdf)

3. Clasificar el documento

curl -X POST https://dvs-ingestion-api.sandbox.osigu.com/v1/classification-requests \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: req-$(uuidgen)" \
-d "{
\"mode\": \"sync\",
\"file\": {
\"content_base64\": \"$BASE64\",
\"mime_type\": \"application/pdf\"
},
\"country_code\": \"BR\",
\"external_ref_id\": \"my-internal-id-12345\"
}"

4. Leer la response

En caso de éxito se obtiene un 200 OK (sync) o 202 Accepted (async). La response sync se ve así:

{
"classification_request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "SADT",
"status": "COMPLETED",
"classifier_slug": "br-default-v1",
"mode": "sync",
"auto_validate": false,
"validation_request_id": null,
"external_ref_id": "my-internal-id-12345",
"timestamp": "2026-06-03T17:42:18.224Z",
"duration_ms": 3187
}

El type es uno de los 17 tipos de documento brasileños — ver Tipos de Documento para el catálogo completo.

5. (Solo async) Recibir el webhook

Si se eligió mode=async, la response es 202 Accepted con el classification_request_id. DVS envía un webhook firmado al endpoint registrado cuando el procesamiento se completa.

Implementar el receptor toma menos de 30 líneas de código en cualquier lenguaje. Saltar a Implementar Receptor de Webhooks para la receta completa con verificación HMAC.

Qué sigue