diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
index 1c5d83b..baa1e58 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentApi.java
@@ -240,4 +240,16 @@ public interface PaymentApi {
public List<PaymentMethod> refreshPaymentMethods(String pluginName, Account account, CallContext context)
throws PaymentApiException;
+ /**
+ * Refresh all payment methods across all plugins
+ * <p/>
+ * This call is not atomic.
+ *
+ * @param account the account
+ * @param context the call context
+ * @return the list of payment methods for that account
+ * @throws PaymentApiException
+ */
+ public List<PaymentMethod> refreshPaymentMethods(Account account, CallContext context)
+ throws PaymentApiException;
}
diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index 346061b..394c848 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -18,6 +18,7 @@ package com.ning.billing.payment.api;
import java.math.BigDecimal;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -188,4 +189,17 @@ public class DefaultPaymentApi implements PaymentApi {
throws PaymentApiException {
return methodProcessor.refreshPaymentMethods(pluginName, account, internalCallContextFactory.createInternalCallContext(account.getId(), context));
}
+
+ @Override
+ public List<PaymentMethod> refreshPaymentMethods(final Account account, final CallContext context)
+ throws PaymentApiException {
+ final InternalCallContext callContext = internalCallContextFactory.createInternalCallContext(account.getId(), context);
+
+ final List<PaymentMethod> paymentMethods = new LinkedList<PaymentMethod>();
+ for (final String pluginName : methodProcessor.getAvailablePlugins()) {
+ paymentMethods.addAll(methodProcessor.refreshPaymentMethods(pluginName, account, callContext));
+ }
+
+ return paymentMethods;
+ }
}