diff --git a/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java b/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
index 9af1819..f580cd3 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/CatalogUpdater.java
@@ -282,10 +282,10 @@ public class CatalogUpdater {
}
private void validateNewPlanDescriptor(final SimplePlanDescriptor desc) throws CatalogApiException {
- if (desc.getProductCategory() == null ||
- desc.getBillingPeriod() == null ||
- (desc.getAmount() == null || desc.getAmount().compareTo(BigDecimal.ZERO) < 0) ||
- desc.getCurrency() == null) {
+ final boolean invalidPlan = desc.getPlanId() == null && (desc.getProductCategory() == null || desc.getBillingPeriod() == null);
+ final boolean invalidPrice = (desc.getAmount() == null || desc.getAmount().compareTo(BigDecimal.ZERO) < 0) ||
+ desc.getCurrency() == null;
+ if (invalidPlan || invalidPrice) {
throw new CatalogApiException(ErrorCode.CAT_INVALID_SIMPLE_PLAN_DESCRIPTOR, desc);
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
index 95bea49..f984b60 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
@@ -492,6 +492,11 @@ public class CatalogResource extends JaxRsResourceBase {
public TimeUnit getTrialTimeUnit() {
return simplePlan.getTrialTimeUnit();
}
+
+ @Override
+ public String toString() {
+ return simplePlan.toString();
+ }
};
catalogUserApi.addSimplePlan(desc, null, callContext);