@@ -33,12 +69,10 @@ let make = (~branding="auto", ~showText=true) => {
- {React.string("We are processing your payment...")}
+ {React.string(textConfig.title)}
- {React.string(
- "You have been redirected to new tab to complete your payments. Status will be updated automatically",
- )}
+ {React.string(textConfig.subtitle)}
diff --git a/src/Components/PaymentLoader.res b/src/Components/PaymentLoader.res
index 481bcc189..30a794442 100644
--- a/src/Components/PaymentLoader.res
+++ b/src/Components/PaymentLoader.res
@@ -2,6 +2,8 @@
let make = () => {
open Utils
let (branding, setBranding) = React.useState(_ => "auto")
+ let (paymentMethod, setPaymentMethod) = React.useState(_ => "")
+ let setConfig = Recoil.useSetRecoilState(RecoilAtoms.configAtom)
React.useEffect0(() => {
messageParentWindow([("iframeMountedCallback", true->JSON.Encode.bool)])
@@ -9,9 +11,21 @@ let make = () => {
let json = ev.data->safeParse
let dict = json->getDictFromJson
if dict->Utils.getBool("fullScreenIframeMounted", false) {
- if dict->getDictFromDict("options")->getOptionString("branding")->Option.isSome {
- setBranding(_ => dict->getDictFromDict("options")->getString("branding", "auto"))
+ let optionsDict = dict->getDictFromDict("options")
+ if optionsDict->getOptionString("branding")->Option.isSome {
+ setBranding(_ => optionsDict->getString("branding", "auto"))
}
+ let locale = optionsDict->getString("locale", "auto")
+ CardTheme.getLocaleObject(locale)
+ ->Promise.thenResolve(localeString => {
+ setConfig(prev => {...prev, localeString})
+ })
+ ->Promise.catch(_ => Promise.resolve())
+ ->ignore
+ let metadata = dict->getJsonObjectFromDict("metadata")
+ let metaDataDict = metadata->JSON.Decode.object->Option.getOr(Dict.make())
+ let paymentMethodStr = metaDataDict->getString("paymentMethod", "")
+ setPaymentMethod(_ => paymentMethodStr)
}
}
Window.addEventListener("message", handle)
@@ -25,7 +39,7 @@ let make = () => {
}
diff --git a/src/Components/PixPaymentInput.res b/src/Components/PixPaymentInput.res
index 17512eee9..57e2925e4 100644
--- a/src/Components/PixPaymentInput.res
+++ b/src/Components/PixPaymentInput.res
@@ -7,7 +7,10 @@ let make = (~fieldType="") => {
let (pixCNPJ, setPixCNPJ) = Recoil.useRecoilState(userPixCNPJ)
let (pixCPF, setPixCPF) = Recoil.useRecoilState(userPixCPF)
let (pixKey, setPixKey) = Recoil.useRecoilState(userPixKey)
+ let (pixAccountNumber, setPixAccountNumber) = Recoil.useRecoilState(userPixAccountNumber)
let (sourceBankAccountId, setSourceBankAccountId) = Recoil.useRecoilState(sourceBankAccountId)
+ let (branchCode, setBranchCode) = Recoil.useRecoilState(userBranchCode)
+ let (bankIdentifier, setBankIdentifier) = Recoil.useRecoilState(userBankIdentifier)
let inputRef = React.useRef(Nullable.null)
let validatePixKey = (val): RecoilAtomTypes.field =>
@@ -72,6 +75,14 @@ let make = (~fieldType="") => {
Some(14),
validatePixCNPJ,
)
+ | "pixAccountNumber" => (
+ localeString.pixAccountNumberLabel,
+ setPixAccountNumber,
+ pixAccountNumber,
+ localeString.pixAccountNumberPlaceholder,
+ None,
+ validatePixKey,
+ )
| _ => (
"",
_ => (),
@@ -123,14 +134,40 @@ let make = (~fieldType="") => {
errorString: localeString.pixCPFEmptyText,
})
}
+ if pixAccountNumber.value == "" {
+ setPixAccountNumber(prev => {
+ ...prev,
+ errorString: localeString.pixAccountNumberEmptyText,
+ })
+ }
if sourceBankAccountId.value == "" {
setSourceBankAccountId(prev => {
...prev,
errorString: localeString.sourceBankAccountIdEmptyText,
})
}
+ if branchCode.value == "" {
+ setBranchCode(prev => {
+ ...prev,
+ errorString: localeString.branchCodeEmptyText,
+ })
+ }
+ if bankIdentifier.value == "" {
+ setBankIdentifier(prev => {
+ ...prev,
+ errorString: localeString.bankIdentifierEmptyText,
+ })
+ }
}
- }, [pixCNPJ.value, pixKey.value, pixCPF.value])
+ }, (
+ pixCNPJ.value,
+ pixKey.value,
+ pixCPF.value,
+ pixAccountNumber.value,
+ sourceBankAccountId.value,
+ branchCode.value,
+ bankIdentifier.value,
+ ))
useSubmitPaymentData(submitCallback)
diff --git a/src/LocaleStrings/ArabicLocale.res b/src/LocaleStrings/ArabicLocale.res
index 4098b9015..51c645862 100644
--- a/src/LocaleStrings/ArabicLocale.res
+++ b/src/LocaleStrings/ArabicLocale.res
@@ -163,7 +163,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `مفتاح Pix لا يمكن أن يكون فارغًا`,
pixKeyPlaceholder: `أدخل مفتاح Pix`,
pixKeyLabel: `مفتاح Pix`,
+ pixAccountNumberEmptyText: "لا يمكن أن يكون رقم حساب Pix فارغًا",
+ pixAccountNumberLabel: "رقم حساب Pix",
+ pixAccountNumberPlaceholder: "أدخل رقم حساب Pix",
sourceBankAccountIdEmptyText: `لا يمكن أن يكون معرف الحساب المصرفي المصدر فارغاً`,
+ branchCodeEmptyText: `لا يمكن أن يكون رمز الفرع فارغاً`,
+ bankIdentifierEmptyText: `لا يمكن أن يكون معرف البنك فارغاً`,
invalidCardHolderNameError: `اسم حامل البطاقة لا يمكن أن يحتوي على أرقام`,
invalidNickNameError: `لا يمكن أن يحتوي الاسم المستعار على أكثر من رقمين`,
expiry: `انتهاء الصلاحية`,
@@ -230,6 +235,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `الخدمات المصرفية المفتوحة`,
payment_methods_evoucher: `قسيمة إلكترونية`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix تلقائي QR`,
+ payment_methods_pix_automatico_push: `Pix تلقائي Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `باي بال`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -257,6 +264,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "مع فوائد",
installmentTotal: "المجموع",
installmentSelectPlanError: "يرجى اختيار خطة تقسيط",
+ loaderPaymentProcessingTitle: "جارٍ معالجة دفعتك...",
+ loaderPaymentProcessingSubtitle: "تمت إعادة توجيهك إلى علامة تبويب جديدة لإتمام الدفع. سيتم تحديث الحالة تلقائيًا",
+ loaderPaymentConfirmBankingAppTitle: "يرجى تأكيد الدفع في تطبيق البنك الخاص بك",
+ loaderPaymentConfirmBankingAppSubtitle: "افتح تطبيق البنك الخاص بك وقم بتفويض طلب الدفع. سيتم تحديث الحالة تلقائيًا بعد التأكيد.",
+ branchCodeLabel: "رمز الفرع",
+ bankIdentifierLabel: "معرف البنك",
+ branchCodePlaceholder: "أدخل رمز الفرع",
+ bankIdentifierPlaceholder: "أدخل معرف البنك",
installmentSelectPlanPlaceholder: "اختر خطة التقسيط",
showMore: "عرض المزيد",
showLess: "عرض أقل",
diff --git a/src/LocaleStrings/CatalanLocale.res b/src/LocaleStrings/CatalanLocale.res
index e530923c9..b0151866a 100644
--- a/src/LocaleStrings/CatalanLocale.res
+++ b/src/LocaleStrings/CatalanLocale.res
@@ -162,7 +162,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `La clau Pix no pot estar buida`,
pixKeyPlaceholder: `Introdueix la clau Pix`,
pixKeyLabel: `Clau Pix`,
+ pixAccountNumberEmptyText: `El número de compte Pix no pot estar buit`,
+ pixAccountNumberLabel: "Nombre de compte Pix",
+ pixAccountNumberPlaceholder: `Introduïu el nombre de compte Pix`,
sourceBankAccountIdEmptyText: `L'identificador del compte bancari d'origen no pot estar buit`,
+ branchCodeEmptyText: `El codi de sucursal no pot estar buit`,
+ bankIdentifierEmptyText: `L'identificador bancari no pot estar buit`,
invalidCardHolderNameError: `El nom del titular de la targeta no pot contenir dígits`,
invalidNickNameError: `El sobrenom no pot contenir més de 2 dígits`,
expiry: `caducitat`,
@@ -229,6 +234,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Bancaire ouvert`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automàtic QR`,
+ payment_methods_pix_automatico_push: `Pix Automàtic Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -256,6 +263,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "amb interessos",
installmentTotal: "Total",
installmentSelectPlanError: "Si us plau, seleccioneu un pla de terminis",
+ loaderPaymentProcessingTitle: "Estem processant el vostre pagament...",
+ loaderPaymentProcessingSubtitle: `Heu estat redirigit a una nova pestanya per completar el pagament. L'estat s'actualitzarà automàticament`,
+ loaderPaymentConfirmBankingAppTitle: `Si us plau, confirmeu el pagament a la vostra aplicació bancària`,
+ loaderPaymentConfirmBankingAppSubtitle: `Obriu la vostra aplicació bancària i autoritzeu la sol·licitud de pagament. L'estat s'actualitzarà automàticament un cop confirmat.`,
+ branchCodeLabel: "Codi de sucursal",
+ bankIdentifierLabel: "Identificador bancari",
+ branchCodePlaceholder: `Introduïu el codi de sucursal`,
+ bankIdentifierPlaceholder: `Introduïu l'identificador bancari`,
installmentSelectPlanPlaceholder: "Seleccioneu un pla de terminis",
showMore: "Mostra més",
showLess: "Mostra menys",
diff --git a/src/LocaleStrings/ChineseLocale.res b/src/LocaleStrings/ChineseLocale.res
index afabf5caa..53c4499fd 100644
--- a/src/LocaleStrings/ChineseLocale.res
+++ b/src/LocaleStrings/ChineseLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix 密钥不能为空`,
pixKeyPlaceholder: `输入 Pix 密钥`,
pixKeyLabel: `Pix 密钥`,
+ pixAccountNumberEmptyText: "Pix账户号码不能为空",
+ pixAccountNumberLabel: "Pix账户号码",
+ pixAccountNumberPlaceholder: "输入Pix账户号码",
sourceBankAccountIdEmptyText: `源银行账户ID不能为空`,
+ branchCodeEmptyText: `支行代码不能为空`,
+ bankIdentifierEmptyText: `银行标识符不能为空`,
invalidCardHolderNameError: `持卡人姓名不能包含数字`,
invalidNickNameError: `昵称不能包含超过2个数字`,
expiry: `到期`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `开放银行`,
payment_methods_evoucher: `电子代金券`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix 自动 QR`,
+ payment_methods_pix_automatico_push: `Pix 自动推送`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `银联`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "有利息",
installmentTotal: "合计",
installmentSelectPlanError: "请选择分期计划",
+ loaderPaymentProcessingTitle: "我们正在处理您的付款...",
+ loaderPaymentProcessingSubtitle: "您已被重定向到新标签页以完成付款。状态将自动更新",
+ loaderPaymentConfirmBankingAppTitle: "请在您的银行应用中确认付款",
+ loaderPaymentConfirmBankingAppSubtitle: "打开您的银行应用程序并授权付款请求。确认后状态将自动更新。",
+ branchCodeLabel: "支行代码",
+ bankIdentifierLabel: "银行识别码",
+ branchCodePlaceholder: "输入分行代码",
+ bankIdentifierPlaceholder: "输入银行识别码",
installmentSelectPlanPlaceholder: "选择分期计划",
showMore: "显示更多",
showLess: "收起",
diff --git a/src/LocaleStrings/DeutschLocale.res b/src/LocaleStrings/DeutschLocale.res
index 44a1ceec0..a6ca77b08 100644
--- a/src/LocaleStrings/DeutschLocale.res
+++ b/src/LocaleStrings/DeutschLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix-Schlüssel darf nicht leer sein`,
pixKeyPlaceholder: `Geben Sie den Pix-Schlüssel ein`,
pixKeyLabel: `Pix-Schlüssel`,
+ pixAccountNumberEmptyText: `Pix-Kontonummer darf nicht leer sein`,
+ pixAccountNumberLabel: "Pix-Kontonummer",
+ pixAccountNumberPlaceholder: "Pix-Kontonummer eingeben",
sourceBankAccountIdEmptyText: `Quell-Bankkonten-ID darf nicht leer sein`,
+ branchCodeEmptyText: `Bankleitzahl darf nicht leer sein`,
+ bankIdentifierEmptyText: `Bankkennung darf nicht leer sein`,
invalidCardHolderNameError: `Der Name des Karteninhabers darf keine Ziffern enthalten`,
invalidNickNameError: `Der Spitzname darf nicht mehr als 2 Ziffern enthalten`,
expiry: `ablauf`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatisch QR`,
+ payment_methods_pix_automatico_push: `Pix Automatisch Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "mit Zinsen",
installmentTotal: "Gesamt",
installmentSelectPlanError: "Bitte wählen Sie einen Ratenplan",
+ loaderPaymentProcessingTitle: "Ihre Zahlung wird verarbeitet...",
+ loaderPaymentProcessingSubtitle: "Sie wurden auf eine neue Registerkarte weitergeleitet, um Ihre Zahlung abzuschließen. Der Status wird automatisch aktualisiert",
+ loaderPaymentConfirmBankingAppTitle: "Bitte bestätigen Sie die Zahlung in Ihrer Banking-App",
+ loaderPaymentConfirmBankingAppSubtitle: `Öffnen Sie Ihre Banking-Anwendung und autorisieren Sie die Zahlungsanforderung. Der Status wird automatisch aktualisiert, sobald die Bestätigung erfolgt ist.`,
+ branchCodeLabel: "Bankleitzahl",
+ bankIdentifierLabel: "Bankkennung",
+ branchCodePlaceholder: "Bankleitzahl eingeben",
+ bankIdentifierPlaceholder: "Bankkennung eingeben",
installmentSelectPlanPlaceholder: "Ratenplan auswählen",
showMore: "Mehr anzeigen",
showLess: "Weniger anzeigen",
diff --git a/src/LocaleStrings/DutchLocale.res b/src/LocaleStrings/DutchLocale.res
index 0a83d36ea..fade43de1 100644
--- a/src/LocaleStrings/DutchLocale.res
+++ b/src/LocaleStrings/DutchLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix-sleutel mag niet leeg zijn`,
pixKeyPlaceholder: `Voer Pix-sleutel in`,
pixKeyLabel: `Pix-sleutel`,
+ pixAccountNumberEmptyText: "Pix-rekeningnummer mag niet leeg zijn",
+ pixAccountNumberLabel: "Pix-rekeningnummer",
+ pixAccountNumberPlaceholder: "Voer het Pix-rekeningnummer in",
sourceBankAccountIdEmptyText: `Bron bankrekeningnummer mag niet leeg zijn`,
+ branchCodeEmptyText: `Bankfiliaalkode mag niet leeg zijn`,
+ bankIdentifierEmptyText: `Bankidentificatie mag niet leeg zijn`,
invalidCardHolderNameError: `De naam van de kaarthouder mag geen cijfers bevatten`,
invalidNickNameError: `De bijnaam mag niet meer dan 2 cijfers bevatten`,
expiry: `vervaldatum`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatisch QR`,
+ payment_methods_pix_automatico_push: `Pix Automatisch Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "met rente",
installmentTotal: "Totaal",
installmentSelectPlanError: "Selecteer een aflossingsplan",
+ loaderPaymentProcessingTitle: "We verwerken uw betaling...",
+ loaderPaymentProcessingSubtitle: "U bent doorgestuurd naar een nieuw tabblad om uw betaling te voltooien. De status wordt automatisch bijgewerkt",
+ loaderPaymentConfirmBankingAppTitle: "Bevestig de betaling in uw bankieren-app",
+ loaderPaymentConfirmBankingAppSubtitle: "Open uw bankieren-applicatie en autoriseer het betalingsverzoek. De status wordt automatisch bijgewerkt zodra dit is bevestigd.",
+ branchCodeLabel: "Filiaalcode",
+ bankIdentifierLabel: "Bankidentificatie",
+ branchCodePlaceholder: "Voer de filiaalcode in",
+ bankIdentifierPlaceholder: "Voer de bankidentificatie in",
installmentSelectPlanPlaceholder: "Selecteer een aflossingsplan",
showMore: "Meer tonen",
showLess: "Minder tonen",
diff --git a/src/LocaleStrings/EnglishGBLocale.res b/src/LocaleStrings/EnglishGBLocale.res
index b42e85e0f..c5fa3d3e8 100644
--- a/src/LocaleStrings/EnglishGBLocale.res
+++ b/src/LocaleStrings/EnglishGBLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix key cannot be empty`,
pixKeyPlaceholder: `Enter Pix key`,
pixKeyLabel: `Pix key`,
+ pixAccountNumberEmptyText: `Pix Account Number cannot be empty`,
+ pixAccountNumberLabel: "Pix Account Number",
+ pixAccountNumberPlaceholder: "Enter Pix account number",
sourceBankAccountIdEmptyText: `Source Bank Account ID cannot be empty`,
+ branchCodeEmptyText: `Branch Code cannot be empty`,
+ bankIdentifierEmptyText: `Bank Identifier cannot be empty`,
invalidCardHolderNameError: `Cardholder's name cannot contain digits`,
invalidNickNameError: `Nickname cannot have more than 2 digits`,
expiry: `expiry`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatic QR`,
+ payment_methods_pix_automatico_push: `Pix Automatic Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "with interest",
installmentTotal: "Total",
installmentSelectPlanError: "Please select an instalment plan",
+ loaderPaymentProcessingTitle: "We are processing your payment...",
+ loaderPaymentProcessingSubtitle: "You have been redirected to new tab to complete your payments. Status will be updated automatically",
+ loaderPaymentConfirmBankingAppTitle: "Please confirm the payment in your banking app",
+ loaderPaymentConfirmBankingAppSubtitle: "Open your banking application and authorise the payment request. The status will be updated automatically once confirmed.",
+ branchCodeLabel: "Branch Code",
+ bankIdentifierLabel: "Bank Identifier",
+ branchCodePlaceholder: "Enter branch code",
+ bankIdentifierPlaceholder: "Enter bank identifier",
installmentSelectPlanPlaceholder: "Select instalment plan",
showMore: "Show more",
showLess: "Show less",
diff --git a/src/LocaleStrings/EnglishLocale.res b/src/LocaleStrings/EnglishLocale.res
index 49f98931a..c0f9545b1 100644
--- a/src/LocaleStrings/EnglishLocale.res
+++ b/src/LocaleStrings/EnglishLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix key cannot be empty`,
pixKeyPlaceholder: `Enter Pix key`,
pixKeyLabel: `Pix key`,
+ pixAccountNumberEmptyText: `Pix Account Number cannot be empty`,
+ pixAccountNumberLabel: "Pix Account Number",
+ pixAccountNumberPlaceholder: "Enter Pix account number",
sourceBankAccountIdEmptyText: `Source Bank Account ID cannot be empty`,
+ branchCodeEmptyText: `Branch Code cannot be empty`,
+ bankIdentifierEmptyText: `Bank Identifier cannot be empty`,
invalidCardHolderNameError: `Card Holder's name cannot have digits`,
invalidNickNameError: `Nickname cannot have more than 2 digits`,
expiry: `expiry`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatic QR`,
+ payment_methods_pix_automatico_push: `Pix Automatic Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "with interest",
installmentTotal: "Total",
installmentSelectPlanError: "Please select an installment plan",
+ loaderPaymentProcessingTitle: "We are processing your payment...",
+ loaderPaymentProcessingSubtitle: "You have been redirected to new tab to complete your payments. Status will be updated automatically",
+ loaderPaymentConfirmBankingAppTitle: "Please confirm the payment in your banking app",
+ loaderPaymentConfirmBankingAppSubtitle: "Open your banking application and authorize the payment request. The status will be updated automatically once confirmed.",
+ branchCodeLabel: "Branch Code",
+ bankIdentifierLabel: "Bank Identifier",
+ branchCodePlaceholder: "Enter branch code",
+ bankIdentifierPlaceholder: "Enter bank identifier",
installmentSelectPlanPlaceholder: "Select installment plan",
showMore: "Show more",
showLess: "Show less",
diff --git a/src/LocaleStrings/FrenchBelgiumLocale.res b/src/LocaleStrings/FrenchBelgiumLocale.res
index e198f791a..fcdd622fc 100644
--- a/src/LocaleStrings/FrenchBelgiumLocale.res
+++ b/src/LocaleStrings/FrenchBelgiumLocale.res
@@ -162,7 +162,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `La clé Pix ne peut pas être vide`,
pixKeyPlaceholder: `Entrez la clé Pix`,
pixKeyLabel: `Clé Pix`,
+ pixAccountNumberEmptyText: `Le numéro de compte Pix ne peut pas être vide`,
+ pixAccountNumberLabel: `Numéro de compte Pix`,
+ pixAccountNumberPlaceholder: `Entrez le numéro de compte Pix`,
sourceBankAccountIdEmptyText: `L'identifiant du compte bancaire source ne peut pas être vide`,
+ branchCodeEmptyText: `Le code de la succursale ne peut pas être vide`,
+ bankIdentifierEmptyText: `L'identifiant bancaire ne peut pas être vide`,
invalidCardHolderNameError: `Le nom du titulaire de la carte ne peut pas contenir de chiffres`,
invalidNickNameError: `Le surnom ne peut pas contenir plus de 2 chiffres`,
expiry: `expiration`,
@@ -229,6 +234,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatique QR`,
+ payment_methods_pix_automatico_push: `Pix Automatique Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -256,6 +263,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "avec intérêts",
installmentTotal: "Total",
installmentSelectPlanError: "Veuillez sélectionner un plan de paiement",
+ loaderPaymentProcessingTitle: "Nous traitons votre paiement...",
+ loaderPaymentProcessingSubtitle: `Vous avez été redirigé vers un nouvel onglet pour finaliser votre paiement. Le statut sera mis à jour automatiquement`,
+ loaderPaymentConfirmBankingAppTitle: "Veuillez confirmer le paiement dans votre application bancaire",
+ loaderPaymentConfirmBankingAppSubtitle: `Ouvrez votre application bancaire et autorisez la demande de paiement. Le statut sera mis à jour automatiquement une fois la confirmation effectuée.`,
+ branchCodeLabel: "Code agence",
+ bankIdentifierLabel: "Identifiant bancaire",
+ branchCodePlaceholder: "Entrez le code de la succursale",
+ bankIdentifierPlaceholder: `Entrez l'identifiant bancaire`,
installmentSelectPlanPlaceholder: "Sélectionner un plan de paiement",
showMore: "Afficher plus",
showLess: "Afficher moins",
diff --git a/src/LocaleStrings/FrenchLocale.res b/src/LocaleStrings/FrenchLocale.res
index 805dca3bd..78533c824 100644
--- a/src/LocaleStrings/FrenchLocale.res
+++ b/src/LocaleStrings/FrenchLocale.res
@@ -162,7 +162,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `La clé Pix ne peut pas être vide`,
pixKeyPlaceholder: `Entrez la clé Pix`,
pixKeyLabel: `Clé Pix`,
+ pixAccountNumberEmptyText: `Le numéro de compte Pix ne peut pas être vide`,
+ pixAccountNumberLabel: `Numéro de compte Pix`,
+ pixAccountNumberPlaceholder: `Entrez le numéro de compte Pix`,
sourceBankAccountIdEmptyText: `L'identifiant du compte bancaire source ne peut pas être vide`,
+ branchCodeEmptyText: `Le code de la succursale ne peut pas être vide`,
+ bankIdentifierEmptyText: `L'identifiant bancaire ne peut pas être vide`,
invalidCardHolderNameError: `Le nom du titulaire de la carte ne peut pas contenir de chiffres`,
invalidNickNameError: `Le surnom ne peut pas contenir plus de 2 chiffres`,
expiry: `expiration`,
@@ -229,6 +234,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatique QR`,
+ payment_methods_pix_automatico_push: `Pix Automatique Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -256,6 +263,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "avec intérêts",
installmentTotal: "Total",
installmentSelectPlanError: "Veuillez sélectionner un plan de paiement",
+ loaderPaymentProcessingTitle: "Nous traitons votre paiement...",
+ loaderPaymentProcessingSubtitle: `Vous avez été redirigé vers un nouvel onglet pour finaliser votre paiement. Le statut sera mis à jour automatiquement`,
+ loaderPaymentConfirmBankingAppTitle: "Veuillez confirmer le paiement dans votre application bancaire",
+ loaderPaymentConfirmBankingAppSubtitle: `Ouvrez votre application bancaire et autorisez la demande de paiement. Le statut sera mis à jour automatiquement une fois la confirmation effectuée.`,
+ branchCodeLabel: "Code agence",
+ bankIdentifierLabel: "Identifiant bancaire",
+ branchCodePlaceholder: "Entrez le code de la succursale",
+ bankIdentifierPlaceholder: `Entrez l'identifiant bancaire`,
installmentSelectPlanPlaceholder: "Sélectionner un plan de paiement",
showMore: "Afficher plus",
showLess: "Afficher moins",
diff --git a/src/LocaleStrings/HebrewLocale.res b/src/LocaleStrings/HebrewLocale.res
index df7bde257..4249dada8 100644
--- a/src/LocaleStrings/HebrewLocale.res
+++ b/src/LocaleStrings/HebrewLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `מפתח Pix לא יכול להיות ריק`,
pixKeyPlaceholder: `הכנס מפתח Pix`,
pixKeyLabel: `מפתח Pix`,
+ pixAccountNumberEmptyText: "מספר חשבון Pix לא יכול להיות ריק",
+ pixAccountNumberLabel: "מספר חשבון Pix",
+ pixAccountNumberPlaceholder: "הזן מספר חשבון Pix",
sourceBankAccountIdEmptyText: `מזהה חשבון בנק מקור לא יכול להיות ריק`,
+ branchCodeEmptyText: `קוד סניף לא יכול להיות ריק`,
+ bankIdentifierEmptyText: `מזהה בנק לא יכול להיות ריק`,
invalidCardHolderNameError: `שם בעל הכרטיס לא יכול לכלול ספרות`,
invalidNickNameError: `הכינוי לא יכול לכלול יותר משתי ספרות`,
expiry: `תְפוּגָה`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `בנקאות פתוחה`,
payment_methods_evoucher: `שובר אלקטרוני`,
payment_methods_pix_transfer: `פיקס`,
+ payment_methods_pix_automatico_qr: `פיקס אוטומטי QR`,
+ payment_methods_pix_automatico_push: `פיקס אוטומטי Push`,
payment_methods_boleto: `בולטו`,
payment_methods_paypal: `פייפאל`,
payment_methods_local_bank_transfer_transfer: `יוניון פיי`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "עם ריבית",
installmentTotal: "סה\"כ",
installmentSelectPlanError: "אנא בחר תוכנית תשלומים",
+ loaderPaymentProcessingTitle: "אנחנו מעבדים את התשלום שלך...",
+ loaderPaymentProcessingSubtitle: "הופנית לכרטיסייה חדשה להשלמת התשלום. הסטטוס יתעדכן אוטומטית",
+ loaderPaymentConfirmBankingAppTitle: "אנא אשר את התשלום באפליקציית הבנק שלך",
+ loaderPaymentConfirmBankingAppSubtitle: "פתח את אפליקציית הבנק שלך ואשר את בקשת התשלום. הסטטוס יתעדכן אוטומטית לאחר האישור.",
+ branchCodeLabel: "קוד סניף",
+ bankIdentifierLabel: "מזהה בנק",
+ branchCodePlaceholder: "הזן קוד סניף",
+ bankIdentifierPlaceholder: "הזן מזהה בנק",
installmentSelectPlanPlaceholder: "בחר תוכנית תשלומים",
showMore: "הצג עוד",
showLess: "הצג פחות",
diff --git a/src/LocaleStrings/ItalianLocale.res b/src/LocaleStrings/ItalianLocale.res
index 8afad0365..4d71d6644 100644
--- a/src/LocaleStrings/ItalianLocale.res
+++ b/src/LocaleStrings/ItalianLocale.res
@@ -162,7 +162,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `La chiave Pix non può essere vuota`,
pixKeyPlaceholder: `Inserisci la chiave Pix`,
pixKeyLabel: `Chiave Pix`,
+ pixAccountNumberEmptyText: `Il numero di conto Pix non può essere vuoto`,
+ pixAccountNumberLabel: "Numero di conto Pix",
+ pixAccountNumberPlaceholder: "Inserisci il numero di conto Pix",
sourceBankAccountIdEmptyText: `L'ID del conto bancario di origine non può essere vuoto`,
+ branchCodeEmptyText: `Il codice di filiale non può essere vuoto`,
+ bankIdentifierEmptyText: `L'identificatore bancario non può essere vuoto`,
invalidCardHolderNameError: `Il nome del titolare della carta non può contenere cifre`,
invalidNickNameError: `Il soprannome non può contenere più di 2 cifre`,
expiry: `scadenza`,
@@ -229,6 +234,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatico QR`,
+ payment_methods_pix_automatico_push: `Pix Automatico Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -256,6 +263,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "con interessi",
installmentTotal: "Totale",
installmentSelectPlanError: "Seleziona un piano a rate",
+ loaderPaymentProcessingTitle: "Stiamo elaborando il tuo pagamento...",
+ loaderPaymentProcessingSubtitle: "Sei stato reindirizzato a una nuova scheda per completare il pagamento. Lo stato verrà aggiornato automaticamente",
+ loaderPaymentConfirmBankingAppTitle: "Conferma il pagamento nella tua app bancaria",
+ loaderPaymentConfirmBankingAppSubtitle: `Apri la tua applicazione bancaria e autorizza la richiesta di pagamento. Lo stato verrà aggiornato automaticamente una volta confermato.`,
+ branchCodeLabel: "Codice filiale",
+ bankIdentifierLabel: "Identificativo bancario",
+ branchCodePlaceholder: "Inserisci il codice filiale",
+ bankIdentifierPlaceholder: `Inserisci l'identificativo bancario`,
installmentSelectPlanPlaceholder: "Seleziona un piano a rate",
showMore: "Mostra di più",
showLess: "Mostra meno",
diff --git a/src/LocaleStrings/JapaneseLocale.res b/src/LocaleStrings/JapaneseLocale.res
index 642889bc0..7f042560d 100644
--- a/src/LocaleStrings/JapaneseLocale.res
+++ b/src/LocaleStrings/JapaneseLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pixキーは空にできません`,
pixKeyPlaceholder: `Pixキーを入力`,
pixKeyLabel: `Pixキー`,
+ pixAccountNumberEmptyText: "Pixアカウント番号を入力してください",
+ pixAccountNumberLabel: "Pixアカウント番号",
+ pixAccountNumberPlaceholder: "Pixアカウント番号を入力",
sourceBankAccountIdEmptyText: `送金元銀行口座IDを入力してください`,
+ branchCodeEmptyText: `支店コードを入力してください`,
+ bankIdentifierEmptyText: `銀行識別子を入力してください`,
invalidCardHolderNameError: `カード所有者の名前に数字を含めることはできません`,
invalidNickNameError: `ニックネームには2つ以上の数字を含めることはできません`,
expiry: `有効期限`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `オープンバンキング`,
payment_methods_evoucher: `電子バウチャー`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix 自動 QR`,
+ payment_methods_pix_automatico_push: `Pix 自動プッシュ`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "利息あり",
installmentTotal: "合計",
installmentSelectPlanError: "分割払いプランを選択してください",
+ loaderPaymentProcessingTitle: "お支払いを処理しています...",
+ loaderPaymentProcessingSubtitle: "お支払いを完了するために新しいタブにリダイレクトされました。ステータスは自動的に更新されます",
+ loaderPaymentConfirmBankingAppTitle: "銀行アプリでお支払いを確認してください",
+ loaderPaymentConfirmBankingAppSubtitle: "銀行アプリケーションを開き、支払いリクエストを承認してください。確認後、ステータスは自動的に更新されます。",
+ branchCodeLabel: "支店コード",
+ bankIdentifierLabel: "銀行識別コード",
+ branchCodePlaceholder: "支店コードを入力",
+ bankIdentifierPlaceholder: "銀行識別コードを入力",
installmentSelectPlanPlaceholder: "分割払いプランを選択",
showMore: "もっと見る",
showLess: "表示を減らす",
diff --git a/src/LocaleStrings/LocaleStringTypes.res b/src/LocaleStrings/LocaleStringTypes.res
index 2422d9f3b..57ab3796c 100644
--- a/src/LocaleStrings/LocaleStringTypes.res
+++ b/src/LocaleStrings/LocaleStringTypes.res
@@ -149,7 +149,12 @@ type localeStrings = {
pixKeyEmptyText: string,
pixKeyLabel: string,
pixKeyPlaceholder: string,
+ pixAccountNumberEmptyText: string,
+ pixAccountNumberLabel: string,
+ pixAccountNumberPlaceholder: string,
sourceBankAccountIdEmptyText: string,
+ branchCodeEmptyText: string,
+ bankIdentifierEmptyText: string,
invalidCardHolderNameError: string,
invalidNickNameError: string,
expiry: string,
@@ -216,6 +221,8 @@ type localeStrings = {
payment_methods_open_banking_pis: string,
payment_methods_evoucher: string,
payment_methods_pix_transfer: string,
+ payment_methods_pix_automatico_qr: string,
+ payment_methods_pix_automatico_push: string,
payment_methods_boleto: string,
payment_methods_paypal: string,
payment_methods_local_bank_transfer_transfer: string,
@@ -242,6 +249,14 @@ type localeStrings = {
installmentWithInterest: string,
installmentTotal: string,
installmentSelectPlanError: string,
+ loaderPaymentProcessingTitle: string,
+ loaderPaymentProcessingSubtitle: string,
+ loaderPaymentConfirmBankingAppTitle: string,
+ loaderPaymentConfirmBankingAppSubtitle: string,
+ branchCodeLabel: string,
+ bankIdentifierLabel: string,
+ branchCodePlaceholder: string,
+ bankIdentifierPlaceholder: string,
installmentSelectPlanPlaceholder: string,
showMore: string,
showLess: string,
diff --git a/src/LocaleStrings/PolishLocale.res b/src/LocaleStrings/PolishLocale.res
index 7843a19e3..cf2b4c1e9 100644
--- a/src/LocaleStrings/PolishLocale.res
+++ b/src/LocaleStrings/PolishLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Klucz Pix nie może być pusty`,
pixKeyPlaceholder: `Wprowadź klucz Pix`,
pixKeyLabel: `Klucz Pix`,
+ pixAccountNumberEmptyText: `Numer konta Pix nie może być pusty`,
+ pixAccountNumberLabel: "Numer konta Pix",
+ pixAccountNumberPlaceholder: `Wprowadź numer konta Pix`,
sourceBankAccountIdEmptyText: `Identyfikator źródłowego konta bankowego nie może być pusty`,
+ branchCodeEmptyText: `Kod oddziału nie może być pusty`,
+ bankIdentifierEmptyText: `Identyfikator banku nie może być pusty`,
invalidCardHolderNameError: `Imię posiadacza karty nie może zawierać cyfr`,
invalidNickNameError: `Pseudonim nie może zawierać więcej niż 2 cyfry`,
expiry: `wygaśnięcie`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatyczny QR`,
+ payment_methods_pix_automatico_push: `Pix Automatyczny Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "z odsetkami",
installmentTotal: "Razem",
installmentSelectPlanError: "Proszę wybrać plan rat",
+ loaderPaymentProcessingTitle: "Przetwarzamy Twoją płatność...",
+ loaderPaymentProcessingSubtitle: `Zostałeś przekierowany na nową kartę, aby dokończyć płatność. Status zostanie automatycznie zaktualizowany`,
+ loaderPaymentConfirmBankingAppTitle: `Potwierdź płatność w swojej aplikacji bankowej`,
+ loaderPaymentConfirmBankingAppSubtitle: `Otwórz swoją aplikację bankową i autoryzuj żądanie płatności. Status zostanie automatycznie zaktualizowany po potwierdzeniu.`,
+ branchCodeLabel: `Kod oddziału`,
+ bankIdentifierLabel: "Identyfikator banku",
+ branchCodePlaceholder: `Wprowadź kod oddziału`,
+ bankIdentifierPlaceholder: `Wprowadź identyfikator banku`,
installmentSelectPlanPlaceholder: "Wybierz plan rat",
showMore: "Pokaż więcej",
showLess: "Pokaż mniej",
diff --git a/src/LocaleStrings/PortugueseLocale.res b/src/LocaleStrings/PortugueseLocale.res
index 19e5a8dd9..c805b1857 100644
--- a/src/LocaleStrings/PortugueseLocale.res
+++ b/src/LocaleStrings/PortugueseLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `A chave Pix não pode estar vazia`,
pixKeyPlaceholder: `Digite a chave Pix`,
pixKeyLabel: `Chave Pix`,
+ pixAccountNumberEmptyText: `O número da conta Pix não pode estar vazio`,
+ pixAccountNumberLabel: `Número da conta Pix`,
+ pixAccountNumberPlaceholder: `Insira o número da conta Pix`,
sourceBankAccountIdEmptyText: `O ID da conta bancária de origem não pode estar vazio`,
+ branchCodeEmptyText: `O código de agência não pode estar vazio`,
+ bankIdentifierEmptyText: `O identificador bancário não pode estar vazio`,
invalidCardHolderNameError: `O nome do titular do cartão não pode conter dígitos`,
invalidNickNameError: `O apelido não pode conter mais de 2 dígitos`,
expiry: `termo`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automático QR`,
+ payment_methods_pix_automatico_push: `Pix Automático Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "com juros",
installmentTotal: "Total",
installmentSelectPlanError: "Por favor, selecione um plano de parcelamento",
+ loaderPaymentProcessingTitle: "Estamos processando seu pagamento...",
+ loaderPaymentProcessingSubtitle: `Você foi redirecionado para uma nova aba para concluir seu pagamento. O status será atualizado automaticamente`,
+ loaderPaymentConfirmBankingAppTitle: "Por favor, confirme o pagamento no seu aplicativo bancário",
+ loaderPaymentConfirmBankingAppSubtitle: `Abra seu aplicativo bancário e autorize a solicitação de pagamento. O status será atualizado automaticamente após a confirmação.`,
+ branchCodeLabel: `Código da agência`,
+ bankIdentifierLabel: `Identificador bancário`,
+ branchCodePlaceholder: `Insira o código da agência`,
+ bankIdentifierPlaceholder: `Insira o identificador bancário`,
installmentSelectPlanPlaceholder: "Selecione um plano de parcelamento",
showMore: "Mostrar mais",
showLess: "Mostrar menos",
diff --git a/src/LocaleStrings/RussianLocale.res b/src/LocaleStrings/RussianLocale.res
index 483557b0f..235371be2 100644
--- a/src/LocaleStrings/RussianLocale.res
+++ b/src/LocaleStrings/RussianLocale.res
@@ -169,7 +169,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Ключ Pix не может быть пустым`,
pixKeyPlaceholder: `Введите ключ Pix`,
pixKeyLabel: `Ключ Pix`,
+ pixAccountNumberEmptyText: "Номер счета Pix не может быть пустым",
+ pixAccountNumberLabel: "Номер счета Pix",
+ pixAccountNumberPlaceholder: "Введите номер счета Pix",
sourceBankAccountIdEmptyText: `Идентификатор исходного банковского счета не может быть пустым`,
+ branchCodeEmptyText: `Код отделения не может быть пустым`,
+ bankIdentifierEmptyText: `Идентификатор банка не может быть пустым`,
invalidCardHolderNameError: `Имя владельца карты не может содержать цифры`,
invalidNickNameError: `Псевдоним не может содержать более 2 цифр`,
expiry: `истечение срока действия`,
@@ -236,6 +241,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Автоматический QR`,
+ payment_methods_pix_automatico_push: `Pix Автоматический Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -263,6 +270,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "с процентами",
installmentTotal: "Итого",
installmentSelectPlanError: "Пожалуйста, выберите план рассрочки",
+ loaderPaymentProcessingTitle: "Мы обрабатываем ваш платёж...",
+ loaderPaymentProcessingSubtitle: "Вы были перенаправлены на новую вкладку для завершения платежа. Статус обновится автоматически",
+ loaderPaymentConfirmBankingAppTitle: "Пожалуйста, подтвердите платёж в вашем банковском приложении",
+ loaderPaymentConfirmBankingAppSubtitle: "Откройте ваше банковское приложение и подтвердите запрос на оплату. Статус обновится автоматически после подтверждения.",
+ branchCodeLabel: "Код отделения",
+ bankIdentifierLabel: "Идентификатор банка",
+ branchCodePlaceholder: "Введите код отделения",
+ bankIdentifierPlaceholder: "Введите идентификатор банка",
installmentSelectPlanPlaceholder: "Выберите план рассрочки",
showMore: "Показать ещё",
showLess: "Показать меньше",
diff --git a/src/LocaleStrings/SpanishLocale.res b/src/LocaleStrings/SpanishLocale.res
index e53164efd..29f9bec48 100644
--- a/src/LocaleStrings/SpanishLocale.res
+++ b/src/LocaleStrings/SpanishLocale.res
@@ -161,7 +161,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `La clave Pix no puede estar vacía`,
pixKeyPlaceholder: `Introduce la clave Pix`,
pixKeyLabel: `Clave Pix`,
+ pixAccountNumberEmptyText: `El número de cuenta Pix no puede estar vacío`,
+ pixAccountNumberLabel: `Número de cuenta Pix`,
+ pixAccountNumberPlaceholder: `Ingrese el número de cuenta Pix`,
sourceBankAccountIdEmptyText: `El ID de la cuenta bancaria de origen no puede estar vacío`,
+ branchCodeEmptyText: `El código de sucursal no puede estar vacío`,
+ bankIdentifierEmptyText: `El identificador bancario no puede estar vacío`,
invalidCardHolderNameError: `El nombre del titular de la tarjeta no puede contener dígitos`,
invalidNickNameError: `El apodo no puede contener más de 2 dígitos`,
expiry: `expiración`,
@@ -228,6 +233,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Banca abierta`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automático QR`,
+ payment_methods_pix_automatico_push: `Pix Automático Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -255,6 +262,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "con intereses",
installmentTotal: "Total",
installmentSelectPlanError: "Por favor seleccione un plan de cuotas",
+ loaderPaymentProcessingTitle: "Estamos procesando su pago...",
+ loaderPaymentProcessingSubtitle: `Ha sido redirigido a una nueva pestaña para completar su pago. El estado se actualizará automáticamente`,
+ loaderPaymentConfirmBankingAppTitle: "Por favor confirme el pago en su aplicación bancaria",
+ loaderPaymentConfirmBankingAppSubtitle: `Abra su aplicación bancaria y autorice la solicitud de pago. El estado se actualizará automáticamente una vez confirmado.`,
+ branchCodeLabel: `Código de sucursal`,
+ bankIdentifierLabel: "Identificador bancario",
+ branchCodePlaceholder: `Ingrese el código de sucursal`,
+ bankIdentifierPlaceholder: "Ingrese el identificador bancario",
installmentSelectPlanPlaceholder: "Seleccione un plan de cuotas",
showMore: "Mostrar más",
showLess: "Mostrar menos",
diff --git a/src/LocaleStrings/SwedishLocale.res b/src/LocaleStrings/SwedishLocale.res
index bba9dad94..75f27ed3d 100644
--- a/src/LocaleStrings/SwedishLocale.res
+++ b/src/LocaleStrings/SwedishLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix-nyckel kan inte vara tom`,
pixKeyPlaceholder: `Ange Pix-nyckel`,
pixKeyLabel: `Pix-nyckel`,
+ pixAccountNumberEmptyText: `Pix-kontonummer får inte vara tomt`,
+ pixAccountNumberLabel: "Pix-kontonummer",
+ pixAccountNumberPlaceholder: "Ange Pix-kontonummer",
sourceBankAccountIdEmptyText: `Käll bankkonto-ID kan inte vara tomt`,
+ branchCodeEmptyText: `Bankfilialskod kan inte vara tom`,
+ bankIdentifierEmptyText: `Bankidentifierare kan inte vara tom`,
invalidCardHolderNameError: `Kortinnehavarens namn får inte innehålla siffror`,
invalidNickNameError: `Smeknamnet får inte innehålla mer än 2 siffror`,
expiry: `upphörande`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `Open Banking`,
payment_methods_evoucher: `E-Voucher`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix Automatisk QR`,
+ payment_methods_pix_automatico_push: `Pix Automatisk Push`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `Union Pay`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "med ränta",
installmentTotal: "Totalt",
installmentSelectPlanError: "Välj ett avbetalningsplan",
+ loaderPaymentProcessingTitle: "Vi behandlar din betalning...",
+ loaderPaymentProcessingSubtitle: `Du har omdirigerats till en ny flik för att slutföra din betalning. Statusen uppdateras automatiskt`,
+ loaderPaymentConfirmBankingAppTitle: `Bekräfta betalningen i din bankapp`,
+ loaderPaymentConfirmBankingAppSubtitle: `Öppna din bankapplikation och godkänn betalningsförfrågan. Statusen uppdateras automatiskt när den har bekräftats.`,
+ branchCodeLabel: "Kontorskod",
+ bankIdentifierLabel: "Bankidentifierare",
+ branchCodePlaceholder: "Ange filialkod",
+ bankIdentifierPlaceholder: "Ange bankidentifierare",
installmentSelectPlanPlaceholder: "Välj ett avbetalningsplan",
showMore: "Visa mer",
showLess: "Visa mindre",
diff --git a/src/LocaleStrings/TraditionalChineseLocale.res b/src/LocaleStrings/TraditionalChineseLocale.res
index 0b346d6b3..e39a67781 100644
--- a/src/LocaleStrings/TraditionalChineseLocale.res
+++ b/src/LocaleStrings/TraditionalChineseLocale.res
@@ -160,7 +160,12 @@ let localeStrings: LocaleStringTypes.localeStrings = {
pixKeyEmptyText: `Pix 金鑰不能為空`,
pixKeyPlaceholder: `輸入 Pix 金鑰`,
pixKeyLabel: `Pix 金鑰`,
+ pixAccountNumberEmptyText: "Pix帳戶號碼不能為空",
+ pixAccountNumberLabel: "Pix帳戶號碼",
+ pixAccountNumberPlaceholder: "輸入Pix帳戶號碼",
sourceBankAccountIdEmptyText: `來源銀行帳戶ID不能為空`,
+ branchCodeEmptyText: `分行代碼不能為空`,
+ bankIdentifierEmptyText: `銀行識別碼不能為空`,
invalidCardHolderNameError: `持卡人姓名不能包含數字`,
invalidNickNameError: `暱稱不能包含超過兩個數字`,
expiry: `到期`,
@@ -227,6 +232,8 @@ let localeStrings: LocaleStringTypes.localeStrings = {
payment_methods_open_banking_pis: `開放銀行`,
payment_methods_evoucher: `電子禮券`,
payment_methods_pix_transfer: `Pix`,
+ payment_methods_pix_automatico_qr: `Pix 自動 QR`,
+ payment_methods_pix_automatico_push: `Pix 自動推送`,
payment_methods_boleto: `Boleto`,
payment_methods_paypal: `Paypal`,
payment_methods_local_bank_transfer_transfer: `銀聯`,
@@ -254,6 +261,14 @@ let localeStrings: LocaleStringTypes.localeStrings = {
installmentWithInterest: "有利息",
installmentTotal: "合計",
installmentSelectPlanError: "請選擇分期計劃",
+ loaderPaymentProcessingTitle: "我們正在處理您的付款...",
+ loaderPaymentProcessingSubtitle: "您已被重新導向到新分頁以完成付款。狀態將自動更新",
+ loaderPaymentConfirmBankingAppTitle: "請在您的銀行應用程式中確認付款",
+ loaderPaymentConfirmBankingAppSubtitle: "開啟您的銀行應用程式並授權付款請求。確認後狀態將自動更新。",
+ branchCodeLabel: "分行代碼",
+ bankIdentifierLabel: "銀行識別碼",
+ branchCodePlaceholder: "輸入分行代碼",
+ bankIdentifierPlaceholder: "輸入銀行識別碼",
installmentSelectPlanPlaceholder: "選擇分期計劃",
showMore: "顯示更多",
showLess: "收起",
diff --git a/src/Payments/PaymentMethodsRecord.res b/src/Payments/PaymentMethodsRecord.res
index cf5510f13..0bb7f5e01 100644
--- a/src/Payments/PaymentMethodsRecord.res
+++ b/src/Payments/PaymentMethodsRecord.res
@@ -68,6 +68,9 @@ type paymentMethodsFields =
| BankAccountNumber
| IBAN
| SourceBankAccountId
+ | BranchCode
+ | BankIdentifier
+ | PixAccountNumber
| GiftCardNumber
| GiftCardPin
@@ -593,6 +596,13 @@ let getPaymentMethodsFields = (~localeString: LocaleStringTypes.localeStrings) =
fields: [InfoElement],
miniIcon: Some(icon("cash_voucher", ~size=19)),
},
+ {
+ paymentMethodName: "pix_automatico_push_transfer",
+ fields: [InfoElement],
+ icon: Some(icon("pix", ~size=26, ~width=40)),
+ displayName: localeString.payment_methods_pix_automatico_push,
+ miniIcon: None,
+ },
{
paymentMethodName: "pix_transfer",
fields: [InfoElement],
@@ -600,6 +610,13 @@ let getPaymentMethodsFields = (~localeString: LocaleStringTypes.localeStrings) =
displayName: localeString.payment_methods_pix_transfer,
miniIcon: None,
},
+ {
+ paymentMethodName: "pix_automatico_qr_transfer",
+ fields: [InfoElement],
+ icon: Some(icon("pix", ~size=26, ~width=40)),
+ displayName: localeString.payment_methods_pix_automatico_qr,
+ miniIcon: None,
+ },
{
paymentMethodName: "boleto",
icon: Some(icon("boleto", ~size=21, ~width=25)),
@@ -726,9 +743,12 @@ let getPaymentMethodsFieldTypeFromString = (str, isBancontact) => {
| ("user_cpf", _) => PixCPF
| ("user_cnpj", _) => PixCNPJ
| ("user_pix_key", _) => PixKey
+ | ("user_pix_account_number", _) => PixAccountNumber
| ("user_bank_account_number", _) => BankAccountNumber
| ("user_iban", _) => BankAccountNumber
| ("user_source_bank_account_id", _) => SourceBankAccountId
+ | ("user_branch_code", _) => BranchCode
+ | ("user_bank_identifier", _) => BankIdentifier
| ("user_social_security_number", _) => DocumentNumber
| _ => None
}
diff --git a/src/Types/HyperLoggerTypes.res b/src/Types/HyperLoggerTypes.res
index 18020f94a..2e0d79a17 100644
--- a/src/Types/HyperLoggerTypes.res
+++ b/src/Types/HyperLoggerTypes.res
@@ -61,6 +61,7 @@ type eventName =
| REDIRECTING_USER
| DISPLAY_BANK_TRANSFER_INFO_PAGE
| DISPLAY_QR_CODE_INFO_PAGE
+ | DISPLAY_WAIT_SCREEN
| DISPLAY_VOUCHER
| DISPLAY_THREE_DS_SDK
| THREE_DS_METHOD
diff --git a/src/Types/PaymentConfirmTypes.res b/src/Types/PaymentConfirmTypes.res
index 0fa37776c..b1bbea77c 100644
--- a/src/Types/PaymentConfirmTypes.res
+++ b/src/Types/PaymentConfirmTypes.res
@@ -33,6 +33,11 @@ type voucherDetails = {
reference: string,
}
+type pollConfig = {
+ delay_in_secs: int,
+ frequency: int,
+}
+
type nextAction = {
redirectToUrl: string,
popupUrl: string,
@@ -49,6 +54,7 @@ type nextAction = {
display_text: option
,
border_color: option,
iframe_data: option,
+ poll_config: option,
}
type intent = {
nextAction: nextAction,
@@ -66,6 +72,11 @@ let defaultRedirectTourl = {
returnUrl: "",
url: "",
}
+let defaultPollConfig = {
+ delay_in_secs: 2,
+ frequency: 0,
+}
+
let defaultNextAction = {
redirectToUrl: "",
popupUrl: "",
@@ -82,6 +93,7 @@ let defaultNextAction = {
display_text: None,
border_color: None,
iframe_data: None,
+ poll_config: None,
}
let defaultIntent = {
nextAction: defaultNextAction,
@@ -139,6 +151,13 @@ let getVoucherDetails = json => {
}
}
+let getPollConfig = json => {
+ {
+ delay_in_secs: json->getInt("delay_in_secs", 2),
+ frequency: json->getInt("frequency", 0),
+ }
+}
+
let getNextAction = (dict, str) => {
dict
->Dict.get(str)
@@ -166,12 +185,9 @@ let getNextAction = (dict, str) => {
->Dict.get("three_ds_data")
->Option.getOr(Dict.make()->JSON.Encode.object),
),
- display_to_timestamp: Some(
- json
- ->Dict.get("display_to_timestamp")
- ->Option.flatMap(JSON.Decode.float)
- ->Option.getOr(0.0),
- ),
+ display_to_timestamp: json
+ ->Dict.get("display_to_timestamp")
+ ->Option.flatMap(JSON.Decode.float),
voucher_details: {
json
->Dict.get("voucher_details")
@@ -182,6 +198,12 @@ let getNextAction = (dict, str) => {
display_text: json->getOptionString("display_text"),
border_color: json->getOptionString("border_color"),
iframe_data: Some(json->Utils.getJsonObjectFromDict("iframe_data")),
+ poll_config: {
+ json
+ ->Dict.get("poll_config")
+ ->Option.flatMap(JSON.Decode.object)
+ ->Option.map(json => json->getPollConfig)
+ },
}
})
->Option.getOr(defaultNextAction)
diff --git a/src/Utilities/DynamicFieldsUtils.res b/src/Utilities/DynamicFieldsUtils.res
index ab309e69e..92289b4fe 100644
--- a/src/Utilities/DynamicFieldsUtils.res
+++ b/src/Utilities/DynamicFieldsUtils.res
@@ -13,6 +13,8 @@ let dynamicFieldsEnabledPaymentMethods = [
"ideal",
"sofort",
"pix_transfer",
+ "pix_automatico_push_transfer",
+ "pix_automatico_qr_transfer",
"giropay",
"local_bank_transfer_transfer",
"afterpay_clearpay",
@@ -200,6 +202,7 @@ let useRequiredFieldsEmptyAndValid = (
let pixCNPJ = Recoil.useRecoilValueFromAtom(userPixCNPJ)
let pixCPF = Recoil.useRecoilValueFromAtom(userPixCPF)
let pixKey = Recoil.useRecoilValueFromAtom(userPixKey)
+ let pixAccountNumber = Recoil.useRecoilValueFromAtom(userPixAccountNumber)
let fullName = Recoil.useRecoilValueFromAtom(userFullName)
let billingName = Recoil.useRecoilValueFromAtom(userBillingName)
let line1 = Recoil.useRecoilValueFromAtom(userAddressline1)
@@ -224,6 +227,8 @@ let useRequiredFieldsEmptyAndValid = (
let dateOfBirth = Recoil.useRecoilValueFromAtom(dateOfBirth)
let bankAccountNumber = Recoil.useRecoilValueFromAtom(userBankAccountNumber)
let sourceBankAccountId = Recoil.useRecoilValueFromAtom(sourceBankAccountId)
+ let branchCode = Recoil.useRecoilValueFromAtom(userBranchCode)
+ let bankIdentifier = Recoil.useRecoilValueFromAtom(userBankIdentifier)
let giftCardNumber = Recoil.useRecoilValueFromAtom(userGiftCardNumber)
let giftCardPin = Recoil.useRecoilValueFromAtom(userGiftCardPin)
@@ -272,12 +277,15 @@ let useRequiredFieldsEmptyAndValid = (
| PixCNPJ => pixCNPJ.isValid->Option.getOr(false)
| PixCPF => pixCPF.isValid->Option.getOr(false)
| PixKey => pixKey.isValid->Option.getOr(false)
+ | PixAccountNumber => pixAccountNumber.isValid->Option.getOr(false)
| BankAccountNumber
| IBAN =>
bankAccountNumber.value !== ""
| GiftCardNumber => giftCardNumber.value !== ""
| GiftCardPin => giftCardPin.value !== ""
| SourceBankAccountId => sourceBankAccountId.value !== ""
+ | BranchCode => branchCode.value !== ""
+ | BankIdentifier => bankIdentifier.value !== ""
| _ => true
}
})
@@ -309,6 +317,7 @@ let useRequiredFieldsEmptyAndValid = (
| PixCNPJ => pixCNPJ.value === ""
| PixCPF => pixCPF.value === ""
| PixKey => pixKey.value === ""
+ | PixAccountNumber => pixAccountNumber.value === ""
| CryptoCurrencyNetworks => cryptoCurrencyNetworks === ""
| Currency(currencyArr) => currency === "" && currencyArr->Array.length > 0
| DocumentType(optArr) => documentType === "" && optArr->Array.length > 0
@@ -334,6 +343,8 @@ let useRequiredFieldsEmptyAndValid = (
| GiftCardNumber => giftCardNumber.value === ""
| GiftCardPin => giftCardPin.value === ""
| SourceBankAccountId => sourceBankAccountId.value === ""
+ | BranchCode => branchCode.value === ""
+ | BankIdentifier => bankIdentifier.value === ""
| _ => false
}
})
@@ -359,6 +370,7 @@ let useRequiredFieldsEmptyAndValid = (
pixCNPJ.value,
pixKey.value,
pixCPF.value,
+ pixAccountNumber.value,
giftCardPin.value,
giftCardNumber.value,
isCardValid,
@@ -369,6 +381,8 @@ let useRequiredFieldsEmptyAndValid = (
cvcNumber,
bankAccountNumber,
sourceBankAccountId.value,
+ branchCode.value,
+ bankIdentifier.value,
cryptoCurrencyNetworks,
documentType,
documentNumber.value,
@@ -403,6 +417,7 @@ let useSetInitialRequiredFields = (
let (pixCNPJ, setPixCNPJ) = Recoil.useRecoilState(userPixCNPJ)
let (pixCPF, setPixCPF) = Recoil.useRecoilState(userPixCPF)
let (pixKey, setPixKey) = Recoil.useRecoilState(userPixKey)
+ let (pixAccountNumber, setPixAccountNumber) = Recoil.useRecoilState(userPixAccountNumber)
let (country, setCountry) = Recoil.useRecoilState(userCountry)
let (selectedBank, setSelectedBank) = Recoil.useRecoilState(userBank)
@@ -415,6 +430,8 @@ let useSetInitialRequiredFields = (
let (dateOfBirth, setDateOfBirth) = Recoil.useRecoilState(dateOfBirth)
let (bankAccountNumber, setBankAccountNumber) = Recoil.useRecoilState(userBankAccountNumber)
let (sourceBankAccountId, setSourceBankAccountId) = Recoil.useRecoilState(sourceBankAccountId)
+ let (branchCode, setBranchCode) = Recoil.useRecoilState(userBranchCode)
+ let (bankIdentifier, setBankIdentifier) = Recoil.useRecoilState(userBankIdentifier)
let (giftCardNumber, setGiftCardNumber) = Recoil.useRecoilState(userGiftCardNumber)
let (giftCardPin, setGiftCardPin) = Recoil.useRecoilState(userGiftCardPin)
@@ -513,6 +530,7 @@ let useSetInitialRequiredFields = (
| PixKey => setFields(setPixKey, pixKey, requiredField, false)
| PixCNPJ => setFields(setPixCNPJ, pixCNPJ, requiredField, false)
| PixCPF => setFields(setPixCPF, pixCPF, requiredField, false)
+ | PixAccountNumber => setFields(setPixAccountNumber, pixAccountNumber, requiredField, false)
| BillingName => setFields(setBillingName, billingName, requiredField, true)
| Country
| AddressCountry(_) =>
@@ -549,6 +567,8 @@ let useSetInitialRequiredFields = (
setFields(setBankAccountNumber, bankAccountNumber, requiredField, false)
| SourceBankAccountId =>
setFields(setSourceBankAccountId, sourceBankAccountId, requiredField, false)
+ | BranchCode => setFields(setBranchCode, branchCode, requiredField, false)
+ | BankIdentifier => setFields(setBankIdentifier, bankIdentifier, requiredField, false)
| DocumentType(_) =>
if value !== "" && documentType === "" {
setDocumentType(_ => value)
@@ -595,6 +615,7 @@ let useRequiredFieldsBody = (
let pixCNPJ = Recoil.useRecoilValueFromAtom(userPixCNPJ)
let pixCPF = Recoil.useRecoilValueFromAtom(userPixCPF)
let pixKey = Recoil.useRecoilValueFromAtom(userPixKey)
+ let pixAccountNumber = Recoil.useRecoilValueFromAtom(userPixAccountNumber)
let fullName = Recoil.useRecoilValueFromAtom(userFullName)
let billingName = Recoil.useRecoilValueFromAtom(userBillingName)
let line1 = Recoil.useRecoilValueFromAtom(userAddressline1)
@@ -614,6 +635,8 @@ let useRequiredFieldsBody = (
let dateOfBirth = Recoil.useRecoilValueFromAtom(dateOfBirth)
let bankAccountNumber = Recoil.useRecoilValueFromAtom(userBankAccountNumber)
let sourceBankAccountId = Recoil.useRecoilValueFromAtom(sourceBankAccountId)
+ let branchCode = Recoil.useRecoilValueFromAtom(userBranchCode)
+ let bankIdentifier = Recoil.useRecoilValueFromAtom(userBankIdentifier)
let countryCode = Utils.getCountryCode(country).isoAlpha2
let stateCode = Utils.getStateCodeFromStateName(state.value, countryCode)
let giftCardNumber = Recoil.useRecoilValueFromAtom(userGiftCardNumber)
@@ -675,10 +698,13 @@ let useRequiredFieldsBody = (
| PixCNPJ => pixCNPJ.value
| PixCPF => pixCPF.value
| PixKey => pixKey.value
+ | PixAccountNumber => pixAccountNumber.value
| IBAN
| BankAccountNumber =>
bankAccountNumber.value
| SourceBankAccountId => sourceBankAccountId.value
+ | BranchCode => branchCode.value
+ | BankIdentifier => bankIdentifier.value
| StateAndCity
| PhoneNumberAndCountryCode
| CountryAndPincode(_)
@@ -766,6 +792,7 @@ let useRequiredFieldsBody = (
pixCNPJ.value,
pixCPF.value,
pixKey.value,
+ pixAccountNumber.value,
documentType,
documentNumber.value,
city.value,
@@ -787,6 +814,8 @@ let useRequiredFieldsBody = (
dateOfBirth,
bankAccountNumber,
sourceBankAccountId,
+ branchCode,
+ bankIdentifier,
))
}
@@ -805,6 +834,7 @@ let isFieldTypeToRenderOutsideBilling = (fieldType: PaymentMethodsRecord.payment
| PixKey
| PixCPF
| PixCNPJ
+ | PixAccountNumber
| DateOfBirth
| Currency(_)
| DocumentType(_)
@@ -813,6 +843,8 @@ let isFieldTypeToRenderOutsideBilling = (fieldType: PaymentMethodsRecord.payment
| IBAN
| SourceBankAccountId
| BankAccountNumber
+ | BranchCode
+ | BankIdentifier
| InfoElement => true
| _ => false
}
diff --git a/src/Utilities/LoggerUtils.res b/src/Utilities/LoggerUtils.res
index c4ad63663..33a3f52eb 100644
--- a/src/Utilities/LoggerUtils.res
+++ b/src/Utilities/LoggerUtils.res
@@ -305,6 +305,7 @@ let apiEventInitMapper = (eventName: HyperLoggerTypes.eventName): option<
| REDIRECTING_USER
| DISPLAY_BANK_TRANSFER_INFO_PAGE
| DISPLAY_QR_CODE_INFO_PAGE
+ | DISPLAY_WAIT_SCREEN
| DISPLAY_VOUCHER
| DISPLAY_THREE_DS_SDK
| THREE_DS_METHOD
diff --git a/src/Utilities/PaymentHelpers.res b/src/Utilities/PaymentHelpers.res
index 4806893c8..b2f4c4d65 100644
--- a/src/Utilities/PaymentHelpers.res
+++ b/src/Utilities/PaymentHelpers.res
@@ -183,42 +183,20 @@ let rec pollRetrievePaymentIntent = (
~customPodUri,
~isForceSync=false,
~sdkAuthorization=None,
+ ~delayInMs=2000,
+ ~endTimestampNanos=None,
) => {
open Promise
- retrievePaymentIntent(
- clientSecret,
- ~headers,
- ~publishableKey,
- ~logger,
- ~customPodUri,
- ~isForceSync,
- ~sdkAuthorization,
- )
- ->then(json => {
- let dict = json->getDictFromJson
- let status = dict->getString("status", "")
- if status === "succeeded" || status === "failed" {
- resolve(json)
- } else {
- delay(2000)
- ->then(_val => {
- pollRetrievePaymentIntent(
- clientSecret,
- ~headers,
- ~publishableKey,
- ~logger,
- ~customPodUri,
- ~isForceSync,
- ~sdkAuthorization,
- )
- })
- ->catch(_ => Promise.resolve(JSON.Encode.null))
- }
- })
- ->catch(e => {
- Console.error2("Unable to retrieve payment due to following error", e)
- pollRetrievePaymentIntent(
+ let isExpired = switch endTimestampNanos {
+ | Some(timestamp) =>
+ let currentTime = Date.now() *. 1000000.0 // convert to nanoseconds
+ currentTime >= timestamp
+ | None => false
+ }
+
+ if isExpired {
+ retrievePaymentIntent(
clientSecret,
~headers,
~publishableKey,
@@ -227,7 +205,57 @@ let rec pollRetrievePaymentIntent = (
~isForceSync,
~sdkAuthorization,
)
- })
+ ->then(json => resolve(json))
+ ->catch(_ => resolve(JSON.Encode.null))
+ } else {
+ retrievePaymentIntent(
+ clientSecret,
+ ~headers,
+ ~publishableKey,
+ ~logger,
+ ~customPodUri,
+ ~isForceSync,
+ ~sdkAuthorization,
+ )
+ ->then(json => {
+ let dict = json->getDictFromJson
+ let status = dict->getString("status", "")
+
+ if status === "succeeded" || status === "failed" {
+ resolve(json)
+ } else {
+ delay(delayInMs)
+ ->then(_val => {
+ pollRetrievePaymentIntent(
+ clientSecret,
+ ~headers,
+ ~publishableKey,
+ ~logger,
+ ~customPodUri,
+ ~isForceSync,
+ ~sdkAuthorization,
+ ~delayInMs,
+ ~endTimestampNanos,
+ )
+ })
+ ->catch(_ => Promise.resolve(JSON.Encode.null))
+ }
+ })
+ ->catch(e => {
+ Console.error2("Unable to retrieve payment due to following error", e)
+ pollRetrievePaymentIntent(
+ clientSecret,
+ ~headers,
+ ~publishableKey,
+ ~logger,
+ ~customPodUri,
+ ~isForceSync,
+ ~sdkAuthorization,
+ ~delayInMs,
+ ~endTimestampNanos,
+ )
+ })
+ }
}
let retrieveStatus = async (~publishableKey, ~customPodUri, pollID, logger, ~sdkAuthorization) => {
@@ -838,6 +866,57 @@ let rec intentCall = (
("nextActionData", nextActionData),
]->getJsonFromArrayOfJson
resolve(response)
+ } else if intent.nextAction.type_ === "wait_screen_information" {
+ let displayToTimestamp = switch intent.nextAction.display_to_timestamp {
+ | Some(timestamp) => Some(timestamp)
+ | None =>
+ let fifteenMinsNanos = Date.now() *. 1000000.0 +. 15.0 *. 60.0 *. 1000000000.0
+ Some(fifteenMinsNanos)
+ }
+ let pollConfig =
+ intent.nextAction.poll_config->Option.getOr(PaymentConfirmTypes.defaultPollConfig)
+ let headersDict = headers->Dict.fromArray
+
+ handleLogging(~optLogger, ~value="", ~eventName=DISPLAY_WAIT_SCREEN, ~paymentMethod)
+
+ if !isPaymentSession {
+ let metaData =
+ [("paymentMethod", paymentMethod->JSON.Encode.string)]->getJsonFromArrayOfJson
+ messageParentWindow([
+ ("fullscreen", true->JSON.Encode.bool),
+ ("param", `paymentloader`->JSON.Encode.string),
+ ("iframeId", iframeId->JSON.Encode.string),
+ ("metadata", metaData),
+ ])
+
+ pollRetrievePaymentIntent(
+ clientSecret,
+ ~headers=headersDict,
+ ~publishableKey=confirmParam.publishableKey,
+ ~logger=optLogger->Option.getOr(LoggerUtils.defaultLoggerConfig),
+ ~customPodUri,
+ ~sdkAuthorization,
+ ~delayInMs=pollConfig.delay_in_secs * 1000,
+ ~endTimestampNanos=displayToTimestamp,
+ )
+ ->Promise.then(
+ retrievedData => {
+ closePaymentLoaderIfAny()
+ postSubmitResponse(~jsonData=retrievedData, ~url=url.href)
+ Promise.resolve()
+ },
+ )
+ ->Promise.catch(
+ _ => {
+ closePaymentLoaderIfAny()
+ postSubmitResponse(~jsonData=data, ~url=url.href)
+ Promise.resolve()
+ },
+ )
+ ->ignore
+ } else {
+ resolve(data)
+ }
} else {
if !isPaymentSession {
postFailedSubmitResponse(
diff --git a/src/Utilities/RecoilAtoms.res b/src/Utilities/RecoilAtoms.res
index cca5759bb..b19e85e49 100644
--- a/src/Utilities/RecoilAtoms.res
+++ b/src/Utilities/RecoilAtoms.res
@@ -74,12 +74,15 @@ let userVpaId = Recoil.atom("userVpaId", defaultFieldValues)
let userPixKey = Recoil.atom("userPixKey", defaultFieldValues)
let userPixCPF = Recoil.atom("userPixCPF", defaultFieldValues)
let userPixCNPJ = Recoil.atom("userPixCNPJ", defaultFieldValues)
+let userPixAccountNumber = Recoil.atom("userPixAccountNumber", defaultFieldValues)
let userDocumentType = Recoil.atom("userDocumentType", "")
let userDocumentNumber = Recoil.atom("userDocumentNumber", defaultFieldValues)
let isCompleteCallbackUsed = Recoil.atom("isCompleteCallbackUsed", false)
let isPaymentButtonHandlerProvidedAtom = Recoil.atom("isPaymentButtonHandlerProvidedAtom", false)
let userBankAccountNumber = Recoil.atom("userBankAccountNumber", defaultFieldValues)
let sourceBankAccountId = Recoil.atom("sourceBankAccountId", defaultFieldValues)
+let userBranchCode = Recoil.atom("userBranchCode", defaultFieldValues)
+let userBankIdentifier = Recoil.atom("userBankIdentifier", defaultFieldValues)
type areOneClickWalletsRendered = {
isGooglePay: bool,
diff --git a/src/hyper-loader/Elements.res b/src/hyper-loader/Elements.res
index 1403de678..0645e7a19 100644
--- a/src/hyper-loader/Elements.res
+++ b/src/hyper-loader/Elements.res
@@ -1419,6 +1419,7 @@ let make = (
setIframeRefForComponent,
iframeRef,
mountPostMessage,
+ ~locale=locale->Utils.getStringFromJson("auto"),
~redirectionFlags: RecoilAtomTypes.redirectionFlags,
~logger=Some(logger),
)
diff --git a/src/hyper-loader/LoaderPaymentElement.res b/src/hyper-loader/LoaderPaymentElement.res
index d1566d5bc..86541a615 100644
--- a/src/hyper-loader/LoaderPaymentElement.res
+++ b/src/hyper-loader/LoaderPaymentElement.res
@@ -14,12 +14,18 @@ let make = (
setIframeRef,
iframeRef,
mountPostMessage,
+ ~locale,
~isPaymentManagementElement=false,
~redirectionFlags: RecoilAtomTypes.redirectionFlags,
~logger: option,
) => {
try {
let logger = logger->Option.getOr(LoggerUtils.defaultLoggerConfig)
+ let updatedOptions = {
+ let dict = options->Utils.getDictFromJson->Dict.copy
+ dict->Dict.set("locale", locale->JSON.Encode.string)
+ dict->JSON.Encode.object
+ }
let mountId = ref("")
let setPaymentIframeRef = ref => {
setIframeRef(ref)
@@ -335,7 +341,7 @@ let make = (
[
("fullScreenIframeMounted", true->JSON.Encode.bool),
("metadata", fullscreenMetadata.contents),
- ("options", options),
+ ("options", updatedOptions),
]->Dict.fromArray,
)
}
@@ -344,7 +350,7 @@ let make = (
[
("fullScreenIframeMounted", true->JSON.Encode.bool),
("metadata", fullscreenMetadata.contents),
- ("options", options),
+ ("options", updatedOptions),
]->Dict.fromArray,
)
let fullScreenEle = Window.querySelector(`#orca-fullscreen`)
@@ -366,7 +372,7 @@ let make = (
mainElement->Window.iframePostMessage(
[
("fullScreenIframeMounted", false->JSON.Encode.bool),
- ("options", options),
+ ("options", updatedOptions),
]->Dict.fromArray,
)
}
diff --git a/src/hyper-loader/PaymentMethodsManagementElements.res b/src/hyper-loader/PaymentMethodsManagementElements.res
index 540617b7b..50de2c2ed 100644
--- a/src/hyper-loader/PaymentMethodsManagementElements.res
+++ b/src/hyper-loader/PaymentMethodsManagementElements.res
@@ -238,6 +238,7 @@ let make = (
setElementIframeRef,
iframeRef,
mountPostMessage,
+ ~locale=locale->Utils.getStringFromJson("auto"),
~isPaymentManagementElement=true,
~redirectionFlags=RecoilAtoms.defaultRedirectionFlags,
~logger=Some(logger),
diff --git a/src/hyper-log-catcher/HyperLogger.res b/src/hyper-log-catcher/HyperLogger.res
index 4c0cfa3c0..393d2d4a3 100644
--- a/src/hyper-log-catcher/HyperLogger.res
+++ b/src/hyper-log-catcher/HyperLogger.res
@@ -221,6 +221,7 @@ let make = (~sessionId=?, ~source: source, ~clientSecret=?, ~merchantId=?, ~meta
REDIRECTING_USER,
DISPLAY_BANK_TRANSFER_INFO_PAGE,
DISPLAY_QR_CODE_INFO_PAGE,
+ DISPLAY_WAIT_SCREEN,
DISPLAY_VOUCHER,
LOADER_CHANGED,
PAYMENT_METHODS_CALL,