# KYC: landline ###### Sprint: 3 ### Outcome: User should enter his number, after the validation app sends a call with an otp code, the user must enter the code to prove to us that he has access to the entered number. #### Endpoints: POST {$domain}/api/v2/barong/resource/phones POST {$domain}/api/v2/barong/resource/phones/send_code POST {$domain}/api/v2/barong/resource/phones/verify #### File destination: {$Dalan_Path}/app/api/v2/resource/phones.rb #### Commits: bd7f980596 695b0b56e2 6dd40a9c42 e04a58b012 36167eda10 2089690fe0 90cbc48649 17a5bce849 63722fe22a 63977c330d bff2746686 75490dcb22 f13ee3f4d5 2c05522f77 46c053b435 551e7cdba2 77d7b9a9b3 2da71b1097 #### What did we implement: in access mobile told about KaveNegarService user entered landline number then system send call by kave negar with otp code user must enter send code to prove us that has access. if user wants to enter new number: 1.if user have verified phone: response error 2.if user has pending number: update that number with new one 3.if user doesnt have number in our system: create new one ```mermaid sequenceDiagram title: access landline User->>Ranj: enter landline number with +98 Ranj-->>Dalan: post /phones params Dalan->>Ranj: 400, message: 'Required params are empty' Dalan->>Ranj: 401, message: 'Invalid bearer token' Dalan->>Ranj: 404, message: 'Record is not found' Dalan->>Ranj: 422, message: 'Validation errors' Dalan->>Ranj: 422, message: 'code_doesnt_expired'(there is an active process for addding new landline) and phone.exists(has verified number in system) Dalan->>Ranj: 200, message: 'New phone was added' note left of Dalan: if there is a pending number it will be replaced with new one Dalan->>KaveNegar: send call to User in case of success KaveNegar->>User: call with code Ranj->>User: show result note right of User: if didnt catch call User->>Ranj: resend code Ranj->>Dalan: Post phones/send_code params Dalan->>Ranj: 400, message: 'Required params are empty' Dalan->>Ranj: 401, message: 'Invalid bearer token' Dalan->>Ranj: 404, message: 'Record is not found', 'phone.doesnt_exist' Dalan->>Ranj: 422, message: 'Validation errors' Dalan->>Ranj: 422, message: 'code_doesnt_expired' (expiration time doesnt finish) Dalan->>KaveNegar: send call to User in case of success KaveNegar->>User: call with code Ranj->>User: show result User->>Ranj:enter code Ranj->>Dalan: Post phones/verify params Dalan->>Ranj: 401, message: 'Invalid bearer token' Dalan->>Ranj: 404, message: 'Record is not found', 'phone.doesnt_exist', 'verification_invalid Dalan->>Ranj: 422, message: 'Validation errors' Dalan->>Ranj: success 2xx Ranj->>User: show result ```