Skip to content
Constaia
es_income_tax_return

Spanish personal income tax return (form 100)

Filed Spanish personal income tax return (form 100): tax year, filer, taxable bases, tax due and result, with receipt number and CSV.

Category
Tax
Country
Spain
Extracted fields
12 fields
Cost
1 credit
es_income_tax_returnspecimen
Tax year
Holder name
Holder ID number
Spouse id
Joint
General tax base
Savings tax base
Total tax due
Result

What it checks

  • National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).es_nif, es_nif
  • Holder. Name, number or date of birth match what you expect.
  • Secure verification code. Format of the code used to check it with the issuer.

Extracted fields

  • Tax yeartax_year
  • Holder nameholder_name
  • Holder ID numberholder_id
  • Spouse idspouse_id
  • Jointjoint
  • General tax basegeneral_tax_base
  • Savings tax basesavings_tax_base
  • Total tax duetotal_tax_due
  • Resultresult
  • Receipt numberreceipt_number
  • Filing datefiling_date
  • Secure Verification Code (CSV)csv_code

Sample request

curl https://api.constaia.com/v1/analyze \
  -H "Authorization: Bearer $CONSTAIA_API_KEY" \
  -F "file=@document.pdf" \
  -F 'options={
    "expect": "es_income_tax_return",
    "checks": {
      "holder": {
        "full_name": "Carmen Especimen Ruiz"
      }
    },
    "storage": "none"
  }'

Sample response

Fictitious data. Shortened response.

200 OK · application/json
{
  "id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
  "object": "analysis",
  "status": "completed",
  "livemode": false,
  "document": {
    "type": "es_income_tax_return",
    "label": "Spanish personal income tax return (form 100)",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "es_income_tax_return"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: Spanish personal income tax return (form 100)."
      }
    ]
  },
  "fields": {
    "tax_year": {
      "value": 2025,
      "confidence": 0.99,
      "validated": true
    },
    "holder_name": {
      "value": "JUAN ESPAÑOL ESPAÑOL",
      "confidence": 0.98,
      "validated": null
    },
    "holder_id": {
      "value": "99999999R",
      "confidence": 0.97,
      "validated": null
    },
    "joint": {
      "value": false,
      "confidence": 0.96,
      "validated": null
    },
    "general_tax_base": {
      "value": 28500,
      "confidence": 0.99,
      "validated": null
    },
    "savings_tax_base": {
      "value": 350.2,
      "confidence": 0.98,
      "validated": null
    },
    "total_tax_due": {
      "value": 4870.55,
      "confidence": 0.97,
      "validated": null
    },
    "result": {
      "value": -312.4,
      "confidence": 0.96,
      "validated": null
    },
    "receipt_number": {
      "value": "1001234567890",
      "confidence": 0.99,
      "validated": null
    },
    "filing_date": {
      "value": "2026-05-10",
      "confidence": 0.98,
      "validated": null
    }
  },
  "checks": [
    {
      "code": "id_number",
      "passed": true,
      "message": "id_number"
    },
    {
      "code": "csv_format",
      "passed": true,
      "message": "The verification code has a valid format."
    }
  ],
  "warnings": [],
  "storage": {
    "mode": "none",
    "file_deleted_at": "2026-09-29T10:00:02Z",
    "expires_at": null
  },
  "usage": {
    "credits": 1,
    "pages": 1
  }
}

FAQ

Does Constaia prove the document is authentic?

No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.

Is a copy of the document kept?

No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.

Other documents

And for the record…

Create your account, copy the test key and validate your first document in five minutes.