killbill-uncached

Cleanup for payment json in jaxrs

9/13/2013 11:58:53 PM

Changes

jaxrs/src/main/java/com/ning/billing/jaxrs/json/CreditCollectionJson.java 71(+0 -71)

jaxrs/src/main/java/com/ning/billing/jaxrs/json/PaymentJsonWithBundleKeys.java 142(+0 -142)

jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditCollectionJson.java 58(+0 -58)

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 f4091a8..7b14d02 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
@@ -51,13 +51,13 @@ public class AccountTimelineJson {
     private final AccountJson account;
     private final List<BundleJson> bundles;
     private final List<InvoiceJsonWithBundleKeys> invoices;
-    private final List<PaymentJsonWithBundleKeys> payments;
+    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("payments") final List<PaymentJsonWithBundleKeys> payments) {
+                               @JsonProperty("payments") final List<PaymentJson> payments) {
         this.account = account;
         this.bundles = bundles;
         this.invoices = invoices;
@@ -147,7 +147,7 @@ public class AccountTimelineJson {
                                                             auditLogs));
         }
 
-        this.payments = new LinkedList<PaymentJsonWithBundleKeys>();
+        this.payments = new LinkedList<PaymentJson>();
         for (final Payment payment : payments) {
             final List<RefundJson> refunds = new ArrayList<RefundJson>();
             for (final Refund refund : refundsByPayment.get(payment.getId())) {
@@ -165,12 +165,9 @@ public class AccountTimelineJson {
             final int nbOfPaymentAttempts = payment.getAttempts().size();
             final String status = payment.getPaymentStatus().toString();
             final List<AuditLog> auditLogs = paymentsAuditLogs.get(payment.getId());
-            this.payments.add(new PaymentJsonWithBundleKeys(payment,
-                                                            status,
-                                                            nbOfPaymentAttempts,
-                                                            getBundleExternalKey(payment.getInvoiceId(), invoices, bundles),
-                                                            account.getId(),
-                                                            refunds,
+            this.payments.add(new PaymentJson(payment,
+                                              getBundleExternalKey(payment.getInvoiceId(), invoices, bundles),
+                                              refunds,
                                                             chargebacks,
                                                             auditLogs));
         }
@@ -188,7 +185,7 @@ public class AccountTimelineJson {
         return invoices;
     }
 
-    public List<PaymentJsonWithBundleKeys> getPayments() {
+    public List<PaymentJson> getPayments() {
         return payments;
     }
 
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 d7b5037..ab83332 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
@@ -27,7 +27,7 @@ public class BundleTimelineJson {
 
     private final BundleJson bundle;
 
-    private final List<PaymentJsonSimple> payments;
+    private final List<PaymentJson> payments;
 
     private final List<InvoiceJsonSimple> invoices;
 
@@ -37,7 +37,7 @@ public class BundleTimelineJson {
     @JsonCreator
     public BundleTimelineJson(@JsonProperty("viewId") final String viewId,
                               @JsonProperty("bundle") final BundleJson bundle,
-                              @JsonProperty("payments") final List<PaymentJsonSimple> payments,
+                              @JsonProperty("payments") final List<PaymentJson> payments,
                               @JsonProperty("invoices") final List<InvoiceJsonSimple> invoices,
                               @JsonProperty("reasonForChange") final String reason) {
         this.viewId = viewId;
@@ -55,7 +55,7 @@ public class BundleTimelineJson {
         return bundle;
     }
 
-    public List<PaymentJsonSimple> getPayments() {
+    public List<PaymentJson> getPayments() {
         return payments;
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
index 614adf1..766d5fd 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
@@ -36,7 +36,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 public class InvoiceJsonWithItems extends InvoiceJsonSimple {
 
-    private final List<InvoiceItemJsonSimple> items;
+    private final List<InvoiceItemJson> items;
 
     @JsonCreator
     public InvoiceJsonWithItems(@JsonProperty("amount") final BigDecimal amount,
@@ -49,21 +49,21 @@ public class InvoiceJsonWithItems extends InvoiceJsonSimple {
                                 @JsonProperty("invoiceNumber") final String invoiceNumber,
                                 @JsonProperty("balance") final BigDecimal balance,
                                 @JsonProperty("accountId") final String accountId,
-                                @JsonProperty("items") final List<InvoiceItemJsonSimple> items,
+                                @JsonProperty("items") final List<InvoiceItemJson> items,
                                 @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
         super(amount, currency, creditAdj, refundAdj, invoiceId, invoiceDate, targetDate, invoiceNumber, balance, accountId, auditLogs);
-        this.items = new ArrayList<InvoiceItemJsonSimple>(items);
+        this.items = new ArrayList<InvoiceItemJson>(items);
     }
 
     public InvoiceJsonWithItems(final Invoice input, @Nullable final List<AuditLog> invoiceAuditLogs, @Nullable final Map<UUID, List<AuditLog>> invoiceItemsAuditLogs) {
         super(input, invoiceAuditLogs);
-        this.items = new ArrayList<InvoiceItemJsonSimple>(input.getInvoiceItems().size());
+        this.items = new ArrayList<InvoiceItemJson>(input.getInvoiceItems().size());
         for (final InvoiceItem item : input.getInvoiceItems()) {
-            this.items.add(new InvoiceItemJsonSimple(item, invoiceItemsAuditLogs == null ? null : invoiceItemsAuditLogs.get(item.getId())));
+            this.items.add(new InvoiceItemJson(item, invoiceItemsAuditLogs == null ? null : invoiceItemsAuditLogs.get(item.getId())));
         }
     }
 
-    public List<InvoiceItemJsonSimple> getItems() {
+    public List<InvoiceItemJson> getItems() {
         return Collections.unmodifiableList(items);
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
index 22f1ab7..73a83dd 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/RefundJson.java
@@ -42,7 +42,7 @@ public class RefundJson extends JsonBase {
     private final Boolean isAdjusted;
     private final DateTime requestedDate;
     private final DateTime effectiveDate;
-    private final List<InvoiceItemJsonSimple> adjustments;
+    private final List<InvoiceItemJson> adjustments;
 
     @JsonCreator
     public RefundJson(@JsonProperty("refundId") final String refundId,
@@ -52,7 +52,7 @@ public class RefundJson extends JsonBase {
                       @JsonProperty("adjusted") final Boolean isAdjusted,
                       @JsonProperty("requestedDate") final DateTime requestedDate,
                       @JsonProperty("effectiveDate") final DateTime effectiveDate,
-                      @JsonProperty("adjustments") @Nullable final List<InvoiceItemJsonSimple> adjustments,
+                      @JsonProperty("adjustments") @Nullable final List<InvoiceItemJson> adjustments,
                       @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
         super(auditLogs);
         this.refundId = refundId;
@@ -72,10 +72,10 @@ public class RefundJson extends JsonBase {
     public RefundJson(final Refund refund, @Nullable final List<InvoiceItem> adjustments, @Nullable final List<AuditLog> auditLogs) {
         this(refund.getId().toString(), refund.getPaymentId().toString(), refund.getRefundAmount(), refund.getCurrency().toString(),
              refund.isAdjusted(), refund.getEffectiveDate(), refund.getEffectiveDate(),
-             adjustments == null ? null : ImmutableList.<InvoiceItemJsonSimple>copyOf(Collections2.transform(adjustments, new Function<InvoiceItem, InvoiceItemJsonSimple>() {
+             adjustments == null ? null : ImmutableList.<InvoiceItemJson>copyOf(Collections2.transform(adjustments, new Function<InvoiceItem, InvoiceItemJson>() {
                  @Override
-                 public InvoiceItemJsonSimple apply(@Nullable final InvoiceItem input) {
-                     return new InvoiceItemJsonSimple(input);
+                 public InvoiceItemJson apply(@Nullable final InvoiceItem input) {
+                     return new InvoiceItemJson(input);
                  }
              })),
              toAuditLogJson(auditLogs));
@@ -109,7 +109,7 @@ public class RefundJson extends JsonBase {
         return effectiveDate;
     }
 
-    public List<InvoiceItemJsonSimple> getAdjustments() {
+    public List<InvoiceItemJson> getAdjustments() {
         return adjustments;
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
index db66db3..34e7388 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
@@ -62,7 +62,7 @@ import com.ning.billing.jaxrs.json.ChargebackJson;
 import com.ning.billing.jaxrs.json.CustomFieldJson;
 import com.ning.billing.jaxrs.json.InvoiceEmailJson;
 import com.ning.billing.jaxrs.json.OverdueStateJson;
-import com.ning.billing.jaxrs.json.PaymentJsonSimple;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.util.Context;
@@ -378,9 +378,9 @@ public class AccountResource extends JaxRsResourceBase {
     public Response getPayments(@PathParam("accountId") final String accountId,
                                 @javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
         final List<Payment> payments = paymentApi.getAccountPayments(UUID.fromString(accountId), context.createContext(request));
-        final List<PaymentJsonSimple> result = new ArrayList<PaymentJsonSimple>(payments.size());
+        final List<PaymentJson> result = new ArrayList<PaymentJson>(payments.size());
         for (final Payment payment : payments) {
-            result.add(new PaymentJsonSimple(payment));
+            result.add(new PaymentJson(payment, null));
         }
         return Response.status(Status.OK).entity(result).build();
     }
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 48e74ff..c812057 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
@@ -56,10 +56,10 @@ import com.ning.billing.invoice.api.InvoiceItem;
 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.InvoiceItemJsonSimple;
+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.PaymentJsonSimple;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.util.Context;
 import com.ning.billing.jaxrs.util.JaxrsUriBuilder;
 import com.ning.billing.payment.api.Payment;
@@ -254,7 +254,7 @@ public class InvoiceResource extends JaxRsResourceBase {
     @Path("/{invoiceId:" + UUID_PATTERN + "}")
     @Consumes(APPLICATION_JSON)
     @Produces(APPLICATION_JSON)
-    public Response adjustInvoiceItem(final InvoiceItemJsonSimple json,
+    public Response adjustInvoiceItem(final InvoiceItemJson json,
                                       @PathParam("invoiceId") final String invoiceId,
                                       @QueryParam(QUERY_REQUESTED_DT) final String requestedDateTimeString,
                                       @HeaderParam(HDR_CREATED_BY) final String createdBy,
@@ -298,7 +298,7 @@ public class InvoiceResource extends JaxRsResourceBase {
     @Produces(APPLICATION_JSON)
     @Consumes(APPLICATION_JSON)
     @Path("/" +CHARGES)
-    public Response createExternalCharge(final InvoiceItemJsonSimple externalChargeJson,
+    public Response createExternalCharge(final InvoiceItemJson externalChargeJson,
                                          @QueryParam(QUERY_REQUESTED_DT) final String requestedDateTimeString,
                                          @HeaderParam(HDR_CREATED_BY) final String createdBy,
                                          @HeaderParam(HDR_REASON) final String reason,
@@ -337,7 +337,7 @@ public class InvoiceResource extends JaxRsResourceBase {
     @Produces(APPLICATION_JSON)
     @Consumes(APPLICATION_JSON)
     @Path("/{invoiceId:" + UUID_PATTERN + "}/" + CHARGES)
-    public Response createExternalChargeForInvoice(final InvoiceItemJsonSimple externalChargeJson,
+    public Response createExternalChargeForInvoice(final InvoiceItemJson externalChargeJson,
                                                    @PathParam("invoiceId") final String invoiceIdString,
                                                    @QueryParam(QUERY_REQUESTED_DT) final String requestedDateTimeString,
                                                    @HeaderParam(HDR_CREATED_BY) final String createdBy,
@@ -384,9 +384,9 @@ public class InvoiceResource extends JaxRsResourceBase {
         final List<Payment> payments = paymentApi.getInvoicePayments(UUID.fromString(invoiceId), tenantContext);
         final AuditLogsForPayments auditLogsForPayments = auditUserApi.getAuditLogsForPayments(payments, auditMode.getLevel(), tenantContext);
 
-        final List<PaymentJsonSimple> result = new ArrayList<PaymentJsonSimple>(payments.size());
+        final List<PaymentJson> result = new ArrayList<PaymentJson>(payments.size());
         for (final Payment cur : payments) {
-            result.add(new PaymentJsonSimple(cur, auditLogsForPayments.getPaymentsAuditLogs().get(cur.getId())));
+            result.add(new PaymentJson(cur, auditLogsForPayments.getPaymentsAuditLogs().get(cur.getId())));
         }
 
         return Response.status(Status.OK).entity(result).build();
@@ -396,7 +396,7 @@ public class InvoiceResource extends JaxRsResourceBase {
     @Produces(APPLICATION_JSON)
     @Consumes(APPLICATION_JSON)
     @Path("/" + PAYMENTS)
-    public Response payAllInvoices(final PaymentJsonSimple payment,
+    public Response payAllInvoices(final PaymentJson payment,
                                    @QueryParam(QUERY_PAYMENT_EXTERNAL) @DefaultValue("false") final Boolean externalPayment,
                                    @HeaderParam(HDR_CREATED_BY) final String createdBy,
                                    @HeaderParam(HDR_REASON) final String reason,
@@ -422,7 +422,7 @@ public class InvoiceResource extends JaxRsResourceBase {
     @Produces(APPLICATION_JSON)
     @Consumes(APPLICATION_JSON)
     @Path("/{invoiceId:" + UUID_PATTERN + "}/" + PAYMENTS)
-    public Response createInstantPayment(final PaymentJsonSimple payment,
+    public Response createInstantPayment(final PaymentJson payment,
                                          @QueryParam(QUERY_PAYMENT_EXTERNAL) @DefaultValue("false") final Boolean externalPayment,
                                          @HeaderParam(HDR_CREATED_BY) final String createdBy,
                                          @HeaderParam(HDR_REASON) final String reason,
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
index 01a17f1..0a65996 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PaymentResource.java
@@ -49,9 +49,8 @@ import com.ning.billing.invoice.api.InvoicePayment;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
 import com.ning.billing.jaxrs.json.ChargebackJson;
 import com.ning.billing.jaxrs.json.CustomFieldJson;
-import com.ning.billing.jaxrs.json.InvoiceItemJsonSimple;
-import com.ning.billing.jaxrs.json.PaymentJsonSimple;
-import com.ning.billing.jaxrs.json.PaymentJsonWithBundleKeys;
+import com.ning.billing.jaxrs.json.InvoiceItemJson;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.util.Context;
 import com.ning.billing.jaxrs.util.JaxrsUriBuilder;
@@ -108,7 +107,7 @@ public class PaymentResource extends JaxRsResourceBase {
         final UUID paymentId = UUID.fromString(paymentIdString);
         final Payment payment = paymentApi.getPayment(paymentId, false, tenantContext);
 
-        final PaymentJsonSimple paymentJsonSimple;
+        final PaymentJson paymentJson;
         if (withRefundsAndChargebacks) {
             final List<RefundJson> refunds = new ArrayList<RefundJson>();
             for (final Refund refund : paymentApi.getPaymentRefunds(paymentId, tenantContext)) {
@@ -120,20 +119,15 @@ public class PaymentResource extends JaxRsResourceBase {
                 chargebacks.add(new ChargebackJson(payment.getAccountId(), chargeback));
             }
 
-            final int nbOfPaymentAttempts = payment.getAttempts().size();
-            final String status = payment.getPaymentStatus().toString();
-            paymentJsonSimple = new PaymentJsonWithBundleKeys(payment,
-                                                              status,
-                                                              nbOfPaymentAttempts,
-                                                              null, // TODO - the keys are really only used for the timeline
-                                                              payment.getAccountId(),
+            paymentJson = new PaymentJson(payment,
+                                          null, // TODO - the keys are really only used for the timeline
                                                               refunds,
                                                               chargebacks);
         } else {
-            paymentJsonSimple = new PaymentJsonSimple(payment);
+            paymentJson = new PaymentJson(payment, null);
         }
 
-        return Response.status(Status.OK).entity(paymentJsonSimple).build();
+        return Response.status(Status.OK).entity(paymentJson).build();
     }
 
     @PUT
@@ -153,7 +147,7 @@ public class PaymentResource extends JaxRsResourceBase {
         final Account account = accountUserApi.getAccountById(payment.getAccountId(), callContext);
         final Payment newPayment = paymentApi.retryPayment(account, paymentId, callContext);
 
-        return Response.status(Status.OK).entity(new PaymentJsonSimple(newPayment)).build();
+        return Response.status(Status.OK).entity(new PaymentJson(newPayment, null)).build();
     }
 
 
@@ -218,7 +212,7 @@ public class PaymentResource extends JaxRsResourceBase {
         if (json.isAdjusted()) {
             if (json.getAdjustments() != null && json.getAdjustments().size() > 0) {
                 final Map<UUID, BigDecimal> adjustments = new HashMap<UUID, BigDecimal>();
-                for (final InvoiceItemJsonSimple item : json.getAdjustments()) {
+                for (final InvoiceItemJson item : json.getAdjustments()) {
                     adjustments.put(UUID.fromString(item.getInvoiceItemId()), item.getAmount());
                 }
                 result = paymentApi.createRefundWithItemsAdjustments(account, paymentUuid, adjustments, callContext);
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 5372103..f5042cb 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
@@ -38,12 +38,12 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
 
         final BundleJson bundleJson = createBundleWithSubscriptions();
         final InvoiceJsonSimple invoiceJsonSimple = createInvoice();
-        final PaymentJsonSimple paymentJsonSimple = createPayment(UUID.fromString(invoiceJsonSimple.getAccountId()),
+        final PaymentJson paymentJson = createPayment(UUID.fromString(invoiceJsonSimple.getAccountId()),
                                                                   UUID.fromString(invoiceJsonSimple.getInvoiceId()));
 
         final BundleTimelineJson bundleTimelineJson = new BundleTimelineJson(viewId,
                                                                              bundleJson,
-                                                                             ImmutableList.<PaymentJsonSimple>of(paymentJsonSimple),
+                                                                             ImmutableList.<PaymentJson>of(paymentJson),
                                                                              ImmutableList.<InvoiceJsonSimple>of(invoiceJsonSimple),
                                                                              reason);
 
@@ -81,7 +81,7 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
                                      targetDate, invoiceNumber, balance, accountId.toString(), null);
     }
 
-    private PaymentJsonSimple createPayment(final UUID accountId, final UUID invoiceId) {
+    private PaymentJson createPayment(final UUID accountId, final UUID invoiceId) {
         final UUID paymentId = UUID.randomUUID();
         final Integer paymentNumber = 17;
         final UUID paymentMethodId = UUID.randomUUID();
@@ -94,8 +94,8 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
         final String status = UUID.randomUUID().toString();
         final String gatewayErrorCode = "OK";
         final String gatewayErrorMsg = "Excellent...";
-        return new PaymentJsonSimple(amount, paidAmount, accountId.toString(), invoiceId.toString(), paymentId.toString(), paymentNumber.toString(),
+        return new PaymentJson(amount, paidAmount, accountId.toString(), invoiceId.toString(), paymentId.toString(), paymentNumber.toString(),
                                      paymentMethodId.toString(), paymentRequestedDate, paymentEffectiveDate, retryCount, currency, status,
-                                     gatewayErrorCode, gatewayErrorMsg, null);
+                                     gatewayErrorCode, gatewayErrorMsg, null, null, null, null);
     }
 }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
index 7a3798a..11c9028 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceItemJsonSimple.java
@@ -49,27 +49,27 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuiteNoDB {
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
-        final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId,
+        final InvoiceItemJson invoiceItemJson = new InvoiceItemJson(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId,
                                                                                       bundleId, subscriptionId, planName, phaseName, description,
                                                                                       startDate, endDate, amount, currency, auditLogs);
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItemId);
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceId);
-        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), linkedInvoiceItemId);
-        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), accountId);
-        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), bundleId);
-        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), subscriptionId);
-        Assert.assertEquals(invoiceItemJsonSimple.getPlanName(), planName);
-        Assert.assertEquals(invoiceItemJsonSimple.getPhaseName(), phaseName);
-        Assert.assertEquals(invoiceItemJsonSimple.getDescription(), description);
-        Assert.assertEquals(invoiceItemJsonSimple.getStartDate(), startDate);
-        Assert.assertEquals(invoiceItemJsonSimple.getEndDate(), endDate);
-        Assert.assertEquals(invoiceItemJsonSimple.getAmount(), amount);
-        Assert.assertEquals(invoiceItemJsonSimple.getCurrency(), currency);
-        Assert.assertEquals(invoiceItemJsonSimple.getAuditLogs(), auditLogs);
+        Assert.assertEquals(invoiceItemJson.getInvoiceItemId(), invoiceItemId);
+        Assert.assertEquals(invoiceItemJson.getInvoiceId(), invoiceId);
+        Assert.assertEquals(invoiceItemJson.getLinkedInvoiceItemId(), linkedInvoiceItemId);
+        Assert.assertEquals(invoiceItemJson.getAccountId(), accountId);
+        Assert.assertEquals(invoiceItemJson.getBundleId(), bundleId);
+        Assert.assertEquals(invoiceItemJson.getSubscriptionId(), subscriptionId);
+        Assert.assertEquals(invoiceItemJson.getPlanName(), planName);
+        Assert.assertEquals(invoiceItemJson.getPhaseName(), phaseName);
+        Assert.assertEquals(invoiceItemJson.getDescription(), description);
+        Assert.assertEquals(invoiceItemJson.getStartDate(), startDate);
+        Assert.assertEquals(invoiceItemJson.getEndDate(), endDate);
+        Assert.assertEquals(invoiceItemJson.getAmount(), amount);
+        Assert.assertEquals(invoiceItemJson.getCurrency(), currency);
+        Assert.assertEquals(invoiceItemJson.getAuditLogs(), auditLogs);
 
-        final String asJson = mapper.writeValueAsString(invoiceItemJsonSimple);
-        final InvoiceItemJsonSimple fromJson = mapper.readValue(asJson, InvoiceItemJsonSimple.class);
-        Assert.assertEquals(fromJson, invoiceItemJsonSimple);
+        final String asJson = mapper.writeValueAsString(invoiceItemJson);
+        final InvoiceItemJson fromJson = mapper.readValue(asJson, InvoiceItemJson.class);
+        Assert.assertEquals(fromJson, invoiceItemJson);
     }
 
     @Test(groups = "fast")
@@ -89,19 +89,19 @@ public class TestInvoiceItemJsonSimple extends JaxrsTestSuiteNoDB {
         Mockito.when(invoiceItem.getAmount()).thenReturn(BigDecimal.TEN);
         Mockito.when(invoiceItem.getCurrency()).thenReturn(Currency.EUR);
 
-        final InvoiceItemJsonSimple invoiceItemJsonSimple = new InvoiceItemJsonSimple(invoiceItem);
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceItemId(), invoiceItem.getId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getPlanName(), invoiceItem.getPlanName());
-        Assert.assertEquals(invoiceItemJsonSimple.getPhaseName(), invoiceItem.getPhaseName());
-        Assert.assertEquals(invoiceItemJsonSimple.getDescription(), invoiceItem.getDescription());
-        Assert.assertEquals(invoiceItemJsonSimple.getStartDate(), invoiceItem.getStartDate());
-        Assert.assertEquals(invoiceItemJsonSimple.getEndDate(), invoiceItem.getEndDate());
-        Assert.assertEquals(invoiceItemJsonSimple.getAmount(), invoiceItem.getAmount());
-        Assert.assertEquals(invoiceItemJsonSimple.getCurrency(), invoiceItem.getCurrency());
+        final InvoiceItemJson invoiceItemJson = new InvoiceItemJson(invoiceItem);
+        Assert.assertEquals(invoiceItemJson.getInvoiceItemId(), invoiceItem.getId().toString());
+        Assert.assertEquals(invoiceItemJson.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJson.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
+        Assert.assertEquals(invoiceItemJson.getAccountId(), invoiceItem.getAccountId().toString());
+        Assert.assertEquals(invoiceItemJson.getBundleId(), invoiceItem.getBundleId().toString());
+        Assert.assertEquals(invoiceItemJson.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
+        Assert.assertEquals(invoiceItemJson.getPlanName(), invoiceItem.getPlanName());
+        Assert.assertEquals(invoiceItemJson.getPhaseName(), invoiceItem.getPhaseName());
+        Assert.assertEquals(invoiceItemJson.getDescription(), invoiceItem.getDescription());
+        Assert.assertEquals(invoiceItemJson.getStartDate(), invoiceItem.getStartDate());
+        Assert.assertEquals(invoiceItemJson.getEndDate(), invoiceItem.getEndDate());
+        Assert.assertEquals(invoiceItemJson.getAmount(), invoiceItem.getAmount());
+        Assert.assertEquals(invoiceItemJson.getCurrency(), invoiceItem.getCurrency());
     }
 }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
index b792e95..960fd49 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
@@ -47,11 +47,11 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
         final String invoiceNumber = UUID.randomUUID().toString();
         final BigDecimal balance = BigDecimal.ZERO;
         final String accountId = UUID.randomUUID().toString();
-        final InvoiceItemJsonSimple invoiceItemJsonSimple = createInvoiceItemJson();
+        final InvoiceItemJson invoiceItemJson = createInvoiceItemJson();
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
         final InvoiceJsonWithItems invoiceJsonWithItems = new InvoiceJsonWithItems(amount, Currency.USD.toString(), creditAdj, refundAdj, invoiceId, invoiceDate,
                                                                                    targetDate, invoiceNumber, balance, accountId,
-                                                                                   ImmutableList.<InvoiceItemJsonSimple>of(invoiceItemJsonSimple), auditLogs);
+                                                                                   ImmutableList.<InvoiceItemJson>of(invoiceItemJson), auditLogs);
         Assert.assertEquals(invoiceJsonWithItems.getAmount(), amount);
         Assert.assertEquals(invoiceJsonWithItems.getCreditAdj(), creditAdj);
         Assert.assertEquals(invoiceJsonWithItems.getRefundAdj(), refundAdj);
@@ -62,7 +62,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
         Assert.assertEquals(invoiceJsonWithItems.getBalance(), balance);
         Assert.assertEquals(invoiceJsonWithItems.getAccountId(), accountId);
         Assert.assertEquals(invoiceJsonWithItems.getItems().size(), 1);
-        Assert.assertEquals(invoiceJsonWithItems.getItems().get(0), invoiceItemJsonSimple);
+        Assert.assertEquals(invoiceJsonWithItems.getItems().get(0), invoiceItemJson);
         Assert.assertEquals(invoiceJsonWithItems.getAuditLogs(), auditLogs);
 
         final String asJson = mapper.writeValueAsString(invoiceJsonWithItems);
@@ -95,22 +95,22 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
         Assert.assertEquals(invoiceJsonWithItems.getItems().size(), 1);
         Assert.assertNull(invoiceJsonWithItems.getAuditLogs());
 
-        final InvoiceItemJsonSimple invoiceItemJsonSimple = invoiceJsonWithItems.getItems().get(0);
-        Assert.assertEquals(invoiceItemJsonSimple.getInvoiceId(), invoiceItem.getInvoiceId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getAccountId(), invoiceItem.getAccountId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getBundleId(), invoiceItem.getBundleId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
-        Assert.assertEquals(invoiceItemJsonSimple.getPlanName(), invoiceItem.getPlanName());
-        Assert.assertEquals(invoiceItemJsonSimple.getPhaseName(), invoiceItem.getPhaseName());
-        Assert.assertEquals(invoiceItemJsonSimple.getDescription(), invoiceItem.getDescription());
-        Assert.assertEquals(invoiceItemJsonSimple.getStartDate(), invoiceItem.getStartDate());
-        Assert.assertEquals(invoiceItemJsonSimple.getEndDate(), invoiceItem.getEndDate());
-        Assert.assertEquals(invoiceItemJsonSimple.getAmount(), invoiceItem.getAmount());
-        Assert.assertEquals(invoiceItemJsonSimple.getCurrency(), invoiceItem.getCurrency());
+        final InvoiceItemJson invoiceItemJson = invoiceJsonWithItems.getItems().get(0);
+        Assert.assertEquals(invoiceItemJson.getInvoiceId(), invoiceItem.getInvoiceId().toString());
+        Assert.assertEquals(invoiceItemJson.getLinkedInvoiceItemId(), invoiceItem.getLinkedItemId().toString());
+        Assert.assertEquals(invoiceItemJson.getAccountId(), invoiceItem.getAccountId().toString());
+        Assert.assertEquals(invoiceItemJson.getBundleId(), invoiceItem.getBundleId().toString());
+        Assert.assertEquals(invoiceItemJson.getSubscriptionId(), invoiceItem.getSubscriptionId().toString());
+        Assert.assertEquals(invoiceItemJson.getPlanName(), invoiceItem.getPlanName());
+        Assert.assertEquals(invoiceItemJson.getPhaseName(), invoiceItem.getPhaseName());
+        Assert.assertEquals(invoiceItemJson.getDescription(), invoiceItem.getDescription());
+        Assert.assertEquals(invoiceItemJson.getStartDate(), invoiceItem.getStartDate());
+        Assert.assertEquals(invoiceItemJson.getEndDate(), invoiceItem.getEndDate());
+        Assert.assertEquals(invoiceItemJson.getAmount(), invoiceItem.getAmount());
+        Assert.assertEquals(invoiceItemJson.getCurrency(), invoiceItem.getCurrency());
     }
 
-    private InvoiceItemJsonSimple createInvoiceItemJson() {
+    private InvoiceItemJson createInvoiceItemJson() {
         final String invoiceItemId = UUID.randomUUID().toString();
         final String invoiceId = UUID.randomUUID().toString();
         final String linkedInvoiceItemId = UUID.randomUUID().toString();
@@ -124,7 +124,7 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
         final LocalDate endDate = clock.getUTCToday();
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
-        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
+        return new InvoiceItemJson(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
                                          amount, currency, null);
     }
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
index c7c870a..1d79e0c 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestRefundJson.java
@@ -43,7 +43,7 @@ public class TestRefundJson extends JaxrsTestSuiteNoDB {
         final boolean isAdjusted = true;
         final DateTime requestedDate = clock.getUTCNow();
         final DateTime effectiveDate = clock.getUTCNow();
-        final List<InvoiceItemJsonSimple> adjustments = ImmutableList.<InvoiceItemJsonSimple>of(createInvoiceItemJson());
+        final List<InvoiceItemJson> adjustments = ImmutableList.<InvoiceItemJson>of(createInvoiceItemJson());
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
         final RefundJson refundJson = new RefundJson(refundId, paymentId, amount, currency, isAdjusted, requestedDate,
                                                      effectiveDate, adjustments, auditLogs);
@@ -62,7 +62,7 @@ public class TestRefundJson extends JaxrsTestSuiteNoDB {
         Assert.assertEquals(fromJson, refundJson);
     }
 
-    private InvoiceItemJsonSimple createInvoiceItemJson() {
+    private InvoiceItemJson createInvoiceItemJson() {
         final String invoiceItemId = UUID.randomUUID().toString();
         final String invoiceId = UUID.randomUUID().toString();
         final String linkedInvoiceItemId = UUID.randomUUID().toString();
@@ -77,7 +77,7 @@ public class TestRefundJson extends JaxrsTestSuiteNoDB {
         final BigDecimal amount = BigDecimal.TEN;
         final Currency currency = Currency.MXN;
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
-        return new InvoiceItemJsonSimple(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
+        return new InvoiceItemJson(invoiceItemId, invoiceId, linkedInvoiceItemId, accountId, bundleId, subscriptionId,
                                          planName, phaseName, description, startDate, endDate,
                                          amount, currency, auditLogs);
     }
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 ab8dc2c..e1e105a 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
@@ -47,12 +47,11 @@ import com.ning.billing.jaxrs.json.AccountTimelineJson;
 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.InvoiceItemJsonSimple;
+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.OverdueStateJson;
-import com.ning.billing.jaxrs.json.PaymentJsonSimple;
-import com.ning.billing.jaxrs.json.PaymentJsonWithBundleKeys;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson.PaymentMethodPluginDetailJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson.PaymentMethodProperties;
@@ -543,7 +542,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
             queryParams.put(JaxrsResource.QUERY_REQUESTED_DT, requestedDate.toDateTimeISO().toString());
         }
 
-        final InvoiceItemJsonSimple adjustment = new InvoiceItemJsonSimple(invoiceItemId, null, null, accountId, null, null, null, null,
+        final InvoiceItemJson adjustment = new InvoiceItemJson(invoiceItemId, null, null, accountId, null, null, null, null,
                                                                            null, null, null, amount, currency, null);
         final String adjustmentJson = mapper.writeValueAsString(adjustment);
         final Response response = doPost(uri, adjustmentJson, queryParams, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -568,7 +567,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
             queryParams.put(JaxrsResource.QUERY_REQUESTED_DT, requestedDate.toDateTimeISO().toString());
         }
 
-        final InvoiceItemJsonSimple externalCharge = new InvoiceItemJsonSimple(null, invoiceId, null, accountId, bundleId, null, null, null,
+        final InvoiceItemJson externalCharge = new InvoiceItemJson(null, invoiceId, null, accountId, bundleId, null, null, null,
                                                                                null, null, null, amount, currency, null);
         final String externalChargeJson = mapper.writeValueAsString(externalCharge);
         final Response response = doPost(uri, externalChargeJson, queryParams, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -594,15 +593,15 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
     // PAYMENT UTILITIES
     //
 
-    protected PaymentJsonSimple getPayment(final String paymentId) throws IOException {
-        return doGetPayment(paymentId, DEFAULT_EMPTY_QUERY, PaymentJsonSimple.class);
+    protected PaymentJson getPayment(final String paymentId) throws IOException {
+        return doGetPayment(paymentId, DEFAULT_EMPTY_QUERY, PaymentJson.class);
     }
 
-    protected PaymentJsonWithBundleKeys getPaymentWithRefundsAndChargebacks(final String paymentId) throws IOException {
-        return doGetPayment(paymentId, ImmutableMap.<String, String>of(JaxrsResource.QUERY_PAYMENT_WITH_REFUNDS_AND_CHARGEBACKS, "true"), PaymentJsonWithBundleKeys.class);
+    protected PaymentJson getPaymentWithRefundsAndChargebacks(final String paymentId) throws IOException {
+        return doGetPayment(paymentId, ImmutableMap.<String, String>of(JaxrsResource.QUERY_PAYMENT_WITH_REFUNDS_AND_CHARGEBACKS, "true"), PaymentJson.class);
     }
 
-    protected <T extends PaymentJsonSimple> T doGetPayment(final String paymentId, final Map<String, String> queryParams, final Class<T> clazz) throws IOException {
+    protected <T extends PaymentJson> T doGetPayment(final String paymentId, final Map<String, String> queryParams, final Class<T> clazz) throws IOException {
         final String paymentURI = JaxrsResource.PAYMENTS_PATH + "/" + paymentId;
 
         final Response paymentResponse = doGet(paymentURI, queryParams, DEFAULT_HTTP_TIMEOUT_SEC);
@@ -664,42 +663,42 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertEquals(response.getStatusCode(), javax.ws.rs.core.Response.Status.OK.getStatusCode());
     }
 
-    protected List<PaymentJsonSimple> getPaymentsForAccount(final String accountId) throws IOException {
+    protected List<PaymentJson> getPaymentsForAccount(final String accountId) throws IOException {
         final String paymentsURI = JaxrsResource.ACCOUNTS_PATH + "/" + accountId + "/" + JaxrsResource.PAYMENTS;
         final Response paymentsResponse = doGet(paymentsURI, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
         assertEquals(paymentsResponse.getStatusCode(), Status.OK.getStatusCode());
         final String paymentsBaseJson = paymentsResponse.getResponseBody();
 
-        final List<PaymentJsonSimple> paymentJsonSimples = mapper.readValue(paymentsBaseJson, new TypeReference<List<PaymentJsonSimple>>() {});
-        assertNotNull(paymentJsonSimples);
+        final List<PaymentJson> paymentJsons = mapper.readValue(paymentsBaseJson, new TypeReference<List<PaymentJson>>() {});
+        assertNotNull(paymentJsons);
 
-        return paymentJsonSimples;
+        return paymentJsons;
     }
 
-    protected List<PaymentJsonSimple> getPaymentsForInvoice(final String invoiceId) throws IOException {
+    protected List<PaymentJson> getPaymentsForInvoice(final String invoiceId) throws IOException {
         final String uri = JaxrsResource.INVOICES_PATH + "/" + invoiceId + "/" + JaxrsResource.PAYMENTS;
         final Response response = doGet(uri, DEFAULT_EMPTY_QUERY, DEFAULT_HTTP_TIMEOUT_SEC);
 
         Assert.assertEquals(response.getStatusCode(), Status.OK.getStatusCode());
         final String baseJson = response.getResponseBody();
-        final List<PaymentJsonSimple> objFromJson = mapper.readValue(baseJson, new TypeReference<List<PaymentJsonSimple>>() {});
+        final List<PaymentJson> objFromJson = mapper.readValue(baseJson, new TypeReference<List<PaymentJson>>() {});
         assertNotNull(objFromJson);
 
         return objFromJson;
     }
 
     protected void payAllInvoices(final AccountJson accountJson, final Boolean externalPayment) throws IOException {
-        final PaymentJsonSimple payment = new PaymentJsonSimple(null, null, accountJson.getAccountId(), null, null, null, null,
-                                                                null, null, 0, null, null, null, null, null);
+        final PaymentJson payment = new PaymentJson(null, null, accountJson.getAccountId(), null, null, null, null,
+                                                                null, null, 0, null, null, null, null, null, null, null, null);
         final String postJson = mapper.writeValueAsString(payment);
 
         final String uri = JaxrsResource.INVOICES_PATH + "/" + JaxrsResource.PAYMENTS;
         doPost(uri, postJson, ImmutableMap.<String, String>of("externalPayment", externalPayment.toString()), DEFAULT_HTTP_TIMEOUT_SEC);
     }
 
-    protected List<PaymentJsonSimple> createInstaPayment(final AccountJson accountJson, final InvoiceJsonSimple invoice) throws IOException {
-        final PaymentJsonSimple payment = new PaymentJsonSimple(invoice.getAmount(), BigDecimal.ZERO, accountJson.getAccountId(),
-                                                                invoice.getInvoiceId(), null, null, null, null, null, 0, null, null, null, null, null);
+    protected List<PaymentJson> createInstaPayment(final AccountJson accountJson, final InvoiceJsonSimple 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);
 
         final String uri = JaxrsResource.INVOICES_PATH + "/" + invoice.getInvoiceId() + "/" + JaxrsResource.PAYMENTS;
@@ -708,10 +707,10 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         return getPaymentsForInvoice(invoice.getInvoiceId());
     }
 
-    protected List<PaymentJsonSimple> createExternalPayment(final AccountJson accountJson, final String invoiceId, final BigDecimal paidAmount) throws IOException {
-        final PaymentJsonSimple payment = new PaymentJsonSimple(paidAmount, BigDecimal.ZERO, accountJson.getAccountId(),
+    protected List<PaymentJson> createExternalPayment(final AccountJson accountJson, final String invoiceId, final BigDecimal paidAmount) throws IOException {
+        final PaymentJson payment = new PaymentJson(paidAmount, BigDecimal.ZERO, accountJson.getAccountId(),
                                                                 invoiceId, null, null, null, null, null, 0,
-                                                                null, null, null, null, null);
+                                                                null, null, null, null, null, null, null, null);
         final String postJson = mapper.writeValueAsString(payment);
 
         final String paymentURI = JaxrsResource.INVOICES_PATH + "/" + invoiceId + "/" + JaxrsResource.PAYMENTS;
@@ -787,9 +786,9 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
     private RefundJson doCreateRefund(final String paymentId, final BigDecimal amount, final boolean adjusted, final Map<String, BigDecimal> itemAdjustments) throws IOException {
         final String uri = JaxrsResource.PAYMENTS_PATH + "/" + paymentId + "/" + JaxrsResource.REFUNDS;
 
-        final List<InvoiceItemJsonSimple> adjustments = new ArrayList<InvoiceItemJsonSimple>();
+        final List<InvoiceItemJson> adjustments = new ArrayList<InvoiceItemJson>();
         for (final String itemId : itemAdjustments.keySet()) {
-            adjustments.add(new InvoiceItemJsonSimple(itemId, null, null, null, null, null, null, null, null, null, null,
+            adjustments.add(new InvoiceItemJson(itemId, null, null, null, null, null, null, null, null, null, null,
                                                       itemAdjustments.get(itemId), null, null));
         }
         final RefundJson refundJson = new RefundJson(null, paymentId, amount, DEFAULT_CURRENCY, adjusted, null, null, adjustments, null);
@@ -808,9 +807,9 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
         assertNotNull(retrievedRefundJson);
         // Verify we have the adjusted items
         if (retrievedRefundJson.getAdjustments() != null) {
-            final Set<String> allLinkedItemIds = new HashSet<String>(Collections2.transform(retrievedRefundJson.getAdjustments(), new Function<InvoiceItemJsonSimple, String>() {
+            final Set<String> allLinkedItemIds = new HashSet<String>(Collections2.transform(retrievedRefundJson.getAdjustments(), new Function<InvoiceItemJson, String>() {
                 @Override
-                public String apply(@Nullable final InvoiceItemJsonSimple input) {
+                public String apply(@Nullable final InvoiceItemJson input) {
                     if (input != null) {
                         return input.getLinkedInvoiceItemId();
                     } else {
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestAccount.java b/server/src/test/java/com/ning/billing/jaxrs/TestAccount.java
index bb61ac3..e559557 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestAccount.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestAccount.java
@@ -32,7 +32,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.CustomFieldJson;
-import com.ning.billing.jaxrs.json.PaymentJsonSimple;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.json.TagJson;
@@ -248,7 +248,7 @@ public class TestAccount extends TestJaxrsBase {
         final AccountJson accountJson = createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Verify payments
-        final List<PaymentJsonSimple> objFromJson = getPaymentsForAccount(accountJson.getAccountId());
+        final List<PaymentJson> objFromJson = getPaymentsForAccount(accountJson.getAccountId());
         Assert.assertEquals(objFromJson.size(), 1);
 
         // Verify refunds
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 b5227f6..52900d8 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestAccountTimeline.java
@@ -32,8 +32,7 @@ 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.PaymentJsonSimple;
-import com.ning.billing.jaxrs.json.PaymentJsonWithBundleKeys;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson.SubscriptionReadEventJson;
 import com.ning.billing.util.api.AuditLevel;
@@ -80,7 +79,7 @@ public class TestAccountTimeline extends TestJaxrsBase {
                                creditAmount, clock.getUTCNow(), creditEffectiveDate);
 
         // Add refund
-        final PaymentJsonSimple postedPayment = getPaymentsForAccount(accountJson.getAccountId()).get(0);
+        final PaymentJson postedPayment = getPaymentsForAccount(accountJson.getAccountId()).get(0);
         final BigDecimal refundAmount = BigDecimal.ONE;
         createRefund(postedPayment.getPaymentId(), refundAmount);
 
@@ -108,7 +107,7 @@ public class TestAccountTimeline extends TestJaxrsBase {
 
             // Verify payments
             Assert.assertEquals(timeline.getPayments().size(), 1);
-            final PaymentJsonWithBundleKeys paymentJson = timeline.getPayments().get(0);
+            final PaymentJson paymentJson = timeline.getPayments().get(0);
 
             // Verify refunds
             Assert.assertEquals(paymentJson.getRefunds().size(), 1);
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 4b92c61..ec96aeb 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestChargeback.java
@@ -33,7 +33,7 @@ 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.PaymentJsonSimple;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson;
 import com.ning.billing.jaxrs.resources.JaxrsResource;
 import com.ning.http.client.Response;
@@ -50,13 +50,13 @@ public class TestChargeback extends TestJaxrsBase {
 
     @Test(groups = "slow")
     public void testAddChargeback() throws Exception {
-        final PaymentJsonSimple payment = createAccountWithInvoiceAndPayment();
+        final PaymentJson payment = createAccountWithInvoiceAndPayment();
         createAndVerifyChargeback(payment);
     }
 
     @Test(groups = "slow")
     public void testMultipleChargeback() throws Exception {
-        final PaymentJsonSimple payment = createAccountWithInvoiceAndPayment();
+        final PaymentJson payment = createAccountWithInvoiceAndPayment();
 
         // We get a 249.95 payment so we do 4 chargeback and then the fifth should fail
         final ChargebackJson input = new ChargebackJson(null, null, null, new BigDecimal("50.00"), payment.getPaymentId(), null, null);
@@ -94,7 +94,7 @@ public class TestChargeback extends TestJaxrsBase {
 
     @Test(groups = "slow")
     public void testAddChargebackForDeletedPaymentMethod() throws Exception {
-        final PaymentJsonSimple payment = createAccountWithInvoiceAndPayment();
+        final PaymentJson payment = createAccountWithInvoiceAndPayment();
 
         // Check the payment method exists
         assertEquals(getAccountById(payment.getAccountId()).getPaymentMethodId(), payment.getPaymentMethodId());
@@ -149,7 +149,7 @@ public class TestChargeback extends TestJaxrsBase {
         //assertEquals(response.getStatusCode(),Status.NO_CONTENT.getStatusCode(), response.getResponseBody());
     }
 
-    private void createAndVerifyChargeback(final PaymentJsonSimple payment) throws IOException {
+    private void createAndVerifyChargeback(final PaymentJson payment) throws IOException {
         final ChargebackJson input = new ChargebackJson(null, null, null, BigDecimal.TEN, payment.getPaymentId(), null, null);
         final String jsonInput = mapper.writeValueAsString(input);
 
@@ -187,7 +187,7 @@ public class TestChargeback extends TestJaxrsBase {
         assertTrue(objFromJson.getAmount().compareTo(input.getAmount()) == 0);
     }
 
-    private PaymentJsonSimple createAccountWithInvoiceAndPayment() throws Exception {
+    private PaymentJson createAccountWithInvoiceAndPayment() throws Exception {
         final InvoiceJsonSimple invoice = createAccountWithInvoice();
         return getPayment(invoice);
     }
@@ -218,13 +218,13 @@ public class TestChargeback extends TestJaxrsBase {
         return objFromJson.get(1);
     }
 
-    private PaymentJsonSimple getPayment(final InvoiceJsonSimple invoice) throws IOException {
+    private PaymentJson getPayment(final InvoiceJsonSimple 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);
 
         Assert.assertEquals(response.getStatusCode(), Status.OK.getStatusCode());
         final String baseJson = response.getResponseBody();
-        final List<PaymentJsonSimple> objFromJson = mapper.readValue(baseJson, new TypeReference<List<PaymentJsonSimple>>() {});
+        final List<PaymentJson> objFromJson = mapper.readValue(baseJson, new TypeReference<List<PaymentJson>>() {});
         assertNotNull(objFromJson);
         assertEquals(objFromJson.size(), 1);
 
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 9dfb817..bc85d8f 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestInvoice.java
@@ -27,10 +27,10 @@ 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.InvoiceItemJsonSimple;
+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.PaymentJsonSimple;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.payment.provider.ExternalPaymentProviderPlugin;
 import com.ning.billing.util.api.AuditLevel;
@@ -91,7 +91,7 @@ public class TestInvoice extends TestJaxrsBase {
         assertEquals(invoices.size(), 2);
 
         for (final InvoiceJsonSimple cur : invoices) {
-            final List<PaymentJsonSimple> objFromJson = getPaymentsForInvoice(cur.getInvoiceId());
+            final List<PaymentJson> objFromJson = getPaymentsForInvoice(cur.getInvoiceId());
 
             if (cur.getAmount().compareTo(BigDecimal.ZERO) == 0) {
                 assertEquals(objFromJson.size(), 0);
@@ -143,7 +143,7 @@ public class TestInvoice extends TestJaxrsBase {
             }
 
             // CREATE INSTA PAYMENT
-            final List<PaymentJsonSimple> objFromJson = createInstaPayment(accountJson, cur);
+            final List<PaymentJson> objFromJson = createInstaPayment(accountJson, cur);
             assertEquals(objFromJson.size(), 1);
             assertEquals(cur.getAmount().compareTo(objFromJson.get(0).getAmount()), 0);
         }
@@ -154,7 +154,7 @@ public class TestInvoice extends TestJaxrsBase {
         final AccountJson accountJson = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
         // Verify we didn't get any payment
-        final List<PaymentJsonSimple> noPaymentsFromJson = getPaymentsForAccount(accountJson.getAccountId());
+        final List<PaymentJson> noPaymentsFromJson = getPaymentsForAccount(accountJson.getAccountId());
         assertEquals(noPaymentsFromJson.size(), 0);
 
         // Get the invoices
@@ -168,7 +168,7 @@ public class TestInvoice extends TestJaxrsBase {
         createExternalPayment(accountJson, invoiceId, paidAmount);
 
         // Verify we indeed got the payment
-        final List<PaymentJsonSimple> paymentsFromJson = getPaymentsForAccount(accountJson.getAccountId());
+        final List<PaymentJson> paymentsFromJson = getPaymentsForAccount(accountJson.getAccountId());
         assertEquals(paymentsFromJson.size(), 1);
         assertEquals(paymentsFromJson.get(0).getPaidAmount().compareTo(paidAmount), 0);
 
@@ -192,7 +192,7 @@ public class TestInvoice extends TestJaxrsBase {
         final InvoiceJsonWithItems invoice = invoices.get(1);
         // Verify the invoice we picked is non zero
         assertEquals(invoice.getAmount().compareTo(BigDecimal.ZERO), 1);
-        final InvoiceItemJsonSimple invoiceItem = invoice.getItems().get(0);
+        final InvoiceItemJson invoiceItem = invoice.getItems().get(0);
         // Verify the item we picked is non zero
         assertEquals(invoiceItem.getAmount().compareTo(BigDecimal.ZERO), 1);
 
@@ -249,7 +249,7 @@ public class TestInvoice extends TestJaxrsBase {
         final InvoiceJsonWithItems invoice = invoices.get(1);
         // Verify the invoice we picked is non zero
         assertEquals(invoice.getAmount().compareTo(BigDecimal.ZERO), 1);
-        final InvoiceItemJsonSimple invoiceItem = invoice.getItems().get(0);
+        final InvoiceItemJson invoiceItem = invoice.getItems().get(0);
         // Verify the item we picked is non zero
         assertEquals(invoiceItem.getAmount().compareTo(BigDecimal.ZERO), 1);
 
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 b1a4fb3..f885db7 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestPayment.java
@@ -25,11 +25,10 @@ import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.ning.billing.jaxrs.json.AccountJson;
-import com.ning.billing.jaxrs.json.InvoiceItemJsonSimple;
+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.PaymentJsonSimple;
-import com.ning.billing.jaxrs.json.PaymentJsonWithBundleKeys;
+import com.ning.billing.jaxrs.json.PaymentJson;
 import com.ning.billing.jaxrs.json.PaymentMethodJson;
 import com.ning.billing.jaxrs.json.RefundJson;
 
@@ -37,146 +36,146 @@ public class TestPayment extends TestJaxrsBase {
 
     @Test(groups = "slow")
     public void testRetrievePayment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
-        final PaymentJsonSimple retrievedPaymentJsonSimple = getPayment(paymentJsonSimple.getPaymentId());
-        Assert.assertEquals(retrievedPaymentJsonSimple, paymentJsonSimple);
+        final PaymentJson retrievedPaymentJson = getPayment(paymentJson.getPaymentId());
+        Assert.assertEquals(retrievedPaymentJson, paymentJson);
     }
 
     @Test(groups = "slow")
     public void testFullRefundWithNoAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Issue a refund for the full amount
-        final BigDecimal refundAmount = paymentJsonSimple.getAmount();
+        final BigDecimal refundAmount = paymentJson.getAmount();
         final BigDecimal expectedInvoiceBalance = refundAmount;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefund(paymentJsonSimple.getPaymentId(), refundAmount);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        final RefundJson refundJsonCheck = createRefund(paymentJson.getPaymentId(), refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     @Test(groups = "slow")
     public void testPartialRefundWithNoAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Issue a refund for a fraction of the amount
-        final BigDecimal refundAmount = getFractionOfAmount(paymentJsonSimple.getAmount());
+        final BigDecimal refundAmount = getFractionOfAmount(paymentJson.getAmount());
         final BigDecimal expectedInvoiceBalance = refundAmount;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefund(paymentJsonSimple.getPaymentId(), refundAmount);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        final RefundJson refundJsonCheck = createRefund(paymentJson.getPaymentId(), refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     @Test(groups = "slow")
     public void testFullRefundWithInvoiceAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Issue a refund for the full amount
-        final BigDecimal refundAmount = paymentJsonSimple.getAmount();
+        final BigDecimal refundAmount = paymentJson.getAmount();
         final BigDecimal expectedInvoiceBalance = BigDecimal.ZERO;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefundWithInvoiceAdjustment(paymentJsonSimple.getPaymentId(), refundAmount);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        final RefundJson refundJsonCheck = createRefundWithInvoiceAdjustment(paymentJson.getPaymentId(), refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     @Test(groups = "slow")
     public void testPartialRefundWithInvoiceAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Issue a refund for a fraction of the amount
-        final BigDecimal refundAmount = getFractionOfAmount(paymentJsonSimple.getAmount());
+        final BigDecimal refundAmount = getFractionOfAmount(paymentJson.getAmount());
         final BigDecimal expectedInvoiceBalance = BigDecimal.ZERO;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefundWithInvoiceAdjustment(paymentJsonSimple.getPaymentId(), refundAmount);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        final RefundJson refundJsonCheck = createRefundWithInvoiceAdjustment(paymentJson.getPaymentId(), refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     @Test(groups = "slow")
     public void testRefundWithFullInvoiceItemAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Get the individual items for the invoice
-        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJsonSimple.getInvoiceId());
-        final InvoiceItemJsonSimple itemToAdjust = invoice.getItems().get(0);
+        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
+        final InvoiceItemJson itemToAdjust = invoice.getItems().get(0);
 
         // Issue a refund for the full amount
         final BigDecimal refundAmount = itemToAdjust.getAmount();
         final BigDecimal expectedInvoiceBalance = BigDecimal.ZERO;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefundWithInvoiceItemAdjustment(paymentJsonSimple.getPaymentId(),
+        final RefundJson refundJsonCheck = createRefundWithInvoiceItemAdjustment(paymentJson.getPaymentId(),
                                                                                  itemToAdjust.getInvoiceItemId(),
                                                                                  null /* null means full adjustment for that item */);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     @Test(groups = "slow")
     public void testPartialRefundWithInvoiceItemAdjustment() throws Exception {
-        final PaymentJsonSimple paymentJsonSimple = setupScenarioWithPayment();
+        final PaymentJson paymentJson = setupScenarioWithPayment();
 
         // Get the individual items for the invoice
-        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJsonSimple.getInvoiceId());
-        final InvoiceItemJsonSimple itemToAdjust = invoice.getItems().get(0);
+        final InvoiceJsonWithItems invoice = getInvoiceWithItems(paymentJson.getInvoiceId());
+        final InvoiceItemJson itemToAdjust = invoice.getItems().get(0);
 
         // Issue a refund for a fraction of the amount
         final BigDecimal refundAmount = getFractionOfAmount(itemToAdjust.getAmount());
         final BigDecimal expectedInvoiceBalance = BigDecimal.ZERO;
 
         // Post and verify the refund
-        final RefundJson refundJsonCheck = createRefundWithInvoiceItemAdjustment(paymentJsonSimple.getPaymentId(),
+        final RefundJson refundJsonCheck = createRefundWithInvoiceItemAdjustment(paymentJson.getPaymentId(),
                                                                                  itemToAdjust.getInvoiceItemId(),
                                                                                  refundAmount);
-        verifyRefund(paymentJsonSimple, refundJsonCheck, refundAmount);
+        verifyRefund(paymentJson, refundJsonCheck, refundAmount);
 
         // Verify the invoice balance
-        verifyInvoice(paymentJsonSimple, expectedInvoiceBalance);
+        verifyInvoice(paymentJson, expectedInvoiceBalance);
     }
 
     private BigDecimal getFractionOfAmount(final BigDecimal amount) {
         return amount.divide(BigDecimal.TEN).setScale(2, BigDecimal.ROUND_HALF_UP);
     }
 
-    private PaymentJsonSimple setupScenarioWithPayment() throws Exception {
+    private PaymentJson setupScenarioWithPayment() throws Exception {
         final AccountJson accountJson = createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
 
-        final List<PaymentJsonSimple> firstPaymentForAccount = getPaymentsForAccount(accountJson.getAccountId());
+        final List<PaymentJson> firstPaymentForAccount = getPaymentsForAccount(accountJson.getAccountId());
         Assert.assertEquals(firstPaymentForAccount.size(), 1);
 
-        final PaymentJsonSimple paymentJsonSimple = firstPaymentForAccount.get(0);
+        final PaymentJson paymentJson = firstPaymentForAccount.get(0);
 
         // Check the PaymentMethod from paymentMethodId returned in the Payment object
-        final String paymentMethodId = paymentJsonSimple.getPaymentMethodId();
+        final String paymentMethodId = paymentJson.getPaymentMethodId();
         final PaymentMethodJson paymentMethodJson = getPaymentMethodWithPluginInfo(paymentMethodId);
         Assert.assertEquals(paymentMethodJson.getPaymentMethodId(), paymentMethodId);
         Assert.assertEquals(paymentMethodJson.getAccountId(), accountJson.getAccountId());
 
         // Verify the refunds
-        final List<RefundJson> objRefundFromJson = getRefundsForPayment(paymentJsonSimple.getPaymentId());
+        final List<RefundJson> objRefundFromJson = getRefundsForPayment(paymentJson.getPaymentId());
         Assert.assertEquals(objRefundFromJson.size(), 0);
-        return paymentJsonSimple;
+        return paymentJson;
     }
 
-    private void verifyRefund(final PaymentJsonSimple paymentJsonSimple, final RefundJson refundJsonCheck, final BigDecimal refundAmount) throws IOException {
-        Assert.assertEquals(refundJsonCheck.getPaymentId(), paymentJsonSimple.getPaymentId());
+    private void verifyRefund(final PaymentJson paymentJson, final RefundJson refundJsonCheck, final BigDecimal refundAmount) throws IOException {
+        Assert.assertEquals(refundJsonCheck.getPaymentId(), paymentJson.getPaymentId());
         Assert.assertEquals(refundJsonCheck.getAmount().setScale(2, RoundingMode.HALF_UP), refundAmount.setScale(2, RoundingMode.HALF_UP));
         Assert.assertEquals(refundJsonCheck.getCurrency(), DEFAULT_CURRENCY);
         Assert.assertEquals(refundJsonCheck.getEffectiveDate().getYear(), clock.getUTCNow().getYear());
@@ -187,31 +186,31 @@ public class TestPayment extends TestJaxrsBase {
         Assert.assertEquals(refundJsonCheck.getRequestedDate().getDayOfMonth(), clock.getUTCNow().getDayOfMonth());
 
         // Verify the refunds
-        final List<RefundJson> retrievedRefunds = getRefundsForPayment(paymentJsonSimple.getPaymentId());
+        final List<RefundJson> retrievedRefunds = getRefundsForPayment(paymentJson.getPaymentId());
         Assert.assertEquals(retrievedRefunds.size(), 1);
 
         // Verify the refund via the payment API
-        final PaymentJsonWithBundleKeys retrievedPaymentJsonWithBundleKeys = getPaymentWithRefundsAndChargebacks(paymentJsonSimple.getPaymentId());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getPaymentId(), paymentJsonSimple.getPaymentId());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getPaidAmount().setScale(2, RoundingMode.HALF_UP), paymentJsonSimple.getPaidAmount().add(refundAmount.negate()).setScale(2, RoundingMode.HALF_UP));
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getAmount().setScale(2, RoundingMode.HALF_UP), paymentJsonSimple.getAmount().setScale(2, RoundingMode.HALF_UP));
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getAccountId(), paymentJsonSimple.getAccountId());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getInvoiceId(), paymentJsonSimple.getInvoiceId());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getRequestedDate(), paymentJsonSimple.getRequestedDate());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getEffectiveDate(), paymentJsonSimple.getEffectiveDate());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getRetryCount(), paymentJsonSimple.getRetryCount());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getCurrency(), paymentJsonSimple.getCurrency());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getStatus(), paymentJsonSimple.getStatus());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getGatewayErrorCode(), paymentJsonSimple.getGatewayErrorCode());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getGatewayErrorMsg(), paymentJsonSimple.getGatewayErrorMsg());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getPaymentMethodId(), paymentJsonSimple.getPaymentMethodId());
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getChargebacks().size(), 0);
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getRefunds().size(), 1);
-        Assert.assertEquals(retrievedPaymentJsonWithBundleKeys.getRefunds().get(0), refundJsonCheck);
+        final PaymentJson retrievedPaymentJson = getPaymentWithRefundsAndChargebacks(paymentJson.getPaymentId());
+        Assert.assertEquals(retrievedPaymentJson.getPaymentId(), paymentJson.getPaymentId());
+        Assert.assertEquals(retrievedPaymentJson.getPaidAmount().setScale(2, RoundingMode.HALF_UP), paymentJson.getPaidAmount().add(refundAmount.negate()).setScale(2, RoundingMode.HALF_UP));
+        Assert.assertEquals(retrievedPaymentJson.getAmount().setScale(2, RoundingMode.HALF_UP), paymentJson.getAmount().setScale(2, RoundingMode.HALF_UP));
+        Assert.assertEquals(retrievedPaymentJson.getAccountId(), paymentJson.getAccountId());
+        Assert.assertEquals(retrievedPaymentJson.getInvoiceId(), paymentJson.getInvoiceId());
+        Assert.assertEquals(retrievedPaymentJson.getRequestedDate(), paymentJson.getRequestedDate());
+        Assert.assertEquals(retrievedPaymentJson.getEffectiveDate(), paymentJson.getEffectiveDate());
+        Assert.assertEquals(retrievedPaymentJson.getRetryCount(), paymentJson.getRetryCount());
+        Assert.assertEquals(retrievedPaymentJson.getCurrency(), paymentJson.getCurrency());
+        Assert.assertEquals(retrievedPaymentJson.getStatus(), paymentJson.getStatus());
+        Assert.assertEquals(retrievedPaymentJson.getGatewayErrorCode(), paymentJson.getGatewayErrorCode());
+        Assert.assertEquals(retrievedPaymentJson.getGatewayErrorMsg(), paymentJson.getGatewayErrorMsg());
+        Assert.assertEquals(retrievedPaymentJson.getPaymentMethodId(), paymentJson.getPaymentMethodId());
+        Assert.assertEquals(retrievedPaymentJson.getChargebacks().size(), 0);
+        Assert.assertEquals(retrievedPaymentJson.getRefunds().size(), 1);
+        Assert.assertEquals(retrievedPaymentJson.getRefunds().get(0), refundJsonCheck);
     }
 
-    private void verifyInvoice(final PaymentJsonSimple paymentJsonSimple, final BigDecimal expectedInvoiceBalance) throws IOException {
-        final InvoiceJsonSimple invoiceJsonSimple = getInvoice(paymentJsonSimple.getInvoiceId());
+    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),
                             expectedInvoiceBalance.setScale(2, BigDecimal.ROUND_HALF_UP));
     }