Skip to main content
Glama
Frihet-io

Frihet MCP Server

by Frihet-io

Get FACe Submission Status

face_status
Read-onlyIdempotent

Check the status of a Spanish FACe invoice submission. Returns current state code, description, and registro number.

Instructions

Poll the status of a FACe (Spain B2G) invoice submission. Returns the current FACe portal state code, description, and the registro number.

Common FACe status codes: • 1200 — Registrada / Registered (submission received) • 1300 — En proceso de contabilización / In accounting (being processed) • 1400 — Contabilizada / Accounted (approved, awaiting payment) • 2400 — Anulada / Cancelled • 3100 — Rechazada / Rejected (check rejectionReason)

/ Consulta el estado de un envío a FACe. Devuelve el código de estado, descripción y número de registro.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesFrihet invoice ID (same as used in face_submit) / ID de la factura

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codigoYesFACe status code (e.g. '1200'=Registrada, '1400'=Contabilizada, '3100'=Rechazada)
motivoYesReason/motive associated with the current status (e.g. rejection motive)
descripcionYesHuman-readable FACe status description
numeroRegistroYesFACe registration number for this submission
estadoTramitacionYesFACe processing-state code (estado de tramitación)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.16.3
  2. Removedv1.15.2
  3. Changed10 schema fields changedv1.14.5
    • addedOutput schema / properties / codigo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "FACe status code (e.g. '1200'=Registrada, '1400'=Contabilizada, '3100'=Rechazada)"
      +}
    • addedOutput schema / properties / descripcion
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Human-readable FACe status description"
      +}
    • addedOutput schema / properties / estadoTramitacion
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "FACe processing-state code (estado de tramitación)"
      +}
    • addedOutput schema / properties / motivo
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Reason/motive associated with the current status (e.g. rejection motive)"
      +}
    • addedOutput schema / properties / numeroRegistro
      Added value: +{
      +  "description": "FACe registration number for this submission",
      +  "type": "string"
      +}
    • removedOutput schema / properties / registroFACe
      Removed value: -{
      -  "description": "FACe registration number",
      -  "type": "string"
      -}
    • removedOutput schema / properties / rejectionReason
      Removed value: -{
      -  "description": "Rejection reason if statusCode=3100",
      -  "type": "string"
      -}
    • removedOutput schema / properties / statusCode
      Removed value: -{
      -  "description": "FACe status code (e.g. '1200'=Registrada, '1400'=Contabilizada, '3100'=Rechazada)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / statusDescription
      Removed value: -{
      -  "description": "Human-readable FACe status description",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "registroFACe",
      -  "statusCode",
      -  "statusDescription"
      -]New value: +[
      +  "numeroRegistro",
      +  "estadoTramitacion",
      +  "codigo",
      +  "descripcion",
      +  "motivo"
      +]
  4. Addedv1.13.1

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. Description adds 'Poll' which aligns but no extra details on rate limits, authentication, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise English paragraph with useful status code list. Spanish translation is somewhat redundant but acceptable. Well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and annotations are present, description covers purpose, return values, and common status codes for interpretation. Adequate for a polling tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter invoiceId has 100% schema coverage with description matching. Description does not add further semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Title and description clearly state 'Poll the status of a FACe invoice submission' with specific verb and resource. Distinguishes from sibling tools like face_submit and other status tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies polling but lacks explicit when-to-use vs alternatives. While the FACe context is clear, no guidance on when not to use or comparisons to get_einvoice_status or ticketbai_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools