> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.kubifactu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Consultar registro de facturación con Veri*Factu

> Obtiene el estado de un registro de facturación haciendo previamente una consulta a Veri*Factu. Se llama a la URL de callback del registro si se incluyó en el momento de su alta. [Ver formato de la llamada de callback](enviar-registro-de-facturación#body-callback-url).

La respuesta de este endpoint contiene el estado de la factura actualizado correspondiente al que hay registrado en la AEAT.




## OpenAPI

````yaml /api-reference/openapi/openapi-kubibai.yaml get /api/invoicing/invoices/{invoiceId}/query
openapi: 3.0.0
info:
  title: Kubifactu API
  description: >-
    API para el procesamiento y gestión de facturas de Veri*Factu para
    peticiones hechas desde KubiBAI (TicketBAI). Estos endpoints alternativos
    tratan de ofrecer una estructura similar a la utilizada en KubiBAI.
  version: 1.0.0
  contact:
    email: soporte@kubifactu.com
    name: Soporte KubiFACTU
    url: https://apidocs.kubifactu.com
servers:
  - url: https://api.kubifactu.com
    description: Servidor de producción
  - url: https://devapi.kubifactu.com
    description: Servidor de pruebas
security: []
paths:
  /api/invoicing/invoices/{invoiceId}/query:
    get:
      summary: Consultar registro de facturación con Veri*Factu
      description: >
        Obtiene el estado de un registro de facturación haciendo previamente una
        consulta a Veri*Factu. Se llama a la URL de callback del registro si se
        incluyó en el momento de su alta. [Ver formato de la llamada de
        callback](enviar-registro-de-facturación#body-callback-url).


        La respuesta de este endpoint contiene el estado de la factura
        actualizado correspondiente al que hay registrado en la AEAT.
      operationId: queryInvoiceRecord
      parameters:
        - name: invoiceId
          in: path
          description: >
            ID de la factura. Este ID se obtiene en la respuesta a las altas de
            registros de facturación. También se peude obtener desde el panel
            web, acediendo a la factura en el campo **ID DE KUBIFACTU**.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Datos de la factura tras haber sido actualizada con el estado
            registrado en Veri*Factu.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateInvoiceRecordResponse'
        '403':
          description: No autorizado. La API-KEY proporcionada no es válida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedApiKeyErrorResponse'
        '500':
          description: Error interno del servidor.
      security:
        - client_api_key: []
components:
  schemas:
    CreateInvoiceRecordResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: >
                Identificador (ID) de la factura en el sistema de **KubiFACTU**.
                Se utiliza para hacer referencia al registro de facturación
                desde otros endpoints como, por ejemplo, el de anulación de
                facturas.
            record_type:
              $ref: '#/components/schemas/record_type'
            request_id:
              type: string
              description: >-
                Identificador de la petición como referencia para el soporte
                técnico.
              example: 2cc8ef846029ec69613711ad1d85f6dfebf16ffb
            sif_id:
              type: string
              description: ID del SIF utilizado para la creación del registro.
              format: uuid
              example: 0995C42C-6708-44FB-BFBF-B363A5FE873E
            fiscal_year:
              type: integer
              description: Año fiscal de la factura.
            full_invoice_number:
              type: string
              description: Número de la factura registrada.
            created_at:
              type: string
              format: date-time
              example: '2025-09-15T07:35:24.992854Z'
              description: Fecha y hora de creación de la factura en nuestro sistema.
            fingerprint:
              nullable: true
              type: string
              description: Huella SHA-256 del registro de facturación registrado.
            csv:
              nullable: true
              type: string
              description: Código Seguro de Verificación del registro de facturación.
            vf_post_status:
              $ref: '#/components/schemas/vf_post_status'
            vf_record_registration_status:
              $ref: '#/components/schemas/vf_record_registration_status'
            has_warnings:
              type: boolean
              description: Indica si el registro contiene errores que deban ser subsanados.
              example: false
            vf_error_descriptions:
              nullable: true
              type: string
              description: >-
                Cadena con la descripción de los errores devueltos por
                Veri*Factu.
            next_request_waiting_time:
              type: integer
              description: >-
                Tiempo que se debe esperar en segundos para que la empresa
                cliente pueda enviar una nueva petición.
            next_request_datetime:
              type: string
              format: date-time
              example: '1977-04-22T06:00:00Z'
              description: >-
                Fecha y hora en la que la empresa cliente pueda enviar una nueva
                petición en formato ISO-8601 (ej.- 1977-04-22T06:00:00Z) con
                zona horaria UTC.
            qr_value:
              type: string
              nullable: true
              format: uri
              description: >-
                URL que debe mostrarse en el QR de las facturas procesadas con
                Veri*Factu. Esta URL sirve para que el receptor de la factura
                pueda validar que esta ha sido correctamente enviada a
                Veri*Factu. Este campo será `null` cuando Veri*Factu rechace el
                registro de facturación.
            qr_image_url:
              type: string
              nullable: true
              format: uri
              description: >-
                URL para descargar la imagen PNG del QR generado por KubiFACTU
                mediante el endpoint [Descargar imagen QR del registro de
                facturación](/openapi-kubibai-reference/descargar-imagen-qr-del-registro-de-facturación).
            xml_url:
              type: string
              nullable: true
              format: uri
              description: >-
                URL para descargar el XML del registro de facturación enviado a
                Veri*Factu mediante el endpoint [Descargar XML del registro de
                facturación](/openapi-kubibai-reference/descargar-xml-del-registro-de-facturación).
            vf_response_body:
              type: string
              nullable: true
              format: byte
              description: >-
                Cuerpo de la respuesta de Veri*Factu en formato Base64. Contiene
                el XML completo devuelto por la AEAT tras el envío del registro
                de facturación. Este campo será `null` para facturas en diferido
                que aún no han sido procesadas o cuando no se haya recibido
                respuesta de Veri*Factu.
    UnauthorizedApiKeyErrorResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            error:
              type: object
              properties:
                code:
                  type: string
                  description: Código de error que indica el tipo de problema.
                  example: E-UNAUTH-APIKEY
                message:
                  type: string
                  description: Mensaje detallado del error.
                  example: >-
                    No client with API-KEY
                    '5tVySMGJOpq8HfMgIX28Qz6kF0dFOoq37x55PLZcWsGeGeYkNgJyAcRTlFJ5NbVoDRm8qtCywEoiN3A9JkBanMBXYmxiqR3BItxgxx'
                    was found.
                http_code:
                  type: integer
                  description: Código HTTP asociado al error.
                  example: 403
                errors:
                  type: object
                  nullable: true
                  description: >
                    Detalles adicionales del error. Puede ser `null` si no hay
                    información específica.
                  example: null
                details:
                  type: object
                  properties:
                    request_id:
                      type: string
                      description: Identificador único de la solicitud para rastreo.
                      example: 2cc8ef846029ec69613711ad1d85f6dfebf16ffb
    record_type:
      type: string
      description: |
        Tipo de registro de facturación:

        - `creation`: Se trata de un registro de alta.
        - `cancellation`: Se trata de un registro de anulación.
      enum:
        - creation
        - cancellation
    vf_post_status:
      nullable: true
      type: string
      description: >
        Este campo indica si la factura ha sido enviada a Veri*Factu, pero no
        indica si el registro ha sido aceptado.

        Los valores posibles son:


        - `success`: Se ha realizado el envío a Veri*Factu.

        - `failure`: No se ha podido hacer el envío a Veri*Factu.
      enum:
        - success
        - failure
    vf_record_registration_status:
      nullable: true
      type: string
      description: >
        Valores posibles para el campo `vf_record_registration_status`, que
        indican el estado del registro en Veri*Factu.


        - `success`: El registro ha sido correctamente registrado en Veri*Factu.

        - `accepted_with_errors`: El registro ha sido registrado en Veri*Factu,
        pero tiene **errores que deben ser subsanados**.

        - `failed`: El registro tiene errores no aceptables y ha sido
        **rechazado** por Veri*Factu.

        - `not_registered`: No se ha encontrado el registro en Veri*Factu.

        - `cancelled`: El registro está anulado.

        - `unknown`: Se desconoce el estado del registro.
      enum:
        - success
        - accepted_with_errors
        - failed
        - not_registered
        - cancelled
        - unknown
  securitySchemes:
    client_api_key:
      type: apiKey
      name: X-Qbikode-ClientApiKey
      in: header
      description: >
        API-KEY de la empresa que hace la petición. Este dato se puede consultar
        en el panel web, accediendo a la sección _Empresas_ y accediendo a la
        ficha de la empresa en cuestión.

````