GiroIdent GwG Flow
Introduction
GiroIdent Gwg checks the user’s identity by comparing the user’s first and last name with the account holder name of the account the user will log on to. Additionally. the user’s data is validated using the SCHUFA Account Check plus IBAN and Identity Check web services.
Prerequisites
The major prerequisite is to have a valid set of client credentials:
client_id
andclient_secret
.A user has already been created
With self-managed user: Getting Started - User Management
With Process Controller: Obtain Authorization via Process Controller (recommended)
An OAuth bearer token has been obtained.
TL:TR
Used Endpoints
In short, you need to call those 2 endpoints to obtain the identity check result.
Description | HTTP Method | Process Controller Endpoint | Link to API Doc |
---|---|---|---|
Create Gwg check. | POST |
| |
Get Gwg check status and verdict. | GET |
| https://docs.finapi.io/?product=giroident#get-/checks-gwg/-checkId- |
Process Overview
The result of the identity check either can be obtained by registering a callback, or by polling the GET endpoint.
finAPI recommends to use a callback to receive the result.
Process With Callback
Process with Result Polling
cURL Example for Result Polling
Translated into cURL it looks like the following:
Step 1 - Create a Gwg Identity Check
Create an identity check.
curl --location 'https://giroident2-sandbox.finapi.io/api/v2/checks-gwg' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your OAUTH bearer token>' \
--data '{
"first-name": "Finapi",
"last-name": "Demobank",
"iban": "DE77533700080111111100",
"blz": "DEMO0001",
"strict-check": false,
"gender": "M",
"date-of-birth": "1980-01-01",
"current-address": {
"street": "Adams-Lehmann-Str. 44",
"zip": "80797",
"city": "München",
"country": "DEU"
},
"schufa-user-id": "<your SCHUFA ID for Account- and Identity Check>",
"schufa-password": "<your SCHUFA password>",
"external-id": "12345"
}'
The result looks like this:
{
"check-id": "3a824de8-1049-475c-89c4-71ad9716d379",
"redirect-url": "https://webform-sandbox.finapi.io/wf/0cfb4a75-1b23-4e0e-9dee-12cf0739a55f"
}
Step 2 - Web Form
Open the redirect-url
in a web browser.
Follow the instructions on the website. The test credentials to enter are user = Data Intelligence
, password = Analysis
.
Step 3 - Get the Result of the Gwg Identity Check
Repeat the call to the “Query the GiroIdent Basis check result” endpoint with the check ID from Step 1, until the status is not “IN_PROGRESS
" anymore.
curl --location 'https://giroident2-sandbox.finapi.io/api/v2/checks/3a824de8-1049-475c-89c4-71ad9716d379' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your OAUTH bearer token>' \
--data ''
The in-progress result looks like this:
{
"status": "IN_PROGRESS"
}
The final result looks like this:
{
"status": "COMPLETED",
"name-equality": true,
"name-equality-score": 1.0000,
"gi-iban-verification-score": true,
"schufa-bank-account-check-plus-iban-p": "p01",
"schufa-bank-account-check-plus-iban-s": "s01"
}
Identity Check Results
The recommendation for a check to be considered successful is to consider the result parameters and values
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
schufa-identity-check | not, respectively greater than |
or:
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
schufa-bank-account-check-plus-iban-p |
|
schufa-bank-account-check-plus-iban-s |
|
Optionally with additional verified IBAN:
Parameter In Check Result | Value |
---|---|
gi-iban-verification-score |
|
Example Result: Successful Check with Positive Account Check
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
name-equality-score |
|
schufa-bank-account-check-plus-iban-p |
|
schufa-bank-account-check-plus-iban-s |
|
gi-iban-verification-score |
|
Example Result: Successful Check with Negative Account Check but Positive Identity Check
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
name-equality-score |
|
schufa-bank-account-check-plus-iban-p |
|
schufa-bank-account-check-plus-iban-s |
|
schufa-identity-check |
|
schufa-proven-identity |
|
Example Result: Inconclusive Check - In Progress
Parameter In Check Result | Value |
---|---|
status |
|
Example Result: Failed Check - Bank Login
Parameter In Check Result | Value |
---|---|
status |
|
error-message | “ |
Example Result: Failed Check - Account Holder Name Validation
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
name-equality-score |
|
schufa-bank-account-check-plus-iban-p |
|
schufa-bank-account-check-plus-iban-s |
|
Example Result: Failed Check - Account Check and Identity Check
Parameter In Check Result | Value |
---|---|
status |
|
name-equality |
|
name-equality-score |
|
schufa-bank-account-check-plus-iban-p |
|
schufa-bank-account-check-plus-iban-s |
|
schufa-identity-check |
|