OPG Paper Identity client application for staff to perform and record ID checks.
- Docker
make
After cloning the repo, you can build and start it by running make build up
. The service will then be available on http://localhost:8080
.
You can start an ID check by directly accessing the landing page URL, for example:
- Donor:
http://localhost:8080/start?personType=donor&lpas[]=M-1234-1234-1234
- Certificate provider:
http://localhost:8080/start?personType=certificateProvider&lpas[]=M-1234-1234-1234
The LPA UID you use doesn't matter as the data is randomly generated (see Mocks below)
You can run make api-test
and make front-test
to run Psalm, PHPCS and unit tests in each service. There are more specific commands for each available, which you can find by running make help
.
For local development we mock several external services. The mock behaviour is explained below:
When requesting an LPA from Sirius, only certain LPA numbers are supported by the mock service. This is to ensure that the user data returned is consistent with the other services presently mocked by the system, eg Experian.
The LPAs are as follows:
M-XYXY-YAGA-35G3 - donor that will pass Experian's Fraudscore M-XYXY-YAGA-35G4 - donor that will fail Experian's Fraudscore with a no decision (ie person cannot be identified) M-XYXY-YAGA-35G0 - donor that will fail Experian's Fraudscore with a STOP result (ie person has been identified and is high risk) M-XYXY-YAGA-0000 - certificate provider that will pass Experian's Fraudscore M-XYXY-YAGA-0001 - certificate provider that will fail Experian's Fraudscore with a no decision (ie person cannot be identified) M-XYXY-YAGA-0002 - certificate provider that will fail Experian's Fraudscore with a STOP result (ie person has been identified and is high risk)
When sending a completed ID check or document to Sirius, it will always return a 2xx response as long as the request shape matches the API specification.
When checking if the caller's details match the passport or driving license number given, the mock will return "not enough details" if the number ends with 9, "no match" if it ends with 8 and "pass" for all other numbers.
When checking if the caller's details match the national insurance number given, the mock will return "not enough details" if the national insurance number ends with "D", "no match" if it ends with "C" and "pass" for all other values.
The mock fraud score API will always return "ACCEPT" and a score of 999.
The mock KBV service will return a random selection of the following questions. Each question has a single correct answer, which is included below:
- Who is your electricity supplier?
- VoltWave
- How much was your last phone bill?
- £5.99
- What is your mother’s maiden name?
- Germanotta
- What are the last two characters of your car number plate?
- IF
- Name one of your current account providers
- Liberty Trust Bank
- In what month did you move into your current house?
- July
- Which company provides your car insurance?
- SafeDrive Insurance
- What colour is your front door?
- Pink
When requesting the nearest Post Office to a postcode, the mock will always return the same three results.
When creating a session with the Post Office, the mock will always return a 2xx response as long as the request shape matches the API specification.