phpcfdi / csf-scraper
Obtiene los datos fiscales actuales de una persona moral o física dado su RFC y CIFID
Installs: 2 423
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 4
Forks: 9
Open Issues: 0
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.4
- phpcfdi/rfc: ^1.1
- symfony/css-selector: >=6.0
- symfony/dom-crawler: >=6.0
- symfony/process: >=6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Obtiene los datos fiscales actuales de una persona moral o física dado su RFC y CIFID.
🇺🇸 The documentation of this project is in spanish as this is the natural language for intended audience.
🇲🇽 La documentación del proyecto está en español porque ese es el lenguaje principal de los usuarios.
Instalación
Usa composer
composer require phpcfdi/csf-scraper
Esta librería requiere del uso de un cliente que implemente GuzzleHttp\ClientInterface;
puedes obtener más información de esta librería en guzzle.
Ejemplo de uso
<?php declare(strict_types=1); use GuzzleHttp\Client; use PhpCfdi\CsfScraper\Scraper; use PhpCfdi\Rfc\Rfc; require 'vendor/autoload.php'; $scraper = Scraper::create(); $rfc = Rfc::parse('YOUR_RFC'); $person = $scraper->obtainFromRfcAndCif(rfc: $rfc, idCIF: 'ID_CIF'); // También puedes obtener los datos de la persona directamente del archivo local PDF // (Ten en cuenta que esta funcionalidad requiere de tener instalado poppler-utils en tu servidor). $person = $scraper->obtainFromPdfPath('LOCAl_PDF_FILE_PATH'); // puedes acceder a los datos de la persona (moral o física) usando los métodos incluidos: if($rfc->isFisica()) { echo $person->getNombre(); } if($rfc->isMoral()) { echo $person->getRazonSocial(); } // o puedes obtener el array de datos usando echo print_r($person->toArray(), true);
Ejemplo de salida de json_encode($person)
para persona moral:
{ "rfc": "DIM8701081LA", "id_cif": "12345678", "razon_social": "Mi razón social", "regimen_de_capital": "SA DE CV", "fecha_constitucion": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "fecha_inicio_operaciones": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "situacion_contribuyente": "ACTIVO", "fecha_ultimo_cambio_situacion": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" }, "entidad_federativa": "CIUDAD DE MEXICO", "municipio_delegacion": "CUAUHTEMOC", "colonia": "CUAUHTEMOC", "tipo_vialidad": "Tipo vialidad", "nombre_vialidad": "PASEO DE LA REFORMA", "numero_exterior": "143", "numero_interior": "Piso 69", "codigo_postal": "72055", "correo_electronico": "example@example.com", "al": "CIUDAD DE MEXICO 2", "regimenes": [ { "regimen": "Régimen General de Ley Personas Morales", "regimen_id": "601", "fecha_alta": { "date": "2019-02-21 22:50:46.000000", "timezone_type": 3, "timezone": "UTC" } } ], "extra_data": [] }
Ejemplo de salida de json_encode($person)
para persona física:
{ "rfc": "COSC8001137NA", "id_cif": "1904014102123", "curp": "CURP", "nombre": "JUAN", "apellido_paterno": "PEREZ", "apellido_materno": "RODRIGUEZ", "fecha_nacimiento": { "date": "1973-05-01 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "fecha_inicio_operaciones": { "date": "2004-11-03 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "situacion_contribuyente": "ACTIVO", "fecha_ultimo_cambio_situacion": { "date": "2004-11-03 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" }, "entidad_federativa": "CIUDAD DE MEXICO", "municipio_delegacion": "IZTAPALAPA", "colonia": "MI COLONIA", "tipo_vialidad": "CALLE", "nombre_vialidad": "BENITO JUAREZ", "numero_exterior": "183", "numero_interior": "", "codigo_postal": "72000", "correo_electronico": "", "al": "CIUDAD DE MEXICO 3", "regimenes": [ { "regimen": "Régimen de Incorporación Fiscal", "regimen_id": "621", "fecha_alta": { "date": "2014-01-01 22:53:25.000000", "timezone_type": 3, "timezone": "UTC" } } ], "extra_data": [] }
Soporte
Puedes obtener soporte abriendo un ticket en Github.
Adicionalmente, esta librería pertenece a la comunidad PhpCfdi, así que puedes usar los mismos canales de comunicación para obtener ayuda de algún miembro de la comunidad.
Compatibilidad
Esta librería se mantendrá compatible con al menos la versión con soporte activo de PHP más reciente.
También utilizamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.
Contribuciones
Las contribuciones son bienvenidas. Por favor lee CONTRIBUTING para más detalles y recuerda revisar el archivo de tareas pendientes TODO y el archivo CHANGELOG.
Copyright and License
The phpcfdi/csf-scraper
library is copyright © PhpCfdi
and licensed for use under the MIT License (MIT). Please see LICENSE for more information.