Saltar al contenido
Almanac.ar

Informe por CUIT · Endpoints

Generar (o actualizar) un informe

Genera un informe nuevo, o lo actualiza si tu cuenta ya tenía uno de este CUIT (descuento automático: la actualización cuesta 25% de lo que cuesta un informe nuevo). Es el único endpoint de esta sección que cobra — por eso la consola SIEMPRE consulta el presupuesto primero, y recién con un segundo clic ejecuta esta llamada.

POST/v1/reports

Body

cuitstringrequerido

CUIT (11 dígitos) o DNI (7-8 dígitos, se resuelve a CUIL automáticamente).

Respuesta 200

informe_idstring | null

Id del informe persistido.

cuitstring

El CUIT resuelto.

sectionsobject

Una entrada por sección (identidad, crediticio, cheques, screening, comex, riesgoFiscal, marcas, concursos) — sólo las que resolvieron.

statusok | parcial | no_resuelto

Estado global del informe.

generated_atstring (ISO)

Cuándo se generó.

cache_hitboolean

true si se sirvió un informe ya generado en las últimas 24h, sin recobrar.

tipo_accionnuevo | actualizacion | null

Qué pasó realmente. Ausente/null si cache_hit (no se corrió el Motor: se sirvió un informe ya generado, gratis).

costo_unidadesinteger

Costo real cobrado — nunca mayor a costo_maximo_unidades del presupuesto.

Errores

400cuit_requerido · cuit_invalido · body_invalido

Body ausente/no-JSON, o CUIT/CUIL con dígito verificador incorrecto.

401unauthenticated

Sin sesión ni API key.

402saldo_insuficiente

No te alcanza el saldo (sólo con el modelo de saldo habilitado) — trae los packs disponibles.

403account_suspended · forbidden · channel_disabled

Cuenta suspendida, origen no confiable, o tu plan no habilita el canal API.

409generacion_en_curso

Ya hay una generación en curso para este CUIT en tu cuenta — trae Retry-After.

429rate_limited · daily_limit_exceeded

Demasiadas llamadas seguidas, o tope diario de producto — trae Retry-After.

500internal · informe_no_persistido

Error inesperado. Si es informe_no_persistido, no se cobró nada.

Antes de llamar a este endpoint desde tu backend, entendé el modelo completo en Cómo se compra. Poné el timeout de tu cliente en 60s — el informe tarda 10-15 segundos.

curl -X POST https://api.almanac.ar/v1/reports \
  -H "Authorization: Bearer alm_..." \
  -H "Content-Type: application/json" \
  --max-time 60 \
  -d '{"cuit": "30000000007"}'

Consola

Paso 1 (gratis) — presupuesto de ejemplo:

ejemplo · GET /v1/reports/quote200
{
  "cuit": "30000000007",
  "tipo_accion_estimado": "nuevo",
  "costo_maximo_unidades": 200,
  "saldo": {
    "cupo_disponible_unidades": 300,
    "saldo_comprado_unidades": 0,
    "disponible_informes_nuevos": 1,
    "disponible_actualizaciones": 6
  },
  "alcanza": true,
  "mensaje": null
}
Paso 2 (cobra) — ver informe de ejemplo
ejemplo · POST /v1/reports200
{
  "cuit": "30000000007",
  "sections": {
    "identidad": {
      "title": "Identidad y situación fiscal",
      "fields": [],
      "source": "arca.padron.contribuyentes",
      "snapshot_date": "2026-08-01",
      "status": "ok"
    }
  },
  "status": "ok",
  "generated_at": "2026-08-05T14:32:00.000Z",
  "informe_id": "6e1b9e0a-8f3b-4e9a-9d1e-2b1a5b7d9c10",
  "cache_hit": false,
  "tipo_accion": "nuevo",
  "costo_unidades": 200
}
Generar — POST /v1/reports — Informe por CUIT — Almanac · Almanac