Get and validate the RFC with the SAT
Get the RFC with its homoclave from a person’s or a company’s details. Validate with the SAT whether it is on the taxpayer registry. The answer arrives in seconds.
RFC retrieval and validation
One returns the RFC from a person’s or a company’s details. The other confirms its standing on the registry.
Getting the RFC
From the full name and date of birth, the SAT returns an individual’s RFC with its homoclave. For a company it runs on the legal name and the incorporation date.
Validation with the SAT
The query goes to the SAT validator. It returns whether that RFC is on the registry and whether it can be invoiced, both for a freshly obtained RFC and for one captured in your form.
Validation returns the status exactly as the SAT holds it.
Singula queries the SAT taxpayer registry and confirms whether the RFC is registered and under which status. The verdict comes back in the same query.
The homoclave is assigned by the SAT and only the registry confirms whether it corresponds.
How it works
From a captured RFC to the SAT verdict.
You send the RFC
Send the RFC to validate, or the query takes it from the customer file if it is already stored. A malformed RFC returns an error before the SAT is queried.
Singula queries the SAT
Singula sends the RFC to the SAT validator.
You get the verdict
The request stays open until the SAT answers. The verdict returns with the receipt number of the query.
What comes back
The SAT answer, plus the receipt number you can trace the query with later.
Indicates whether the SAT recognises the RFC you queried.
Example true
API field: data.isValid · booleanWhether that RFC is registered as a taxpayer and can be invoiced.
Example true
API field: data.registered · booleanThe sentence the SAT answered, word for word.
Example RFC válido, y susceptible de recibir facturas
API field: data.message · stringIndicates whether the query reached a verdict or is still in progress because the SAT has not answered yet.
Example success
API field: status · stringA unique identifier to audit the query or retrieve the full answer later.
Example req_9c4b2ad17e
API field: request_id · stringThe SAT validator answers about the RFC’s standing on the registry. Tax regime and fiscal address are not part of this response; they come in the Constancia de Situación Fiscal, which the taxpayer downloads with their e.firma.
Where this lands in your operation
Four points in the operation where the RFC query runs.
Vendor onboarding
The query confirms with the SAT that the vendor’s RFC is on the registry before onboarding.
Invoicing customers
Validation runs while the person is still on the form and confirms whether the captured RFC can be invoiced.
Compliance file
Every query stays in the customer file, with its date, its receipt number and the text the SAT answered.
Reviewing existing records
The same validation runs on the RFCs already stored in your system. The response indicates which ones are still on the registry.
What you do with each answer
The two SAT answers and the validations that complement the query.
The RFC is registered and can be invoiced
The positive verdict stays in the customer file, with its receipt number and its date.
The RFC does not come back registered
The negative verdict arrives with the SAT message verbatim and the receipt number of the query. The query can run again with the corrected number.
Name and date cross-check
CURP validation against RENAPO returns the registered name and date of birth, and how closely they match what was captured.
Identity confirmation
Identity verification compares the face on a selfie against the government ID, in the same customer file.
A later re-check
Every query is dated in the file. The same RFC can be validated again and both answers stay recorded with their receipt numbers.
Integration details
Individuals and companies
13 characters for individuals, 12 for companies. Validation takes both.
File and score
The query runs from the customer file and the result is reflected in their risk score.
Sandbox
Sandbox answers are mocked and consume no balance.
Everything runs through the API.
Every operation on this page runs as an API call. The full field-by-field reference is in the documentation.
- Use it directly (the value in the body) or on a customer file. Same response.
curl -X POST https://api.singula.mx/app/rfc/validate \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"rfc": "GARM900315AB1"}'
→ {
"request_id": "6622f8a1c1d2e3f4a5b6c7d8",
"status": "success",
"data": {
"message": "RFC válido, y susceptible de recibir facturas.",
"isValid": true,
"registered": true
}
}Frequently asked questions
From the SAT. The query sends the person’s or the company’s details and the SAT returns the RFC with its homoclave. Validation queries the same source and answers whether the RFC is on the registry.
Yes. For companies the query starts from the legal name and the incorporation date. Validation accepts 12- and 13-character RFCs.
The negative verdict with the SAT message verbatim and the receipt number of the query. The query can run again with the corrected number.
A few seconds, capped at 30. If the SAT takes longer, the query comes back as in progress and the result is retrieved later with its receipt number.
No. The result arrives inside the same request. Longer-running products, such as identity verification or INE validation, do notify when they finish.
Validate the RFC from your product
Create an account and run the whole flow in the sandbox, free of charge.
Create free account