killbill-uncached

Cleanup for invoice json in jaxrs

9/14/2013 12:15:26 AM

Details

diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
index 7b14d02..e408af4 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
@@ -50,13 +50,13 @@ public class AccountTimelineJson {
 
     private final AccountJson account;
     private final List<BundleJson> bundles;
-    private final List<InvoiceJsonWithBundleKeys> invoices;
+    private final List<InvoiceJson> invoices;
     private final List<PaymentJson> payments;
 
     @JsonCreator
     public AccountTimelineJson(@JsonProperty("account") final AccountJson account,
                                @JsonProperty("bundles") final List<BundleJson> bundles,
-                               @JsonProperty("invoices") final List<InvoiceJsonWithBundleKeys> invoices,
+                               @JsonProperty("invoices") final List<InvoiceJson> invoices,
                                @JsonProperty("payments") final List<PaymentJson> payments) {
         this.account = account;
         this.bundles = bundles;
@@ -127,7 +127,7 @@ public class AccountTimelineJson {
             this.bundles.add(jsonWithSubscriptions);
         }
 
-        this.invoices = new LinkedList<InvoiceJsonWithBundleKeys>();
+        this.invoices = new LinkedList<InvoiceJson>();
         // Extract the credits from the invoices first
         final List<CreditJson> credits = new ArrayList<CreditJson>();
         for (final Invoice invoice : invoices) {
@@ -141,7 +141,7 @@ public class AccountTimelineJson {
         // Create now the invoice json objects
         for (final Invoice invoice : invoices) {
             final List<AuditLog> auditLogs = invoiceAuditLogs.get(invoice.getId());
-            this.invoices.add(new InvoiceJsonWithBundleKeys(invoice,
+            this.invoices.add(new InvoiceJson(invoice,
                                                             getBundleExternalKey(invoice, bundles),
                                                             credits,
                                                             auditLogs));
@@ -181,7 +181,7 @@ public class AccountTimelineJson {
         return bundles;
     }
 
-    public List<InvoiceJsonWithBundleKeys> getInvoices() {
+    public List<InvoiceJson> getInvoices() {
         return invoices;
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleTimelineJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleTimelineJson.java
index ab83332..e5ea63c 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleTimelineJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BundleTimelineJson.java
@@ -29,7 +29,7 @@ public class BundleTimelineJson {
 
     private final List<PaymentJson> payments;
 
-    private final List<InvoiceJsonSimple> invoices;
+    private final List<InvoiceJson> invoices;
 
 
     private final String reasonForChange;
@@ -38,7 +38,7 @@ public class BundleTimelineJson {
     public BundleTimelineJson(@JsonProperty("viewId") final String viewId,
                               @JsonProperty("bundle") final BundleJson bundle,
                               @JsonProperty("payments") final List<PaymentJson> payments,
-                              @JsonProperty("invoices") final List<InvoiceJsonSimple> invoices,
+                              @JsonProperty("invoices") final List<InvoiceJson> invoices,
                               @JsonProperty("reasonForChange") final String reason) {
         this.viewId = viewId;
         this.bundle = bundle;
@@ -59,7 +59,7 @@ public class BundleTimelineJson {
         return payments;
     }
 
-    public List<InvoiceJsonSimple> getInvoices() {
+    public List<InvoiceJson> getInvoices() {
         return invoices;
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/InvoiceResource.java
index c812057..a7c8d33 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/InvoiceResource.java
@@ -57,8 +57,7 @@ import com.ning.billing.invoice.api.InvoiceNotifier;
 import com.ning.billing.invoice.api.InvoiceUserApi;
 import com.ning.billing.jaxrs.json.CustomFieldJson;
 import com.ning.billing.jaxrs.json.InvoiceItemJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
-import com.ning.billing.jaxrs.json.InvoiceJsonWithItems;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.util.Context;
 import com.ning.billing.jaxrs.util.JaxrsUriBuilder;
@@ -125,18 +124,18 @@ public class InvoiceResource extends JaxRsResourceBase {
         final AuditLogsForInvoices invoicesAuditLogs = auditUserApi.getAuditLogsForInvoices(invoices, auditMode.getLevel(), tenantContext);
 
         if (withItems) {
-            final List<InvoiceJsonWithItems> result = new LinkedList<InvoiceJsonWithItems>();
+            final List<InvoiceJson> result = new LinkedList<InvoiceJson>();
             for (final Invoice invoice : invoices) {
-                result.add(new InvoiceJsonWithItems(invoice,
+                result.add(new InvoiceJson(invoice,
                                                     invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId()),
                                                     invoicesAuditLogs.getInvoiceItemsAuditLogs()));
             }
 
             return Response.status(Status.OK).entity(result).build();
         } else {
-            final List<InvoiceJsonSimple> result = new LinkedList<InvoiceJsonSimple>();
+            final List<InvoiceJson> result = new LinkedList<InvoiceJson>();
             for (final Invoice invoice : invoices) {
-                result.add(new InvoiceJsonSimple(invoice,
+                result.add(new InvoiceJson(invoice,
                                                  invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId())));
             }
 
@@ -160,11 +159,11 @@ public class InvoiceResource extends JaxRsResourceBase {
         if (invoice == null) {
             throw new InvoiceApiException(ErrorCode.INVOICE_NOT_FOUND, invoiceId);
         } else {
-            final InvoiceJsonSimple json = withItems ?
-                                           new InvoiceJsonWithItems(invoice,
+            final InvoiceJson json = withItems ?
+                                           new InvoiceJson(invoice,
                                                                     invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId()),
                                                                     invoicesAuditLogs.getInvoiceItemsAuditLogs()) :
-                                           new InvoiceJsonSimple(invoice,
+                                           new InvoiceJson(invoice,
                                                                  invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId()));
             return Response.status(Status.OK).entity(json).build();
         }
@@ -186,11 +185,11 @@ public class InvoiceResource extends JaxRsResourceBase {
         if (invoice == null) {
             throw new InvoiceApiException(ErrorCode.INVOICE_NOT_FOUND, invoiceNumber);
         } else {
-            final InvoiceJsonSimple json = withItems ?
-                                           new InvoiceJsonWithItems(invoice,
+            final InvoiceJson json = withItems ?
+                                           new InvoiceJson(invoice,
                                                                     invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId()),
                                                                     invoicesAuditLogs.getInvoiceItemsAuditLogs()) :
-                                           new InvoiceJsonSimple(invoice,
+                                           new InvoiceJson(invoice,
                                                                  invoicesAuditLogs.getInvoiceAuditLogs().get(invoice.getId()));
             return Response.status(Status.OK).entity(json).build();
         }
@@ -224,7 +223,7 @@ public class InvoiceResource extends JaxRsResourceBase {
         final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(UUID.fromString(accountId), inputDate, dryRun,
                                                                              callContext);
         if (dryRun) {
-            return Response.status(Status.OK).entity(new InvoiceJsonSimple(generatedInvoice)).build();
+            return Response.status(Status.OK).entity(new InvoiceJson(generatedInvoice, null)).build();
         } else {
             return uriBuilder.buildResponse(InvoiceResource.class, "getInvoice", generatedInvoice.getId());
         }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
index f5042cb..78176d0 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
@@ -37,14 +37,14 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
         final String reason = UUID.randomUUID().toString();
 
         final BundleJson bundleJson = createBundleWithSubscriptions();
-        final InvoiceJsonSimple invoiceJsonSimple = createInvoice();
-        final PaymentJson paymentJson = createPayment(UUID.fromString(invoiceJsonSimple.getAccountId()),
-                                                                  UUID.fromString(invoiceJsonSimple.getInvoiceId()));
+        final InvoiceJson invoiceJson = createInvoice();
+        final PaymentJson paymentJson = createPayment(UUID.fromString(invoiceJson.getAccountId()),
+                                                                  UUID.fromString(invoiceJson.getInvoiceId()));
 
         final BundleTimelineJson bundleTimelineJson = new BundleTimelineJson(viewId,
                                                                              bundleJson,
                                                                              ImmutableList.<PaymentJson>of(paymentJson),
-                                                                             ImmutableList.<InvoiceJsonSimple>of(invoiceJsonSimple),
+                                                                             ImmutableList.<InvoiceJson>of(invoiceJson),
                                                                              reason);
 
         final String asJson = mapper.writeValueAsString(bundleTimelineJson);
@@ -66,7 +66,7 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
         return new BundleJson(accountId.toString(), bundleId.toString(), externalKey, ImmutableList.<SubscriptionJson>of(entitlementJsonWithEvents), null);
     }
 
-    private InvoiceJsonSimple createInvoice() {
+    private InvoiceJson createInvoice() {
         final UUID accountId = UUID.randomUUID();
         final UUID invoiceId = UUID.randomUUID();
         final BigDecimal invoiceAmount = BigDecimal.TEN;
@@ -77,8 +77,8 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
         final String invoiceNumber = UUID.randomUUID().toString();
         final BigDecimal balance = BigDecimal.ZERO;
 
-        return new InvoiceJsonSimple(invoiceAmount, Currency.USD.toString(), creditAdj, refundAdj, invoiceId.toString(), invoiceDate,
-                                     targetDate, invoiceNumber, balance, accountId.toString(), null);
+        return new InvoiceJson(invoiceAmount, Currency.USD.toString(), creditAdj, refundAdj, invoiceId.toString(), invoiceDate,
+                                     targetDate, invoiceNumber, balance, accountId.toString(), null, null, null, null);
     }
 
     private PaymentJson createPayment(final UUID accountId, final UUID invoiceId) {
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
index 99606af..eda33ac 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
@@ -20,7 +20,6 @@ import java.math.BigDecimal;
 import java.util.List;
 import java.util.UUID;
 
-import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
 import org.mockito.Mockito;
 import org.testng.Assert;
@@ -51,9 +50,9 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
         final CreditJson creditJson = createCreditJson();
         final List<CreditJson> credits = ImmutableList.<CreditJson>of(creditJson);
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
-        final InvoiceJsonWithBundleKeys invoiceJsonSimple = new InvoiceJsonWithBundleKeys(amount, Currency.USD.toString(), creditAdj, refundAdj, invoiceId, invoiceDate,
+        final InvoiceJson invoiceJsonSimple = new InvoiceJson(amount, Currency.USD.toString(), creditAdj, refundAdj, invoiceId, invoiceDate,
                                                                                           targetDate, invoiceNumber, balance, accountId, bundleKeys,
-                                                                                          credits, auditLogs);
+                                                                                          credits, null, auditLogs);
         Assert.assertEquals(invoiceJsonSimple.getAmount(), amount);
         Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), creditAdj);
         Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), refundAdj);
@@ -68,7 +67,7 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
         Assert.assertEquals(invoiceJsonSimple.getAuditLogs(), auditLogs);
 
         final String asJson = mapper.writeValueAsString(invoiceJsonSimple);
-        final InvoiceJsonWithBundleKeys fromJson = mapper.readValue(asJson, InvoiceJsonWithBundleKeys.class);
+        final InvoiceJson fromJson = mapper.readValue(asJson, InvoiceJson.class);
         Assert.assertEquals(fromJson, invoiceJsonSimple);
     }
 
@@ -90,19 +89,19 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
         final String bundleKeys = UUID.randomUUID().toString();
         final List<CreditJson> credits = ImmutableList.<CreditJson>of(createCreditJson());
 
-        final InvoiceJsonWithBundleKeys invoiceJsonWithBundleKeys = new InvoiceJsonWithBundleKeys(invoice, bundleKeys, credits, null);
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getAmount(), invoice.getChargedAmount());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getCreditAdj(), invoice.getCreditedAmount());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getRefundAdj(), invoice.getRefundedAmount());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getInvoiceId(), invoice.getId().toString());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getInvoiceDate(), invoice.getInvoiceDate());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getTargetDate(), invoice.getTargetDate());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getInvoiceNumber(), String.valueOf(invoice.getInvoiceNumber()));
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getBalance(), invoice.getBalance());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getAccountId(), invoice.getAccountId().toString());
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getBundleKeys(), bundleKeys);
-        Assert.assertEquals(invoiceJsonWithBundleKeys.getCredits(), credits);
-        Assert.assertNull(invoiceJsonWithBundleKeys.getAuditLogs());
+        final InvoiceJson invoiceJson = new InvoiceJson(invoice, bundleKeys, credits, null);
+        Assert.assertEquals(invoiceJson.getAmount(), invoice.getChargedAmount());
+        Assert.assertEquals(invoiceJson.getCreditAdj(), invoice.getCreditedAmount());
+        Assert.assertEquals(invoiceJson.getRefundAdj(), invoice.getRefundedAmount());
+        Assert.assertEquals(invoiceJson.getInvoiceId(), invoice.getId().toString());
+        Assert.assertEquals(invoiceJson.getInvoiceDate(), invoice.getInvoiceDate());
+        Assert.assertEquals(invoiceJson.getTargetDate(), invoice.getTargetDate());
+        Assert.assertEquals(invoiceJson.getInvoiceNumber(), String.valueOf(invoice.getInvoiceNumber()));
+        Assert.assertEquals(invoiceJson.getBalance(), invoice.getBalance());
+        Assert.assertEquals(invoiceJson.getAccountId(), invoice.getAccountId().toString());
+        Assert.assertEquals(invoiceJson.getBundleKeys(), bundleKeys);
+        Assert.assertEquals(invoiceJson.getCredits(), credits);
+        Assert.assertNull(invoiceJson.getAuditLogs());
     }
 
     private CreditJson createCreditJson() {
diff --git a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
index e1e105a..21fe660 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
@@ -48,8 +48,7 @@ import com.ning.billing.jaxrs.json.CatalogJsonSimple;
 import com.ning.billing.jaxrs.json.ChargebackJson;
 import com.ning.billing.jaxrs.json.CreditJson;
 import com.ning.billing.jaxrs.json.InvoiceItemJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
-import com.ning.billing.jaxrs.json.InvoiceJsonWithItems;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.OverdueStateJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
@@ -430,24 +429,24 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         return accountJson;
     }
 
-    protected InvoiceJsonSimple getInvoice(final String invoiceId) throws IOException {
+    protected InvoiceJson getInvoice(final String invoiceId) throws IOException {
         return getInvoiceWithAudits(invoiceId, AuditLevel.NONE);
     }
 
-    protected InvoiceJsonSimple getInvoiceWithAudits(final String invoiceId, final AuditLevel auditLevel) throws IOException {
-        return doGetInvoice(invoiceId, Boolean.FALSE, InvoiceJsonSimple.class, auditLevel);
+    protected InvoiceJson getInvoiceWithAudits(final String invoiceId, final AuditLevel auditLevel) throws IOException {
+        return doGetInvoice(invoiceId, Boolean.FALSE, InvoiceJson.class, auditLevel);
     }
 
-    protected InvoiceJsonSimple getInvoice(final Integer invoiceNumber) throws IOException {
+    protected InvoiceJson getInvoice(final Integer invoiceNumber) throws IOException {
         return getInvoice(invoiceNumber.toString());
     }
 
-    protected InvoiceJsonWithItems getInvoiceWithItems(final String invoiceId) throws IOException {
+    protected InvoiceJson getInvoiceWithItems(final String invoiceId) throws IOException {
         return getInvoiceWithItemsWithAudits(invoiceId, AuditLevel.NONE);
     }
 
-    protected InvoiceJsonWithItems getInvoiceWithItemsWithAudits(final String invoiceId, final AuditLevel auditLevel) throws IOException {
-        return doGetInvoice(invoiceId, Boolean.TRUE, InvoiceJsonWithItems.class, auditLevel);
+    protected InvoiceJson getInvoiceWithItemsWithAudits(final String invoiceId, final AuditLevel auditLevel) throws IOException {
+        return doGetInvoice(invoiceId, Boolean.TRUE, InvoiceJson.class, auditLevel);
     }
 
     private <T> T doGetInvoice(final String invoiceId, final Boolean withItems, final Class<T> clazz, final AuditLevel auditLevel) throws IOException {
@@ -467,20 +466,20 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         return firstInvoiceJson;
     }
 
-    protected List<InvoiceJsonSimple> getInvoicesForAccount(final String accountId) throws IOException {
+    protected List<InvoiceJson> getInvoicesForAccount(final String accountId) throws IOException {
         return getInvoicesForAccountWithAudits(accountId, AuditLevel.NONE);
     }
 
-    protected List<InvoiceJsonSimple> getInvoicesForAccountWithAudits(final String accountId, final AuditLevel auditLevel) throws IOException {
-        return doGetInvoicesForAccount(accountId, Boolean.FALSE, new TypeReference<List<InvoiceJsonSimple>>() {}, auditLevel);
+    protected List<InvoiceJson> getInvoicesForAccountWithAudits(final String accountId, final AuditLevel auditLevel) throws IOException {
+        return doGetInvoicesForAccount(accountId, Boolean.FALSE, new TypeReference<List<InvoiceJson>>() {}, auditLevel);
     }
 
-    protected List<InvoiceJsonWithItems> getInvoicesWithItemsForAccount(final String accountId) throws IOException {
+    protected List<InvoiceJson> getInvoicesWithItemsForAccount(final String accountId) throws IOException {
         return getInvoicesWithItemsForAccountWithAudits(accountId, AuditLevel.NONE);
     }
 
-    protected List<InvoiceJsonWithItems> getInvoicesWithItemsForAccountWithAudits(final String accountId, final AuditLevel auditLevel) throws IOException {
-        return doGetInvoicesForAccount(accountId, Boolean.TRUE, new TypeReference<List<InvoiceJsonWithItems>>() {}, auditLevel);
+    protected List<InvoiceJson> getInvoicesWithItemsForAccountWithAudits(final String accountId, final AuditLevel auditLevel) throws IOException {
+        return doGetInvoicesForAccount(accountId, Boolean.TRUE, new TypeReference<List<InvoiceJson>>() {}, auditLevel);
     }
 
     private <T> List<T> doGetInvoicesForAccount(final String accountId, final Boolean withItems, final TypeReference<List<T>> clazz, final AuditLevel auditLevel) throws IOException {
@@ -501,7 +500,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         return invoices;
     }
 
-    protected InvoiceJsonSimple createDryRunInvoice(final String accountId, final DateTime futureDate) throws IOException {
+    protected InvoiceJson createDryRunInvoice(final String accountId, final DateTime futureDate) throws IOException {
         final String uri = JaxrsResource.INVOICES_PATH;
 
         final Map<String, String> queryParams = new HashMap<String, String>();
@@ -513,7 +512,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         Assert.assertEquals(response.getStatusCode(), Status.OK.getStatusCode());
 
         final String baseJson = response.getResponseBody();
-        final InvoiceJsonSimple futureInvoice = mapper.readValue(baseJson, InvoiceJsonSimple.class);
+        final InvoiceJson futureInvoice = mapper.readValue(baseJson, InvoiceJson.class);
         assertNotNull(futureInvoice);
 
         return futureInvoice;
@@ -549,18 +548,18 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         Assert.assertEquals(response.getStatusCode(), Status.CREATED.getStatusCode());
     }
 
-    protected InvoiceJsonWithItems createExternalCharge(final String accountId, final BigDecimal amount, @Nullable final String bundleId,
+    protected InvoiceJson createExternalCharge(final String accountId, final BigDecimal amount, @Nullable final String bundleId,
                                                         @Nullable final Currency currency, @Nullable final DateTime requestedDate) throws Exception {
         return doCreateExternalCharge(accountId, null, bundleId, amount, currency, requestedDate, JaxrsResource.CHARGES_PATH);
     }
 
-    protected InvoiceJsonWithItems createExternalChargeForInvoice(final String accountId, final String invoiceId, @Nullable final String bundleId, final BigDecimal amount,
+    protected InvoiceJson createExternalChargeForInvoice(final String accountId, final String invoiceId, @Nullable final String bundleId, final BigDecimal amount,
                                                                   @Nullable final Currency currency, @Nullable final DateTime requestedDate) throws Exception {
         final String uri = JaxrsResource.INVOICES_PATH + "/" + invoiceId + "/" + JaxrsResource.CHARGES;
         return doCreateExternalCharge(accountId, invoiceId, bundleId, amount, currency, requestedDate, uri);
     }
 
-    private InvoiceJsonWithItems doCreateExternalCharge(final String accountId, @Nullable final String invoiceId, @Nullable final String bundleId, @Nullable final BigDecimal amount,
+    private InvoiceJson doCreateExternalCharge(final String accountId, @Nullable final String invoiceId, @Nullable final String bundleId, @Nullable final BigDecimal amount,
                                                         @Nullable final Currency currency, final DateTime requestedDate, final String uri) throws IOException {
         final Map<String, String> queryParams = new HashMap<String, String>();
         if (requestedDate != null) {
@@ -583,7 +582,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertEquals(invoiceResponse.getStatusCode(), Status.OK.getStatusCode());
 
         final String invoicesBaseJson = invoiceResponse.getResponseBody();
-        final InvoiceJsonWithItems invoice = mapper.readValue(invoicesBaseJson, new TypeReference<InvoiceJsonWithItems>() {});
+        final InvoiceJson invoice = mapper.readValue(invoicesBaseJson, new TypeReference<InvoiceJson>() {});
         assertNotNull(invoice);
 
         return invoice;
@@ -696,7 +695,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         doPost(uri, postJson, ImmutableMap.<String, String>of("externalPayment", externalPayment.toString()), DEFAULT_HTTP_TIMEOUT_SEC);
     }
 
-    protected List<PaymentJson> createInstaPayment(final AccountJson accountJson, final InvoiceJsonSimple invoice) throws IOException {
+    protected List<PaymentJson> createInstaPayment(final AccountJson accountJson, final InvoiceJson invoice) throws IOException {
         final PaymentJson payment = new PaymentJson(invoice.getAmount(), BigDecimal.ZERO, accountJson.getAccountId(),
                                                                 invoice.getInvoiceId(), null, null, null, null, null, 0, null, null, null, null, null, null, null, null);
         final String postJson = mapper.writeValueAsString(payment);
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
index 52900d8..2d64930 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
@@ -31,7 +31,7 @@ import com.ning.billing.jaxrs.json.AccountTimelineJson;
 import com.ning.billing.jaxrs.json.AuditLogJson;
 import com.ning.billing.jaxrs.json.ChargebackJson;
 import com.ning.billing.jaxrs.json.CreditJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson.SubscriptionReadEventJson;
@@ -72,7 +72,7 @@ public class TestAccountTimeline extends TestJaxrsBase {
         final DateTime endTime = clock.getUTCNow();
 
         // Add credit
-        final InvoiceJsonSimple invoice = getInvoicesForAccount(accountJson.getAccountId()).get(1);
+        final InvoiceJson invoice = getInvoicesForAccount(accountJson.getAccountId()).get(1);
         final DateTime creditEffectiveDate = clock.getUTCNow();
         final BigDecimal creditAmount = BigDecimal.ONE;
         createCreditForInvoice(accountJson.getAccountId(), invoice.getInvoiceId(),
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java b/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java
index ec96aeb..78d7564 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java
@@ -32,7 +32,7 @@ import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.ProductCategory;
 import com.ning.billing.jaxrs.json.AccountJson;
 import com.ning.billing.jaxrs.json.ChargebackJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson;
 import com.ning.billing.jaxrs.resources.JaxrsResource;
@@ -188,11 +188,11 @@ public class TestChargeback extends TestJaxrsBase {
     }
 
     private PaymentJson createAccountWithInvoiceAndPayment() throws Exception {
-        final InvoiceJsonSimple invoice = createAccountWithInvoice();
+        final InvoiceJson invoice = createAccountWithInvoice();
         return getPayment(invoice);
     }
 
-    private InvoiceJsonSimple createAccountWithInvoice() throws Exception {
+    private InvoiceJson createAccountWithInvoice() throws Exception {
         // Create account
         final AccountJson accountJson = createAccountWithDefaultPaymentMethod(UUID.randomUUID().toString(), UUID.randomUUID().toString(), "nohup@yahoo.com");
 
@@ -209,7 +209,7 @@ public class TestChargeback extends TestJaxrsBase {
         final Response response = doGet(JaxrsResource.INVOICES_PATH, ImmutableMap.<String, String>of(JaxrsResource.QUERY_ACCOUNT_ID, accountJson.getAccountId()), DEFAULT_HTTP_TIMEOUT_SEC);
         Assert.assertEquals(response.getStatusCode(), Status.OK.getStatusCode());
         final String baseJson = response.getResponseBody();
-        final List<InvoiceJsonSimple> objFromJson = mapper.readValue(baseJson, new TypeReference<List<InvoiceJsonSimple>>() {});
+        final List<InvoiceJson> objFromJson = mapper.readValue(baseJson, new TypeReference<List<InvoiceJson>>() {});
         assertNotNull(objFromJson);
         // We should have two invoices, one for the trial (zero dollar amount) and one for the first month
         assertEquals(objFromJson.size(), 2);
@@ -218,7 +218,7 @@ public class TestChargeback extends TestJaxrsBase {
         return objFromJson.get(1);
     }
 
-    private PaymentJson getPayment(final InvoiceJsonSimple invoice) throws IOException {
+    private PaymentJson getPayment(final InvoiceJson invoice) throws IOException {
         final String uri = JaxrsResource.INVOICES_PATH + "/" + invoice.getInvoiceId() + "/" + JaxrsResource.PAYMENTS;
         final Response response = doGet(uri, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
 
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestCredit.java b/server/src/test/java/com/ning/billing/jaxrs/TestCredit.java
index 6ba1f86..e9f4ab7 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestCredit.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestCredit.java
@@ -28,7 +28,7 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.jaxrs.json.AccountJson;
 import com.ning.billing.jaxrs.json.CreditJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.resources.JaxrsResource;
 import com.ning.http.client.Response;
 
@@ -45,7 +45,7 @@ public class TestCredit extends TestJaxrsBase {
 
     @Test(groups = "slow")
     public void testAddCreditToInvoice() throws Exception {
-        final InvoiceJsonSimple invoice = getInvoicesForAccount(accountJson.getAccountId()).get(1);
+        final InvoiceJson invoice = getInvoicesForAccount(accountJson.getAccountId()).get(1);
 
         final DateTime effectiveDate = clock.getUTCNow();
         final BigDecimal creditAmount = BigDecimal.ONE;
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java b/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java
index bc85d8f..6b6721f 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java
@@ -28,8 +28,7 @@ import org.testng.annotations.Test;
 import com.ning.billing.jaxrs.json.AccountJson;
 import com.ning.billing.jaxrs.json.AuditLogJson;
 import com.ning.billing.jaxrs.json.InvoiceItemJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
-import com.ning.billing.jaxrs.json.InvoiceJsonWithItems;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.payment.provider.ExternalPaymentProviderPlugin;
@@ -47,11 +46,11 @@ public class TestInvoice extends TestJaxrsBase {
 
         final AccountJson accountJson = createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
-        final List<InvoiceJsonSimple> invoices = getInvoicesForAccountWithAudits(accountJson.getAccountId(), AuditLevel.FULL);
+        final List<InvoiceJson> invoices = getInvoicesForAccountWithAudits(accountJson.getAccountId(), AuditLevel.FULL);
         assertEquals(invoices.size(), 2);
-        for (final InvoiceJsonSimple invoiceJsonSimple : invoices) {
-            Assert.assertEquals(invoiceJsonSimple.getAuditLogs().size(), 1);
-            final AuditLogJson auditLogJson = invoiceJsonSimple.getAuditLogs().get(0);
+        for (final InvoiceJson invoiceJson : invoices) {
+            Assert.assertEquals(invoiceJson.getAuditLogs().size(), 1);
+            final AuditLogJson auditLogJson = invoiceJson.getAuditLogs().get(0);
             Assert.assertEquals(auditLogJson.getChangeType(), "INSERT");
             Assert.assertEquals(auditLogJson.getChangedBy(), "SubscriptionBaseTransition");
             Assert.assertFalse(auditLogJson.getChangeDate().isBefore(initialDate));
@@ -61,13 +60,13 @@ public class TestInvoice extends TestJaxrsBase {
         }
 
         // Check we can retrieve an individual invoice
-        final InvoiceJsonSimple invoiceJsonSimple = invoices.get(0);
-        final InvoiceJsonSimple firstInvoiceJson = getInvoice(invoiceJsonSimple.getInvoiceId());
-        assertEquals(firstInvoiceJson, invoiceJsonSimple);
+        final InvoiceJson invoiceJson = invoices.get(0);
+        final InvoiceJson firstInvoiceJson = getInvoice(invoiceJson.getInvoiceId());
+        assertEquals(firstInvoiceJson, invoiceJson);
 
         // Check we can retrieve the invoice by number
-        final InvoiceJsonSimple firstInvoiceByNumberJson = getInvoice(invoiceJsonSimple.getInvoiceNumber());
-        assertEquals(firstInvoiceByNumberJson, invoiceJsonSimple);
+        final InvoiceJson firstInvoiceByNumberJson = getInvoice(invoiceJson.getInvoiceNumber());
+        assertEquals(firstInvoiceByNumberJson, invoiceJson);
 
         // Then create a dryRun Invoice
         final DateTime futureDate = clock.getUTCNow().plusMonths(1).plusDays(3);
@@ -77,7 +76,7 @@ public class TestInvoice extends TestJaxrsBase {
         createInvoice(accountJson.getAccountId(), futureDate);
 
         // Check again # invoices, should be 3 this time
-        final List<InvoiceJsonSimple> newInvoiceList = getInvoicesForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> newInvoiceList = getInvoicesForAccount(accountJson.getAccountId());
         assertEquals(newInvoiceList.size(), 3);
     }
 
@@ -87,10 +86,10 @@ public class TestInvoice extends TestJaxrsBase {
 
         final AccountJson accountJson = createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
-        final List<InvoiceJsonSimple> invoices = getInvoicesForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesForAccount(accountJson.getAccountId());
         assertEquals(invoices.size(), 2);
 
-        for (final InvoiceJsonSimple cur : invoices) {
+        for (final InvoiceJson cur : invoices) {
             final List<PaymentJson> objFromJson = getPaymentsForInvoice(cur.getInvoiceId());
 
             if (cur.getAmount().compareTo(BigDecimal.ZERO) == 0) {
@@ -113,14 +112,14 @@ public class TestInvoice extends TestJaxrsBase {
         assertEquals(getPaymentsForAccount(accountJson.getAccountId()).size(), 0);
 
         // Get the invoices
-        final List<InvoiceJsonSimple> invoices = getInvoicesForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesForAccount(accountJson.getAccountId());
         assertEquals(invoices.size(), 2);
-        final InvoiceJsonSimple invoiceToPay = invoices.get(1);
+        final InvoiceJson invoiceToPay = invoices.get(1);
         assertEquals(invoiceToPay.getBalance().compareTo(BigDecimal.ZERO), 1);
 
         // Pay all invoices
         payAllInvoices(accountJson, true);
-        for (final InvoiceJsonSimple invoice : getInvoicesForAccount(accountJson.getAccountId())) {
+        for (final InvoiceJson invoice : getInvoicesForAccount(accountJson.getAccountId())) {
             assertEquals(invoice.getBalance().compareTo(BigDecimal.ZERO), 0);
         }
         assertEquals(getPaymentsForAccount(accountJson.getAccountId()).size(), 1);
@@ -134,10 +133,10 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonSimple> invoices = getInvoicesForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesForAccount(accountJson.getAccountId());
         assertEquals(invoices.size(), 2);
 
-        for (final InvoiceJsonSimple cur : invoices) {
+        for (final InvoiceJson cur : invoices) {
             if (cur.getAmount().compareTo(BigDecimal.ZERO) == 0) {
                 continue;
             }
@@ -158,7 +157,7 @@ public class TestInvoice extends TestJaxrsBase {
         assertEquals(noPaymentsFromJson.size(), 0);
 
         // Get the invoices
-        final List<InvoiceJsonSimple> invoices = getInvoicesForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
         final String invoiceId = invoices.get(1).getInvoiceId();
@@ -186,10 +185,10 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonWithItems> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
-        final InvoiceJsonWithItems invoice = invoices.get(1);
+        final InvoiceJson invoice = invoices.get(1);
         // Verify the invoice we picked is non zero
         assertEquals(invoice.getAmount().compareTo(BigDecimal.ZERO), 1);
         final InvoiceItemJson invoiceItem = invoice.getItems().get(0);
@@ -200,7 +199,7 @@ public class TestInvoice extends TestJaxrsBase {
         adjustInvoiceItem(accountJson.getAccountId(), invoice.getInvoiceId(), invoiceItem.getInvoiceItemId(), null, null, null);
 
         // Verify the new invoice balance is zero
-        final InvoiceJsonWithItems adjustedInvoice = getInvoiceWithItemsWithAudits(invoice.getInvoiceId(), AuditLevel.FULL);
+        final InvoiceJson adjustedInvoice = getInvoiceWithItemsWithAudits(invoice.getInvoiceId(), AuditLevel.FULL);
         assertEquals(adjustedInvoice.getAmount().compareTo(BigDecimal.ZERO), 0);
 
         // Verify invoice audit logs
@@ -243,10 +242,10 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonWithItems> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
-        final InvoiceJsonWithItems invoice = invoices.get(1);
+        final InvoiceJson invoice = invoices.get(1);
         // Verify the invoice we picked is non zero
         assertEquals(invoice.getAmount().compareTo(BigDecimal.ZERO), 1);
         final InvoiceItemJson invoiceItem = invoice.getItems().get(0);
@@ -258,7 +257,7 @@ public class TestInvoice extends TestJaxrsBase {
         adjustInvoiceItem(accountJson.getAccountId(), invoice.getInvoiceId(), invoiceItem.getInvoiceItemId(), null, adjustedAmount, null);
 
         // Verify the new invoice balance
-        final InvoiceJsonSimple adjustedInvoice = getInvoice(invoice.getInvoiceId());
+        final InvoiceJson adjustedInvoice = getInvoice(invoice.getInvoiceId());
         final BigDecimal adjustedInvoiceBalance = invoice.getBalance().add(adjustedAmount.negate()).setScale(2, BigDecimal.ROUND_HALF_UP);
         assertEquals(adjustedInvoice.getBalance().compareTo(adjustedInvoiceBalance), 0);
     }
@@ -272,7 +271,7 @@ public class TestInvoice extends TestJaxrsBase {
 
         // Post an external charge
         final BigDecimal chargeAmount = BigDecimal.TEN;
-        final InvoiceJsonWithItems invoiceWithItems = createExternalCharge(accountJson.getAccountId(), chargeAmount, null, null, null);
+        final InvoiceJson invoiceWithItems = createExternalCharge(accountJson.getAccountId(), chargeAmount, null, null, null);
         assertEquals(invoiceWithItems.getBalance().compareTo(chargeAmount), 0);
         assertEquals(invoiceWithItems.getItems().size(), 1);
         assertNull(invoiceWithItems.getItems().get(0).getBundleId());
@@ -291,7 +290,7 @@ public class TestInvoice extends TestJaxrsBase {
         // Post an external charge
         final BigDecimal chargeAmount = BigDecimal.TEN;
         final String bundleId = UUID.randomUUID().toString();
-        final InvoiceJsonWithItems invoiceWithItems = createExternalCharge(accountJson.getAccountId(), chargeAmount, bundleId, null, null);
+        final InvoiceJson invoiceWithItems = createExternalCharge(accountJson.getAccountId(), chargeAmount, bundleId, null, null);
         assertEquals(invoiceWithItems.getBalance().compareTo(chargeAmount), 0);
         assertEquals(invoiceWithItems.getItems().size(), 1);
         assertEquals(invoiceWithItems.getItems().get(0).getBundleId(), bundleId);
@@ -305,7 +304,7 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonWithItems> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
         final String invoiceId = invoices.get(1).getInvoiceId();
@@ -314,13 +313,13 @@ public class TestInvoice extends TestJaxrsBase {
 
         // Post an external charge
         final BigDecimal chargeAmount = BigDecimal.TEN;
-        final InvoiceJsonWithItems invoiceWithItems = createExternalChargeForInvoice(accountJson.getAccountId(), invoiceId,
+        final InvoiceJson invoiceWithItems = createExternalChargeForInvoice(accountJson.getAccountId(), invoiceId,
                                                                                      null, chargeAmount, null, null);
         assertEquals(invoiceWithItems.getItems().size(), originalNumberOfItemsForInvoice + 1);
         assertNull(invoiceWithItems.getItems().get(originalNumberOfItemsForInvoice).getBundleId());
 
         // Verify the new invoice balance
-        final InvoiceJsonSimple adjustedInvoice = getInvoice(invoiceId);
+        final InvoiceJson adjustedInvoice = getInvoice(invoiceId);
         final BigDecimal adjustedInvoiceBalance = originalInvoiceAmount.add(chargeAmount.setScale(2, RoundingMode.HALF_UP));
         assertEquals(adjustedInvoice.getBalance().compareTo(adjustedInvoiceBalance), 0);
     }
@@ -330,7 +329,7 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonWithItems> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
         final String invoiceId = invoices.get(1).getInvoiceId();
@@ -340,13 +339,13 @@ public class TestInvoice extends TestJaxrsBase {
         // Post an external charge
         final BigDecimal chargeAmount = BigDecimal.TEN;
         final String bundleId = UUID.randomUUID().toString();
-        final InvoiceJsonWithItems invoiceWithItems = createExternalChargeForInvoice(accountJson.getAccountId(), invoiceId,
+        final InvoiceJson invoiceWithItems = createExternalChargeForInvoice(accountJson.getAccountId(), invoiceId,
                                                                                      bundleId, chargeAmount, null, null);
         assertEquals(invoiceWithItems.getItems().size(), originalNumberOfItemsForInvoice + 1);
         assertEquals(invoiceWithItems.getItems().get(originalNumberOfItemsForInvoice).getBundleId(), bundleId);
 
         // Verify the new invoice balance
-        final InvoiceJsonSimple adjustedInvoice = getInvoice(invoiceId);
+        final InvoiceJson adjustedInvoice = getInvoice(invoiceId);
         final BigDecimal adjustedInvoiceBalance = originalInvoiceAmount.add(chargeAmount.setScale(2, RoundingMode.HALF_UP));
         assertEquals(adjustedInvoice.getBalance().compareTo(adjustedInvoiceBalance), 0);
     }
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestInvoiceNotification.java b/server/src/test/java/com/ning/billing/jaxrs/TestInvoiceNotification.java
index 2f1969b..feee290 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestInvoiceNotification.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestInvoiceNotification.java
@@ -26,7 +26,7 @@ import org.testng.annotations.Test;
 import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.ProductCategory;
 import com.ning.billing.jaxrs.json.AccountJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson;
 import com.ning.billing.jaxrs.resources.JaxrsResource;
 import com.ning.http.client.Response;
@@ -44,10 +44,10 @@ public class TestInvoiceNotification extends TestJaxrsBase {
         final Response response = doGet(uri, ImmutableMap.<String, String>of(JaxrsResource.QUERY_ACCOUNT_ID, accountJson.getAccountId()), DEFAULT_HTTP_TIMEOUT_SEC);
         Assert.assertEquals(response.getStatusCode(), javax.ws.rs.core.Response.Status.OK.getStatusCode());
         final String baseJson = response.getResponseBody();
-        final List<InvoiceJsonSimple> objFromJson = mapper.readValue(baseJson, new TypeReference<List<InvoiceJsonSimple>>() {});
+        final List<InvoiceJson> objFromJson = mapper.readValue(baseJson, new TypeReference<List<InvoiceJson>>() {});
         Assert.assertEquals(objFromJson.size(), 1);
 
-        final InvoiceJsonSimple invoice = objFromJson.get(0);
+        final InvoiceJson invoice = objFromJson.get(0);
         final Response triggerResponse = doPost(uri + "/" + invoice.getInvoiceId() + "/" + JaxrsResource.EMAIL_NOTIFICATIONS,
                                                 null, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
         Assert.assertEquals(triggerResponse.getStatusCode(), javax.ws.rs.core.Response.Status.OK.getStatusCode());
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestOverdue.java b/server/src/test/java/com/ning/billing/jaxrs/TestOverdue.java
index e81a3f0..1e67816 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestOverdue.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestOverdue.java
@@ -23,8 +23,7 @@ import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.ning.billing.jaxrs.json.AccountJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
-import com.ning.billing.jaxrs.json.InvoiceJsonWithItems;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 
 import static org.testng.Assert.assertEquals;
 
@@ -36,7 +35,7 @@ public class TestOverdue extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Get the invoices
-        final List<InvoiceJsonWithItems> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
+        final List<InvoiceJson> invoices = getInvoicesWithItemsForAccount(accountJson.getAccountId());
         // 2 invoices but look for the non zero dollar one
         assertEquals(invoices.size(), 2);
         final String bundleId = invoices.get(1).getItems().get(0).getBundleId();
@@ -57,7 +56,7 @@ public class TestOverdue extends TestJaxrsBase {
         Assert.assertEquals(getOverdueStateForAccount(accountJson.getAccountId()).getName(), "OD3");
 
         // Post external payments
-        for (final InvoiceJsonSimple invoice : getInvoicesForAccount(accountJson.getAccountId())) {
+        for (final InvoiceJson invoice : getInvoicesForAccount(accountJson.getAccountId())) {
             if (invoice.getBalance().compareTo(BigDecimal.ZERO) > 0) {
                 createExternalPayment(accountJson, invoice.getInvoiceId(), invoice.getBalance());
             }
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
index f885db7..01200d6 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
@@ -26,8 +26,7 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.jaxrs.json.AccountJson;
 import com.ning.billing.jaxrs.json.InvoiceItemJson;
-import com.ning.billing.jaxrs.json.InvoiceJsonSimple;
-import com.ning.billing.jaxrs.json.InvoiceJsonWithItems;
+import com.ning.billing.jaxrs.json.InvoiceJson;
 import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.jaxrs.json.RefundJson;
@@ -111,7 +110,7 @@ public class TestPayment extends TestJaxrsBase {
         final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Get the individual items for the invoice
-        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
+        final InvoiceJson invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
         final InvoiceItemJson itemToAdjust = invoice.getItems().get(0);
 
         // Issue a refund for the full amount
@@ -133,7 +132,7 @@ public class TestPayment extends TestJaxrsBase {
         final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Get the individual items for the invoice
-        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
+        final InvoiceJson invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
         final InvoiceItemJson itemToAdjust = invoice.getItems().get(0);
 
         // Issue a refund for a fraction of the amount
@@ -210,8 +209,8 @@ public class TestPayment extends TestJaxrsBase {
     }
 
     private void verifyInvoice(final PaymentJson paymentJson, final BigDecimal expectedInvoiceBalance) throws IOException {
-        final InvoiceJsonSimple invoiceJsonSimple = getInvoice(paymentJson.getInvoiceId());
-        Assert.assertEquals(invoiceJsonSimple.getBalance().setScale(2, BigDecimal.ROUND_HALF_UP),
+        final InvoiceJson invoiceJson = getInvoice(paymentJson.getInvoiceId());
+        Assert.assertEquals(invoiceJson.getBalance().setScale(2, BigDecimal.ROUND_HALF_UP),
                             expectedInvoiceBalance.setScale(2, BigDecimal.ROUND_HALF_UP));
     }
 }