# ReAcc Marketplace **ReAcc Account** - Clients who have no I-REC account. - *[Future release]* Clients who already have I-REC accounts. ## User Registration and onboarding clients ### Client without I-REC Account ```mermaid sequenceDiagram actor User as User (Seller/Buyer) actor Admin as Admin participant ReAcc as ReAcc Platform participant IREC as I-REC User->>+ReAcc: Submit ReAcc Registration ReAcc-->>User: Confirm submit ReAcc->>-Admin: Send notification Admin->>+ReAcc: Review Documents loop Need correction Admin->>ReAcc: Request for correction ReAcc->>User: Send request for correction notification User->>ReAcc: Submit corrected documents ReAcc-->>User: Confirm submit ReAcc->>-Admin: Send notification Admin->>ReAcc: Review Documents end Admin->>+ReAcc: Update registration and kyc status alt approved ReAcc->>+ReAcc: Create an account for a client alt Organization does not exist ReAcc->>ReAcc: Create an organization for a client end alt beneficiary does not exist ReAcc->>+IREC: Create beneficiary Note right of IREC: [POST] /api/irec/v1/beneficiaries/create IREC-->>-ReAcc: return a new beneficiary detail end ReAcc->>User: Send approve notification else rejected ReAcc->>-User: Send reject notification end ``` ### *[Future release]* Client with I-REC Account ```mermaid sequenceDiagram actor User as User (Seller/Buyer) actor Admin as Admin participant ReAcc as ReAcc Platform participant IREC as I-REC User->>+ReAcc: Submit ReAcc Registration ReAcc-->>User: Confirm submit ReAcc->>-Admin: Send notification Admin->>+ReAcc: Review Documents loop Need correction Admin->>ReAcc: Request for correction ReAcc->>User: Send request for correction notification User->>ReAcc: Submit corrected documents ReAcc-->>User: Confirm submit ReAcc->>-Admin: Send notification Admin->>ReAcc: Review Documents end Admin->>+ReAcc: Update registration and kyc status alt approved ReAcc->>+ReAcc: Create an account for a client alt Organization does not exist ReAcc->>ReAcc: Create an organization for a client end ReAcc->>+IREC: Sync data Note right of IREC: [GET] /api/irec/v1/account-management/{code} IREC-->>-ReAcc: return account data ReAcc->>User: Send approve notification else rejected ReAcc->>-User: Send reject notification end ``` **Questions**: *[Future release]* For clients with I-REC account. - [ ] Can ReAcc sync client user data with I-REC? - [ ] What information ReAcc can retrieve from the API for client I-REC account? [device information, beneficiary] --- ## Device Registration ```mermaid sequenceDiagram autonumber actor Seller as User (Seller) participant ReAcc as ReAcc Platform participant IREC as I-REC Seller->>+ReAcc: Submit ReAcc Device registration form and supporting documents ReAcc->>ReAcc: Create generation device with status "draft" ReAcc->>+IREC: Register Device Note right of IREC: [POST] /api/irec/v1/device-management/create IREC->>IREC: Create generation device with status "draft" IREC-->>-ReAcc: Confirm & return device ID ReAcc->>ReAcc: Store I-REC ID as part of the device ReAcc->>+IREC: Submit device Note right of IREC: [PUT] /api/irec/v1/device-management/{code}/submit IREC-->>-ReAcc: Confirm submission ReAcc->>ReAcc: Change I-REC status to submitted ReAcc-->>Seller: Confirm Device Registration alt is approved IREC->>IREC: Approve device ReAcc->>+IREC: Get device information Note right of IREC: [GET] /api/irec/v1/device-management/{code} IREC-->>-ReAcc: Return device info with "approved" status ReAcc->>ReAcc: Change I-REC status ReAcc->>Seller: Notify approve else is rejected IREC->>IREC: Reject device ReAcc->>+IREC: Get device information Note right of IREC: [GET] /api/irec/v1/device-management/{code} IREC-->>-ReAcc: Return device info with "rejected" status ReAcc->>ReAcc: Change I-REC status ReAcc->>-Seller: Notify reject end ``` **Questions**: *[Future release]* For clients with I-REC account. - [ ] Can ReAcc fetch device data from client's registrant account? - I-REC standard said "yes", pending confirm with Evident. - [x] When we create a device via API, will the device be created in ReAcc registrant account? - I-REC standard said "yes" --- ## Issuance request ```mermaid sequenceDiagram actor Seller as User (Seller) actor Admin as Admin participant ReAcc as ReAcc participant IREC as I-REC Seller->>+ReAcc: Request issuance and upload evidence ReAcc-->>-Seller: Request success Admin->>+ReAcc: Review request issuance and upload evidence ReAcc->>+IREC: Creates a new draft issue request and upload Note right of IREC: [POST] /api/irec/v1/issue-management/create IREC-->>-ReAcc: Returns the newly created issue object ReAcc->>ReAcc: Store request I-REC ID ReAcc->>+IREC: Submit request Note right of IREC: [PUT] /api/irec/v1/issue-management/{code}/submit IREC-->>-ReAcc: Confirm submission ReAcc->>ReAcc: [On-chain] Create issuance request ReAcc-->>-Admin: Confirm request IREC->>IREC: IREC Review and update status Note over IREC: [GET] /api/irec/issue-management/{code} ReAcc->>+IREC: Check request status IREC-->>-ReAcc: Status ReAcc->>ReAcc: Update request status ReAcc->>+IREC: Get account items Note right of IREC: [GET] /api/irec/v1/account-management/{code}/items IREC-->>-ReAcc: Return ID ReAcc->>ReAcc: Parse item IDs & store correct ID alt Status is approved ReAcc->>ReAcc: [On-chain] Approve request <br>and Mint I-RECs to organization's <br>exchange deposit address alt ** [Future release] In Case Seller has participant account ** ReAcc->>+IREC: Transfer certificates from ReAcc's participant account <br> to seller participant account Note right of IREC: [POST] /api/irec/v1/transfer-management IREC-->>-ReAcc: return status end else Status is rejected ReAcc->>ReAcc: [On-chain] Revoke request and notify end ReAcc->>Admin: Send notification ReAcc->>Seller: Send notification ``` **Questions**: *[Future release]* For clients with I-REC account. - [ ] Can we issue certificate to private sub account under ReAcc? (step 4.) --- ## Trade **Questions**: *[Future release]* For clients with I-REC account. - [ ] What can other participants on I-REC standard do on ReAcc platform? e.g. Mirror all data from Evident to ReAcc, Send any requests/move certificates to Evident via ReAcc. - [ ] Can ReAcc transfer the certificates from client's account to ReAcc account? --- ## Redemption ### Client without I-REC Account ```mermaid sequenceDiagram actor Buyer as User (Buyer) actor Admin as Admin participant ReAcc as ReAcc Platform participant IREC as I-REC participant RedemptionAcc as ReAcc's I-REC <br> Redemption Account Admin->>+ReAcc: Request redemption of I-RECs ReAcc->>ReAcc: Get beneficiary ID ReAcc->>+IREC: Redeem I-RECs Note over IREC: [POST] /api/redemption-management alt success IREC->>RedemptionAcc: Redeem I-RECs IREC-->>ReAcc: Confirm redemption and return ID ReAcc->>ReAcc: Store additional data e.g. cert_num ID's & URL ReAcc->>ReAcc: [On-chain] Claim token ReAcc-->>Admin: Confirm redemption <br> and display in claim report ReAcc->>Buyer: Send notification else rejected IREC->>IREC: Reject retirement IREC-->>-ReAcc: Return error message ReAcc-->>-Admin: Return error message end ``` ### *[Future release]* Client with I-REC Account TBD **Questions**: *[Future release]* For clients with I-REC account. - [ ] What can other participants on I-REC standard do on ReAcc platform? e.g. Mirror all data from Evident to ReAcc, Send any requests/move certificates to Evident via ReAcc. - [ ] Can ReAcc redeem certificates in client's account?