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);