feat(connector): [Itau Bank] Add payment and sync flow for Pix (#5342)

This commit is contained in:
Sakil Mostak
2024-07-22 16:07:22 +05:30
committed by GitHub
parent ca749b3259
commit 3fef96e727
41 changed files with 768 additions and 144 deletions

View File

@ -101,7 +101,7 @@ pub enum Connector {
Gpayments,
Helcim,
Iatapay,
// Itaubank, template code for future usage
Itaubank,
Klarna,
Mifinity,
Mollie,
@ -182,6 +182,7 @@ impl Connector {
| (Self::Trustpay, PaymentMethod::BankRedirect)
| (Self::Iatapay, _)
| (Self::Volt, _)
| (Self::Itaubank, _)
)
}
pub fn supports_file_storage_module(&self) -> bool {
@ -227,6 +228,7 @@ impl Connector {
| Self::Gpayments
| Self::Helcim
| Self::Iatapay
| Self::Itaubank
| Self::Klarna
| Self::Mifinity
| Self::Mollie

View File

@ -1857,7 +1857,7 @@ impl GetPaymentMethodType for BankTransferData {
Self::CimbVaBankTransfer { .. } => api_enums::PaymentMethodType::CimbVa,
Self::DanamonVaBankTransfer { .. } => api_enums::PaymentMethodType::DanamonVa,
Self::MandiriVaBankTransfer { .. } => api_enums::PaymentMethodType::MandiriVa,
Self::Pix {} => api_enums::PaymentMethodType::Pix,
Self::Pix { .. } => api_enums::PaymentMethodType::Pix,
Self::Pse {} => api_enums::PaymentMethodType::Pse,
Self::LocalBankTransfer { .. } => api_enums::PaymentMethodType::LocalBankTransfer,
}
@ -2459,7 +2459,17 @@ pub enum BankTransferData {
/// The billing details for BniVa Bank Transfer
billing_details: Option<DokuBillingDetails>,
},
Pix {},
Pix {
/// Unique key for pix transfer
#[schema(value_type = Option<String>, example = "a1f4102e-a446-4a57-bcce-6fa48899c1d1")]
pix_key: Option<Secret<String>>,
/// CPF is a Brazilian tax identification number
#[schema(value_type = Option<i64>, example = "10599054689")]
cpf: Option<Secret<i64>>,
/// CNPJ is a Brazilian company tax identification number
#[schema(value_type = Option<i64>, example = "74469027417312")]
cnpj: Option<Secret<i64>>,
},
Pse {},
LocalBankTransfer {
bank_code: Option<String>,
@ -2531,7 +2541,7 @@ impl GetAddressFromPaymentMethodData for BankTransferData {
email: details.email.clone(),
})
}
Self::LocalBankTransfer { .. } | Self::Pix {} | Self::Pse {} => None,
Self::LocalBankTransfer { .. } | Self::Pix { .. } | Self::Pse {} => None,
}
}
}