| Install | |
|---|---|
composer require jeffersongoncalves/laravel-cep |
|
| Latest Version: | 1.1.2 |
| PHP: | ^8.2|^8.3 |

A simple and efficient Laravel package for querying Brazilian postal codes (CEP). This package provides an easy way to retrieve address information from Brazilian ZIP codes through multiple API providers with database storage.
You can install the package via composer:
composer require jeffersongoncalves/laravel-cep
Publish and run the migration file:
php artisan vendor:publish --tag=cep-migrations
php artisan migrate
use JeffersonGoncalves\Cep\Models\Cep;
// Find CEP information
$cepData = Cep::findByCep('01310-100');
// Returns:
// [
// 'cep' => '01310100',
// 'state' => 'SP',
// 'city' => 'São Paulo',
// 'neighborhood' => 'Bela Vista',
// 'street' => 'Avenida Paulista'
// ]
// Check if CEP exists
$exists = Cep::checkCep('01310-100'); // Returns true/false
findByCep(string $cep): arrayRetrieves complete address information for a given CEP. The method automatically:
$result = Cep::findByCep('12345-678');
checkCep(string $cep): boolValidates if a CEP exists and returns a boolean value.
$isValid = Cep::checkCep('12345-678');
The package uses multiple API providers in the following order:
The package creates a cep table with the following structure:
cep (string, 8 chars) - Primary keystate (enum) - Brazilian state abbreviationcity (string) - City nameneighborhood (string) - Neighborhood namestreet (string) - Street nametimestamps - Created and updated timestampsThis package makes HTTPS requests to external APIs (BrasilAPI, ViaCEP, and AwesomeAPI) to retrieve CEP information. If you encounter SSL certificate errors, you may need to configure PHP to use a proper CA certificate bundle.
The cacert.pem file is a bundle of Certificate Authority (CA) certificates that PHP uses to verify SSL/TLS connections. Without proper CA certificates, PHP cannot verify the authenticity of HTTPS connections, leading to SSL errors.
You might encounter errors like:
cURL error 60: SSL certificate problem: unable to get local issuer certificateSSL certificate verification failedDownload the latest CA certificate bundle from the official cURL website:
# Download the latest cacert.pem file
curl -o cacert.pem https://curl.se/ca/cacert.pem
Or download it manually from: https://curl.se/ca/cacert.pem
Place the cacert.pem file in a secure location on your server, for example:
C:\php\extras\ssl\cacert.pem/etc/ssl/certs/cacert.pem or /usr/local/etc/ssl/cacert.pemEdit your php.ini file and add/update the following lines:
; Enable SSL certificate verification
openssl.cafile = "C:\php\extras\ssl\cacert.pem" ; Windows path
; openssl.cafile = "/etc/ssl/certs/cacert.pem" ; Linux/macOS path
; For cURL specifically
curl.cainfo = "C:\php\extras\ssl\cacert.pem" ; Windows path
; curl.cainfo = "/etc/ssl/certs/cacert.pem" ; Linux/macOS path
After modifying php.ini, restart your web server (Apache, Nginx, etc.) or PHP-FPM service.
To verify that SSL certificates are working correctly, you can test the configuration:
// Test SSL connection
$response = file_get_contents('https://brasilapi.com.br/api/cep/v1/01310100');
if ($response !== false) {
echo "SSL configuration is working correctly!";
} else {
echo "SSL configuration needs attention.";
}
If you cannot modify php.ini, you can also:
Set environment variable (not recommended for production):
export SSL_CERT_FILE=/path/to/cacert.pem
Use Laravel HTTP client options in your application:
Http::withOptions([
'verify' => '/path/to/cacert.pem'
])->get('https://api.example.com');
Note: Disabling SSL verification ('verify' => false) is strongly discouraged as it makes your application vulnerable to man-in-the-middle attacks.
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.