Cliente oficial de COPOMEX para PHP 8.1+. Sin dependencias externas, PSR-4 autoloading, excepciones tipadas y los 24 endpoints cubiertos.
copomex-php-clientCliente oficial para PHP 8.1+. Usa cURL nativo, sin dependencias externas. PSR-4 autoloading, excepciones tipadas.
Paquete Packagist: packagist.org/packages/msweb/copomex-php-client
composer require msweb/copomex-php-clientuse Copomex\Copomex;
$client = new Copomex('TU_TOKEN');
$info = $client->infoCp('06600', simplified: true);
print_r($info);Usa 'pruebas' como token para desarrollo — sin costo, sin registro. Devuelve datos aleatorios con estructura real.
new Copomex(string $token, int $timeout = 10)| Parámetro | Descripción |
|---|---|
$token | Tu token de acceso. Usa 'pruebas' para desarrollo. |
$timeout | Timeout de la petición en segundos (default: 10). |
use Copomex\Copomex;
use Copomex\Exception\CopomexAPIException;
use Copomex\Exception\CopomexHTTPException;
$client = new Copomex('TU_TOKEN');
try {
$result = $client->infoCp('99999');
} catch (CopomexAPIException $e) {
// La API respondió con error: true
echo "Error de API [{$e->apiCode}]: {$e
| Excepción | Cuándo se lanza |
|---|---|
CopomexAPIException | La API devuelve error: true. Tiene ->apiCode y ->apiMessage. |
CopomexHTTPException | Respuesta HTTP no exitosa (4xx, 5xx). Tiene ->statusCode. |
CopomexException | Clase base de las dos anteriores. |
infoCp(string $cp, bool $simplified = false): arrayInformación completa de un código postal. Sin $simplified, devuelve un array de arrays (una entrada por colonia). Con true, devuelve un array con datos agregados.
$colonias = $client->infoCp('06600'); // array[]
$info = $client->infoCp('06600', simplified: true); // arraysearchCp(string $texto, ?int $limit = null): arrayBúsqueda por coincidencia parcial de código postal.
$client->searchCp('066');
$client->searchCp('066', limit: 10);getColoniaPorCp(string $cp): arrayColonias asociadas a un código postal.
$client->getColoniaPorCp('06600');getCpPorEstado(string $estado): arrayTodos los códigos postales de un estado.
$client->getCpPorEstado('Jalisco');getCpPorMunicipio(string $municipio): arrayCódigos postales de un municipio.
$client->getCpPorMunicipio('Guadalajara');searchCpAdvanced(string $estado, ?int $limit, ?string $municipio, ?string $colonia): arrayBúsqueda avanzada con filtros opcionales. Usa coincidencia parcial.
$client->searchCpAdvanced('Jalisco', municipio: 'Guadalajara', limit: 20);
$client->searchCpAdvanced('CDMX', colonia: 'Condesa');getCpAdvanced(string $estado, ?int $limit, ?string $municipio, ?string $colonia): arrayIgual que searchCpAdvanced pero con coincidencia exacta.
$client->getCpAdvanced('Jalisco', municipio: 'Guadalajara');getEstados(): arrayLista de todos los estados de México.
$client->getEstados();getEstadoClave(): arrayEstados con su clave oficial INEGI.
$client->getEstadoClave();getMunicipioPorEstado(string $estado): arrayMunicipios de un estado.
$client->getMunicipioPorEstado('Jalisco');getMunicipioClavePorEstado(string $estado): arrayMunicipios con clave INEGI filtrados por nombre de estado.
$client->getMunicipioClavePorEstado('Jalisco');getMunicipioClavePorClaveEstado(string $clave): arrayMunicipios con clave INEGI filtrados por clave de estado.
$client->getMunicipioClavePorClaveEstado('14');getColoniaPorMunicipio(string $municipio): arrayColonias de un municipio.
$client->getColoniaPorMunicipio('Guadalajara');getColoniaPorEstadoMunicipio(string $estado, string $municipio): arrayColonias con CP filtradas por estado y municipio.
$client->getColoniaPorEstadoMunicipio('Jalisco', 'Guadalajara');getCitiesByStateCode(string $claveEstado): arrayCiudades de un estado por su clave INEGI.
$client->getCitiesByStateCode('14');getLocalidadPorEstadoMunicipio(string $estado, string $municipio): arrayCatálogo de localidades filtrado por nombre de estado y municipio.
$client->getLocalidadPorEstadoMunicipio('Jalisco', 'Guadalajara');getLocalidadPorClaveEstadoMunicipio(string $claveEstado, string $claveMunicipio): arrayLocalidades filtradas por claves INEGI.
$client->getLocalidadPorClaveEstadoMunicipio('14', '039');infoLocalidad(string $claveEstado, string $claveMunicipio, string $claveLocalidad): arrayInformación detallada de una localidad. Incluye coordenadas y altitud.
$client->infoLocalidad('14', '039', '0001');getVialidad(string $claveEstado, string $claveMunicipio, string $busqueda, int $limit, ?string $claveLocalidad): arrayBúsqueda en el catálogo de más de 3 millones de calles y vialidades.
$client->getVialidad('14', '039', 'juarez', 10);
$client->getVialidad('14', '039', 'reforma', 5, '0001');getTipoVialidad(): arrayCatálogo de los 22 tipos de vialidad (calle, avenida, boulevard, etc.).
$client->getTipoVialidad();Estos métodos consumen 2 créditos por consulta.
infoCpGeocoding(string $cp, ?string $type, ?string $calle, ?string $numero): arrayConvierte un código postal (con calle y número opcionales) a coordenadas lat/lng.
$client->infoCpGeocoding('06600');
$client->infoCpGeocoding('06600', calle: 'Insurgentes', numero: '123');infoCpGeocodingReverse(float $lat, float $lng): arrayConvierte coordenadas lat/lng a dirección postal completa.
$client->infoCpGeocodingReverse(19.4326, -99.1332);consultasDisponibles(): arraySaldo de créditos disponibles del token.
$client->consultasDisponibles();ultimaActualizacionDb(): arrayFecha y hora de la última actualización de la base de datos.
$client->ultimaActualizacionDb();El archivo example/example.php del repositorio llama a los 24 endpoints con token=pruebas.
composer install
php example/example.php