canonical: https://jentic.com/apis/valida-cfdi.com.mx/valida-cfdi-com-mx

# ValidaCFDI API

ValidaCFDI API for validating Mexican electronic invoices (CFDI), checking RFC risk status, and PDF validation. The API exposes 6 endpoints secured with apiKey authentication.

## For AI agents

Programmatically validate cfdi by uuid, validate cfdi from pdf. Covers 6 operations with apiKey authentication.

## Scope

Does not handle communications, crm, or developer tools - use for payments only.

## Capabilities

- Validate CFDI by UUID
- Check RFC risk status
- Test API connection
- Query and filter ValidaCFDI API records by parameters
- Monitor ValidaCFDI API operational status and events

## Use cases

### Payments Operations

Use the ValidaCFDI API to perform payments operations programmatically. The API provides 6 endpoints covering core functionality including validate cfdi by uuid, validate cfdi from pdf, check rfc risk status.

Example prompt: Call POST /validate to validate cfdi by uuid

### Automated Rfc Risk Management

Automate rfc risk operations by combining multiple ValidaCFDI API endpoints. Agents can validate cfdi from pdf and then check rfc risk status in a single workflow.

Example prompt: Call POST `/validate/pdf` to validate cfdi from pdf, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call ValidaCFDI API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle apiKey tokens manually.

Example prompt: Search Jentic for 'validate cfdi by uuid', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/validate` | Validate CFDI by UUID |
| POST | `/validate/pdf` | Validate CFDI from PDF |
| GET | `/rfc-risk/{rfc}` | Check RFC risk status |
| GET | `/zapier/test` | Test API connection |
| POST | `/zapier/actions/validate-cfdi` | Validate CFDI (Zapier) |
| POST | `/zapier/actions/validate-pdf` | Validate PDF (Zapier) |

## Key resources

- **Rfc Risk** — Operations for rfc risk
- **Validate** — Operations for validate
- **Zapier** — Operations for zapier

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 47 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/valida-cfdi.com.mx/valida-cfdi-com-mx/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the ValidaCFDI API by hand means setting the X-API-Key header against api.valida-cfdi.com.mx and coding each CFDI validation and RFC risk lookup yourself. Through Jentic you install once, import the ValidaCFDI API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Most ValidaCFDI validations carry the invoice in the request body, so limit the agent to the operations it needs, such as validating a CFDI or a PDF. The RFC risk lookup does put the RFC in the path (`/rfc-risk/{rfc}`), and you choose which of these operations the agent may call.
- **Credential handling:** Your ValidaCFDI API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'validate a CFDI by UUID' or 'check RFC risk', and Jentic returns the matching ValidaCFDI operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe** — Alternative payments API
- **Adyen** — Alternative payments API
- **Square** — Complementary payments API
- **Paypal** — Complementary payments API

## FAQ

### What authentication does the ValidaCFDI API use?

The ValidaCFDI API uses an API key passed in the `X-API-Key` header. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I validate cfdi by uuid with the ValidaCFDI API?

Yes. Use the POST /validate endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the ValidaCFDI API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I validate cfdi by uuid through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'validate cfdi by uuid'. Jentic returns the matching ValidaCFDI API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the ValidaCFDI API have?

The ValidaCFDI API exposes 6 endpoints covering rfc risk, validate, zapier operations.

### Can I limit what my agent is allowed to do with the ValidaCFDI API?

Yes. Jentic One is self-hosted, so you set the rules that decide which ValidaCFDI operations and credentials your agent can use. You can allow only the calls it needs, such as validating a CFDI by UUID (POST /validate) or from a PDF (POST `/validate/pdf`), while withholding the RFC risk lookup (GET `/rfc-risk/{rfc}`) that puts an RFC in the path. Your stored API key is injected at execution time under those limits, never entering the agent context.
