diff --git a/payment/src/main/java/org/killbill/billing/payment/core/DirectPaymentProcessor.java b/payment/src/main/java/org/killbill/billing/payment/core/DirectPaymentProcessor.java
index 150d7d8..615cbff 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/DirectPaymentProcessor.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/DirectPaymentProcessor.java
@@ -381,7 +381,8 @@ public class DirectPaymentProcessor extends ProcessorBase {
final DirectPaymentModelDao paymentModelDao;
final DirectPaymentTransactionModelDao paymentTransactionModelDao;
if (directPaymentId == null) {
- final DirectPaymentModelDao pmd = new DirectPaymentModelDao(utcNow, utcNow, account.getId(), account.getPaymentMethodId(), externalKey);
+ final UUID paymentMethodId = getDefaultPaymentMethodId(account);
+ final DirectPaymentModelDao pmd = new DirectPaymentModelDao(utcNow, utcNow, account.getId(), paymentMethodId, externalKey);
final DirectPaymentTransactionModelDao ptmd = new DirectPaymentTransactionModelDao(utcNow, utcNow, pmd.getId(),
transactionType, utcNow, PaymentStatus.UNKNOWN,
amount, currency, null, null);
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/ProcessorBase.java b/payment/src/main/java/org/killbill/billing/payment/core/ProcessorBase.java
index 978cc3d..2de5da9 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/ProcessorBase.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/ProcessorBase.java
@@ -138,11 +138,16 @@ public abstract class ProcessorBase {
}
protected PaymentPluginApi getPaymentProviderPlugin(final Account account, final InternalTenantContext context) throws PaymentApiException {
+ final UUID paymentMethodId = getDefaultPaymentMethodId(account);
+ return getPaymentProviderPlugin(paymentMethodId, context);
+ }
+
+ protected UUID getDefaultPaymentMethodId(final Account account) throws PaymentApiException {
final UUID paymentMethodId = account.getPaymentMethodId();
if (paymentMethodId == null) {
throw new PaymentApiException(ErrorCode.PAYMENT_NO_DEFAULT_PAYMENT_METHOD, account.getId());
}
- return getPaymentProviderPlugin(paymentMethodId, context);
+ return paymentMethodId;
}
protected void postPaymentEvent(final BusInternalEvent ev, final UUID accountId, final InternalCallContext context) {