Validation SAT / RFC
Valids that a RFC have a proper structural format and valid check digit (autoclaves). Validation is done locally without consulting SAT - useful to validate before sending to other services.
Do you need to check against SAT 69-B?
To check out the blacklist of civil servants SAT (Article 69-B), use endpoint Lists PLD / AML with services.sat.sat69b: true.
Endpoint
POST
/api/v1/government/mx/rfc/validateBearer TokenValid format and tiptog of a RFC
Leaders
| Leader | Value | Required |
|---|---|---|
Authorization | Bearer <api-key-jwt> | Yes |
Content-Type | application/json | Yes |
Body
| Name | Type | Required | Description |
|---|---|---|---|
rfc | string | RFC To validate. Natural persons: 13 characters (4 letters + 6 digits date + 3 tidal). Moral persons: 12 characters (3 letters + 6 digits date + 3 tidal). |
Example
curl -X POST https://services.api.jaak.ai/api/v1/government/mx/rfc/validate \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{"rfc": "PEGJ800115QJ8"}'
Successful response (200 OK)
{
"eventId": "evt_789xyz",
"requestId": "req_012abc",
"timestamp": "2026-04-25T10:30:00Z",
"rfc": "PEGJ800115QJ8",
"valid": true,
"type": "RFC"
}
| Field | Description |
|---|---|
valid | true if the format + check digit are correct. |
type | "RFC" for physicists, "RFC_MORAL" To morale. |
Reg RFC Invalid (200 OK)
{
"eventId": "evt_789xyz",
"requestId": "req_012abc",
"timestamp": "2026-04-25T10:30:00Z",
"rfc": "INVALIDO123",
"valid": false,
"type": "RFC"
}
Mistakes
| HTTP | errorCode | Description |
|---|---|---|
| 400 | GOV_RFC_002 | The RFC Invalid (length or illegal characters) |
| 401 | — | API Invalid Key |
| 500 | GOV_RFC_001 | Internal error |