diff --git a/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java b/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java index 20ce4eb..1fa808c 100644 --- a/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java +++ b/src/main/java/org/killbill/billing/plugin/stripe/StripePaymentPluginApi.java @@ -883,6 +883,10 @@ public PaymentIntent execute(final Account account, final StripePaymentMethodsRe // See https://groups.google.com/forum/?#!msg/killbilling-users/li3RNs-YmIA/oaUrBElMFQAJ paymentMethodTypesBuilder.add("ach_debit"); } + if (transactionType == TransactionType.PURCHASE && currency == Currency.CAD) { + // See https://groups.google.com/g/killbilling-users/c/7nlIxYZd828/m/r82Tbnl7AAAJ + paymentMethodTypesBuilder.add("acss_debit"); + } paymentIntentParams.put("payment_method_types", paymentMethodTypesBuilder.build()); final StripeConfigProperties stripeConfigProperties = stripeConfigPropertiesConfigurationHandler.getConfigurable(context.getTenantId()); diff --git a/src/main/java/org/killbill/billing/plugin/stripe/StripePluginProperties.java b/src/main/java/org/killbill/billing/plugin/stripe/StripePluginProperties.java index 59cc017..2e0b37e 100644 --- a/src/main/java/org/killbill/billing/plugin/stripe/StripePluginProperties.java +++ b/src/main/java/org/killbill/billing/plugin/stripe/StripePluginProperties.java @@ -101,6 +101,19 @@ public static Map toAdditionalDataMap(final PaymentSource stripe additionalDataMap.put("sepa_debit_mandate_reference", sepaDebit.getMandateReference()); additionalDataMap.put("sepa_debit_mandate_url", sepaDebit.getMandateUrl()); } + final Source.AcssDebit acssDebit = stripeSource.getAcssDebit(); + if (acssDebit != null) { + additionalDataMap.put("acss_debit_bank_address_city", acssDebit.getBankAddressCity()); + additionalDataMap.put("acss_debit_bank_address_line_1", acssDebit.getBankAddressLine1()); + additionalDataMap.put("acss_debit_bank_address_line_2", acssDebit.getBankAddressLine2()); + additionalDataMap.put("acss_debit_bank_address_postal_code", acssDebit.getBankAddressPostalCode()); + additionalDataMap.put("acss_debit_bank_name", acssDebit.getBankName()); + additionalDataMap.put("acss_debit_category", acssDebit.getCategory()); + additionalDataMap.put("acss_debit_country", acssDebit.getCountry()); + additionalDataMap.put("acss_debit_fingerprint", acssDebit.getFingerprint()); + additionalDataMap.put("acss_debit_last4", acssDebit.getLast4()); + additionalDataMap.put("acss_debit_routing_number", acssDebit.getRoutingNumber()); + } additionalDataMap.put("created", stripeSource.getCreated()); additionalDataMap.put("customer_id", stripeSource.getCustomer()); additionalDataMap.put("id", stripeSource.getId());