FinanceGenius.AI OTP Authentication API
The OTP Authentication API from FinanceGenius.AI — 14 operation(s) for otp authentication.
The OTP Authentication API from FinanceGenius.AI — 14 operation(s) for otp authentication.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/financegenius-ai:financegenius-ai-otp-authentication-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Financegenius Ai OTP Authentication API
version: 1.0.0
description: 'Operations tagged OTP Authentication across 2 of this provider''s published API definitions: finmall-openapi.json, financegenius-ai-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: OTP Authentication
paths:
/api/v1/auth/send-otp:
post:
tags:
- OTP Authentication
summary: Send Otp
description: Send OTP to a mobile number.
operationId: send_otp_api_v1_auth_send_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/verify-otp:
post:
tags:
- OTP Authentication
summary: Verify Otp
description: Verify OTP and login/register user.
operationId: verify_otp_api_v1_auth_verify_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPVerifyRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPVerifyResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/resend-otp:
post:
tags:
- OTP Authentication
summary: Resend Otp
description: Resend OTP — same as send-otp with rate limiting.
operationId: resend_otp_api_v1_auth_resend_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/consent:
get:
tags:
- OTP Authentication
summary: Get Consent
description: Get current consent status with all categories.
operationId: get_consent_api_v1_auth_consent_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
security:
- HTTPBearer: []
put:
tags:
- OTP Authentication
summary: Update Consent
description: 'Save user consent preferences (DPDPA-compliant granular categories).
Only real transitions are recorded: a category never given and sent as null
(or false) stays unrecorded. Changing credit_report_analysis from a session
without OTP is refused with 403 otp_required.'
operationId: update_consent_api_v1_auth_consent_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentUpdate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/auth/consent/history:
get:
tags:
- OTP Authentication
summary: Get Consent History
description: Get immutable consent audit trail (DPDPA requirement).
operationId: get_consent_history_api_v1_auth_consent_history_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentHistoryResponse'
security:
- HTTPBearer: []
/api/v1/auth/consent/grant/{category}:
post:
tags:
- OTP Authentication
summary: Grant Consent
description: 'Grant one My Credit consent (credit_report_analysis or credit_reminders),
leaving every other category as it is.
409 terms_required until the Terms of Service and Privacy Policy are
accepted; 403 otp_required for credit_report_analysis from a session without
OTP. Idempotent: granting what is already granted writes nothing.'
operationId: grant_consent_api_v1_auth_consent_grant__category__post
security:
- HTTPBearer: []
parameters:
- name: category
in: path
required: true
schema:
type: string
title: Category
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/consent/withdraw/{category}:
post:
tags:
- OTP Authentication
summary: Withdraw Consent
description: 'Withdraw consent for a specific category (DPDPA right to withdraw).
Withdrawing credit_report_analysis needs an OTP session (403 otp_required).'
operationId: withdraw_consent_api_v1_auth_consent_withdraw__category__post
security:
- HTTPBearer: []
parameters:
- name: category
in: path
required: true
schema:
type: string
title: Category
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentWithdrawResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/auth/send-otp:
post:
tags:
- OTP Authentication
summary: Send Otp
description: Send OTP to a mobile number.
operationId: send_otp_auth_send_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/auth/verify-otp:
post:
tags:
- OTP Authentication
summary: Verify Otp
description: Verify OTP and login/register user.
operationId: verify_otp_auth_verify_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPVerifyRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPVerifyResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/auth/resend-otp:
post:
tags:
- OTP Authentication
summary: Resend Otp
description: Resend OTP — same as send-otp with rate limiting.
operationId: resend_otp_auth_resend_otp_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/OTPSendResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/auth/consent:
get:
tags:
- OTP Authentication
summary: Get Consent
description: Get current consent status with all categories.
operationId: get_consent_auth_consent_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
security:
- HTTPBearer: []
put:
tags:
- OTP Authentication
summary: Update Consent
description: 'Save user consent preferences (DPDPA-compliant granular categories).
Only real transitions are recorded: a category never given and sent as null
(or false) stays unrecorded. Changing credit_report_analysis from a session
without OTP is refused with 403 otp_required.'
operationId: update_consent_auth_consent_put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentUpdate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/auth/consent/history:
get:
tags:
- OTP Authentication
summary: Get Consent History
description: Get immutable consent audit trail (DPDPA requirement).
operationId: get_consent_history_auth_consent_history_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentHistoryResponse'
security:
- HTTPBearer: []
/auth/consent/grant/{category}:
post:
tags:
- OTP Authentication
summary: Grant Consent
description: 'Grant one My Credit consent (credit_report_analysis or credit_reminders),
leaving every other category as it is.
409 terms_required until the Terms of Service and Privacy Policy are
accepted; 403 otp_required for credit_report_analysis from a session without
OTP. Idempotent: granting what is already granted writes nothing.'
operationId: grant_consent_auth_consent_grant__category__post
security:
- HTTPBearer: []
parameters:
- name: category
in: path
required: true
schema:
type: string
title: Category
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/auth/consent/withdraw/{category}:
post:
tags:
- OTP Authentication
summary: Withdraw Consent
description: 'Withdraw consent for a specific category (DPDPA right to withdraw).
Withdrawing credit_report_analysis needs an OTP session (403 otp_required).'
operationId: withdraw_consent_auth_consent_withdraw__category__post
security:
- HTTPBearer: []
parameters:
- name: category
in: path
required: true
schema:
type: string
title: Category
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConsentWithdrawResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
OTPSendResponse:
properties:
request_id:
type: string
title: Request Id
expires_in:
type: integer
title: Expires In
default: 300
message:
type: string
title: Message
default: OTP sent successfully
type: object
required:
- request_id
title: OTPSendResponse
OTPSendRequest:
properties:
phone:
type: string
title: Phone
type: object
required:
- phone
title: OTPSendRequest
ConsentHistoryResponse:
properties:
history:
items:
additionalProperties: true
type: object
type: array
title: History
type: object
required:
- history
title: ConsentHistoryResponse
ConsentUpdate:
properties:
terms_of_service:
type: boolean
title: Terms Of Service
privacy_policy:
type: boolean
title: Privacy Policy
ai_chat_processing:
type: boolean
title: Ai Chat Processing
default: true
financial_data_processing:
type: boolean
title: Financial Data Processing
default: false
credit_report_analysis:
anyOf:
- type: boolean
- type: 'null'
title: Credit Report Analysis
credit_reminders:
anyOf:
- type: boolean
- type: 'null'
title: Credit Reminders
marketing_email:
type: boolean
title: Marketing Email
default: false
marketing_sms:
type: boolean
title: Marketing Sms
default: false
marketing_whatsapp:
type: boolean
title: Marketing Whatsapp
default: false
analytics_profiling:
type: boolean
title: Analytics Profiling
default: false
third_party_sharing:
type: boolean
title: Third Party Sharing
default: false
type: object
required:
- terms_of_service
- privacy_policy
title: ConsentUpdate
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
UserResponse:
properties:
id:
type: string
format: uuid
title: Id
email:
anyOf:
- type: string
- type: 'null'
title: Email
full_name:
type: string
title: Full Name
phone:
anyOf:
- type: string
- type: 'null'
title: Phone
phone_verified:
type: boolean
title: Phone Verified
default: false
role:
type: string
title: Role
is_active:
type: boolean
title: Is Active
consent:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Consent
created_at:
type: string
format: date-time
title: Created At
type: object
required:
- id
- email
- full_name
- phone
- role
- is_active
- created_at
title: UserResponse
ConsentWithdrawResponse:
properties:
category:
type: string
title: Category
withdrawn:
type: boolean
title: Withdrawn
impact:
anyOf:
- type: string
- type: 'null'
title: Impact
type: object
required:
- category
- withdrawn
title: ConsentWithdrawResponse
OTPVerifyRequest:
properties:
phone:
type: string
title: Phone
code:
type: string
title: Code
type: object
required:
- phone
- code
title: OTPVerifyRequest
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
OTPVerifyResponse:
properties:
access_token:
type: string
title: Access Token
refresh_token:
type: string
title: Refresh Token
token_type:
type: string
title: Token Type
default: bearer
is_new_user:
type: boolean
title: Is New User
consent_required:
type: boolean
title: Consent Required
user:
$ref: '#/components/schemas/UserResponse'
type: object
required:
- access_token
- refresh_token
- is_new_user
- consent_required
- user
title: OTPVerifyResponse
ConsentResponse:
properties:
consent:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Consent
type: object
required:
- consent
title: ConsentResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
x-refined-from:
- finmall-openapi.json
- financegenius-ai-openapi.json
x-provenance:
method: harvested
publisher: FinanceGenius.AI
source: https://api.finmall.ai/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)