chore: updated open api spec documentation for create platform account (#8692)

Co-authored-by: Gitanjli Chopra <gitanjli.chopra@Gitanjli-Chopra-DC62KJQFX6.local>
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
Co-authored-by: Sandeep Kumar <83278309+tsdk02@users.noreply.github.com>
This commit is contained in:
Gitanjli
2025-07-28 15:07:10 +05:30
committed by GitHub
parent 96de9f2954
commit 3bf4c49056
8 changed files with 145 additions and 5 deletions

View File

@ -44,5 +44,4 @@ npx @mintlify/scraping@latest openapi-file v1/openapi_spec_v1.json -o v1
This will generate files in [api-reference](api-reference) folder. These routes should be added to the [mint.json](mint.json) file under navigation, under respective group.
NOTE: For working with V2 API reference, replace every occurrence of `v1` with `v2` in above commands
NOTE: For working with V2 API reference, replace every occurrence of `v1` with `v2` in above commands

View File

@ -146,6 +146,12 @@
"v1/business-profile/business-profile--list"
]
},
{
"group": "Platform Account",
"pages": [
"v1/platform/platform--create"
]
},
{
"group": "API Key",
"pages": [

View File

@ -6481,6 +6481,53 @@
}
]
}
},
"/create_platform": {
"post": {
"tags": [
"Platform"
],
"summary": "Platform - Create",
"description": "Create a new platform account",
"operationId": "Create a Platform Account",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlatformAccountCreateRequest"
},
"examples": {
"Create a platform account with organization_name": {
"value": {
"organization_name": "organization_abc"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Platform Account Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlatformAccountCreateResponse"
}
}
}
},
"400": {
"description": "Invalid data"
}
},
"security": [
{
"jwt_key": []
}
]
}
}
},
"components": {
@ -26363,6 +26410,51 @@
}
}
},
"PlatformAccountCreateRequest": {
"type": "object",
"required": [
"organization_name"
],
"properties": {
"organization_name": {
"type": "string",
"example": "organization_abc",
"maxLength": 64
}
}
},
"PlatformAccountCreateResponse": {
"type": "object",
"required": [
"org_id",
"org_type",
"merchant_id",
"merchant_account_type"
],
"properties": {
"org_id": {
"type": "string",
"example": "org_abc",
"maxLength": 64,
"minLength": 1
},
"org_name": {
"type": "string",
"example": "organization_abc",
"nullable": true
},
"org_type": {
"$ref": "#/components/schemas/OrganizationType"
},
"merchant_id": {
"type": "string",
"example": "merchant_abc"
},
"merchant_account_type": {
"$ref": "#/components/schemas/MerchantAccountType"
}
}
},
"PollConfig": {
"type": "object",
"required": [

View File

@ -0,0 +1,3 @@
---
openapi: post /create_platform
---

View File

@ -3,6 +3,7 @@ use std::fmt::Debug;
use common_enums::{EntityType, TokenPurpose};
use common_utils::{crypto::OptionalEncryptableName, id_type, pii};
use masking::Secret;
use utoipa::ToSchema;
use crate::user_role::UserStatus;
pub mod dashboard_metadata;
@ -150,17 +151,24 @@ pub struct UserOrgMerchantCreateRequest {
pub merchant_name: Secret<String>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, ToSchema)]
pub struct PlatformAccountCreateRequest {
#[schema(max_length = 64, value_type = String, example = "organization_abc")]
pub organization_name: Secret<String>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
#[derive(Debug, serde::Deserialize, serde::Serialize, ToSchema)]
pub struct PlatformAccountCreateResponse {
#[schema(value_type = String, max_length = 64, min_length = 1, example = "org_abc")]
pub org_id: id_type::OrganizationId,
#[schema(value_type = Option<String>, example = "organization_abc")]
pub org_name: Option<String>,
#[schema(value_type = OrganizationType, example = "standard")]
pub org_type: common_enums::OrganizationType,
#[schema(value_type = String, example = "merchant_abc")]
pub merchant_id: id_type::MerchantId,
#[schema(value_type = MerchantAccountType, example = "standard")]
pub merchant_account_type: common_enums::MerchantAccountType,
}

View File

@ -213,6 +213,9 @@ Never share your secret api keys. Keep them guarded and secure.
// Routes for authentication
routes::authentication::authentication_create,
// Routes for platform account
routes::platform::create_platform_account,
),
components(schemas(
common_utils::types::MinorUnit,
@ -362,8 +365,8 @@ Never share your secret api keys. Keep them guarded and secure.
api_models::enums::MerchantProductType,
api_models::enums::CtpServiceProvider,
api_models::enums::PaymentLinkSdkLabelType,
api_models::enums::PaymentLinkShowSdkTerms,
api_models::enums::OrganizationType,
api_models::enums::PaymentLinkShowSdkTerms,
api_models::admin::MerchantConnectorCreate,
api_models::admin::AdditionalMerchantData,
api_models::admin::ConnectorWalletDetails,
@ -806,6 +809,8 @@ Never share your secret api keys. Keep them guarded and secure.
api_models::authentication::ThreeDsData,
api_models::authentication::AuthenticationEligibilityRequest,
api_models::authentication::AuthenticationEligibilityResponse,
api_models::user::PlatformAccountCreateRequest,
api_models::user::PlatformAccountCreateResponse,
)),
modifiers(&SecurityAddon)
)]

View File

@ -14,6 +14,7 @@ pub mod payment_link;
pub mod payment_method;
pub mod payments;
pub mod payouts;
pub mod platform;
pub mod poll;
pub mod profile;
pub mod profile_acquirer;

View File

@ -0,0 +1,26 @@
#[cfg(feature = "v1")]
/// Platform - Create
///
/// Create a new platform account
#[utoipa::path(
post,
path = "/create_platform",
request_body(
content = PlatformAccountCreateRequest,
examples(
(
"Create a platform account with organization_name" = (
value = json!({"organization_name": "organization_abc"})
)
),
)
),
responses(
(status = 200, description = "Platform Account Created", body = PlatformAccountCreateResponse),
(status = 400, description = "Invalid data")
),
tag = "Platform",
operation_id = "Create a Platform Account",
security(("jwt_key" = []))
)]
pub async fn create_platform_account() {}