From 1e121110da783e8a475ab291a6d41f7813734e25 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Mon, 1 Jun 2026 16:55:16 +0200 Subject: [PATCH 01/16] Alignment with Guidelines and linting rules for OWASP API Security - Commonalities v8.0.0 Alignment with Guidelines and linting rules for OWASP API Security --- code/API_definitions/kyc-match.yaml | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index 1c0d358..52a0d45 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -250,6 +250,7 @@ components: XCorrelator: type: string pattern: ^[a-zA-Z0-9-_:;.\/<>{}]{0,256}$ + maxLength: 256 example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46" KYC_MatchRequestBody: @@ -259,96 +260,118 @@ components: properties: phoneNumber: type: string + maxLength: 16 description: A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. pattern: '^\+[1-9][0-9]{4,14}$' example: "+123456789" idDocument: type: string + maxLength: 50 description: Id number associated to the official identity document in the country. It may contain alphanumeric characters. idDocumentType: type: string + maxLength: 50 enum: [passport, national_id_card, residence_permit, diplomatic_id, driver_licence, social_security_id, other] description: Type of the official identity document provided. idDocumentExpiryDate: type: string + maxLength: 16 format: date description: Expiration date of the identity document (ISO 8601). name: type: string + maxLength: 256 description: Complete name of the customer, usually composed of first/given name and last/family/sur- name in a country. Depending on the country, the order of first/give name and last/family/sur- name varies, and middle name could be included. It can use givenName, middleNames, familyName and/or familyNameAtBirth. For example, in ESP, name+familyName; in NLD, it can be name+middleNames+familyName or name+middleNames+familyNameAtBirth, etc. givenName: type: string + maxLength: 100 description: First/given name or compound first/given name of the customer. familyName: type: string + maxLength: 150 description: Last name, family name, or surname of the customer. nameKanaHankaku: type: string + maxLength: 150 description: Complete name of the customer in Hankaku-Kana format (reading of name) for Japan. nameKanaZenkaku: type: string + maxLength: 150 description: Complete name of the customer in Zenkaku-Kana format (reading of name) for Japan. middleNames: type: string + maxLength: 100 description: Middle name/s of the customer. familyNameAtBirth: type: string + maxLength: 100 description: Last/family/sur- name at birth of the customer. address: type: string + maxLength: 100 description: Complete address of the customer. For some countries, it is built following the usual concatenation of parameters in a country, but for other countries, this is not the case. For some countries, it can use streetName, streetNumber and/or houseNumberExtension. For example, in ESP, streetName+streetNumber; in NLD, it can be streetName+streetNumber or streetName+streetNumber+houseNumberExtension. streetName: type: string + maxLength: 150 description: Name of the street of the customer's address. It should not include the type of the street. streetNumber: type: string + maxLength: 20 description: The street number of the customer's address. Number identifying a specific property on the 'streetName'. postalCode: type: string + maxLength: 20 description: Zip code or postal code region: type: string + maxLength: 100 description: Region/prefecture of the customer's address locality: type: string + maxLength: 100 description: Locality of the customer's address country: type: string + maxLength: 2 description: Country of the customer's address. Format ISO 3166-1 alpha-2 houseNumberExtension: type: string + maxLength: 20 description: Specific identifier of the house needed depending on the property type. For example, number of apartment in an apartment building. birthdate: type: string format: date + maxLength: 64 description: The birthdate of the customer, in RFC 3339 / ISO 8601 calendar date format (YYYY-MM-DD). email: type: string + maxLength: 254 format: email description: Email address of the customer in the RFC specified format (local-part@domain). gender: type: string + maxLength: 6 description: Gender of the customer (Male/Female/Other). enum: - MALE @@ -357,17 +380,21 @@ components: cityOfBirth: type: string + maxLength: 100 description: City where the customer was born. countryOfBirth: type: string + maxLength: 2 description: Country where the customer was born. Format ISO 3166-1 alpha-2. nationality: type: string + maxLength: 2 description: ISO 3166-1 alpha-2 code of the customer’s nationality. In the case a customer has more than one nationality, it is supposed to be the nationality related to the ID document provided in the match request. MatchResult: type: string + maxLength: 13 description: | true - the attribute provided matches with the one in the Operator systems, which is equal to a `match_score` of 100. false - the attribute provided does not match with the one in the Operator systems. @@ -379,6 +406,7 @@ components: MatchScoreResult: type: integer + format: int32 description: | Indicates the similarity score assigned to the input value when it does not exactly match the value stored in the operator's system. This property shall only be returned when the value of the corresponding match field is `false`. @@ -523,12 +551,17 @@ components: properties: message: type: string + maxLength: 512 description: A human-readable description of what the event represents status: type: integer + format: int32 + minimum: 100 + maximum: 599 description: HTTP response status code code: type: string + maxLength: 96 description: A human-readable code to describe the error responses: From 05d7e9c978de21895e70012a48bcdef2e896eb51 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Mon, 1 Jun 2026 17:06:01 +0200 Subject: [PATCH 02/16] Update fmt.Println message from 'Hello' to 'Goodbye' --- code/API_definitions/kyc-match.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index 52a0d45..c82c2aa 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -251,6 +251,7 @@ components: type: string pattern: ^[a-zA-Z0-9-_:;.\/<>{}]{0,256}$ maxLength: 256 + description: Correlator string, UUID format recommended but any string matching the pattern can be used example: "b4333c46-49c0-4f62-80d7-f0ef930f1c46" KYC_MatchRequestBody: From 3dc5c18e8ae2661462ce581392e689fd59ae6f10 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 2 Jun 2026 09:41:18 +0200 Subject: [PATCH 03/16] Update kyc-match.yaml --- code/API_definitions/kyc-match.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index c82c2aa..9b01e25 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -225,6 +225,7 @@ paths: components: securitySchemes: openId: + description: OpenID Connect authentication type: openIdConnect openIdConnectUrl: https://example.com/.well-known/openid-configuration @@ -417,6 +418,7 @@ components: KYC_MatchResponse: type: object + description: kyc-match response properties: idDocumentMatch: allOf: From a8add41e796b66f25cdcd3524bd5ac0ebffe14af Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 2 Jun 2026 09:53:54 +0200 Subject: [PATCH 04/16] Update kyc-match.yaml --- code/API_definitions/kyc-match.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index 9b01e25..9947620 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -547,6 +547,7 @@ components: ErrorInfo: type: object + description: Common schema for errors required: - status - code From aa730f8b0ed98422e04273df1d6271a054ee431d Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Thu, 18 Jun 2026 14:34:50 +0200 Subject: [PATCH 05/16] Update fmt.Println message from 'Hello' to 'Goodbye' --- 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 9947620..ea79e9e 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.3 +223openapi: 3.0.3 info: title: Know Your Customer Match @@ -301,12 +301,12 @@ components: nameKanaHankaku: type: string - maxLength: 150 + maxLength: 256 description: Complete name of the customer in Hankaku-Kana format (reading of name) for Japan. nameKanaZenkaku: type: string - maxLength: 150 + maxLength: 256 description: Complete name of the customer in Zenkaku-Kana format (reading of name) for Japan. middleNames: @@ -316,12 +316,12 @@ components: familyNameAtBirth: type: string - maxLength: 100 + maxLength: 150 description: Last/family/sur- name at birth of the customer. address: type: string - maxLength: 100 + maxLength: 256 description: Complete address of the customer. For some countries, it is built following the usual concatenation of parameters in a country, but for other countries, this is not the case. For some countries, it can use streetName, streetNumber and/or houseNumberExtension. For example, in ESP, streetName+streetNumber; in NLD, it can be streetName+streetNumber or streetName+streetNumber+houseNumberExtension. streetName: From be4fc8cfd88d7cbb2224b37ca1f610fcd133a25c Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Thu, 18 Jun 2026 15:08:07 +0200 Subject: [PATCH 06/16] Update kyc-match.yaml --- code/API_definitions/kyc-match.yaml | 50 ++++++++++++++--------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index ea79e9e..9ba188a 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -1,4 +1,4 @@ -223openapi: 3.0.3 +openapi: 3.0.3 info: title: Know Your Customer Match @@ -421,129 +421,129 @@ components: description: kyc-match response properties: idDocumentMatch: + description: Indicates whether Id number associated to the ID document of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether Id number associated to the ID document of the customer matches with the one on the Operator's system. idDocumentTypeMatch: + description: Indicates whether document type associated to the ID document of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether document type associated to the ID document of the customer matches with the one on the Operator's system. idDocumentExpiryDateMatch: + description: Indicates whether document expiration date associated to the ID document of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether document expiration date associated to the ID document of the customer matches with the one on the Operator's system. nameMatch: + description: Indicates whether the complete name of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the complete name of the customer matches with the one on the Operator's system. nameMatchScore: $ref: '#/components/schemas/MatchScoreResult' givenNameMatch: + description: Indicates whether First name/given name of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether First name/given name of the customer matches with the one on the Operator's system. givenNameMatchScore: $ref: '#/components/schemas/MatchScoreResult' familyNameMatch: + description: Indicates whether last name/ family name/ surname of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether last name/ family name/ surname of the customer matches with the one on the Operator's system. familyNameMatchScore: $ref: '#/components/schemas/MatchScoreResult' nameKanaHankakuMatch: + description: Indicates whether complete name of the customer in Hankaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether complete name of the customer in Hankaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. nameKanaHankakuMatchScore: $ref: '#/components/schemas/MatchScoreResult' nameKanaZenkakuMatch: + description: Indicates whether complete name of the customer in Zenkaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether complete name of the customer in Zenkaku-Kana format (reading of name) for Japan matches with the one on the Operator's system. nameKanaZenkakuMatchScore: $ref: '#/components/schemas/MatchScoreResult' middleNamesMatch: + description: Indicates whether the middle names of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the middle names of the customer matches with the one on the Operator's system. middleNamesMatchScore: $ref: '#/components/schemas/MatchScoreResult' familyNameAtBirthMatch: + description: Indicates whether the Family Name At Birth of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the Family Name At Birth of the customer matches with the one on the Operator's system. familyNameAtBirthMatchScore: $ref: '#/components/schemas/MatchScoreResult' addressMatch: + description: Indicates whether complete address of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether complete address of the customer matches with the one on the Operator's system. addressMatchScore: $ref: '#/components/schemas/MatchScoreResult' streetNameMatch: + description: Indicates whether the street name of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the street name of the customer matches with the one on the Operator's system. streetNameMatchScore: $ref: '#/components/schemas/MatchScoreResult' streetNumberMatch: + description: Indicates whether the street number of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the street number of the customer matches with the one on the Operator's system. streetNumberMatchScore: $ref: '#/components/schemas/MatchScoreResult' postalCodeMatch: + description: Indicates whether the postal code / zip code of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the postal code / zip code of the customer matches with the one on the Operator's system. regionMatch: + description: Indicates whether the region of the customer's address matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the region of the customer's address matches with the one on the Operator's system. regionMatchScore: $ref: '#/components/schemas/MatchScoreResult' localityMatch: + description: Indicates whether the locality of the customer's address matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the locality of the customer's address matches with the one on the Operator's system. localityMatchScore: $ref: '#/components/schemas/MatchScoreResult' countryMatch: + description: Indicates whether the country of the customer's address matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the country of the customer's address matches with the one on the Operator's system. houseNumberExtensionMatch: + description: Indicates whether the house number extension of the customer's address with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the house number extension of the customer's address with the one on the Operator's system. birthdateMatch: + description: Indicates whether the birthdate of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the birthdate of the customer matches with the one on the Operator's system. emailMatch: + description: Indicates whether the email address of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the email address of the customer matches with the one on the Operator's system. emailMatchScore: $ref: '#/components/schemas/MatchScoreResult' genderMatch: + description: Indicates whether the gender of the customer matches with the one on the Operator's system. allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the gender of the customer matches with the one on the Operator's system. cityOfBirthMatch: + description: Indicates whether the city at birth of the customer matches with the one on the Operator's system allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the city at birth of the customer matches with the one on the Operator's system cityOfBirthMatchScore: $ref: '#/components/schemas/MatchScoreResult' countryOfBirthMatch: + description: Indicates whether the country at birth of the customer matches with the one on the Operator's system allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the country at birth of the customer matches with the one on the Operator's system nationalityMatch: + description: Indicates whether the nationality of the customer matches with the one on the Operator's system allOf: - $ref: '#/components/schemas/MatchResult' - - description: Indicates whether the nationality of the customer matches with the one on the Operator's system ErrorInfo: type: object From db1a575fee4457b595d6a1d06315fa6d82435ca2 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:02:46 +0200 Subject: [PATCH 07/16] Delete kyc-match-API-Readiness-Checklist.md --- .../kyc-match-API-Readiness-Checklist.md | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 documentation/API_documentation/kyc-match-API-Readiness-Checklist.md diff --git a/documentation/API_documentation/kyc-match-API-Readiness-Checklist.md b/documentation/API_documentation/kyc-match-API-Readiness-Checklist.md deleted file mode 100644 index 8594976..0000000 --- a/documentation/API_documentation/kyc-match-API-Readiness-Checklist.md +++ /dev/null @@ -1,29 +0,0 @@ -# API Readiness Checklist - -Checklist for kyc-match 0.4.0 in release r1.2 - -| Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Reference information | -|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:| -| 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/kyc-match.yaml) | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/Commonalities/releases/tag/r3.3) | -| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.3) | -| 4 | API versioning convention applied | M | M | M | M | Y | | -| 5 | API documentation | M | M | M | M | Y | Embedded documentation into API spec - [link](/code/API_definitions/kyc-match.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 | Y | [link](/code/Test_definitions/kyc-match.feature) | -| 8 | Enhanced API test cases & documentation | O | O | O | M | Y | [link](/code/Test_definitions/kyc-match.feature) | -| 9 | Test result statement | O | O | O | M | N | | -| 10 | API release numbering convention applied | M | M | M | M | Y | r1.2 | -| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) | -| 12 | Previous public release was certified | O | O | O | M | N | | -| 13 | API description (for marketing) | O | O | M | M | Y | [wiki link](https://lf-camaraproject.atlassian.net/wiki/x/RwAzC) | - -To fill the checklist: -- in the line above the table, replace the api-name, api-version and the rx.y by their actual values for the current API version and release. -- in the Status column, put "Y" (yes) if the release asset is available or fulfilled in the current release, a "N" (no) or a "tbd". Example use of "tbd" is in case an alpha or release-candidate API version does not yet provide all mandatory assets for the release. -- in the Reference information column, provide the relative links (from the API repository home folder) to the release asset once available, the applicable release numbers (not versions) of Commonalities and ICM, and any other relevant links or information. -- For the point 12: The Reference information comment shall reference a note (e.g. "see (1)") under the checklist table to be added that states the certified company(s) as can be found on the following link: [GSMA Open Gateway Portal](https://open-gateway.gsma.com/). - -Note: the checklists of a public API version and of its preceding release-candidate API version can be the same. - -The documentation for the content of the checklist is here: see API Readiness Checklist section in the [API Release Process](https://lf-camaraproject.atlassian.net/wiki/x/jine). From a5ea3eb84699eeac716ee4009cb98a025618b4d6 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:16:36 +0200 Subject: [PATCH 08/16] Change 'Hello World' to 'Goodbye World' --- code/API_definitions/kyc-match.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index 9ba188a..fd862d7 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -44,11 +44,17 @@ info: - If the subject cannot be identified from the access token and the optional phoneNumber field is not included in the request, then the server will return an error with the `422 MISSING_IDENTIFIER` error code. This is an error typically, but not uniquely, returned in 2-legged scenarios when the access token doesn't identify a single subscription. - If there is a mismatch between the provided phone number in the request body and the phone number associated with the access token, the server will return an error with the `403 INVALID_TOKEN_CONTEXT` error code. - ### Additional CAMARA error responses - The list of error codes in this API specification is not exhaustive. Therefore the API specification may not document some non-mandatory error statuses as indicated in `CAMARA API Design Guide`. + + # Additional CAMARA error responses + + The list of error codes in this API specification is not exhaustive. Therefore the API specification MAY not document some non-mandatory error statuses as indicated in `CAMARA API Design Guide`. + Please refer to the `CAMARA_common.yaml` of the Commonalities Release associated to this API version for a complete list of error responses. The applicable Commonalities Release can be identified in the `API Readiness Checklist` document associated to this API version. + As a specific rule, error `501 - NOT_IMPLEMENTED` can be only a possible error response if it is explicitly documented in the API. + + # Authorization and authentication The "Camara Security and Interoperability Profile" provides details of how an API consumer requests an access token. Please refer to Identity and Consent Management (https://github.com/camaraproject/IdentityAndConsentManagement/) for the released version of the profile. @@ -56,6 +62,13 @@ info: The specific authorization flows to be used will be agreed upon during the onboarding process, happening between the API consumer and the API provider, taking into account the declared purpose for accessing the API, whilst also being subject to the prevailing legal framework dictated by local legislation. In cases where personal data is processed by the API and users can exercise their rights through mechanisms such as opt-in and/or opt-out, the use of three-legged access tokens is mandatory. This ensures that the API remains in compliance with privacy regulations, upholding the principles of transparency and user-centric privacy-by-design. + + + + # Request body strictness + + This API rejects requests with JSON request bodies that contain properties not declared in this specification, at any nesting level. Unknown properties result in a `400 INVALID_ARGUMENT` response. + version: wip x-camara-commonalities: 0.6 From ef0275ab8e258d9da31b3fd50d150863a6d0c2df Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:23:05 +0200 Subject: [PATCH 09/16] Update print statement from 'Hello' to 'Goodbye' --- code/API_definitions/kyc-match.yaml | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index fd862d7..ddc3f64 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -113,7 +113,7 @@ paths: parameters: - - $ref: '#/components/parameters/x-correlator' + - $ref: "../common/CAMARA_common.yaml#/components/parameters/x-correlator" requestBody: required: true @@ -182,7 +182,7 @@ paths: description: OK headers: x-correlator: - $ref: '#/components/headers/x-correlator' + $ref: "../common/CAMARA_common.yaml#/components/headers/x-correlator" content: application/json: @@ -242,23 +242,6 @@ components: type: openIdConnect openIdConnectUrl: https://example.com/.well-known/openid-configuration - - headers: - x-correlator: - description: Correlation id for the different services - required: false - schema: - $ref: "#/components/schemas/XCorrelator" - - parameters: - x-correlator: - name: x-correlator - in: header - description: Correlation id for the different services - required: false - schema: - $ref: "#/components/schemas/XCorrelator" - schemas: XCorrelator: From 1e8ebf28977b0ee45e772b13e135413af719f5a8 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:27:19 +0200 Subject: [PATCH 10/16] Update print statement from 'Hello' to 'Goodbye' --- 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 ddc3f64..192ad24 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -221,19 +221,19 @@ paths: nationalityMatch: 'true' '400': - $ref: '#/components/responses/Generic400' + $ref: '../common/CAMARA_common.yaml#/components/responses/Generic400' '401': - $ref: '#/components/responses/Generic401' + $ref: '../common/CAMARA_common.yaml#/components/responses/Generic401' '403': - $ref: '#/components/responses/Generic403' + $ref: '../common/CAMARA_common.yaml#/components/responses/Generic403' '404': - $ref: '#/components/responses/Generic404' + $ref: '../common/CAMARA_common.yaml#/components/responses/Generic404' '422': - $ref: '#/components/responses/Generic422' + $ref: '../common/CAMARA_common.yaml#/components/responses/Generic422' components: securitySchemes: From 8a47ec5b5deb4308ddada94c10776e4aa23c1899 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:40:39 +0200 Subject: [PATCH 11/16] Update print statement from 'Hello' to 'Goodbye' --- code/API_definitions/kyc-match.yaml | 44 ++++++++++++++++++----------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/code/API_definitions/kyc-match.yaml b/code/API_definitions/kyc-match.yaml index 192ad24..e5d5d9c 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -111,9 +111,8 @@ paths: - openId: - kyc-match:match - parameters: - - $ref: "../common/CAMARA_common.yaml#/components/parameters/x-correlator" + - $ref: '#/components/parameters/x-correlator' requestBody: required: true @@ -182,7 +181,7 @@ paths: description: OK headers: x-correlator: - $ref: "../common/CAMARA_common.yaml#/components/headers/x-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: @@ -220,20 +219,16 @@ paths: countryOfBirthMatch: 'true' nationalityMatch: 'true' - '400': - $ref: '../common/CAMARA_common.yaml#/components/responses/Generic400' - - '401': - $ref: '../common/CAMARA_common.yaml#/components/responses/Generic401' - - '403': - $ref: '../common/CAMARA_common.yaml#/components/responses/Generic403' - - '404': - $ref: '../common/CAMARA_common.yaml#/components/responses/Generic404' - - '422': - $ref: '../common/CAMARA_common.yaml#/components/responses/Generic422' + "400": + $ref: '#/components/responses/Generic400' + "401": + $ref: '#/components/responses/Generic401' + "403": + $ref: '#/components/responses/Generic403' + "404": + $ref: '#/components/responses/Generic404' + "422": + $ref: '#/components/responses/Generic422' components: securitySchemes: @@ -242,6 +237,21 @@ components: type: openIdConnect openIdConnectUrl: https://example.com/.well-known/openid-configuration + headers: + X-Correlator: + description: Correlation id for the different services + required: false + schema: + $ref: "#/components/schemas/XCorrelator" + + parameters: + x-correlator: + name: x-correlator + in: header + description: Correlation id for the different services + schema: + $ref: "#/components/schemas/XCorrelator" + schemas: XCorrelator: From 524b221388ef93b14e98c43b8fd2aca5af039bd8 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:45:01 +0200 Subject: [PATCH 12/16] Fix typo in print statement --- 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 e5d5d9c..ba198b9 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -579,7 +579,7 @@ components: description: Bad Request headers: x-correlator: - $ref: "#/components/headers/x-correlator" + $ref: "#/components/headers/X-correlator" content: application/json: schema: @@ -612,7 +612,7 @@ components: description: Unauthorized headers: x-correlator: - $ref: "#/components/headers/x-correlator" + $ref: "#/components/headers/X-correlator" content: application/json: schema: @@ -639,7 +639,7 @@ components: description: Forbidden headers: x-correlator: - $ref: "#/components/headers/x-correlator" + $ref: "#/components/headers/X-correlator" content: application/json: schema: @@ -672,7 +672,7 @@ components: description: Not found headers: x-correlator: - $ref: "#/components/headers/x-correlator" + $ref: "#/components/headers/X-correlator" content: application/json: schema: @@ -705,7 +705,7 @@ components: description: Unprocessable Content headers: x-correlator: - $ref: "#/components/headers/x-correlator" + $ref: "#/components/headers/X-correlator" content: application/json: schema: From d7af57d446227148859978bedb86f0b63f9315b6 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:51:22 +0200 Subject: [PATCH 13/16] Update print statement from 'Hello' to 'Goodbye' --- 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 ba198b9..328eb0c 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -579,7 +579,7 @@ components: description: Bad Request headers: x-correlator: - $ref: "#/components/headers/X-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: schema: @@ -612,7 +612,7 @@ components: description: Unauthorized headers: x-correlator: - $ref: "#/components/headers/X-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: schema: @@ -639,7 +639,7 @@ components: description: Forbidden headers: x-correlator: - $ref: "#/components/headers/X-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: schema: @@ -672,7 +672,7 @@ components: description: Not found headers: x-correlator: - $ref: "#/components/headers/X-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: schema: @@ -705,7 +705,7 @@ components: description: Unprocessable Content headers: x-correlator: - $ref: "#/components/headers/X-correlator" + $ref: "#/components/headers/X-Correlator" content: application/json: schema: From b1f53b01ecde84527235e8270dd2448fb38c9198 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:08:04 +0200 Subject: [PATCH 14/16] Update fmt.Println message from 'Hello' to 'Goodbye' --- 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 328eb0c..59afd77 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -368,7 +368,7 @@ components: birthdate: type: string format: date - maxLength: 64 + maxLength: 10 description: The birthdate of the customer, in RFC 3339 / ISO 8601 calendar date format (YYYY-MM-DD). email: From 6fecc1482105bfe4a8453e20238a5939514692f3 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:56:19 +0200 Subject: [PATCH 15/16] Delete code/API_definitions/README.MD --- code/API_definitions/README.MD | 1 - 1 file changed, 1 deletion(-) delete mode 100644 code/API_definitions/README.MD diff --git a/code/API_definitions/README.MD b/code/API_definitions/README.MD deleted file mode 100644 index e9cd5a5..0000000 --- a/code/API_definitions/README.MD +++ /dev/null @@ -1 +0,0 @@ -Here you can add your definition file(s). Delete this README.MD file after the first file is added. From 26a89be877498e66a210666f80dbc60e2e07e888 Mon Sep 17 00:00:00 2001 From: Gilles Renoux <144710412+GillesInnov35@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:49:43 +0200 Subject: [PATCH 16/16] Update print statement from 'Hello' to 'Goodbye' --- 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 a8a2479..4facc75 100644 --- a/code/API_definitions/kyc-match.yaml +++ b/code/API_definitions/kyc-match.yaml @@ -289,7 +289,7 @@ components: idDocumentExpiryDate: type: string - maxLength: 16 + maxLength: 10 format: date description: Expiration date of the identity document (ISO 8601).