Factuarea API
Tancaments mensuals del registre

Obtenir el segell d'un registre mensual

Obtén el segell digital d'un registre de jornada mensual pel id (UUID v7) del tancament, juntament amb el seu estat de verificació recomputat en viu contra la instantània actual: verified és true quan la instantània i la signatura estan intactes; en un altre cas verification_reason explica el desajust (snapshot_mismatch, signature_invalid o certificate_unreadable). El segell exposa el seu digest, signatura i certificat de signatura perquè un tercer pugui verificar-lo. Un tancament sense segell — o pertanyent a una altra empresa — retorna 404 monthly_register_signature_not_found (anti-enumeració).

GET
/monthly-time-record-closes/{monthly_time_record_close}/seal
AuthorizationBearer <token>

A: header

Paràmetres de ruta

monthly_time_record_close*string

Paràmetres de capçalera

Factuarea-Version?string

Fixa la versió de l'API (YYYY-MM-DD, versionat per data estil Stripe) per a aquesta petició; omet-lo per usar la versió fixada de la clau, o l'última si no n'hi ha cap. Versió no suportada → 400 unsupported_api_version; mal formada → 400 parameter_invalid_format. La versió efectiva es reflecteix a la capçalera de resposta Factuarea-Version. Consulta la guia de Versioning.

Formatdate
X-Active-Profile?string

Opera en nom d'una empresa filla (API key mestra de gestoria): passa el seu id públic (UUID v7) i la petició s'executa contra les dades d'aquella filla sense canviar l'scope, el tier ni l'environment de la clau (omet-lo per usar la pròpia empresa de la clau). UUID no vàlid → 400 parameter_invalid_uuid; id desconegut o no propi → 404 profile_not_found. Consulta la guia d'Acting on behalf.

Formatuuid

Cos de la resposta

application/json

application/json

application/json

application/json

application/json

application/json

import { Factuarea } from "@factuarea/sdk";const factuarea = new Factuarea({ apiKey: process.env.FACTUAREA_API_KEY! });const result = await factuarea.monthlyTimeRecordCloses.sealShow("01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01");
{
  "data": {
    "id": "01933a41-15ba-74c6-8cd3-ad1e2f3a4b01",
    "object": "monthly_register_signature",
    "monthly_time_record_close_id": "01933a40-04a9-73b5-9bc2-9c0d1e2f3a01",
    "digest": {
      "algorithm": "sha256",
      "value": "9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08"
    },
    "signature": {
      "algorithm": "RSA-SHA256",
      "value": "MEUCIQD8pXn0m2rT1cZ0Yb9k3Qq7Jc1oV9Wm5nX2sQe4rT8AgIgH1kL0pN3vB6yD9fR2sT4uW7xY0zA1bC3dE5fG8hI2k="
    },
    "certificate": {
      "serial_number": "3A:7F:1C:9E:2D:0B:44:8A",
      "subject_name": "ACME SOLUTIONS SL",
      "thumbprint": "A1B2C3D4E5F60718293A4B5C6D7E8F901A2B3C4D5E6F708192A3B4C5D6E7F8090",
      "valid_to": "2027-11-30T23:59:59Z"
    },
    "sealed_by_id": "01933a1f-8c21-7b3d-9e4f-1a2b3c4d5ecc",
    "sealed_at": "2026-05-02T08:05:00Z",
    "verified": true,
    "verification_reason": "verified"
  }
}

{
  "error": {
    "type": "authentication_error",
    "code": "missing_api_key",
    "message": "No se ha proporcionado una API key válida en el header Authorization.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#missing_api_key",
    "request_id": "req_01HKQS5N8VR7QXJ9K3T6BWPMZA"
  }
}

{
  "error": {
    "type": "authorization_error",
    "code": "insufficient_scope",
    "message": "Esta API key no tiene el scope requerido para esta operación.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#insufficient_scope",
    "request_id": "req_01HKQS5NBC3P8M1KX4V7SLNHQD"
  }
}

{
  "error": {
    "type": "not_found_error",
    "code": "resource_not_found",
    "message": "El recurso solicitado no existe o pertenece a otra empresa.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#resource_not_found",
    "request_id": "req_01HKQS5NEQ6X1R4N9B0C5DWTPG"
  }
}

{
  "error": {
    "type": "rate_limit_error",
    "code": "rate_limit_exceeded",
    "message": "Has excedido el rate limit de 60 peticiones por minuto. Reintenta tras 30 segundos.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#rate_limit_exceeded",
    "request_id": "req_01HKQS5NKW1C6W9T4G5H0JBZVL"
  }
}

{
  "error": {
    "type": "api_error",
    "code": "internal_error",
    "message": "Ha ocurrido un error inesperado. Si persiste, contacta con soporte adjuntando el request_id.",
    "param": null,
    "doc_url": "https://docs.factuarea.com/guides/errors#internal_error",
    "request_id": "req_01HKQS5NLX2D7X0U5H6J1KCAWM"
  }
}