cyborgfinance / fcaregisterlaravel
Financial Conduct Authority (FCA) API Client Library for Laravel.
Fund package maintenance!
CyborgFinance
Installs: 2 379
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: ^7.0
- guzzlehttp/guzzle: ^7.0||^8.0
- illuminate/contracts: ^8.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.9
- vimeo/psalm: ^4.4
README
Financial Conduct Authority (FCA) API Client Library wrapper for Laravel.
The Financial Services Register
The online Financial Services Register (FS Register) is a public record of financial services firms, individuals and other bodies regulated by the FCA.
The online FS Register provides an online search for firms that are or have been regulated by the FCA. It also allows users to search for businesses that are or have been registered with the FCA under the FSMA, the Money Laundering Regulations 2007, the Payment Services Regulations 2009, and the Electronic Money Regulations 2011. Access to the online FS Register is free; it is suitable for ad-hoc searches for authorised and registered firms and individuals.
The Financial Services Register API Service
The FCA API is a new service offered by the Financial Conduct Authority, its in early stages with limited data points. You will first need to Register an Account to get an API Key.
It is a RESTful API based on HTTPS requests and JSON responses, requiring an API username and key for authentication.
The FS Register API currently sets a maximum limit of 10 requests per 10 seconds, which is periodically subject to change.
Installation
You can install the package via composer:
composer require cyborgfinance/fcaregisterlaravel
Add the following to your Environment File:
FCA_EMAIL="your@email.com" FCA_KEY="YOUR_FCA_API_KEY"
OR
You can publish the config file with:
php artisan vendor:publish --provider="Cyborgfinance\Fcaregisterlaravel\FcaregisterlaravelServiceProvider" --tag="fcaapi-config"
This is the contents of the published config file:
return [ 'email' => env('FCA_EMAIL', 'your@email.com'), // FCA API Email Address 'key' => env('FCA_KEY', 'YOUR_FCA_API_KEY'), // FCA API KEY 'api_version' => '0.1', // FCA API VERSION 'api_url' => 'https://register.fca.org.uk/services/', // FCA API URL 'api_timeout' => 5, // FCA API TIMEOUT in seconds ];
Usage
namespace App\Http\Controllers; use Cyborgfinance\Fcaregisterlaravel\Fcaapi; class Testing extends Controller { public function __invoke(Request $request){ $fcaFrnNumber = 919921; //FCA Firm Reference Number (FRN) $fcaApi = new Fcaapi(); $result = $fcaApi->firmDetails($fcaFrnNumber)->json(); //Queries FCA Register dd($result); // Outputs Array } }
or
namespace App\Http\Controllers; use Cyborgfinance\Fcaregisterlaravel\Fcaapi; class Testing extends Controller { public function __invoke(Request $request){ $fcaFrnNumber = 919921; //FCA Firm Reference Number (FRN) $result = Fcaapi::firmDetails($fcaFrnNumber)->json(); //Queries FCA Register dd($result); // Outputs Array } }
Both of these examples will output:
array:4 [▼ "Status" => "FSR-API-02-01-00" "ResultInfo" => array:3 [▼ "page" => "1" "per_page" => "1" "total_count" => "1" ] "Message" => "Ok. Firm Found" "Data" => array:1 [▼ 0 => array:21 [▼ "Name" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Names" "Individuals" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Individuals" "Requirements" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Requirements" "Permission" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Permissions" "Passport" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Passports" "Regulators" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Regulators" "Appointed Representative" => "https://register.fca.org.uk/services/V0.1/Firm/919921/AR" "Address" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Address" "Waivers" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Waivers" "Exclusions" => "https://register.fca.org.uk/services/V0.1/Firm/919921/Exclusions" "DisciplinaryHistory" => "https://register.fca.org.uk/services/V0.1/Firm/919921/DisciplinaryHistory" "System Timestamp" => "10/04/2021 15:49" "Exceptional Info Title" => "" "Exceptional Info Body" => "" "Status Effective Date" => "24/04/2020" "PSD Agent Status" => "" "PSD / EMD Status" => "" "Status" => "Authorised" "Business Type" => "Regulated" "Organisation Name" => "CYBORG FINANCE LIMITED" "FRN" => "919921" ] ] ]
FCA Register Lookup Methods
Company Records
//Get information about a specific firm using its Firm Reference Number $request = Fcaapi::firmDetails($fcaFrnNumber);
//Get information about the Individuals associated with a firm using its Firm Reference Number $request = Fcaapi::firmIndividuals($fcaFrnNumber);
//Get information about the other names used by the firms using its Firm Reference Number $request = Fcaapi::firmName($fcaFrnNumber);
//Get information about the requirements associated with a specific firm using its Firm Reference Number $request = Fcaapi::firmRequirements($fcaFrnNumber);
//Get information about the activities and permissions associated with a specific firm using its Firm Reference Number $request = Fcaapi::firmPermissions($fcaFrnNumber);
//Get information about a passport details by using its Firm Reference Number $request = Fcaapi::firmPassports($fcaFrnNumber);
//Get information about a passport permission by using its Firm Reference Number and Country $request = Fcaapi::firmPassportCountry($fcaFrnNumber, $country);
//Get information about a regulator on a firm using its Firm Reference Number $request = Fcaapi::firmRegulators($fcaFrnNumber);
//Get information about the Appointed Representatives associated with a firm using its Firm Reference Number $request = Fcaapi::firmAppointedRepresentatives($fcaFrnNumber);
//Get information about a specific firm using its Firm Reference Number $request = Fcaapi::firmAddress($fcaFrnNumber);
//Get information about a Waiver on a firm using it's Firm Reference Number $request = Fcaapi::firmWaivers($fcaFrnNumber);
//Get information about an Exclusion on a firm using it's Firm Reference Number $request = Fcaapi::firmExclusions($fcaFrnNumber);
//Get information about a DisciplinaryHistory on a firm using it's Firm Reference Number $request = Fcaapi::firmDisciplinaryHistory($fcaFrnNumber);
Individual Records
//Get information about the Individuals associated with its Individual Reference Number $request = Fcaapi::individualDetails($fcaIrnNumber);
//Get information about all the firms, the Individual has a control function using their Individual Reference Number $request = Fcaapi::individualFunctions($fcaIrnNumber);
Search Records
//Search the FS register using this API $request = Fcaapi::search($search);
//Search the FS register using this API $request = Fcaapi::searchRm();
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
TODO
[] Fix Config Publish