Declarar Fácil Invoices API

The Invoices API from Declarar Fácil — 2 operation(s) for invoices.

Operations 5

GET /api/invoices List stored invoices #
POST /api/invoices Create one invoice (same validation as the web form) #
GET /api/invoices/{id} One invoice #
PUT /api/invoices/{id} Update an invoice #
DELETE /api/invoices/{id} Delete an invoice #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/declararfacil-com:declararfacil-com-invoices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

declararfacil-com-invoices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Declararfacil Com Invoices API
  version: 1.0.0
  description: 'Operations tagged Invoices across 2 of this provider''s published API definitions: declararfacil-com-agent-openapi.json, declararfacil-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://declararfacil.com
tags:
- name: Invoices
paths:
  /api/invoices:
    get:
      summary: List stored invoices
      security:
      - linkToken: []
      responses:
        '200':
          description: OK
        '401':
          description: 'invalid_token: unknown or replaced token; start a new connection with POST /api/agent/v1/connect'
        '402':
          description: 'subscription_required: no active subscription; the body carries subscribe_url, steps, next_step and tell_the_user'
      parameters:
      - name: year
        in: query
        schema:
          type: integer
      - name: quarter
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 4
      tags:
      - Invoices
      operationId: getApiInvoices
      x-operation-id-source: derived
    post:
      summary: Create one invoice (same validation as the web form)
      security:
      - linkToken: []
      responses:
        '200':
          description: OK
        '401':
          description: 'invalid_token: unknown or replaced token; start a new connection with POST /api/agent/v1/connect'
        '402':
          description: 'subscription_required: no active subscription; the body carries subscribe_url, steps, next_step and tell_the_user'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceInput'
      tags:
      - Invoices
      operationId: postApiInvoices
      x-operation-id-source: derived
    servers:
    - url: https://declararfacil.com
  /api/invoices/{id}:
    get:
      summary: One invoice
      security:
      - linkToken: []
      responses:
        '200':
          description: OK
        '401':
          description: 'invalid_token: unknown or replaced token; start a new connection with POST /api/agent/v1/connect'
        '402':
          description: 'subscription_required: no active subscription; the body carries subscribe_url, steps, next_step and tell_the_user'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      tags:
      - Invoices
      operationId: getApiInvoicesById
      x-operation-id-source: derived
    put:
      summary: Update an invoice
      security:
      - linkToken: []
      responses:
        '200':
          description: OK
        '401':
          description: 'invalid_token: unknown or replaced token; start a new connection with POST /api/agent/v1/connect'
        '402':
          description: 'subscription_required: no active subscription; the body carries subscribe_url, steps, next_step and tell_the_user'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceUpdateInput'
      tags:
      - Invoices
      operationId: putApiInvoicesById
      x-operation-id-source: derived
    delete:
      summary: Delete an invoice
      security:
      - linkToken: []
      responses:
        '200':
          description: OK
        '401':
          description: 'invalid_token: unknown or replaced token; start a new connection with POST /api/agent/v1/connect'
        '402':
          description: 'subscription_required: no active subscription; the body carries subscribe_url, steps, next_step and tell_the_user'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      tags:
      - Invoices
      operationId: deleteApiInvoicesById
      x-operation-id-source: derived
    servers:
    - url: https://declararfacil.com
components:
  schemas:
    InvoiceUpdateInput:
      type: object
      required: []
      properties:
        tipo:
          type: string
          enum:
          - EMITIDA
          - RECIBIDA
          description: EMITIDA = the user issued it (income). RECIBIDA = the user received it (expense).
        numeroFactura:
          type:
          - string
          - 'null'
        fechaFactura:
          type: string
          description: YYYY-MM-DD
        fechaOperacion:
          type:
          - string
          - 'null'
          description: YYYY-MM-DD when it differs from fechaFactura
        nombreClienteProveedor:
          type: string
          description: The other party (client for EMITIDA, supplier for RECIBIDA)
        nifClienteProveedor:
          type:
          - string
          - 'null'
          description: NIF/CIF/NIE or EU VAT number, as printed
        direccionCliente:
          type:
          - string
          - 'null'
        paisProveedor:
          type:
          - string
          - 'null'
          description: ISO 3166-1 alpha-2, e.g. ES, DE, US
        tipoOperacion:
          type: string
          enum:
          - NACIONAL
          - INTRACOMUNITARIA
          - EXTRACOMUNITARIA
          default: NACIONAL
        operacionB2B:
          type: boolean
          default: true
        esAdquisicionIntracomunitaria:
          type: boolean
          default: false
        esServicioNoSujeto:
          type: boolean
          default: false
        baseImponible:
          type: number
          description: Taxable base in EUR (sum of all bases if several rates; then tipoIVA is the main rate)
        tipoIVA:
          type: number
          description: 'IVA rate in percent: 21, 10, 4 or 0'
        cuotaIVA:
          type: number
          description: Printed invoice VAT amount in EUR; keep printed zero for reverse charge
        tipoIVAAutorrepercutido:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 100
          description: Applicable Spanish self-assessment rate, separately confirmed from the printed invoice rate. Never infer from printed 0%.
        fuenteTipoIVAAutorrepercutido:
          type:
          - string
          - 'null'
          description: Basis for the applicable rate, e.g. confirmed tax classification and AEAT rule. Missing basis requires review.
        porcentajeDeduccionIVA:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 100
          description: Independently confirmed VAT deduction percentage based on business use, valid evidence and applicable deduction rules. 0 means no deduction; null means unresolved. Independent of income-tax esDeducible.
        ivaAutorrepercutido:
          type:
          - number
          - 'null'
          readOnly: true
          description: 'Server result: base * self-assessment rate / 100, rounded per invoice to EUR cents; never added to the printed invoice total'
        tipoRetencion:
          type:
          - number
          - 'null'
          description: IRPF withholding rate in percent, if the invoice shows one (e.g. 15 or 7)
        cuotaRetencion:
          type:
          - number
          - 'null'
          description: IRPF withholding amount in EUR
        suplidos:
          type:
          - number
          - 'null'
          default: 0
        tipoRecargoEquivalencia:
          type:
          - number
          - 'null'
        cuotaRecargoEquivalencia:
          type:
          - number
          - 'null'
        claveRegimenEspecial:
          type:
          - string
          - 'null'
        descripcionOperacion:
          type:
          - string
          - 'null'
          description: 'One line: what was sold or bought'
        esFacturaRectificativa:
          type: boolean
          default: false
        numeroFacturaRectificada:
          type:
          - string
          - 'null'
        totalFactura:
          type: number
          description: Total to pay in EUR (base + IVA - retención + suplidos + recargo)
        categoria:
          type:
          - string
          - 'null'
          description: Expense category for RECIBIDA (e.g. SOFTWARE, ALQUILER, SUMINISTROS, MATERIAL, SERVICIOS_PROFESIONALES, TRANSPORTE, OTROS)
        esDeducible:
          type: boolean
          default: true
        notas:
          type:
          - string
          - 'null'
        confianzaOCR:
          type:
          - number
          - 'null'
          description: Your own confidence 0..1 that every amount is read correctly
        source_file:
          type:
          - string
          - 'null'
          description: Local file name, for the user's report only (never stored as a document)
      description: Partial update of an existing invoice. Omitted properties stay unchanged. Assessment fields update VAT without adding ledger entries.
    InvoiceInput:
      type: object
      required:
      - tipo
      - fechaFactura
      - nombreClienteProveedor
      - baseImponible
      - tipoIVA
      - cuotaIVA
      - totalFactura
      properties:
        tipo:
          type: string
          enum:
          - EMITIDA
          - RECIBIDA
          description: EMITIDA = the user issued it (income). RECIBIDA = the user received it (expense).
        numeroFactura:
          type:
          - string
          - 'null'
        fechaFactura:
          type: string
          description: YYYY-MM-DD
        fechaOperacion:
          type:
          - string
          - 'null'
          description: YYYY-MM-DD when it differs from fechaFactura
        nombreClienteProveedor:
          type: string
          description: The other party (client for EMITIDA, supplier for RECIBIDA)
        nifClienteProveedor:
          type:
          - string
          - 'null'
          description: NIF/CIF/NIE or EU VAT number, as printed
        direccionCliente:
          type:
          - string
          - 'null'
        paisProveedor:
          type:
          - string
          - 'null'
          description: ISO 3166-1 alpha-2, e.g. ES, DE, US
        tipoOperacion:
          type: string
          enum:
          - NACIONAL
          - INTRACOMUNITARIA
          - EXTRACOMUNITARIA
          default: NACIONAL
        operacionB2B:
          type: boolean
          default: true
        esAdquisicionIntracomunitaria:
          type: boolean
          default: false
        esServicioNoSujeto:
          type: boolean
          default: false
        baseImponible:
          type: number
          description: Taxable base in EUR (sum of all bases if several rates; then tipoIVA is the main rate)
        tipoIVA:
          type: number
          description: 'IVA rate in percent: 21, 10, 4 or 0'
        cuotaIVA:
          type: number
          description: Printed invoice VAT amount in EUR; keep printed zero for reverse charge
        tipoIVAAutorrepercutido:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 100
          description: Applicable Spanish self-assessment rate, separately confirmed from the printed invoice rate. Never infer from printed 0%.
        fuenteTipoIVAAutorrepercutido:
          type:
          - string
          - 'null'
          description: Basis for the applicable rate, e.g. confirmed tax classification and AEAT rule. Missing basis requires review.
        porcentajeDeduccionIVA:
          type:
          - number
          - 'null'
          minimum: 0
          maximum: 100
          description: Independently confirmed VAT deduction percentage based on business use, valid evidence and applicable deduction rules. 0 means no deduction; null means unresolved. Independent of income-tax esDeducible.
        ivaAutorrepercutido:
          type:
          - number
          - 'null'
          readOnly: true
          description: 'Server result: base * self-assessment rate / 100, rounded per invoice to EUR cents; never added to the printed invoice total'
        tipoRetencion:
          type:
          - number
          - 'null'
          description: IRPF withholding rate in percent, if the invoice shows one (e.g. 15 or 7)
        cuotaRetencion:
          type:
          - number
          - 'null'
          description: IRPF withholding amount in EUR
        suplidos:
          type:
          - number
          - 'null'
          default: 0
        tipoRecargoEquivalencia:
          type:
          - number
          - 'null'
        cuotaRecargoEquivalencia:
          type:
          - number
          - 'null'
        claveRegimenEspecial:
          type:
          - string
          - 'null'
        descripcionOperacion:
          type:
          - string
          - 'null'
          description: 'One line: what was sold or bought'
        esFacturaRectificativa:
          type: boolean
          default: false
        numeroFacturaRectificada:
          type:
          - string
          - 'null'
        totalFactura:
          type: number
          description: Total to pay in EUR (base + IVA - retención + suplidos + recargo)
        categoria:
          type:
          - string
          - 'null'
          description: Expense category for RECIBIDA (e.g. SOFTWARE, ALQUILER, SUMINISTROS, MATERIAL, SERVICIOS_PROFESIONALES, TRANSPORTE, OTROS)
        esDeducible:
          type: boolean
          default: true
        notas:
          type:
          - string
          - 'null'
        confianzaOCR:
          type:
          - number
          - 'null'
          description: Your own confidence 0..1 that every amount is read correctly
        source_file:
          type:
          - string
          - 'null'
          description: Local file name, for the user's report only (never stored as a document)
  securitySchemes:
    linkToken:
      type: http
      scheme: bearer
      description: The df_ token handed out by the connect poll, or the last segment of the user's personal link (/agente/<token>).
x-refined-from:
- declararfacil-com-agent-openapi.json
- declararfacil-com-openapi.json