Skip to content
Constaia
es_aeat_income_certificate

Spanish income tax certificate (AEAT)

Spanish Tax Agency personal income tax certificate (return summary, or reported income if no return was filed); signed PDF with CSV.

Category
Tax
Country
Spain
Extracted fields
9 fields
Cost
1 credit
es_aeat_income_certificatespecimen
Holder name
Holder ID number
Issue date
Tax year
Has filed
General tax base
Savings tax base
Total income
Secure Verification Code (CSV)

What it checks

  • National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).es_nif
  • Holder. Name, number or date of birth match what you expect.
  • Recency. Issued less than N days ago.
  • Secure verification code. Format of the code used to check it with the issuer.
  • PDF electronic signature. PAdES signature verified when the original PDF is sent.

Extracted fields

  • Holder nameholder_name
  • Holder ID numberholder_id
  • Issue dateissue_date
  • Tax yeartax_year
  • Has filedhas_filed
  • General tax basegeneral_tax_base
  • Savings tax basesavings_tax_base
  • Total incometotal_income
  • 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_aeat_income_certificate",
    "checks": {
      "max_age_days": 90,
      "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_aeat_income_certificate",
    "label": "Spanish income tax certificate (AEAT)",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "es_aeat_income_certificate"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: Spanish income tax certificate (AEAT)."
      }
    ]
  },
  "fields": {
    "holder_name": {
      "value": "JUAN ESPAÑOL ESPAÑOL",
      "confidence": 0.99,
      "validated": true
    },
    "holder_id": {
      "value": "99999999R",
      "confidence": 0.98,
      "validated": null
    },
    "issue_date": {
      "value": "2026-09-01",
      "confidence": 0.97,
      "validated": null
    },
    "tax_year": {
      "value": 2025,
      "confidence": 0.96,
      "validated": null
    },
    "has_filed": {
      "value": true,
      "confidence": 0.99,
      "validated": null
    },
    "general_tax_base": {
      "value": 28500,
      "confidence": 0.98,
      "validated": null
    },
    "savings_tax_base": {
      "value": 350.2,
      "confidence": 0.97,
      "validated": null
    },
    "csv_code": {
      "value": "ABCDEFGH12345678",
      "confidence": 0.96,
      "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.