Skip to content

Commit

Permalink
Merge pull request #119 from fernandopradocabrillo/kyc-match-and-fill…
Browse files Browse the repository at this point in the history
…-in-Fall24

Pre release r1.1 for kyc-match + kyc-fill-in + CHANGELOG + README
  • Loading branch information
fernandopradocabrillo authored Aug 13, 2024
2 parents eff9620 + 8570424 commit 4ed88a7
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 47 deletions.
63 changes: 63 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,74 @@

## Table of Contents

- [r1.1](#r11)
- [v0.1.1](#v011)
- [v0.1.0](#v010)

**Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.**

The below sections record the changes for each API version in each release as follows:

* for each first alpha or release-candidate API version, all changes since the release of the previous public API version
* for subsequent alpha or release-candidate API versions, the delta with respect to the previous pre-release
* for a public API version, the consolidated changes since the release of the previous public API version

# r1.1 - rc

## Release Notes

This release contains the definition and documentation of
* kyc-match v0.2.0-rc.1
* kyc-fill-in v0.2.0-rc.1

The API definition(s) are based on
* Commonalities v0.4.0
* Identity and Consent Management v0.2.0

## kyc-match v0.2.0-rc.1

### Added

* Include score functionality by @fernandopradocabrillo in https://github.com/camaraproject/KnowYourCustomer/pull/104

### Changed

* Alignment of info, servers objects and security scope names by @rartych in https://github.com/camaraproject/KnowYourCustomer/pull/114

### Fixed

* n/a

### Removed

* n/a

## kyc-fill-in v0.2.0-rc.1

**Main Changes**

* API definition updated to conform to the Commonalities v0.4.0 and Identity and Consent Management v0.2.0 guidelines included in the CAMARA Fall24 meta-release. No new features were added.

### Added

* n/a

### Changed

* Scope changed from `know-your-customer:fill-in` to `kyc-fill-in:fill-in`

### Fixed

* n/a

### Removed

* n/a

## New Contributors
* @rartych made their first contribution in https://github.com/camaraproject/KnowYourCustomer/pull/114
* @jgarciahospital made their first contribution in https://github.com/camaraproject/KnowYourCustomer/pull/111

# v0.1.1

**This is a bugfix release for the first version of the KYC APIs.**
Expand Down
17 changes: 15 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@
<a href="https://github.com/camaraproject/KnowYourCustomer/releases/latest" title="Latest Release"><img src="https://img.shields.io/github/release/camaraproject/KnowYourCustomer?style=plastic"></a>

# KnowYourCustomer

Repository to describe, develop, document and test the KnowYourCustomer API family

## Scope

* Service APIs for “KnowYourCustomer” (see APIBacklog.md)
* It provides the customer with the ability to:
* compare the information it (Service Provider, SP) has for a particular user with that on file (and verified) by the user's Operator in their own KYC records, in order for the SP to confirm the accuracy of the information and provide a specific service to the user. (KYC Match)
Expand All @@ -18,11 +20,22 @@ Repository to describe, develop, document and test the KnowYourCustomer API fami
* Started: September 2023

## Release Information
* The latest public release is available here: https://github.com/camaraproject/KnowYourCustomer/releases/latest
* Pre-releases of this sub project are available in https://github.com/camaraproject/KnowYourCustomer/releases

* Note: Please be aware that the project will have updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. For best results, use the latest available release.
* **The latest pre-release of CAMARA Know Your customer is [r1.1](https://github.com/camaraproject/DeviceLocation/tree/r1.1)**. The Release Tag is [r1.1](https://github.com/camaraproject/SimSwap/releases/tag/r1.1).
- Contains the following API definitions **with inline documentation**:
- kyc-match: [YAML spec file](https://github.com/camaraproject/KnowYourCustomer/blob/r1.1/code/API_definitions/kyc-match.yaml) | [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/KnowYourCustomer/r1.1/code/API_definitions/kyc-match.yaml&nocors) | [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/KnowYourCustomer/r1.1/code/API_definitions/kyc-match.yaml&nocors)
- kyc-fill-in: [YAML spec file](https://github.com/camaraproject/KnowYourCustomer/blob/r1.1/code/API_definitions/kyc-fill-in.yaml) | [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/KnowYourCustomer/r1.1/code/API_definitions/kyc-fill-in.yaml&nocors) | [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/KnowYourCustomer/r1.1/code/API_definitions/kyc-fill-in.yaml&nocors)

* The latest public release is available [here](https://github.com/camaraproject/KnowYourCustomer/releases/tag/v0.1.1)
- Contains the following API definitions **with inline documentation**:
- kyc-match: [YAML spec file](https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-match.yaml) | [View it on ReDoc](https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-match.yaml&nocors) | [View it on Swagger Editor](https://editor.swagger.io/?url=https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-match.yaml&nocors)
- kyc-fill-in: [YAML spec file](https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-fill-in.yaml) | [View it on ReDoc](https://redocly.github.io/redoc/?url=https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-fill-in.yaml&nocors) | [View it on Swagger Editor](https://editor.swagger.io/?url=https://github.com/camaraproject/KnowYourCustomer/blob/release-v0.1.1/code/API_definitions/kyc-fill-in.yaml&nocors)
* Other releases of this sub project are available in https://github.com/camaraproject/KnowYourCustomer/releases
* For changes see [CHANGELOG.md](https://github.com/camaraproject/KnowYourCustomer/blob/main/CHANGELOG.md)

## Contributing

* Meetings
* Schedule: Bi-weekly, Tuesday, 09:00 CEST (07:00 UTC) (till October 27th 2024)
* [Registration / Join](https://zoom-lfx.platform.linuxfoundation.org/meeting/96235150735?password=7e3fea67-a76e-4941-8a70-392cf5545917)
Expand Down
8 changes: 4 additions & 4 deletions code/API_definitions/kyc-fill-in.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,16 @@ info:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html

version: wip
version: 0.2.0-rc.1
x-camara-commonalities: 0.4.0

servers:
- url: '{apiRoot}/kyc-fill-in/vwip'
- url: '{apiRoot}/kyc-fill-in/v0.2rc1'

variables:
apiRoot:
default: http://localhost:9091
description: API root
description: API root, defined by the service provider, e.g. `api.example.com` or `api.example.com/somepath`

tags:
- name: Fill-in
Expand Down Expand Up @@ -102,7 +102,7 @@ paths:
phoneNumber: '+34629255833'
idDocument: 66666666q
name: Federica Sanchez Arjona
giventName: Federica
givenName: Federica
familyName: Sanchez Arjona
nameKanaHankaku: federica
nameKanaZenkaku: Federica
Expand Down
16 changes: 8 additions & 8 deletions code/API_definitions/kyc-match.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,16 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
version: 0.2.0-rc.1

x-camara-commonalities: 0.4.0

servers:
- url: '{apiRoot}/kyc-match/vwip'
- url: '{apiRoot}/kyc-match/v0.2rc1'
variables:
apiRoot:
default: http://localhost:9091
description: API root
description: API root, defined by the service provider, e.g. `api.example.com` or `api.example.com/somepath`

tags:
- name: Match
Expand Down Expand Up @@ -94,7 +94,7 @@ paths:
phoneNumber: '+34629255833'
idDocument: 66666666q
name: Federica Sanchez Arjona
giventName: Federica
givenName: Federica
familyName: Sanchez Arjona
nameKanaHankaku: federica
nameKanaZenkaku: Federica
Expand Down Expand Up @@ -129,13 +129,13 @@ paths:
value:
idDocumentMatch: 'true'
nameMatch: 'true'
giventNameMatch: 'not_available'
givenNameMatch: 'not_available'
familyNameMatch: 'not_available'
nameKanaHankakuMatch: 'true'
nameKanaZenkakuMatch: 'false'
middleNamesMatch: 'true'
familyNameAtBirthMatch: 'false'
familyNameAtBirthMatchScore: 90.5
familyNameAtBirthMatchScore: 90
addressMatch: 'true'
streetNameMatch: 'true'
streetNumberMatch: 'true'
Expand All @@ -146,7 +146,7 @@ paths:
houseNumberExtensionMatch: 'not_available'
birthdateMatch: 'false'
emailMatch: 'false'
emailMatchScore: 87.8
emailMatchScore: 87
genderMatch: 'false'

'400':
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
**User Story: KYC Match - verify customer information**
<br>

| **Item** | **Details** |
| ---- | ------- |
| ***Summary*** | As an application developer belonging to an enterprise, I want to confirm (using my application server/backend service) the identity of a customer by comparison to MNO user's information. Information which could be provided are phone number, given name, family name, street address, city, country, region, postal code, birthdate, email address, etc. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Mobile Network Operators (MNO), hyperscalers, application developers, enterprise. <br> **Scope:** Any phone line (not limlited to 4G, 5G) |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:User has provided mandatory information of its identity</li><li>Application developer has onboarded to MNO API</li><li>Application developer has API credentials</li><li>Privacy legal base requirement has been solved (Customer privacy) </li></ol>|
| ***Activities/Steps*** | **Starts when:** The customer application server makes a request to the KYC service (API) to confirm user identity.<br>**Ends when:** The MNO service returns matching result for each attribute of the customer identity.<br> |
| ***Post-conditions*** | The application developer can make decision to use this customer data to follow-up its process|
| ***Exceptions*** | Several exceptions might occur during the KYC Match API operations:<br><ul><li>Unauthorized: Not valid credentials (e.g. use of already expired access token).</li><li>Not Found: The number provided is not managed by the MNO</li><li>Invalid input: Not all mandatory input data to invoke operation (e.g. phone number).</li></ul>|

<br><br>

**User Story: KYC Fill-In - Get identity information of customer**
<br>

| **Item** | **Details** |
| ---- | ------- |
| ***Summary*** | As an application developer belonging to an enterprise, I want to retreive (using my application server/backend service) the identity information of a user by requesting the MNO to query information stored in its customer database. Information returned by the MNO are given name, family name, street address, city, country, region, postal code, birthdate, email address, etc. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Mobile Network Operators (MNO), hyperscalers, application developers, enterprise. <br> **Scope:** Any phone line (not limlited to 4G, 5G) |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:User has provided mandatory information of its identity</li><li>Application developer has onboarded to MNO API</li><li>Application developer has API credentials</li><li>Privacy legal base requirement has been solved (Customer privacy) </li></ol>|
| ***Activities/Steps*** | **Starts when:** The third party/enterprise customer application server makes a request to the KYC service (API) to retreive user identity information.<br>**Ends when:** The MNO service returns the identity information stored in its customer database.<br> |
| ***Post-conditions*** | The application developer uses this customer data to follow-up its process |
| ***Exceptions*** | Several exceptions might occur during the KYC Fill-in API operations:<br><ul><li>Unauthorized: Not valid credentials (e.g. use of already expired access token).</li><li>Not Found: The number provided is not managed by the MNO</li><li>Invalid input: Not all mandatory input data to invoke operation (e.g. phone number).</li></ul>|


**User Story: KYC Match - verify customer information**
<br>

| **Item** | **Details** |
| ---- | ------- |
| ***Summary*** | As an application developer belonging to an enterprise, I want to confirm (using my application server/backend service) the identity of a customer by comparison to MNO user's information. Information which could be provided are phone number, given name, family name, street address, city, country, region, postal code, birthdate, email address, etc. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Mobile Network Operators (MNO), hyperscalers, application developers, enterprise. <br> **Scope:** Any phone line (not limlited to 4G, 5G) |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:User has provided mandatory information of its identity</li><li>Application developer has onboarded to MNO API</li><li>Application developer has API credentials</li><li>Privacy legal base requirement has been solved (Customer privacy) </li></ol>|
| ***Activities/Steps*** | **Starts when:** The customer application server makes a request to the KYC service (API) to confirm user identity.<br>**Ends when:** The MNO service returns matching result for each attribute of the customer identity.<br> |
| ***Post-conditions*** | The application developer can make decision to use this customer data to follow-up its process|
| ***Exceptions*** | Several exceptions might occur during the KYC Match API operations:<br><ul><li>Unauthorized: Not valid credentials (e.g. use of already expired access token).</li><li>Not Found: The number provided is not managed by the MNO</li><li>Invalid input: Not all mandatory input data to invoke operation (e.g. phone number).</li></ul>|

<br><br>

**User Story: KYC Fill-In - Get identity information of customer**
<br>

| **Item** | **Details** |
| ---- | ------- |
| ***Summary*** | As an application developer belonging to an enterprise, I want to retreive (using my application server/backend service) the identity information of a user by requesting the MNO to query information stored in its customer database. Information returned by the MNO are given name, family name, street address, city, country, region, postal code, birthdate, email address, etc. |
| ***Roles, Actors and Scope*** | **Roles:** Customer:User<br> **Actors:** Mobile Network Operators (MNO), hyperscalers, application developers, enterprise. <br> **Scope:** Any phone line (not limlited to 4G, 5G) |
| ***Pre-conditions*** |The preconditions are listed below:<br><ol><li>The Customer:User has provided mandatory information of its identity</li><li>Application developer has onboarded to MNO API</li><li>Application developer has API credentials</li><li>Privacy legal base requirement has been solved (Customer privacy) </li></ol>|
| ***Activities/Steps*** | **Starts when:** The third party/enterprise customer application server makes a request to the KYC service (API) to retreive user identity information.<br>**Ends when:** The MNO service returns the identity information stored in its customer database.<br> |
| ***Post-conditions*** | The application developer uses this customer data to follow-up its process |
| ***Exceptions*** | Several exceptions might occur during the KYC Fill-in API operations:<br><ul><li>Unauthorized: Not valid credentials (e.g. use of already expired access token).</li><li>Not Found: The number provided is not managed by the MNO</li><li>Invalid input: Not all mandatory input data to invoke operation (e.g. phone number).</li></ul>|


Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# API Readiness Checklist

Checklist for kyc-fill-in 0.1.1 in FALL24
Checklist for kyc-fill-in 0.2.0-rc in release r1.1

| Nr | API release assets | alpha | release-candidate | initial<br>public | stable<br> public | Status | Comments |
|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:|
| 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/kyc-fill-in.yaml) |
| 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/kyc-fill-in.yaml) |
| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | |
| 3 | Guidelines from ICM applied | O | M | M | M | Y | |
| 4 | API versioning convention applied | M | M | M | M | Y | |
| 5 | API documentation | M | M | M | M | Y | contained in API definition |
| 6 | User stories | O | O | O | M | Y | [link](documentation/API_documentation/Know%20Your%20Customer%20User%20Story.md) |
| 5 | API documentation | M | M | M | M | Y | Embed documentation into API spec - [link](/code/API_definitions/kyc-fill-in.yaml) |
| 6 | User stories | O | O | O | M | Y | [link](documentation/API_documentation/KnowYourCustomer_User_Story.md) |
| 7 | Basic API test cases & documentation | O | M | M | M | N | to be provided |
| 8 | Enhanced API test cases & documentation | O | O | O | M | N | |
| 9 | Test result statement | O | O | O | M | N | |
| 10 | API release numbering convention applied | M | M | M | M | Y | |
| 11 | Change log updated | M | M | M | M | N | to be provided |
| 12 | Previous public release was certified | O | O | O | M | N | |
| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) |
| 12 | Previous public release was certified | O | O | O | M | N | |
Loading

0 comments on commit 4ed88a7

Please sign in to comment.