💼 RFC
The RFC (Registro Federal de Contribuyentes) validation report retrieves and validates Mexico’s Federal Taxpayer Registry number from the Servicio de Administración Tributaria (SAT). This report is essential for tax compliance verification and financial background checks in Mexico.
Overview
Section titled “Overview”RFC validation provides access to Mexico’s tax system to verify taxpayer registration, tax compliance status, and business legitimacy. This report is crucial for financial verification and compliance with Mexican tax regulations.
Input Requirements
Section titled “Input Requirements”Required Fields
Section titled “Required Fields”Field | Type | Description | Example |
---|---|---|---|
document_id | string | CURP (Clave Única de Registro de Población) | ABCD123456EFGHIJ78 |
Optional Fields
Section titled “Optional Fields”Field | Type | Description | Default |
---|---|---|---|
full_name | string | Expected full name for verification | Auto from CURP |
rfc | string | Known RFC for direct validation | Auto-retrieved |
report_settings | object | Configuration options | {} |
Data Source
Section titled “Data Source”Registry: Servicio de Administración Tributaria (SAT) Authority: Secretaría de Hacienda y Crédito Público (SHCP) Coverage: All Mexican taxpayers (individuals and businesses) Update Frequency: Real-time for active taxpayers, daily for status changes
Output Schema
Section titled “Output Schema”Active RFC Found
Section titled “Active RFC Found”{ "rfc": { "state": "COMPLETED", "created_at": "2021-03-30T03:18:36.801902", "updated_at": "2021-03-30T03:19:53.536683", "outcome": "PASSED", "details": { "success": true, "rfc": "ABCD123456EF7H", "registration_year": "2001", "taxpayer_type": "INDIVIDUAL", "status": "ACTIVE", "regime": "SUELDOS_Y_SALARIOS", "validation": { "rfc_format_valid": true, "check_digit_valid": true, "active_in_system": true, "document_type": "RFC" }, "registration_info": { "initial_registration": "2001-03-15", "last_update": "2023-12-01", "taxpayer_name": "JUAN MIGUEL DOE ROE" }, "_spider": "mx_sat_rfc_by_curp", "_timestamp": "2021-03-30T03:19:51.292766" } }}
Inactive RFC
Section titled “Inactive RFC”{ "rfc": { "state": "COMPLETED", "created_at": "2021-03-30T03:18:36.801902", "updated_at": "2021-03-30T03:19:53.536683", "outcome": "PASSED", "details": { "success": true, "rfc": "ABCD123456EF7H", "registration_year": "2001", "taxpayer_type": "INDIVIDUAL", "status": "INACTIVE", "regime": "SUELDOS_Y_SALARIOS", "validation": { "rfc_format_valid": true, "check_digit_valid": true, "active_in_system": false, "document_type": "RFC" }, "registration_info": { "initial_registration": "2001-03-15", "last_update": "2020-06-30", "deactivation_date": "2020-06-30", "deactivation_reason": "VOLUNTARY_CANCELLATION" }, "_spider": "mx_sat_rfc_by_curp", "_timestamp": "2021-03-30T03:19:51.292766" } }}
No RFC Found
Section titled “No RFC Found”{ "rfc": { "state": "COMPLETED", "created_at": "2021-03-30T03:18:36.801902", "updated_at": "2021-03-30T03:19:53.536683", "outcome": "FAILED", "details": { "success": false, "rfc": null, "message": "No RFC registration found for provided CURP", "possible_reasons": [ "Person never registered as taxpayer", "Income below tax registration threshold", "Recent graduate without tax obligations", "Informal economy worker" ], "_spider": "mx_sat_rfc_by_curp", "_timestamp": "2021-03-30T03:19:51.292766" } }}
RFC Format and Validation
Section titled “RFC Format and Validation”RFC Structure for Individuals
Section titled “RFC Structure for Individuals”The RFC for individuals (personas físicas) is a 13-character code:
ABCD123456EF7
RFC Structure for Businesses
Section titled “RFC Structure for Businesses”The RFC for businesses (personas morales) is a 12-character code:
ABC123456EF7
Format Breakdown (Individuals)
Section titled “Format Breakdown (Individuals)”Position | Characters | Description | Example |
---|---|---|---|
1-4 | Letters | Name and surname initials | ABCD |
5-10 | Numbers | Birth date (YYMMDD) | 123456 |
11-12 | Letters | Homonym differentiator | EF |
13 | Number/Letter | Check digit | 7 |
Format Breakdown (Businesses)
Section titled “Format Breakdown (Businesses)”Position | Characters | Description | Example |
---|---|---|---|
1-3 | Letters | Business name initials | ABC |
4-9 | Numbers | Registration date (YYMMDD) | 123456 |
10-11 | Letters | Homonym differentiator | EF |
12 | Number/Letter | Check digit | 7 |
Check Digit Algorithm
Section titled “Check Digit Algorithm”function validateRFCCheckDigit(rfc) { const isIndividual = rfc.length === 13; const isBusiness = rfc.length === 12;
if (!isIndividual && !isBusiness) return false;
const weights = [13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2]; const startPos = isIndividual ? 1 : 0; const checkDigitPos = isIndividual ? 12 : 11;
let sum = 0; for (let i = 0; i < weights.length; i++) { const char = rfc[startPos + i]; const value = isNaN(char) ? char.charCodeAt(0) - 55 : parseInt(char); sum += value * weights[i]; }
const remainder = sum % 11; const calculatedCheckDigit = remainder < 2 ? remainder : 11 - remainder; const expectedCheckDigit = rfc[checkDigitPos];
return calculatedCheckDigit.toString() === expectedCheckDigit;}
Business Logic and Usage
Section titled “Business Logic and Usage”When to Use RFC Validation
Section titled “When to Use RFC Validation”- Tax Compliance Verification: Confirm taxpayer registration status
- Financial Background Checks: Verify tax compliance history
- Business Legitimacy: Validate business registration and status
- Invoice Validation: Verify RFC for billing purposes
- Employment Verification: Confirm tax registration for employees
Tax Status Interpretation
Section titled “Tax Status Interpretation”Active Status
Section titled “Active Status”- Current Taxpayer: Person is registered and active with SAT
- Tax Obligations: Subject to tax filing requirements
- Invoice Authority: Can issue tax-compliant invoices
- Compliance Status: Meeting tax registration requirements
Inactive Status
Section titled “Inactive Status”- Deregistered: No longer active in tax system
- Historical Record: Previous tax registration available
- Limited Authority: Cannot issue valid tax invoices
- Compliance Issues: May indicate tax compliance problems
Not Found Status
Section titled “Not Found Status”- No Tax Registration: Never registered with SAT
- Below Threshold: Income may be below registration requirements
- Informal Economy: May work without tax registration
- Recent Status: May be new to workforce
Tax Regimes
Section titled “Tax Regimes”Regime Code | Description | Typical Users |
---|---|---|
SUELDOS_Y_SALARIOS | Salary and Wages | Employees |
ACTIVIDAD_EMPRESARIAL | Business Activity | Business owners |
ARRENDAMIENTO | Rental Income | Property owners |
HONORARIOS | Professional Fees | Freelancers |
DIVIDENDOS | Dividends | Investors |
REGIMEN_SIMPLIFICADO | Simplified Regime | Small businesses |
Configuration Options
Section titled “Configuration Options”Basic Configuration
Section titled “Basic Configuration”{ "report_settings": { "rfc": { "include_regime_details": true, "include_registration_history": true } }}
Advanced Configuration
Section titled “Advanced Configuration”{ "report_settings": { "rfc": { "include_regime_details": true, "include_registration_history": true, "include_compliance_status": false, "verify_business_status": true, "historical_depth_years": 5 } }}
Configuration Parameters
Section titled “Configuration Parameters”Parameter | Type | Description | Default | Options |
---|---|---|---|---|
include_regime_details | boolean | Include tax regime information | true | true/false |
include_registration_history | boolean | Include registration timeline | true | true/false |
include_compliance_status | boolean | Include tax compliance details | false | true/false |
verify_business_status | boolean | Verify business entity status | false | true/false |
historical_depth_years | integer | Years of history to retrieve | 3 | 1-10 |
Error Handling
Section titled “Error Handling”Common Issues
Section titled “Common Issues”Error Type | Description | Resolution |
---|---|---|
INVALID_CURP | CURP format invalid or not found | Verify CURP with RENAPO first |
SAT_TIMEOUT | SAT database timeout | Retry after 15-30 minutes |
ACCESS_RESTRICTED | Limited access to tax information | Contact support for enhanced access |
PRIVACY_RESTRICTION | Tax details restricted by privacy laws | Remove sensitive settings from configuration |
SYSTEM_MAINTENANCE | SAT system under maintenance | Check SAT service status |
Best Practices
Section titled “Best Practices”- CURP Validation First: Always validate CURP before RFC lookup
- Privacy Compliance: Handle tax data according to Mexican privacy laws
- Data Retention: Follow data retention policies for tax information
- Error Handling: Implement proper retry logic for system timeouts
- Compliance Monitoring: Regular checks for tax status changes
API Integration
Section titled “API Integration”Create Person with RFC Check
Section titled “Create Person with RFC Check”curl -X POST "https://api.emptor.io/v3/mx/persons" \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "document_id": "ABCD123456EFGHIJ78", "city_locode": "MX MEX", "pipeline": { "name": "standard_background_check" }, "report_settings": { "rfc": { "include_regime_details": true, "include_registration_history": true, "verify_business_status": false } } }'
Get RFC Report Details
Section titled “Get RFC Report Details”curl -X GET "https://api.emptor.io/v3/mx/details/{person_id}/rfc" \ -H "X-Api-Key: YOUR_API_KEY"
Legal and Compliance Considerations
Section titled “Legal and Compliance Considerations”Mexican Tax Law
Section titled “Mexican Tax Law”- Código Fiscal de la Federación: Tax registration requirements
- Ley del Impuesto Sobre la Renta: Income tax obligations
- Data Protection: LFPDPPP compliance for tax data
- Taxpayer Rights: Respect for taxpayer privacy and data rights
Tax Verification Use Cases
Section titled “Tax Verification Use Cases”Employment Verification
Section titled “Employment Verification”- Verify employee tax registration
- Confirm tax compliance status
- Validate invoice issuing authority
- Assess formal economy participation
Business Verification
Section titled “Business Verification”- Validate business legitimacy
- Confirm tax registration status
- Verify invoice issuing capability
- Assess business compliance
Financial Services
Section titled “Financial Services”- Tax compliance verification
- Business legitimacy assessment
- Invoice validation for payments
- Risk assessment for lending
Related API Endpoints
Section titled “Related API Endpoints”- Create Person - Initiate RFC validation
- Get Reports - Retrieve RFC results
- Get Report Details - Detailed RFC data
- Update Reports - Refresh RFC validation
Related Documentation
Section titled “Related Documentation”- CURP Validation - Mexico ID validation
- NSS Validation - Mexico social security validation
- Federal Records - Criminal background verification
- Pipeline Selection Guide - Choosing verification strategies
- Legal Glossary - Legal terminology