diff --git a/registry/Onboarding of Participants.md b/registry/Onboarding of Participants.md index d2ef548..a426764 100644 --- a/registry/Onboarding of Participants.md +++ b/registry/Onboarding of Participants.md @@ -6,11 +6,11 @@ 2. ops_no : 2 - Seller App Registration 3. ops_no : 4 - Buyer & Seller App Registration -> Note: ops_no 3 & 5 have been depricated feature of Seller On Record(SOR) from Registry +> Note: ops_no 3 & 5 have been depricated as feature of Seller On Record (SOR) in Registry is obsolete. ## Prerequisites -1. Newtwork Participant(NP) shall have a valid domain (FQDN/DNS) name. This becomes part of your subscriber ID (subscriber_id). +1. Network Participant (NP) shall have a valid domain (FQDN/DNS) name. This becomes part of your subscriber ID (subscriber_id). ``` eg: prod.ondcapp.com @@ -27,10 +27,10 @@ ## Steps -> Steps 4 to 7 can be done using the utility [here](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service). Every Participant is shall perform Step 1 to 3 to generate keys as below -1. Generate Signing Key Pair (ed25519 Algorithm) - signing_public_key and signing_private_key; (base64 encoded) utility below in step 2 -2. Generate Encryption Key Pair (X25519 Algorithm) - encryption_public_key (ASN.1 Der format-> base64 encoded) and encryption_private_key (base64 encoded) - Utilities to generate signing and encryption key pairs here: +> Steps 4 to 7 can be done using the utility [here](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service). Every Participant shall perform Steps 1 and 2 to generate keys as below. +1. Generate Signing Key Pair (ed25519 Algorithm) - signing_public_key and signing_private_key; (base64 encoded) +> Refer utility below in step 2 +2. Generate Encryption Key Pair (X25519 Algorithm) - encryption_public_key (ASN.1 Der format-> base64 encoded) and encryption_private_key (base64 encoded). Use the utilities provided below to generate signing and encryption key pairs: - [Java](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/ondc-crypto-utility-master) - [Python](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/signing_and_verification) - [GoLang](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/signing_and_verification/golang) @@ -39,9 +39,9 @@ For NodeJS: Inbuilt Crypto library should be used instead of Libsodium library. The generated encryption public key is already encoded in the ASN.1 DER format. - You can refer to the documentation for information on the format and generation of keys [here](./key-format-generation.md). 3. Generate Unique Request ID (request_id). It should be unique for a network participant. It can be in any format. For example - it can be UUID or a simple number or alphanumeric format. -4. Generate SIGNED_UNIQUE_REQ_ID => ( Sign request_id using signing_private_key generated in step 1 (signed using ed25519 algorithm without hashing) ) +4. Generate SIGNED_UNIQUE_REQ_ID => Sign request_id using signing_private_key generated in step 1 (signed using ed25519 algorithm without hashing). - The [on_subscribe utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) has methods implemented to sign the message (request_id) + The [on_subscribe utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) has methods implemented to sign the message (request_id). 5. Create `ondc-site-verification.html` and place it at subscriber_id by adding SIGNED_UNIQUE_REQ_ID generated in step 4. Registry shall check existence of ondc-site-verification.html at `https:///ondc-site-verification.html` @@ -60,7 +60,7 @@ ``` -6. Configure developed /on_subscribe implementation +6. Configure developed /on_subscribe implementation. Create encryption shared key using: encryption private key (generated in step 2) and ONDC public key to decrypt the challenge_string (received in the on_susbcribe call) using AES algorithm. ``` @@ -72,10 +72,10 @@ 7. Host /on_subscribe endpoint : 1. `https:////on_subscribe ` - The (Node.JS/Python) [utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) can be used to implement the /on_subscribe endpoint + The (Node.JS/Python) [utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) can be used to implement the /on_subscribe endpoint. -8. Refer [swaggerhub document](https://app.swaggerhub.com/apis-docs/ONDC/ONDC-Registry-Onboarding/2.0.5#/ONDC%20Network%20Participant%20Onboarding/post_subscriber_url_on_subscribe) for request body and response of /subscribe API -9. Create /subscribe request as follows +8. Refer [swaggerhub document](https://app.swaggerhub.com/apis-docs/ONDC/ONDC-Registry-Onboarding/2.0.5#/ONDC%20Network%20Participant%20Onboarding/post_subscriber_url_on_subscribe) for request body and response of /subscribe API. +9. Create /subscribe request as follows: ``` 1.subscriber_id= YOUR SUBSCRIBER ID (abc.ondcapp.com) @@ -107,9 +107,9 @@ https://prod.registry.ondc.org/subscribe > 1. /subscribe payload schema is verified > 2. OCSP Check: SSL Certificate is verified > 3. Domain Verification: ondc-site-verification.html is verified; -> - should be hosted on `https:///ondc-site-verification.html` -> - request_id should be signed using the signing private key (without hashing) -> iv. /on_susbcribe is called by the registry with a challenge string hosted on the callback_url + > - should be hosted on `https:///ondc-site-verification.html` + > - request_id should be signed using the signing private key (without hashing) +> 4. /on_susbcribe is called by the registry with a challenge string hosted on the callback_url > `https:////on_subscribe` > ```json > { @@ -117,7 +117,7 @@ https://prod.registry.ondc.org/subscribe > "challenge": "encrypted_challenge_string" > } > ``` -> v. The challenge string should be decrypted using the shared key (generated in step 6) and answer should be provided as a sync response. +> 5. The challenge string should be decrypted using the shared key (generated in step 6) and answer should be provided as a sync response. > ```json > { > "answer": "decrypted_challange_string" @@ -144,7 +144,7 @@ https://prod.registry.ondc.org/subscribe 13. Check your record in registry lookup -i. /lookup +> 1. /lookup ``` # For Staging @@ -167,7 +167,7 @@ https://prod.registry.ondc.org/lookup }' ``` -ii. /vlookup +>2. /vlookup ``` # For Staging @@ -204,7 +204,7 @@ https://prod.registry.ondc.org/vlookup - type: enums are "buyerApp", "sellerApp", "gateway" ``` -14. In case if you are not able to find your record in lookup and vlookup, please report to techsupport@ondc.org +14. In case you are not able to find your record in lookup and vlookup, please report to techsupport@ondc.org ``` Please mention below details in email: