{"schemaVersion":"1.0","sourceCommit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca","sourceVisibility":"private","article":{"id":"api-client-mansoq-web-src-types-otp-otpapi-ts","title":"Otp Api client API reference · mansoq-web","summary":"4 client route/call declarations with path parameters, named payload/response types and source references. Exact server acceptance and permissions require the matched backend contract.","module":"IT & integrations","roles":["IT administrator","Developer","Integration engineer"],"facilities":["All configured facility types"],"kind":"reference","minutes":4,"prerequisites":["Use the API contract from the installed deployment and an authorized synthetic test environment.","Confirm facility/organization scope, action permissions and optional app enablement.","This reference is static source evidence; complete payload, authorization, failure and end-to-end review remains recorded as pending."],"steps":[],"sections":[{"title":"Client contract scope","body":"These 4 declarations come from **repositories/platform/mansoq-web/src/types/otp/otpApi.ts**. Client types and noAuth flags describe the caller; they do not authorize a server action. Dynamic paths and missing backend matches are retained as review work, not repaired into invented endpoints."},{"title":"Operation map","body":"| Client method | HTTP method | Path pattern | Resolution |\n| --- | --- | --- | --- |\n| default.send | POST | `/api/v1/otp/send/` | literal |\n| default.login | POST | `/api/v1/otp/login/` | literal |\n| default.sendPasswordResetOtp | POST | `/api/v1/otp/password_reset/send/` | literal |\n| default.confirmPasswordResetOtp | POST | `/api/v1/otp/password_reset/confirm/` | literal |"},{"title":"default.send","body":"**POST /api/v1/otp/send/**. typed route object; literal. multiple static method/path matches across source registrations; installed target and boundary require review.\n\n**request type:** `SendOtpRequest`. client-side declaration; not proof of accepted server payload.\n\n**SendOtpRequest declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| phone_number | string | true | — |\n\n**response type:** `SendOtpResponse`. client-side declaration; not proof of accepted server payload.\n\n**SendOtpResponse declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| otp | string | true | — |\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"default.login","body":"**POST /api/v1/otp/login/**. typed route object; literal. multiple static method/path matches across source registrations; installed target and boundary require review.\n\n**request type:** `LoginByOtpRequest`. client-side declaration; not proof of accepted server payload.\n\n**LoginByOtpRequest declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| phone_number | string | true | — |\n| otp | string | true | — |\n\n**response type:** `LoginByOtpResponse`. client-side declaration; not proof of accepted server payload.\n\n**LoginByOtpResponse declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| access | string | true | — |\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"default.sendPasswordResetOtp","body":"**POST /api/v1/otp/password_reset/send/**. typed route object; literal. multiple static method/path matches across source registrations; installed target and boundary require review.\n\n**request type:** `SendOtpRequest`. client-side declaration; not proof of accepted server payload.\n\n**response type:** `SendOtpResponse`. client-side declaration; not proof of accepted server payload.\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."},{"title":"default.confirmPasswordResetOtp","body":"**POST /api/v1/otp/password_reset/confirm/**. typed route object; literal. multiple static method/path matches across source registrations; installed target and boundary require review.\n\n**request type:** `ConfirmPasswordResetOtpRequest`. client-side declaration; not proof of accepted server payload.\n\n**ConfirmPasswordResetOtpRequest declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| phone_number | string | true | — |\n| otp | string | true | — |\n| password | string | true | — |\n| username | string | false | — |\n\n**response type:** `ConfirmPasswordResetOtpResponse`. client-side declaration; not proof of accepted server payload.\n\n**ConfirmPasswordResetOtpResponse declared fields:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| message | string | true | — |\n\n**Operational limitation:** request validation, permission checks, error statuses and irreversible side effects belong to the server implementation. An unmatched or computed client route requires contract review before use."}],"troubleshooting":[{"problem":"A declared route is unavailable or a request is rejected","solution":"Compare the installed revision, actual API schema, optional plugin mount, HTTP-method restrictions and recorded validation/permission evidence. Do not bypass a refusal or send a production transaction to test documentation."}],"sources":[{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":12,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":18,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":24,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":7,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":11,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":20,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":24,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}],"related":["it-api-contract","it-api-auth","security-rcm-roles"],"verification":"Static API contract — behavior review pending","version":"f6e9f05f76d4","apiReferenceIds":["frontend-operation-aef7a155adce770fc4","frontend-operation-0774397283ae65f820","frontend-operation-19c2998515768504b0","frontend-operation-62d347df0715e2d55b"]},"backend":{"resources":[],"operations":[],"methodEvidence":[],"schemas":[],"frameworkSettings":[]},"frontend":{"operations":[{"id":"frontend-operation-aef7a155adce770fc4","repository":"repositories/platform/mansoq-web","apiModule":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","operationKey":"default.send","method":"POST","path":"/api/v1/otp/send/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":12,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":{"type":"SendOtpRequest","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpRequest"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"response":{"type":"SendOtpResponse","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpResponse"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":16,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"query":null,"clientNoAuth":null,"contractKind":"typed route object","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":["backend-resource-01320f527b0cab05:POST:send","backend-resource-3ae691ca36524ef9:POST:send"],"sourceFamily":"primary frontend","backendMatchStatus":"multiple static method/path matches across source registrations; installed target and boundary require review"},{"id":"frontend-operation-0774397283ae65f820","repository":"repositories/platform/mansoq-web","apiModule":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","operationKey":"default.login","method":"POST","path":"/api/v1/otp/login/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":18,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":{"type":"LoginByOtpRequest","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#LoginByOtpRequest"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":21,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"response":{"type":"LoginByOtpResponse","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#LoginByOtpResponse"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":22,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"query":null,"clientNoAuth":null,"contractKind":"typed route object","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":["backend-resource-01320f527b0cab05:POST:login","backend-resource-3ae691ca36524ef9:POST:login"],"sourceFamily":"primary frontend","backendMatchStatus":"multiple static method/path matches across source registrations; installed target and boundary require review"},{"id":"frontend-operation-19c2998515768504b0","repository":"repositories/platform/mansoq-web","apiModule":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","operationKey":"default.sendPasswordResetOtp","method":"POST","path":"/api/v1/otp/password_reset/send/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":24,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":{"type":"SendOtpRequest","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpRequest"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":28,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"response":{"type":"SendOtpResponse","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpResponse"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":29,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"query":null,"clientNoAuth":true,"contractKind":"typed route object","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":["backend-resource-0c2a3fc177b86813:POST:send","backend-resource-0bde278184e0dcc2:POST:send"],"sourceFamily":"primary frontend","backendMatchStatus":"multiple static method/path matches across source registrations; installed target and boundary require review"},{"id":"frontend-operation-62d347df0715e2d55b","repository":"repositories/platform/mansoq-web","apiModule":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","operationKey":"default.confirmPasswordResetOtp","method":"POST","path":"/api/v1/otp/password_reset/confirm/","resolution":"literal","originOmitted":false,"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"","pathParameters":[],"declaredQueryParameters":[],"request":{"type":"ConfirmPasswordResetOtpRequest","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#ConfirmPasswordResetOtpRequest"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":35,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"response":{"type":"ConfirmPasswordResetOtpResponse","schemaIds":["repositories/platform/mansoq-web/src/types/otp/otp.ts#ConfirmPasswordResetOtpResponse"],"source":{"path":"repositories/platform/mansoq-web/src/types/otp/otpApi.ts","line":36,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"reviewStatus":"client-side declaration; not proof of accepted server payload"},"query":null,"clientNoAuth":true,"contractKind":"typed route object","reviewStatus":"client contract extracted; runtime behavior and authorization review pending","backendOperationIds":["backend-resource-0c2a3fc177b86813:POST:confirm","backend-resource-0bde278184e0dcc2:POST:confirm"],"sourceFamily":"primary frontend","backendMatchStatus":"multiple static method/path matches across source registrations; installed target and boundary require review"}],"schemas":[{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpRequest","name":"SendOtpRequest","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":7,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"phone_number","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":8,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]},{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#SendOtpResponse","name":"SendOtpResponse","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":11,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"otp","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":12,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]},{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#LoginByOtpRequest","name":"LoginByOtpRequest","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"phone_number","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":16,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]},{"name":"otp","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":17,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]},{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#LoginByOtpResponse","name":"LoginByOtpResponse","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":20,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"access","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":21,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]},{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#ConfirmPasswordResetOtpRequest","name":"ConfirmPasswordResetOtpRequest","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":24,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"phone_number","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":25,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]},{"name":"otp","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":26,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]},{"name":"password","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":27,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]},{"name":"username","type":"string","required":false,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":28,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]},{"id":"repositories/platform/mansoq-web/src/types/otp/otp.ts#ConfirmPasswordResetOtpResponse","name":"ConfirmPasswordResetOtpResponse","kind":"InterfaceDeclaration","description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"typeParameters":[],"fields":[{"name":"message","type":"string","required":true,"readOnly":false,"hasInitializer":false,"description":"","source":{"path":"repositories/platform/mansoq-web/src/types/otp/otp.ts","line":32,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"schemaIds":[]}],"baseSchemaIds":[],"reviewStatus":"declared TypeScript fields extracted; server payload/validation review pending","baseTypes":[]}]},"services":{"operations":[]},"boundaries":[]}