feat(tokenio): Add OpenBanking Redirection Flow (#8152)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
awasthi21
2025-06-09 13:40:27 +05:30
committed by GitHub
parent 473344e9b3
commit 4c73d74889
33 changed files with 2827 additions and 533 deletions

View File

@ -1001,21 +1001,122 @@ pub struct RevenueRecoveryMetadata {
#[derive(Debug, Clone, serde::Deserialize, serde::Serialize, ToSchema)]
#[serde(rename_all = "snake_case")]
pub enum MerchantAccountData {
/// IBAN-based account for international transfers
Iban {
#[schema(value_type= String)]
/// International Bank Account Number (up to 34 characters)
#[schema(value_type = String)]
iban: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type= Option<String>)]
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// UK BACS payment system
Bacs {
#[schema(value_type= String)]
/// 8-digit UK account number
#[schema(value_type = String)]
account_number: Secret<String>,
#[schema(value_type= String)]
/// 6-digit UK sort code
#[schema(value_type = String, example = "123456")]
sort_code: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type= Option<String>)]
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// UK Faster Payments (instant transfers)
FasterPayments {
/// 8-digit UK account number
#[schema(value_type = String)]
account_number: Secret<String>,
/// 6-digit UK sort code
#[schema(value_type = String)]
sort_code: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// SEPA payments (Euro zone)
Sepa {
/// IBAN for SEPA transfers
#[schema(value_type = String, example = "FR1420041010050500013M02606")]
iban: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// SEPA Instant payments (10-second transfers)
SepaInstant {
/// IBAN for instant SEPA transfers
#[schema(value_type = String, example = "DE89370400440532013000")]
iban: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// Polish Elixir payment system
Elixir {
/// Polish account number (26 digits)
#[schema(value_type = String, example = "12345678901234567890123456")]
account_number: Secret<String>,
/// Polish IBAN (28 chars)
#[schema(value_type = String, example = "PL27114020040000300201355387")]
iban: Secret<String>,
/// Account holder name
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// Swedish Bankgiro system
Bankgiro {
/// Bankgiro number (7-8 digits)
#[schema(value_type = String, example = "5402-9656")]
number: Secret<String>,
/// Account holder name
#[schema(example = "Erik Andersson")]
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},
/// Swedish Plusgiro system
Plusgiro {
/// Plusgiro number (2-8 digits)
#[schema(value_type = String, example = "4789-2")]
number: Secret<String>,
/// Account holder name
#[schema(example = "Anna Larsson")]
name: String,
#[schema(value_type = Option<String>)]
#[serde(skip_serializing_if = "Option::is_none")]
connector_recipient_id: Option<Secret<String>>,
},