From bc006c5a3ef9ef31e9aeb8cee15c2ede54c03a96 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Mon, 4 Aug 2025 16:24:44 +0200
Subject: [PATCH 1/9] URLs to Images
https://github.com/camaraproject/KnowYourCustomerMatch/issues/20
---
code/API_definitions/kyc-match.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml
index 4be4615..8b16517 100644
--- a/code/API_definitions/kyc-match.yaml
+++ b/code/API_definitions/kyc-match.yaml
@@ -25,7 +25,7 @@ info:
The following figure is the generic high-level flows of this API.
-
+
Note:
@@ -67,12 +67,12 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
- version: 0.4.0-rc.1
+ version: wip
x-camara-commonalities: 0.6
servers:
- - url: '{apiRoot}/kyc-match/v0.4rc1'
+ - url: '{apiRoot}/kyc-match/vwip'
variables:
apiRoot:
default: http://localhost:9091
From d3e3de446e5c85640af8dfe2ee51d8493bed5e74 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Tue, 19 Aug 2025 08:29:09 +0200
Subject: [PATCH 2/9] wip
https://github.com/camaraproject/KnowYourCustomerMatch/pull/28#issuecomment-3166284785
---
code/Test_definitions/kyc-match.feature | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index 0102f59..a7a5c0f 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -1,4 +1,4 @@
-Feature: CAMARA Know Your Customer Match API, v0.4.0-rc.1 - Operation KYC_Match
+Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
# Input to be provided by the implementation to the tester
#
# Implementation indications:
@@ -7,11 +7,11 @@ Feature: CAMARA Know Your Customer Match API, v0.4.0-rc.1 - Operation KYC_Match
# Testing assets:
# * A mobile line identified by its phone number "phoneNumber"
#
- # References to OAS spec schemas refer to schemas specifies in kyc-match.yaml, version 0.4.0-rc.1
+ # References to OAS spec schemas refer to schemas specifies in kyc-match.yaml, version wip
Background: Common KYC_Match setup
Given an environment at "apiRoot"
- And the resource "/kyc-match/v0.4rc1/match"
+ And the resource "/kyc-match/vwip/match"
And the header "Content-Type" is set to "application/json"
And the header "Authorization" is set to a valid access token
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
From 2760152354876e97b587d0976567f7398aaa3666 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Tue, 19 Aug 2025 13:27:56 +0200
Subject: [PATCH 3/9] ErrorInfo scheme
https://github.com/camaraproject/KnowYourCustomerMatch/issues/29#issuecomment-3200143523
---
code/API_definitions/kyc-match.yaml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml
index 8b16517..7bccd3c 100644
--- a/code/API_definitions/kyc-match.yaml
+++ b/code/API_definitions/kyc-match.yaml
@@ -524,19 +524,19 @@ components:
ErrorInfo:
type: object
required:
+ - message
- status
- code
- - message
properties:
+ message:
+ type: string
+ description: A human-readable description of what the event represents
status:
type: integer
description: HTTP response status code
code:
type: string
- description: Code given to this error
- message:
- type: string
- description: Detailed error description
+ description: A human-readable code to describe the error
responses:
Generic400:
From 4d78c42dd56ca65a016f4384e9efbae4a800a33e Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Thu, 21 Aug 2025 12:21:35 +0200
Subject: [PATCH 4/9] Centralised Mega Linter fix
https://github.com/camaraproject/KnowYourCustomerMatch/pull/30#issuecomment-3206288296
---
code/Test_definitions/kyc-match.feature | 738 ++++++++++++------------
1 file changed, 369 insertions(+), 369 deletions(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index a7a5c0f..1de2664 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -1,371 +1,371 @@
Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
- # Input to be provided by the implementation to the tester
- #
- # Implementation indications:
- # * Whether or not the idDocument request body property is mandatory.
- #
- # Testing assets:
- # * A mobile line identified by its phone number "phoneNumber"
- #
- # References to OAS spec schemas refer to schemas specifies in kyc-match.yaml, version wip
-
- Background: Common KYC_Match setup
- Given an environment at "apiRoot"
- And the resource "/kyc-match/vwip/match"
- And the header "Content-Type" is set to "application/json"
- And the header "Authorization" is set to a valid access token
- And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
- And the request body is set by default to a request body compliant with the schema
-
-
- # Happy path scenarios
-
- @KYC_Match_1_success_request_response
- Scenario: Validate successful response
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
-
- @KYC_Match_2_success_specific_property
- Scenario Outline: Validate success response when providing specific property
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination
- And the request body property "" is set to a valid value that complies with the OAS schema at "/components/schemas/KYC_MatchRequestBody"
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
- And the response contains the property ""
-
- Examples:
- | request_property_path | response_property_path |
- | $.idDocument | $.idDocumentMatch |
- | $.idDocumentType | $.idDocumentTypeMatch |
- | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
- | $.name | $.nameMatch |
- | $.givenName | $.givenNameMatch |
- | $.familyName | $.familyNameMatch |
- | $.nameKanaHankaku | $.nameKanaHankakuMatch |
- | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
- | $.middleNames | $.middleNamesMatch |
- | $.familyNameAtBirth | $.familyNameAtBirthMatch |
- | $.address | $.addressMatch |
- | $.streetName | $.streetNameMatch |
- | $.streetNumber | $.streetNumberMatch |
- | $.postalCode | $.postalCodeMatch |
- | $.region | $.regionMatch |
- | $.locality | $.localityMatch |
- | $.country | $.countryMatch |
- | $.houseNumberExtension | $.houseNumberExtensionMatch |
- | $.birthdate | $.birthdateMatch |
- | $.email | $.emailMatch |
- | $.gender | $.genderMatch |
- | $.cityOfBirth | $.cityOfBirthMatch |
- | $.countryOfBirth | $.countryOfBirthMatch |
- | $.nationality | $.nationalityMatch |
-
- @KYC_Match_3_success_specific_property_score
- # Note: This test scenario is optional, as implementation of 'score' feature is optional to network operators/ API providers.
- Scenario Outline: Validate success response when providing specific property with false value
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does not match the value stored in the MNO system
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
- And the response property "" is equal to "false"
- And the response property "" is equal to an integer value between 0 and 99
-
- Examples:
- | request_property_path | response_property_path | response_score_property_path |
- | $.name | $.nameMatch | $.nameMatchScore |
- | $.givenName | $.givenNameMatch | $.givenNameMatchScore |
- | $.familyName | $.familyNameMatch | $.familyNameMatchScore |
- | $.nameKanaHankaku | $.nameKanaHankakuMatch | $.nameKanaHankakuMatchScore |
- | $.nameKanaZenkaku | $.nameKanaZenkakuMatch | $.nameKanaZenkakuMatchScore |
- | $.middleNames | $.middleNamesMatch | $.middleNamesMatchScore |
- | $.familyNameAtBirth | $.familyNameAtBirthMatch | $.familyNameAtBirthMatchScore |
- | $.address | $.addressMatch | $.addressMatchScore |
- | $.streetName | $.streetNameMatch | $.streetNameMatchScore |
- | $.streetNumber | $.streetNumberMatch | $.streetNumberMatchScore |
- | $.region | $.regionMatch | $.regionMatchScore |
- | $.locality | $.localityMatch | $.localityMatchScore |
- | $.email | $.emailMatch | $.emailMatchScore |
- | $.cityOfBirth | $.cityOfBirthMatch | $.cityOfBirthMatchScore |
-
- @KYC_Match_4_perfect_match_no_scores_returned
- Scenario Outline: Validate success response when provided property value is a perfect match
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does perfectly match the value stored in the MNO system
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
- And the response property "" is equal to "true"
- And the correspondent score property, if exists, is not returned
-
- Examples:
- | request_property_path | response_property_path |
- | $.idDocument | $.idDocumentMatch |
- | $.idDocumentType | $.idDocumentTypeMatch |
- | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
- | $.name | $.nameMatch |
- | $.givenName | $.givenNameMatch |
- | $.familyName | $.familyNameMatch |
- | $.nameKanaHankaku | $.nameKanaHankakuMatch |
- | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
- | $.middleNames | $.middleNamesMatch |
- | $.familyNameAtBirth | $.familyNameAtBirthMatch |
- | $.address | $.addressMatch |
- | $.streetName | $.streetNameMatch |
- | $.streetNumber | $.streetNumberMatch |
- | $.postalCode | $.postalCodeMatch |
- | $.region | $.regionMatch |
- | $.locality | $.localityMatch |
- | $.country | $.countryMatch |
- | $.birthdate | $.birthdateMatch |
- | $.email | $.emailMatch |
- | $.gender | $.genderMatch |
- | $.cityOfBirth | $.cityOfBirthMatch |
- | $.countryOfBirth | $.countryOfBirthMatch |
- | $.nationality | $.nationalityMatch |
-
- @KYC_Match_5_success_specific_property_false
- # This scenario test the false result as scenario KYC_Match_3_success_specific_property_score but without the score properties
- Scenario Outline: Validate success response when provided property value is a perfect match
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does perfectly match the value stored in the MNO system
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
- And the response property "" is equal to "false"
- Examples:
- | request_property_path | response_property_path |
- | $.idDocument | $.idDocumentMatch |
- | $.idDocumentType | $.idDocumentTypeMatch |
- | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
- | $.name | $.nameMatch |
- | $.givenName | $.givenNameMatch |
- | $.familyName | $.familyNameMatch |
- | $.nameKanaHankaku | $.nameKanaHankakuMatch |
- | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
- | $.middleNames | $.middleNamesMatch |
- | $.familyNameAtBirth | $.familyNameAtBirthMatch |
- | $.address | $.addressMatch |
- | $.streetName | $.streetNameMatch |
- | $.streetNumber | $.streetNumberMatch |
- | $.postalCode | $.postalCodeMatch |
- | $.region | $.regionMatch |
- | $.locality | $.localityMatch |
- | $.country | $.countryMatch |
- | $.birthdate | $.birthdateMatch |
- | $.email | $.emailMatch |
- | $.gender | $.genderMatch |
- | $.cityOfBirth | $.cityOfBirthMatch |
- | $.countryOfBirth | $.countryOfBirthMatch |
- | $.nationality | $.nationalityMatch |
-
- @KYC_Match_6_success_multiple_optional_parameter_combinations
- Scenario: Validate success response when providing different optional parameter combinations
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body property "$.idDocument" is set to a valid identity document
- And the request body property "$.name" is set to a valid name
- And the request body property "$.givenName" is set to a valid given name
- And the request body property "$.familyName" is set to a valid family name
- And the request body property "$.nameKanaHankaku" is set to a valid name
- And the request body property "$.nameKanaZenkaku" is set to a valid name
- And the request body property "$.middleNames" is set to a valid middle names
- And the request body property "$.familyNameAtBirth" is set to a valid family name at birth
- And the request body property "$.address" is set to a valid address
- And the request body property "$.streetName" is set to a valid street name of the address
- And the request body property "$.streetNumber" is set to a valid street number of the address
- And the request body property "$.postalCode" is set to a valid postal code of the address
- And the request body property "$.region" is set to a valid region of the address
- And the request body property "$.locality" is set to a valid locality of the address
- And the request body property "$.country" is set to the country of the address value that complies with the ISO 3166-1 alpha-2 format
- And the request body property "$.houseNumberExtension" is set to a valid house number extension of the address
- And the request body property "$.birthdate" is set to a birthdate value that complies with the ISO 8601 calendar date format "YYYY-MM-DD"
- And the request body property "$.email" is set to a email value that complies with the RFC format "{local-part}@{domain}"
- And the request body property "$.gender" is set to a valid gender value that belongs to the enumeration ("MALE", "FEMALE", "OTHER")
- And the request body property "$.nationality" is set to the country for the nationality and complies with the ISO 3166-1 alpha-2 format
- And the given request body is populated with any random combination of afore mention optional parameters
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
-
- @KYC_Match_7_success_id_document_required
- # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
- Scenario: Validate success when idDocument is required to perform the match validation for any other property
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body property "$.idDocument" is set to a valid identity document associated with the identified phoneNumber
- And the request body is set to a valid parameter combination
- When the request "KYC_Match" is sent
- Then the response status code is 200
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
-
- # Generic 401 errors
-
- @KYC_Match_401.1_expired_access_token
- Scenario: Error response for expired access token
- Given the header "Authorization" is set to an expired access token
- When the request "KYC_Match" is sent
- Then the response status code is 401
- And the response property "$.code" is "UNAUTHENTICATED"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 401
-
-
- @KYC_Match_401.2_invalid_access_token
- Scenario: Error response for invalid access token
- Given the header "Authorization" is set to an invalid access token
- When the request "KYC_Match" is sent
- Then the response status code is 401
- And the response property "$.code" is "UNAUTHENTICATED"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 401
-
-
- @KYC_Match_401.3_no_header_authorization
- Scenario: Error response for no header "Authorization"
- Given the header "Authorization" is not sent
- When the request "KYC_Match" is sent
- Then the response status code is 401
- And the response property "$.code" is "UNAUTHENTICATED"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 401
-
-
- # Generic 400 errors
-
- @KYC_Match_400.1_no_request_body
+ # Input to be provided by the implementation to the tester
+ #
+ # Implementation indications:
+ # * Whether or not the idDocument request body property is mandatory.
+ #
+ # Testing assets:
+ # * A mobile line identified by its phone number "phoneNumber"
+ #
+ # References to OAS spec schemas refer to schemas specifies in kyc-match.yaml, version wip
+
+ Background: Common KYC_Match setup
+ Given an environment at "apiRoot"
+ And the resource "/kyc-match/vwip/match"
+ And the header "Content-Type" is set to "application/json"
+ And the header "Authorization" is set to a valid access token
+ And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
+ And the request body is set by default to a request body compliant with the schema
+
+
+ # Happy path scenarios
+
+ @KYC_Match_1_success_request_response
+ Scenario: Validate successful response
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+
+ @KYC_Match_2_success_specific_property
+ Scenario Outline: Validate success response when providing specific property
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination
+ And the request body property "" is set to a valid value that complies with the OAS schema at "/components/schemas/KYC_MatchRequestBody"
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+ And the response contains the property ""
+
+ Examples:
+ | request_property_path | response_property_path |
+ | $.idDocument | $.idDocumentMatch |
+ | $.idDocumentType | $.idDocumentTypeMatch |
+ | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
+ | $.name | $.nameMatch |
+ | $.givenName | $.givenNameMatch |
+ | $.familyName | $.familyNameMatch |
+ | $.nameKanaHankaku | $.nameKanaHankakuMatch |
+ | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
+ | $.middleNames | $.middleNamesMatch |
+ | $.familyNameAtBirth | $.familyNameAtBirthMatch |
+ | $.address | $.addressMatch |
+ | $.streetName | $.streetNameMatch |
+ | $.streetNumber | $.streetNumberMatch |
+ | $.postalCode | $.postalCodeMatch |
+ | $.region | $.regionMatch |
+ | $.locality | $.localityMatch |
+ | $.country | $.countryMatch |
+ | $.houseNumberExtension | $.houseNumberExtensionMatch |
+ | $.birthdate | $.birthdateMatch |
+ | $.email | $.emailMatch |
+ | $.gender | $.genderMatch |
+ | $.cityOfBirth | $.cityOfBirthMatch |
+ | $.countryOfBirth | $.countryOfBirthMatch |
+ | $.nationality | $.nationalityMatch |
+
+ @KYC_Match_3_success_specific_property_score
+ # Note: This test scenario is optional, as implementation of 'score' feature is optional to network operators/ API providers.
+ Scenario Outline: Validate success response when providing specific property with false value
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does not match the value stored in the MNO system
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+ And the response property "" is equal to "false"
+ And the response property "" is equal to an integer value between 0 and 99
+
+ Examples:
+ | request_property_path | response_property_path | response_score_property_path |
+ | $.name | $.nameMatch | $.nameMatchScore |
+ | $.givenName | $.givenNameMatch | $.givenNameMatchScore |
+ | $.familyName | $.familyNameMatch | $.familyNameMatchScore |
+ | $.nameKanaHankaku | $.nameKanaHankakuMatch | $.nameKanaHankakuMatchScore |
+ | $.nameKanaZenkaku | $.nameKanaZenkakuMatch | $.nameKanaZenkakuMatchScore |
+ | $.middleNames | $.middleNamesMatch | $.middleNamesMatchScore |
+ | $.familyNameAtBirth | $.familyNameAtBirthMatch | $.familyNameAtBirthMatchScore |
+ | $.address | $.addressMatch | $.addressMatchScore |
+ | $.streetName | $.streetNameMatch | $.streetNameMatchScore |
+ | $.streetNumber | $.streetNumberMatch | $.streetNumberMatchScore |
+ | $.region | $.regionMatch | $.regionMatchScore |
+ | $.locality | $.localityMatch | $.localityMatchScore |
+ | $.email | $.emailMatch | $.emailMatchScore |
+ | $.cityOfBirth | $.cityOfBirthMatch | $.cityOfBirthMatchScore |
+
+ @KYC_Match_4_perfect_match_no_scores_returned
+ Scenario Outline: Validate success response when provided property value is a perfect match
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does perfectly match the value stored in the MNO system
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+ And the response property "" is equal to "true"
+ And the correspondent score property, if exists, is not returned
+
+ Examples:
+ | request_property_path | response_property_path |
+ | $.idDocument | $.idDocumentMatch |
+ | $.idDocumentType | $.idDocumentTypeMatch |
+ | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
+ | $.name | $.nameMatch |
+ | $.givenName | $.givenNameMatch |
+ | $.familyName | $.familyNameMatch |
+ | $.nameKanaHankaku | $.nameKanaHankakuMatch |
+ | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
+ | $.middleNames | $.middleNamesMatch |
+ | $.familyNameAtBirth | $.familyNameAtBirthMatch |
+ | $.address | $.addressMatch |
+ | $.streetName | $.streetNameMatch |
+ | $.streetNumber | $.streetNumberMatch |
+ | $.postalCode | $.postalCodeMatch |
+ | $.region | $.regionMatch |
+ | $.locality | $.localityMatch |
+ | $.country | $.countryMatch |
+ | $.birthdate | $.birthdateMatch |
+ | $.email | $.emailMatch |
+ | $.gender | $.genderMatch |
+ | $.cityOfBirth | $.cityOfBirthMatch |
+ | $.countryOfBirth | $.countryOfBirthMatch |
+ | $.nationality | $.nationalityMatch |
+
+ @KYC_Match_5_success_specific_property_false
+ # This scenario test the false result as scenario KYC_Match_3_success_specific_property_score but without the score properties
+ Scenario Outline: Validate success response when provided property value is a perfect match
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does perfectly match the value stored in the MNO system
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+ And the response property "" is equal to "false"
+ Examples:
+ | request_property_path | response_property_path |
+ | $.idDocument | $.idDocumentMatch |
+ | $.idDocumentType | $.idDocumentTypeMatch |
+ | $.idDocumentExpiryDate | $.idDocumentExpiryDateMatch |
+ | $.name | $.nameMatch |
+ | $.givenName | $.givenNameMatch |
+ | $.familyName | $.familyNameMatch |
+ | $.nameKanaHankaku | $.nameKanaHankakuMatch |
+ | $.nameKanaZenkaku | $.nameKanaZenkakuMatch |
+ | $.middleNames | $.middleNamesMatch |
+ | $.familyNameAtBirth | $.familyNameAtBirthMatch |
+ | $.address | $.addressMatch |
+ | $.streetName | $.streetNameMatch |
+ | $.streetNumber | $.streetNumberMatch |
+ | $.postalCode | $.postalCodeMatch |
+ | $.region | $.regionMatch |
+ | $.locality | $.localityMatch |
+ | $.country | $.countryMatch |
+ | $.birthdate | $.birthdateMatch |
+ | $.email | $.emailMatch |
+ | $.gender | $.genderMatch |
+ | $.cityOfBirth | $.cityOfBirthMatch |
+ | $.countryOfBirth | $.countryOfBirthMatch |
+ | $.nationality | $.nationalityMatch |
+
+ @KYC_Match_6_success_multiple_optional_parameter_combinations
+ Scenario: Validate success response when providing different optional parameter combinations
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body property "$.idDocument" is set to a valid identity document
+ And the request body property "$.name" is set to a valid name
+ And the request body property "$.givenName" is set to a valid given name
+ And the request body property "$.familyName" is set to a valid family name
+ And the request body property "$.nameKanaHankaku" is set to a valid name
+ And the request body property "$.nameKanaZenkaku" is set to a valid name
+ And the request body property "$.middleNames" is set to a valid middle names
+ And the request body property "$.familyNameAtBirth" is set to a valid family name at birth
+ And the request body property "$.address" is set to a valid address
+ And the request body property "$.streetName" is set to a valid street name of the address
+ And the request body property "$.streetNumber" is set to a valid street number of the address
+ And the request body property "$.postalCode" is set to a valid postal code of the address
+ And the request body property "$.region" is set to a valid region of the address
+ And the request body property "$.locality" is set to a valid locality of the address
+ And the request body property "$.country" is set to the country of the address value that complies with the ISO 3166-1 alpha-2 format
+ And the request body property "$.houseNumberExtension" is set to a valid house number extension of the address
+ And the request body property "$.birthdate" is set to a birthdate value that complies with the ISO 8601 calendar date format "YYYY-MM-DD"
+ And the request body property "$.email" is set to a email value that complies with the RFC format "{local-part}@{domain}"
+ And the request body property "$.gender" is set to a valid gender value that belongs to the enumeration ("MALE", "FEMALE", "OTHER")
+ And the request body property "$.nationality" is set to the country for the nationality and complies with the ISO 3166-1 alpha-2 format
+ And the given request body is populated with any random combination of afore mention optional parameters
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+
+ @KYC_Match_7_success_id_document_required
+ # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
+ Scenario: Validate success when idDocument is required to perform the match validation for any other property
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body property "$.idDocument" is set to a valid identity document associated with the identified phoneNumber
+ And the request body is set to a valid parameter combination
+ When the request "KYC_Match" is sent
+ Then the response status code is 200
+ And the response header "x-correlator" has same value as the request header "x-correlator"
+ And the response header "Content-Type" is "application/json"
+ And the response body complies with the OAS schema at "/components/schemas/KYC_MatchResponse"
+
+ # Generic 401 errors
+
+ @KYC_Match_401.1_expired_access_token
+ Scenario: Error response for expired access token
+ Given the header "Authorization" is set to an expired access token
+ When the request "KYC_Match" is sent
+ Then the response status code is 401
+ And the response property "$.code" is "UNAUTHENTICATED"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 401
+
+
+ @KYC_Match_401.2_invalid_access_token
+ Scenario: Error response for invalid access token
+ Given the header "Authorization" is set to an invalid access token
+ When the request "KYC_Match" is sent
+ Then the response status code is 401
+ And the response property "$.code" is "UNAUTHENTICATED"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 401
+
+
+ @KYC_Match_401.3_no_header_authorization
+ Scenario: Error response for no header "Authorization"
+ Given the header "Authorization" is not sent
+ When the request "KYC_Match" is sent
+ Then the response status code is 401
+ And the response property "$.code" is "UNAUTHENTICATED"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 401
+
+
+ # Generic 400 errors
+
+ @KYC_Match_400.1_no_request_body
Scenario: Missing request body
- Given the request body is not included
- When the HTTP "POST" request is sent
- Then the response status code is 400
- And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
- And the response property "$.message" contains a user friendly text
-
- @KYC_Match_400.2_empty_request_body
- Scenario: Empty object as request body
- Given the request body is set to "{}"
- When the HTTP "POST" request is sent
- Then the response status code is 400
- And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
- And the response property "$.message" contains a user friendly text
-
- @KYC_Match_400.3_invalid_argument
- Scenario: Invalid Argument. Generic Syntax Exception
- Given the request body is set to any value which is not compliant with the OAS schema at "/components/schemas/VerifyRequestBody"
- When the HTTP "POST" request is sent
- Then the response status code is 400
- And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
- And the response property "$.message" contains a user friendly text
-
-
- # API Specific Errors
-
- @KYC_Match_10_invalid_param_combination
- Scenario: Error 400 when body does not contain any fields other than phone number
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body property "$.phoneNumber" set to a valid formatted value
- And the request body contains only the property "$.phoneNumber"
- When the request "KYC_Match" is sent
- Then the response status code is 400
- And the response property "$.code" is "KNOW_YOUR_CUSTOMER.INVALID_PARAM_COMBINATION"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 400
-
-
- @KYC_Match_11_phone_number_provided_does_not_match_the_token
- Scenario: Error when the phone number provided in the request body does not match the phone number associated with the access token
- # To test this, a token has to be obtained for a different phoneNumber
- Given the request body property "$.phoneNumber" is set to a valid testing phone number
- And the header "Authorization" is set to a valid access token emitted for a different phone number
- When the request "KYC_Match" is sent
- Then the response status code is 403
- And the response property "$.code" is "INVALID_TOKEN_CONTEXT"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 403
-
-
- @KYC_Match_12_idDocument_required
- # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
- Scenario: Error 403 when body does not contain idDocument when this is required
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body is set to a valid parameter combination without property "$.idDocument"
- When the request "KYC_Match" is sent
- Then the response status code is 403
- And the response property "$.code" is "KNOW_YOUR_CUSTOMER.ID_DOCUMENT_REQUIRED"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 403
-
-
- @KYC_Match_13_idDocument_mismatch_when_idDocument_is_required
- # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
- Scenario: Error 403 when the idDocument included in the request does not match the one saved in the MNO system when the idDocument is required
- Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body property "$.idDocument" is set to a valid idDocument that is not associated with the identified phone number
- When the request "KYC_Match" is sent
- Then the response status code is 403
- And the response property "$.code" is "KNOW_YOUR_CUSTOMER.ID_DOCUMENT_MISMATCH"
- And the response property "$.message" contains a user friendly text
- And the response property "$.status" is 403
-
- # Error scenarios for management of input parameter phoneNumber
-
- @KYC_Match_C02.01_phone_number_not_schema_compliant
- Scenario: Phone number value does not comply with the schema
- Given the header "Authorization" is set to a valid access token which does not identify a single phone number
- And the request body property "$.phoneNumber" does not comply with the OAS schema at "/components/schemas/PhoneNumber"
- When the HTTP "POST" request is sent
- Then the response status code is 400
- And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
- And the response property "$.message" contains a user friendly text
-
- @KYC_Match_C02.02_phone_number_not_found
- Scenario: Phone number not found
- Given the header "Authorization" is set to a valid access token which does not identify a single phone number
- And the request body property "$.phoneNumber" is compliant with the schema but does not identify a valid phone number
- When the HTTP "POST" request is sent
- Then the response status code is 404
- And the response property "$.status" is 404
- And the response property "$.code" is "IDENTIFIER_NOT_FOUND"
- And the response property "$.message" contains a user friendly text
-
- @KYC_Match_C02.04_missing_phone_number
- Scenario: Phone number not included and cannot be deducted from the access token
- Given the header "Authorization" is set to a valid access token which does not identify a single phone number
- And the request body property "$.phoneNumber" is not included
- When the HTTP "POST" request is sent
- Then the response status code is 422
- And the response property "$.status" is 422
- And the response property "$.code" is "MISSING_IDENTIFIER"
- And the response property "$.message" contains a user friendly text
-
- # When the service is only offered to certain type of subscriptions, e.g. IoT, , B2C, etc
- @KYC_Match_C02.05_phone_number_not_supported
- Scenario: Service not available for the phone number
- Given that the service is not available for all phone numbers commercialized by the operator
- And a valid phone number, identified by the token or provided in the request body, for which the service is not applicable
- When the HTTP "POST" request is sent
- Then the response status code is 422
- And the response property "$.status" is 422
- And the response property "$.code" is "SERVICE_NOT_APPLICABLE"
- And the response property "$.message" contains a user friendly text
+ Given the request body is not included
+ When the HTTP "POST" request is sent
+ Then the response status code is 400
+ And the response property "$.status" is 400
+ And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.message" contains a user friendly text
+
+ @KYC_Match_400.2_empty_request_body
+ Scenario: Empty object as request body
+ Given the request body is set to "{}"
+ When the HTTP "POST" request is sent
+ Then the response status code is 400
+ And the response property "$.status" is 400
+ And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.message" contains a user friendly text
+
+ @KYC_Match_400.3_invalid_argument
+ Scenario: Invalid Argument. Generic Syntax Exception
+ Given the request body is set to any value which is not compliant with the OAS schema at "/components/schemas/VerifyRequestBody"
+ When the HTTP "POST" request is sent
+ Then the response status code is 400
+ And the response property "$.status" is 400
+ And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.message" contains a user friendly text
+
+
+ # API Specific Errors
+
+ @KYC_Match_10_invalid_param_combination
+ Scenario: Error 400 when body does not contain any fields other than phone number
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body property "$.phoneNumber" set to a valid formatted value
+ And the request body contains only the property "$.phoneNumber"
+ When the request "KYC_Match" is sent
+ Then the response status code is 400
+ And the response property "$.code" is "KNOW_YOUR_CUSTOMER.INVALID_PARAM_COMBINATION"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 400
+
+
+ @KYC_Match_11_phone_number_provided_does_not_match_the_token
+ Scenario: Error when the phone number provided in the request body does not match the phone number associated with the access token
+ # To test this, a token has to be obtained for a different phoneNumber
+ Given the request body property "$.phoneNumber" is set to a valid testing phone number
+ And the header "Authorization" is set to a valid access token emitted for a different phone number
+ When the request "KYC_Match" is sent
+ Then the response status code is 403
+ And the response property "$.code" is "INVALID_TOKEN_CONTEXT"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 403
+
+
+ @KYC_Match_12_idDocument_required
+ # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
+ Scenario: Error 403 when body does not contain idDocument when this is required
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body is set to a valid parameter combination without property "$.idDocument"
+ When the request "KYC_Match" is sent
+ Then the response status code is 403
+ And the response property "$.code" is "KNOW_YOUR_CUSTOMER.ID_DOCUMENT_REQUIRED"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 403
+
+
+ @KYC_Match_13_idDocument_mismatch_when_idDocument_is_required
+ # Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
+ Scenario: Error 403 when the idDocument included in the request does not match the one saved in the MNO system when the idDocument is required
+ Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
+ And the request body property "$.idDocument" is set to a valid idDocument that is not associated with the identified phone number
+ When the request "KYC_Match" is sent
+ Then the response status code is 403
+ And the response property "$.code" is "KNOW_YOUR_CUSTOMER.ID_DOCUMENT_MISMATCH"
+ And the response property "$.message" contains a user friendly text
+ And the response property "$.status" is 403
+
+ # Error scenarios for management of input parameter phoneNumber
+
+ @KYC_Match_C02.01_phone_number_not_schema_compliant
+ Scenario: Phone number value does not comply with the schema
+ Given the header "Authorization" is set to a valid access token which does not identify a single phone number
+ And the request body property "$.phoneNumber" does not comply with the OAS schema at "/components/schemas/PhoneNumber"
+ When the HTTP "POST" request is sent
+ Then the response status code is 400
+ And the response property "$.status" is 400
+ And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.message" contains a user friendly text
+
+ @KYC_Match_C02.02_phone_number_not_found
+ Scenario: Phone number not found
+ Given the header "Authorization" is set to a valid access token which does not identify a single phone number
+ And the request body property "$.phoneNumber" is compliant with the schema but does not identify a valid phone number
+ When the HTTP "POST" request is sent
+ Then the response status code is 404
+ And the response property "$.status" is 404
+ And the response property "$.code" is "IDENTIFIER_NOT_FOUND"
+ And the response property "$.message" contains a user friendly text
+
+ @KYC_Match_C02.04_missing_phone_number
+ Scenario: Phone number not included and cannot be deducted from the access token
+ Given the header "Authorization" is set to a valid access token which does not identify a single phone number
+ And the request body property "$.phoneNumber" is not included
+ When the HTTP "POST" request is sent
+ Then the response status code is 422
+ And the response property "$.status" is 422
+ And the response property "$.code" is "MISSING_IDENTIFIER"
+ And the response property "$.message" contains a user friendly text
+
+ # When the service is only offered to certain type of subscriptions, e.g. IoT, , B2C, etc
+ @KYC_Match_C02.05_phone_number_not_supported
+ Scenario: Service not available for the phone number
+ Given that the service is not available for all phone numbers commercialized by the operator
+ And a valid phone number, identified by the token or provided in the request body, for which the service is not applicable
+ When the HTTP "POST" request is sent
+ Then the response status code is 422
+ And the response property "$.status" is 422
+ And the response property "$.code" is "SERVICE_NOT_APPLICABLE"
+ And the response property "$.message" contains a user friendly text
\ No newline at end of file
From b73958c0cd013863298bb97661bbd21e368e51b8 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Mon, 25 Aug 2025 12:31:44 +0200
Subject: [PATCH 5/9] ErrorInfo: message
https://github.com/camaraproject/KnowYourCustomerMatch/issues/29#issuecomment-3214501485
---
code/API_definitions/kyc-match.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml
index 7bccd3c..9cdde43 100644
--- a/code/API_definitions/kyc-match.yaml
+++ b/code/API_definitions/kyc-match.yaml
@@ -524,9 +524,9 @@ components:
ErrorInfo:
type: object
required:
- - message
- status
- code
+ - message
properties:
message:
type: string
From 746adef342c5e5d1f2825d50b364e32bac25822d Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Mon, 25 Aug 2025 12:52:07 +0200
Subject: [PATCH 6/9] Mega Lint Fix: partial
---
code/Test_definitions/kyc-match.feature | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index 1de2664..eac6d53 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -17,7 +17,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator"
And the request body is set by default to a request body compliant with the schema
-
# Happy path scenarios
@KYC_Match_1_success_request_response
@@ -139,7 +138,7 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
@KYC_Match_5_success_specific_property_false
# This scenario test the false result as scenario KYC_Match_3_success_specific_property_score but without the score properties
- Scenario Outline: Validate success response when provided property value is a perfect match
+ Scenario Outline: Validate success response when providing specific property with false value and without the score properties
Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
And the request body is set to a valid parameter combination with property "" set to a valid formatted value that does perfectly match the value stored in the MNO system
When the request "KYC_Match" is sent
@@ -227,7 +226,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 401
-
@KYC_Match_401.2_invalid_access_token
Scenario: Error response for invalid access token
Given the header "Authorization" is set to an invalid access token
@@ -237,7 +235,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 401
-
@KYC_Match_401.3_no_header_authorization
Scenario: Error response for no header "Authorization"
Given the header "Authorization" is not sent
@@ -247,11 +244,10 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 401
-
# Generic 400 errors
@KYC_Match_400.1_no_request_body
- Scenario: Missing request body
+ Scenario: Missing request body
Given the request body is not included
When the HTTP "POST" request is sent
Then the response status code is 400
@@ -259,7 +255,7 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.code" is "INVALID_ARGUMENT"
And the response property "$.message" contains a user friendly text
- @KYC_Match_400.2_empty_request_body
+ @KYC_Match_400.2_empty_request_body
Scenario: Empty object as request body
Given the request body is set to "{}"
When the HTTP "POST" request is sent
@@ -277,7 +273,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.code" is "INVALID_ARGUMENT"
And the response property "$.message" contains a user friendly text
-
# API Specific Errors
@KYC_Match_10_invalid_param_combination
@@ -291,11 +286,10 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 400
-
@KYC_Match_11_phone_number_provided_does_not_match_the_token
Scenario: Error when the phone number provided in the request body does not match the phone number associated with the access token
# To test this, a token has to be obtained for a different phoneNumber
- Given the request body property "$.phoneNumber" is set to a valid testing phone number
+ Given the request body property "$.phoneNumber" is set to a valid testing phone number
And the header "Authorization" is set to a valid access token emitted for a different phone number
When the request "KYC_Match" is sent
Then the response status code is 403
@@ -303,7 +297,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 403
-
@KYC_Match_12_idDocument_required
# Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
Scenario: Error 403 when body does not contain idDocument when this is required
@@ -315,7 +308,6 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
And the response property "$.message" contains a user friendly text
And the response property "$.status" is 403
-
@KYC_Match_13_idDocument_mismatch_when_idDocument_is_required
# Note: This test scenario is optional, as idDocument parameter and Second Level Validation is optional to network operators/ API providers.
Scenario: Error 403 when the idDocument included in the request does not match the one saved in the MNO system when the idDocument is required
From d68ab6302ff1983907ec5575f86f0fc6c0c73894 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Thu, 28 Aug 2025 14:42:07 +0200
Subject: [PATCH 7/9] @KYC_Match_6
https://github.com/camaraproject/KnowYourCustomerMatch/pull/28#issuecomment-3232989827
---
code/Test_definitions/kyc-match.feature | 23 ++---------------------
1 file changed, 2 insertions(+), 21 deletions(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index eac6d53..9a393a5 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -176,27 +176,8 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
@KYC_Match_6_success_multiple_optional_parameter_combinations
Scenario: Validate success response when providing different optional parameter combinations
Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
- And the request body property "$.idDocument" is set to a valid identity document
- And the request body property "$.name" is set to a valid name
- And the request body property "$.givenName" is set to a valid given name
- And the request body property "$.familyName" is set to a valid family name
- And the request body property "$.nameKanaHankaku" is set to a valid name
- And the request body property "$.nameKanaZenkaku" is set to a valid name
- And the request body property "$.middleNames" is set to a valid middle names
- And the request body property "$.familyNameAtBirth" is set to a valid family name at birth
- And the request body property "$.address" is set to a valid address
- And the request body property "$.streetName" is set to a valid street name of the address
- And the request body property "$.streetNumber" is set to a valid street number of the address
- And the request body property "$.postalCode" is set to a valid postal code of the address
- And the request body property "$.region" is set to a valid region of the address
- And the request body property "$.locality" is set to a valid locality of the address
- And the request body property "$.country" is set to the country of the address value that complies with the ISO 3166-1 alpha-2 format
- And the request body property "$.houseNumberExtension" is set to a valid house number extension of the address
- And the request body property "$.birthdate" is set to a birthdate value that complies with the ISO 8601 calendar date format "YYYY-MM-DD"
- And the request body property "$.email" is set to a email value that complies with the RFC format "{local-part}@{domain}"
- And the request body property "$.gender" is set to a valid gender value that belongs to the enumeration ("MALE", "FEMALE", "OTHER")
- And the request body property "$.nationality" is set to the country for the nationality and complies with the ISO 3166-1 alpha-2 format
- And the given request body is populated with any random combination of afore mention optional parameters
+ And the request body contains valid required properties
+ And the request body contains a random combination of valid optional parameters, including idDocument, name, givenName, familyName, nameKanaHankaku, nameKanaZenkaku, middleNames, familyNameAtBirth, address, streetName, streetNumber, postalCode, region, locality, country, houseNumberExtension, birthdate, email, gender, nationality fields
When the request "KYC_Match" is sent
Then the response status code is 200
And the response header "x-correlator" has same value as the request header "x-correlator"
From 41258e72d4195b209f1e51b3fc060413921eb239 Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Fri, 29 Aug 2025 09:08:22 +0200
Subject: [PATCH 8/9] 190 limit
https://github.com/camaraproject/KnowYourCustomerMatch/pull/28#issuecomment-3235844563
---
code/Test_definitions/kyc-match.feature | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index 9a393a5..21e17e1 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -177,7 +177,7 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
Scenario: Validate success response when providing different optional parameter combinations
Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
And the request body contains valid required properties
- And the request body contains a random combination of valid optional parameters, including idDocument, name, givenName, familyName, nameKanaHankaku, nameKanaZenkaku, middleNames, familyNameAtBirth, address, streetName, streetNumber, postalCode, region, locality, country, houseNumberExtension, birthdate, email, gender, nationality fields
+ And the request body contains a random combination of valid optional parameters, including, but not limited to, idDocument, name, givenName, familyNameAtBirth, address, streetName, streetNumber, postalCode, region, country, houseNumberExtension, birthdate, email, gender, nationality fields
When the request "KYC_Match" is sent
Then the response status code is 200
And the response header "x-correlator" has same value as the request header "x-correlator"
From 15cdfb39bff41025164ce6299eb63189782720ac Mon Sep 17 00:00:00 2001
From: FabrizioMoggio <87469955+FabrizioMoggio@users.noreply.github.com>
Date: Fri, 29 Aug 2025 09:20:54 +0200
Subject: [PATCH 9/9] 190 limit v2
https://github.com/camaraproject/KnowYourCustomerMatch/pull/28#issuecomment-3235844563
---
code/Test_definitions/kyc-match.feature | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/Test_definitions/kyc-match.feature b/code/Test_definitions/kyc-match.feature
index 21e17e1..8537c6e 100644
--- a/code/Test_definitions/kyc-match.feature
+++ b/code/Test_definitions/kyc-match.feature
@@ -177,7 +177,7 @@ Feature: CAMARA Know Your Customer Match API, vwip - Operation KYC_Match
Scenario: Validate success response when providing different optional parameter combinations
Given a valid testing phone number supported by the service, identified by the access token or provided in the request body
And the request body contains valid required properties
- And the request body contains a random combination of valid optional parameters, including, but not limited to, idDocument, name, givenName, familyNameAtBirth, address, streetName, streetNumber, postalCode, region, country, houseNumberExtension, birthdate, email, gender, nationality fields
+ And the request body contains a random combination of valid optional parameters, including, but not limited to, idDocument, name, givenName, address, country, birthdate, email fields
When the request "KYC_Match" is sent
Then the response status code is 200
And the response header "x-correlator" has same value as the request header "x-correlator"