killbill-aplcache

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
index f577d7f..42b942f 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
@@ -549,8 +549,10 @@ public class PaymentResource extends JaxRsResourceBase {
         }
 
         if (accountJson.getExternalKey() != null) {
-            // Attempt to retrieve by account externalKey
-            return accountUserApi.getAccountByKey(accountJson.getExternalKey(), callContext);
+            // Attempt to retrieve by account externalKey, ignore if does not exist so we can create it with the key specified.
+            try {
+                return accountUserApi.getAccountByKey(accountJson.getExternalKey(), callContext);
+            } catch (final AccountApiException ignore) {}
         }
         // Finally create if does not exist
         return accountUserApi.createAccount(accountJson.toAccountData(), callContext);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
index aac1839..3aab61a 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
@@ -54,6 +54,8 @@ public class TestPayment extends TestJaxrsBase {
     @Test(groups = "slow")
     public void testComboAuthorization() throws Exception {
         final Account accountJson = getAccount();
+        accountJson.setAccountId(null);
+
         final PaymentMethodPluginDetail info = new PaymentMethodPluginDetail();
         info.setProperties(null);