killbill-aplcache

invoice: rename paymentAttemptId field to paymentAttempt We

7/5/2012 9:23:09 PM

Changes

Details

diff --git a/api/src/main/java/com/ning/billing/invoice/api/Invoice.java b/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
index 460f962..f79a46e 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
@@ -54,7 +54,7 @@ public interface Invoice extends Entity {
 
     Currency getCurrency();
 
-    DateTime getLastPaymentAttempt();
+    DateTime getLastPaymentDate();
 
     BigDecimal getPaidAmount();
 
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java b/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
index 102eb64..c5b331e 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoicePayment.java
@@ -25,13 +25,13 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.util.entity.Entity;
 
 public interface InvoicePayment extends Entity {
-    UUID getPaymentAttemptId();
+    UUID getPaymentId();
 
     InvoicePaymentType getType();
 
     UUID getInvoiceId();
 
-    DateTime getPaymentAttemptDate();
+    DateTime getPaymentDate();
 
     BigDecimal getAmount();
 
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java b/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
index 54e03bf..197d8b9 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
@@ -27,22 +27,22 @@ import com.ning.billing.util.callcontext.CallContext;
 
 public interface InvoicePaymentApi {
     /**
-     * @param accountId
+     * @param accountId id of the account
      * @return All invoices, including migrated invoices
      */
     public List<Invoice> getAllInvoicesByAccount(UUID accountId);
 
     public Invoice getInvoice(UUID invoiceId);
 
-    public Invoice getInvoiceForPaymentAttemptId(UUID paymentAttemptId);
+    public Invoice getInvoiceForPaymentId(UUID paymentId);
 
-    public InvoicePayment getInvoicePayment(UUID paymentAttemptId);
+    public InvoicePayment getInvoicePayment(UUID paymentId);
 
-    public void notifyOfPaymentAttempt(InvoicePayment invoicePayment, CallContext context);
+    public void notifyOfPayment(InvoicePayment invoicePayment, CallContext context);
 
-    public void notifyOfPaymentAttempt(UUID invoiceId, BigDecimal amountOutstanding, Currency currency, UUID paymentAttemptId, DateTime paymentAttemptDate, CallContext context);
+    public void notifyOfPayment(UUID invoiceId, BigDecimal amountOutstanding, Currency currency, UUID paymentId, DateTime paymentDate, CallContext context);
 
-    public InvoicePayment createRefund(UUID paymentAttemptId, BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context) throws InvoiceApiException;
+    public InvoicePayment createRefund(UUID paymentId, BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context) throws InvoiceApiException;
 
     public InvoicePayment createChargeback(UUID invoicePaymentId, BigDecimal amount, CallContext context) throws InvoiceApiException;
 
@@ -54,7 +54,7 @@ public interface InvoicePaymentApi {
 
     public UUID getAccountIdFromInvoicePaymentId(UUID uuid) throws InvoiceApiException;
 
-    public List<InvoicePayment> getChargebacksByPaymentAttemptId(UUID paymentAttemptId);
+    public List<InvoicePayment> getChargebacksByPaymentId(UUID paymentId);
 
     public InvoicePayment getChargebackById(UUID chargebackId) throws InvoiceApiException;
 }
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
index a3ef34c..403d176 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
@@ -38,7 +38,7 @@ public interface InvoiceUserApi {
 
     public Invoice getInvoice(UUID invoiceId);
 
-    public void notifyOfPaymentAttempt(InvoicePayment invoicePayment, CallContext context);
+    public void notifyOfPayment(InvoicePayment invoicePayment, CallContext context);
 
     public Collection<Invoice> getUnpaidInvoicesByAccountId(UUID accountId, DateTime upToDate);
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
index be8aa79..dfb40b4 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
@@ -43,8 +43,8 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
-        dao.notifyOfPaymentAttempt(invoicePayment, context);
+    public void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context) {
+        dao.notifyOfPayment(invoicePayment, context);
     }
 
     @Override
@@ -58,20 +58,20 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public Invoice getInvoiceForPaymentAttemptId(final UUID paymentAttemptId) {
-        final UUID invoiceIdStr = dao.getInvoiceIdByPaymentAttemptId(paymentAttemptId);
+    public Invoice getInvoiceForPaymentId(final UUID paymentId) {
+        final UUID invoiceIdStr = dao.getInvoiceIdByPaymentId(paymentId);
         return invoiceIdStr == null ? null : dao.getById(invoiceIdStr);
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(final UUID paymentAttemptId) {
-        return dao.getInvoicePayment(paymentAttemptId);
+    public InvoicePayment getInvoicePayment(final UUID paymentId) {
+        return dao.getInvoicePayment(paymentId);
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final UUID invoiceId, final BigDecimal amount, final Currency currency, final UUID paymentAttemptId, final DateTime paymentAttemptDate, final CallContext context) {
-        final InvoicePayment invoicePayment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentAttemptId, invoiceId, paymentAttemptDate, amount, currency);
-        dao.notifyOfPaymentAttempt(invoicePayment, context);
+    public void notifyOfPayment(final UUID invoiceId, final BigDecimal amount, final Currency currency, final UUID paymentId, final DateTime paymentDate, final CallContext context) {
+        final InvoicePayment invoicePayment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoiceId, paymentDate, amount, currency);
+        dao.notifyOfPayment(invoicePayment, context);
     }
 
     @Override
@@ -95,8 +95,8 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public List<InvoicePayment> getChargebacksByPaymentAttemptId(final UUID paymentAttemptId) {
-        return dao.getChargebacksByPaymentAttemptId(paymentAttemptId);
+    public List<InvoicePayment> getChargebacksByPaymentId(final UUID paymentId) {
+        return dao.getChargebacksByPaymentId(paymentId);
     }
 
     @Override
@@ -110,9 +110,8 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public InvoicePayment createRefund(UUID paymentAttemptId,
-            BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context)
-            throws InvoiceApiException {
-        return dao.createRefund(paymentAttemptId, amount, isInvoiceAdjusted, paymentCookieId, context);
+    public InvoicePayment createRefund(final UUID paymentId, final BigDecimal amount, final boolean isInvoiceAdjusted,
+                                       final UUID paymentCookieId, final CallContext context) throws InvoiceApiException {
+        return dao.createRefund(paymentId, amount, isInvoiceAdjusted, paymentCookieId, context);
     }
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
index 88d67fd..0a6a8f1 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
@@ -65,8 +65,8 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
-        dao.notifyOfPaymentAttempt(invoicePayment, context);
+    public void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context) {
+        dao.notifyOfPayment(invoicePayment, context);
     }
 
     @Override
@@ -89,7 +89,7 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
     public Invoice triggerInvoiceGeneration(final UUID accountId,
                                             final DateTime targetDate, final boolean dryRun,
                                             final CallContext context) throws InvoiceApiException {
-        Invoice result = dispatcher.processAccount(accountId, targetDate, dryRun, context);
+        final Invoice result = dispatcher.processAccount(accountId, targetDate, dryRun, context);
         if (result == null) {
             throw new InvoiceApiException(ErrorCode.INVOICE_NOTHING_TO_DO, accountId, targetDate);
         } else {
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 7c344fe..08b359f 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -241,11 +241,11 @@ public class DefaultInvoiceDao implements InvoiceDao {
 
 
     @Override
-    public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
+    public void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context) {
         invoicePaymentSqlDao.inTransaction(new Transaction<Void, InvoicePaymentSqlDao>() {
             @Override
             public Void inTransaction(final InvoicePaymentSqlDao transactional, final TransactionStatus status) throws Exception {
-                transactional.notifyOfPaymentAttempt(invoicePayment, context);
+                transactional.notifyOfPayment(invoicePayment, context);
 
                 final String invoicePaymentId = invoicePayment.getId().toString();
                 final Long recordId = transactional.getRecordId(invoicePaymentId);
@@ -263,10 +263,10 @@ public class DefaultInvoiceDao implements InvoiceDao {
             @Override
             public List<Invoice> inTransaction(final InvoiceSqlDao invoiceDao, final TransactionStatus status) throws Exception {
 
-                List<Invoice> invoices = getAllInvoicesByAccountFromTransaction(accountId, invoiceDao);
-                Collection<Invoice> unpaidInvoices = Collections2.filter(invoices, new Predicate<Invoice>() {
+                final List<Invoice> invoices = getAllInvoicesByAccountFromTransaction(accountId, invoiceDao);
+                final Collection<Invoice> unpaidInvoices = Collections2.filter(invoices, new Predicate<Invoice>() {
                     @Override
-                    public boolean apply(Invoice in) {
+                    public boolean apply(final Invoice in) {
                         return (in.getBalance().compareTo(BigDecimal.ZERO) >= 1) && !in.getTargetDate().isAfter(upToDate);
                     }
                 });
@@ -276,13 +276,13 @@ public class DefaultInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public UUID getInvoiceIdByPaymentAttemptId(final UUID paymentAttemptId) {
-        return invoiceSqlDao.getInvoiceIdByPaymentAttemptId(paymentAttemptId.toString());
+    public UUID getInvoiceIdByPaymentId(final UUID paymentId) {
+        return invoiceSqlDao.getInvoiceIdByPaymentId(paymentId.toString());
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(final UUID paymentAttemptId) {
-        return invoicePaymentSqlDao.getInvoicePayment(paymentAttemptId.toString());
+    public InvoicePayment getInvoicePayment(final UUID paymentId) {
+        return invoicePaymentSqlDao.getInvoicePayment(paymentId.toString());
     }
 
     @Override
@@ -297,17 +297,16 @@ public class DefaultInvoiceDao implements InvoiceDao {
 
 
     @Override
-    public InvoicePayment createRefund(final UUID paymentAttemptId,
-            final BigDecimal amount, final boolean isInvoiceAdjusted, final UUID paymentCookieId,  final CallContext context)
+    public InvoicePayment createRefund(final UUID paymentId, final BigDecimal amount, final boolean isInvoiceAdjusted, final UUID paymentCookieId,  final CallContext context)
             throws InvoiceApiException {
 
         return invoicePaymentSqlDao.inTransaction(new Transaction<InvoicePayment, InvoicePaymentSqlDao>() {
             @Override
             public InvoicePayment inTransaction(final InvoicePaymentSqlDao transactional, final TransactionStatus status) throws Exception {
 
-                final InvoicePayment payment = transactional.getByPaymentAttemptId(paymentAttemptId.toString());
+                final InvoicePayment payment = transactional.getByPaymentId(paymentId.toString());
                 if (payment == null) {
-                    throw new InvoiceApiException(ErrorCode.INVOICE_PAYMENT_BY_ATTEMPT_NOT_FOUND, paymentAttemptId);
+                    throw new InvoiceApiException(ErrorCode.INVOICE_PAYMENT_BY_ATTEMPT_NOT_FOUND, paymentId);
                 }
                 final BigDecimal maxRefundAmount = payment.getAmount() == null ? BigDecimal.ZERO : payment.getAmount();
                 final BigDecimal requestedAmount = amount == null ? maxRefundAmount : amount;
@@ -327,7 +326,7 @@ public class DefaultInvoiceDao implements InvoiceDao {
                     return existingRefund;
                 }
 
-                final InvoicePayment refund = new DefaultInvoicePayment(UUID.randomUUID(), InvoicePaymentType.REFUND, paymentAttemptId,
+                final InvoicePayment refund = new DefaultInvoicePayment(UUID.randomUUID(), InvoicePaymentType.REFUND, paymentId,
                         payment.getInvoiceId(), context.getCreatedDate(), requestedPositiveAmount.negate(), payment.getCurrency(), paymentCookieId, payment.getId());
                 transactional.create(refund, context);
 
@@ -417,8 +416,8 @@ public class DefaultInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public List<InvoicePayment> getChargebacksByPaymentAttemptId(final UUID paymentAttemptId) {
-        return invoicePaymentSqlDao.getChargebacksByAttemptPaymentId(paymentAttemptId.toString());
+    public List<InvoicePayment> getChargebacksByPaymentId(final UUID paymentId) {
+        return invoicePaymentSqlDao.getChargebacksByPaymentId(paymentId.toString());
     }
 
     @Override
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
index 443f07a..9c2403b 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
@@ -31,7 +31,6 @@ import com.ning.billing.util.api.TagApiException;
 import com.ning.billing.util.callcontext.CallContext;
 
 public interface InvoiceDao {
-
     void create(Invoice invoice, CallContext context);
 
     Invoice getById(final UUID id);
@@ -44,11 +43,11 @@ public interface InvoiceDao {
 
     List<Invoice> getInvoicesBySubscription(final UUID subscriptionId);
 
-    UUID getInvoiceIdByPaymentAttemptId(final UUID paymentAttemptId);
+    UUID getInvoiceIdByPaymentId(final UUID paymentId);
 
-    InvoicePayment getInvoicePayment(final UUID paymentAttemptId);
+    InvoicePayment getInvoicePayment(final UUID paymentId);
 
-    void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context);
+    void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context);
 
     BigDecimal getAccountBalance(final UUID accountId);
 
@@ -66,8 +65,7 @@ public interface InvoiceDao {
 
     InvoicePayment postChargeback(final UUID invoicePaymentId, final BigDecimal amount, final CallContext context) throws InvoiceApiException;
 
-    InvoicePayment createRefund(UUID paymentAttemptId,
-            BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId,  CallContext context) throws InvoiceApiException;
+    InvoicePayment createRefund(UUID paymentId, BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context) throws InvoiceApiException;
 
     BigDecimal getRemainingAmountPaid(final UUID invoicePaymentId);
 
@@ -75,14 +73,13 @@ public interface InvoiceDao {
 
     List<InvoicePayment> getChargebacksByAccountId(final UUID accountId);
 
-    List<InvoicePayment> getChargebacksByPaymentAttemptId(final UUID paymentAttemptId);
+    List<InvoicePayment> getChargebacksByPaymentId(final UUID paymentId);
 
     InvoicePayment getChargebackById(final UUID chargebackId) throws InvoiceApiException;
 
     InvoiceItem getCreditById(final UUID creditId) throws InvoiceApiException;
 
     InvoiceItem insertCredit(final UUID accountId, final UUID invoiceId, final BigDecimal amount,
-                             final DateTime effectiveDate, final Currency currency,
-                             final CallContext context);
+                             final DateTime effectiveDate, final Currency currency, final CallContext context);
 
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
index 6bf0d10..4a9f143 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
@@ -62,7 +62,7 @@ public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePayment>, Tran
     List<Long> getRecordIds(@Bind("invoiceId") final String invoiceId);
 
     @SqlQuery
-    public InvoicePayment getByPaymentAttemptId(@Bind("paymentAttemptId") final String paymentAttemptId);
+    public InvoicePayment getByPaymentId(@Bind("paymentId") final String paymentId);
 
     @Override
     @SqlQuery
@@ -70,26 +70,22 @@ public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePayment>, Tran
 
     @Override
     @SqlUpdate
-    public void create(@InvoicePaymentBinder final InvoicePayment invoicePayment,
-                       @CallContextBinder final CallContext context);
+    public void create(@InvoicePaymentBinder final InvoicePayment invoicePayment, @CallContextBinder final CallContext context);
 
     @SqlBatch(transactional = false)
-    void batchCreateFromTransaction(@InvoicePaymentBinder final List<InvoicePayment> items,
-                                    @CallContextBinder final CallContext context);
+    void batchCreateFromTransaction(@InvoicePaymentBinder final List<InvoicePayment> items, @CallContextBinder final CallContext context);
 
     @SqlQuery
     public List<InvoicePayment> getPaymentsForInvoice(@Bind("invoiceId") final String invoiceId);
 
     @SqlQuery
-    InvoicePayment getInvoicePayment(@Bind("paymentAttemptId") final String paymentAttemptId);
+    InvoicePayment getInvoicePayment(@Bind("paymentId") final String paymentId);
 
     @SqlQuery
     InvoicePayment getPaymentsForCookieId(@Bind("paymentCookieId") final String paymentCookieId);
 
-
     @SqlUpdate
-    void notifyOfPaymentAttempt(@InvoicePaymentBinder final InvoicePayment invoicePayment,
-                                @CallContextBinder final CallContext context);
+    void notifyOfPayment(@InvoicePaymentBinder final InvoicePayment invoicePayment, @CallContextBinder final CallContext context);
 
     @SqlQuery
     BigDecimal getRemainingAmountPaid(@Bind("invoicePaymentId") final String invoicePaymentId);
@@ -102,23 +98,23 @@ public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePayment>, Tran
     List<InvoicePayment> getChargeBacksByAccountId(@Bind("accountId") final String accountId);
 
     @SqlQuery
-    List<InvoicePayment> getChargebacksByAttemptPaymentId(@Bind("paymentAttemptId") final String paymentAttemptId);
+    List<InvoicePayment> getChargebacksByPaymentId(@Bind("paymentId") final String paymentId);
 
     public static class InvoicePaymentMapper extends MapperBase implements ResultSetMapper<InvoicePayment> {
         @Override
         public InvoicePayment map(final int index, final ResultSet result, final StatementContext context) throws SQLException {
             final UUID id = getUUID(result, "id");
             final InvoicePaymentType type = InvoicePaymentType.valueOf(result.getString("type"));
-            final UUID paymentAttemptId = getUUID(result, "payment_attempt_id");
+            final UUID paymentId = getUUID(result, "payment_id");
             final UUID invoiceId = getUUID(result, "invoice_id");
-            final DateTime paymentAttemptDate = getDate(result, "payment_attempt_date");
+            final DateTime paymentDate = getDate(result, "payment_date");
             final BigDecimal amount = result.getBigDecimal("amount");
             final String currencyString = result.getString("currency");
             final Currency currency = (currencyString == null) ? null : Currency.valueOf(currencyString);
             final UUID paymentCookieId = getUUID(result, "payment_cookie_id");
             final UUID linkedInvoicePaymentId = getUUID(result, "linked_invoice_payment_id");
 
-            return new DefaultInvoicePayment(id, type, paymentAttemptId, invoiceId, paymentAttemptDate,
+            return new DefaultInvoicePayment(id, type, paymentId, invoiceId, paymentDate,
                                              amount, currency, paymentCookieId, linkedInvoicePaymentId);
         }
     }
@@ -136,8 +132,8 @@ public interface InvoicePaymentSqlDao extends EntitySqlDao<InvoicePayment>, Tran
                         q.bind("id", payment.getId().toString());
                         q.bind("type", payment.getType().toString());
                         q.bind("invoiceId", payment.getInvoiceId().toString());
-                        q.bind("paymentAttemptId", uuidToString(payment.getPaymentAttemptId()));
-                        q.bind("paymentAttemptDate", payment.getPaymentAttemptDate().toDate());
+                        q.bind("paymentId", uuidToString(payment.getPaymentId()));
+                        q.bind("paymentDate", payment.getPaymentDate().toDate());
                         q.bind("amount", payment.getAmount());
                         final Currency currency = payment.getCurrency();
                         q.bind("currency", (currency == null) ? null : currency.toString());
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
index 3de924b..845b7b9 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
@@ -75,7 +75,7 @@ public interface InvoiceSqlDao extends EntitySqlDao<Invoice>, AuditSqlDao, Trans
 
     @SqlQuery
     @RegisterMapper(UuidMapper.class)
-    UUID getInvoiceIdByPaymentAttemptId(@Bind("paymentAttemptId") final String paymentAttemptId);
+    UUID getInvoiceIdByPaymentId(@Bind("paymentId") final String paymentId);
 
 
     @BindingAnnotation(InvoiceBinder.InvoiceBinderFactory.class)
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
index 797b228..41297fe 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
@@ -144,21 +144,21 @@ public class DefaultInvoice extends EntityBase implements Invoice {
     }
 
     @Override
-    public DateTime getLastPaymentAttempt() {
-        DateTime lastPaymentAttempt = null;
+    public DateTime getLastPaymentDate() {
+        DateTime lastPaymentDate = null;
 
         for (final InvoicePayment paymentAttempt : payments) {
-            final DateTime paymentAttemptDate = paymentAttempt.getPaymentAttemptDate();
-            if (lastPaymentAttempt == null) {
-                lastPaymentAttempt = paymentAttemptDate;
+            final DateTime paymentDate = paymentAttempt.getPaymentDate();
+            if (lastPaymentDate == null) {
+                lastPaymentDate = paymentDate;
             }
 
-            if (lastPaymentAttempt.isBefore(paymentAttemptDate)) {
-                lastPaymentAttempt = paymentAttemptDate;
+            if (lastPaymentDate.isBefore(paymentDate)) {
+                lastPaymentDate = paymentDate;
             }
         }
 
-        return lastPaymentAttempt;
+        return lastPaymentDate;
     }
 
     @Override
@@ -208,13 +208,13 @@ public class DefaultInvoice extends EntityBase implements Invoice {
             return false;
         }
 
-        final DateTime lastPaymentAttempt = getLastPaymentAttempt();
-        return (lastPaymentAttempt == null) || lastPaymentAttempt.plusDays(numberOfDays).isAfter(targetDate);
+        final DateTime lastPayment = getLastPaymentDate();
+        return (lastPayment == null) || lastPayment.plusDays(numberOfDays).isAfter(targetDate);
     }
 
     @Override
     public String toString() {
-        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
+        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentDate=" + getLastPaymentDate() + "]";
     }
 
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
index 6145f07..abd96b3 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoicePayment.java
@@ -27,7 +27,7 @@ import com.ning.billing.invoice.api.InvoicePayment;
 import com.ning.billing.util.entity.EntityBase;
 
 public class DefaultInvoicePayment extends EntityBase implements InvoicePayment {
-    private final UUID paymentAttemptId;
+    private final UUID paymentId;
     private final InvoicePaymentType type;
     private final UUID invoiceId;
     private final DateTime paymentDate;
@@ -36,17 +36,17 @@ public class DefaultInvoicePayment extends EntityBase implements InvoicePayment 
     private final UUID paymentCookieId;
     private final UUID linkedInvoicePaymentId;
 
-    public DefaultInvoicePayment(final InvoicePaymentType type, final UUID paymentAttemptId, final UUID invoiceId, final DateTime paymentDate,
+    public DefaultInvoicePayment(final InvoicePaymentType type, final UUID paymentId, final UUID invoiceId, final DateTime paymentDate,
                                  final BigDecimal amount, final Currency currency) {
-        this(UUID.randomUUID(), type, paymentAttemptId, invoiceId, paymentDate, amount, currency, null, null);
+        this(UUID.randomUUID(), type, paymentId, invoiceId, paymentDate, amount, currency, null, null);
     }
 
-    public DefaultInvoicePayment(final UUID id, final InvoicePaymentType type, final UUID paymentAttemptId, final UUID invoiceId, final DateTime paymentDate,
-                                 @Nullable final BigDecimal amount, @Nullable final Currency currency, final UUID paymentCookieId,
+    public DefaultInvoicePayment(final UUID id, final InvoicePaymentType type, final UUID paymentId, final UUID invoiceId, final DateTime paymentDate,
+                                 @Nullable final BigDecimal amount, @Nullable final Currency currency, @Nullable final UUID paymentCookieId,
                                  @Nullable final UUID linkedInvoicePaymentId) {
         super(id);
         this.type = type;
-        this.paymentAttemptId = paymentAttemptId;
+        this.paymentId = paymentId;
         this.amount = amount;
         this.invoiceId = invoiceId;
         this.paymentDate = paymentDate;
@@ -61,8 +61,8 @@ public class DefaultInvoicePayment extends EntityBase implements InvoicePayment 
     }
 
     @Override
-    public UUID getPaymentAttemptId() {
-        return paymentAttemptId;
+    public UUID getPaymentId() {
+        return paymentId;
     }
 
     @Override
@@ -71,7 +71,7 @@ public class DefaultInvoicePayment extends EntityBase implements InvoicePayment 
     }
 
     @Override
-    public DateTime getPaymentAttemptDate() {
+    public DateTime getPaymentDate() {
         return paymentDate;
     }
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
index 9499378..345fff6 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
@@ -168,8 +168,8 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
     }
 
     @Override
-    public DateTime getLastPaymentAttempt() {
-        return invoice.getLastPaymentAttempt();
+    public DateTime getLastPaymentDate() {
+        return invoice.getLastPaymentDate();
     }
 
     @Override
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
index 02dffc5..baec2d4 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.sql.stg
@@ -4,8 +4,8 @@ invoicePaymentFields(prefix) ::= <<
   <prefix>id,
   <prefix>type,
   <prefix>invoice_id,
-  <prefix>payment_attempt_id,
-  <prefix>payment_attempt_date,
+  <prefix>payment_id,
+  <prefix>payment_date,
   <prefix>amount,
   <prefix>currency,
   <prefix>payment_cookie_id,
@@ -16,20 +16,20 @@ invoicePaymentFields(prefix) ::= <<
 
 create() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:id, :type, :invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency,
+  VALUES(:id, :type, :invoiceId, :paymentId, :paymentDate, :amount, :currency,
          :paymentCookieId, :linkedInvoicePaymentId, :userName, :createdDate);
 >>
 
 batchCreateFromTransaction() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:id, :type, :invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency,
+  VALUES(:id, :type, :invoiceId, :paymentId, :paymentDate, :amount, :currency,
         :paymentCookieId, :linkedInvoicePaymentId, :userName, :createdDate);
 >>
 
-getByPaymentAttemptId() ::= <<
+getByPaymentId() ::= <<
   SELECT <invoicePaymentFields()>
   FROM invoice_payments
-  WHERE payment_attempt_id = :paymentAttemptId;
+  WHERE payment_id = :paymentId;
 >>
 
 get() ::= <<
@@ -55,16 +55,16 @@ getPaymentsForInvoice() ::= <<
   WHERE invoice_id = :invoiceId;
 >>
 
-notifyOfPaymentAttempt() ::= <<
+notifyOfPayment() ::= <<
   INSERT INTO invoice_payments(<invoicePaymentFields()>)
-  VALUES(:id, :type, :invoiceId, :paymentAttemptId, :paymentAttemptDate, :amount, :currency,
+  VALUES(:id, :type, :invoiceId, :paymentId, :paymentDate, :amount, :currency,
         :paymentCookieId, :linkedInvoicePaymentId, :userName, :createdDate);
 >>
 
 getInvoicePayment() ::= <<
     SELECT <invoicePaymentFields()>
     FROM invoice_payments
-    WHERE payment_attempt_id = :paymentAttemptId;
+    WHERE payment_id = :paymentId;
 >>
 
 getRecordId() ::= <<
@@ -121,10 +121,10 @@ getChargeBacksByAccountId() ::= <<
     AND linked_invoice_payment_id IS NOT NULL;
 >>
 
-getChargebacksByAttemptPaymentId() ::= <<
+getChargebacksByPaymentId() ::= <<
     SELECT <invoicePaymentFields()>
     FROM invoice_payments
     WHERE linked_invoice_payment_id IN
-        (SELECT id FROM invoice_payments WHERE payment_attempt_id = :paymentAttemptId);
+        (SELECT id FROM invoice_payments WHERE payment_id = :paymentId);
 >>
 ;
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
index 416fb5e..6ed45be 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
@@ -56,11 +56,11 @@ create() ::= <<
   VALUES (:id, :accountId, :invoiceDate, :targetDate, :currency, :migrated, :userName, :createdDate);
 >>
 
-getInvoiceIdByPaymentAttemptId() ::= <<
+getInvoiceIdByPaymentId() ::= <<
   SELECT i.id
     FROM invoices i, invoice_payments ip
    WHERE ip.invoice_id = i.id
-     AND ip.payment_attempt_id = :paymentAttemptId
+     AND ip.payment_id = :paymentId
 >>
 
 
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
index b6bd51f..1af1116 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
+++ b/invoice/src/main/resources/com/ning/billing/invoice/ddl.sql
@@ -48,8 +48,8 @@ CREATE TABLE invoice_payments (
     id char(36) NOT NULL,
     type varchar(24) NOT NULL,    
     invoice_id char(36) NOT NULL,
-    payment_attempt_id char(36) COLLATE utf8_bin,
-    payment_attempt_date datetime NOT NULL,
+    payment_id char(36) COLLATE utf8_bin,
+    payment_date datetime NOT NULL,
     amount numeric(10,4) NOT NULL,
     currency char(3) NOT NULL,
     payment_cookie_id char(36) DEFAULT NULL,    
@@ -59,5 +59,5 @@ CREATE TABLE invoice_payments (
     PRIMARY KEY(record_id)
 ) ENGINE=innodb;
 CREATE UNIQUE INDEX invoice_payments_id ON invoice_payments(id);
-CREATE INDEX invoice_payments_attempt ON invoice_payments(payment_attempt_id);
+CREATE INDEX invoice_payments ON invoice_payments(payment_id);
 CREATE INDEX invoice_payments_reversals ON invoice_payments(linked_invoice_payment_id);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
index a049bcf..dbd1f08 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
@@ -39,9 +39,9 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
+    public void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context) {
         for (final InvoicePayment existingInvoicePayment : invoicePayments) {
-            if (existingInvoicePayment.getInvoiceId().equals(invoicePayment.getInvoiceId()) && existingInvoicePayment.getPaymentAttemptId().equals(invoicePayment.getPaymentAttemptId())) {
+            if (existingInvoicePayment.getInvoiceId().equals(invoicePayment.getInvoiceId()) && existingInvoicePayment.getPaymentId().equals(invoicePayment.getPaymentId())) {
                 invoicePayments.remove(existingInvoicePayment);
             }
         }
@@ -71,9 +71,9 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public Invoice getInvoiceForPaymentAttemptId(final UUID paymentAttemptId) {
+    public Invoice getInvoiceForPaymentId(final UUID paymentId) {
         for (final InvoicePayment invoicePayment : invoicePayments) {
-            if (invoicePayment.getPaymentAttemptId().equals(paymentAttemptId)) {
+            if (invoicePayment.getPaymentId().equals(paymentId)) {
                 return getInvoice(invoicePayment.getInvoiceId());
             }
         }
@@ -81,9 +81,9 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(final UUID paymentAttemptId) {
+    public InvoicePayment getInvoicePayment(final UUID paymentId) {
         for (final InvoicePayment invoicePayment : invoicePayments) {
-            if (paymentAttemptId.equals(invoicePayment.getPaymentAttemptId())) {
+            if (paymentId.equals(invoicePayment.getPaymentId())) {
                 return invoicePayment;
             }
         }
@@ -91,9 +91,9 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final UUID invoiceId, final BigDecimal amountOutstanding, final Currency currency, final UUID paymentAttemptId, final DateTime paymentAttemptDate, final CallContext context) {
-        final InvoicePayment invoicePayment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentAttemptId, invoiceId, paymentAttemptDate, amountOutstanding, currency);
-        notifyOfPaymentAttempt(invoicePayment, context);
+    public void notifyOfPayment(final UUID invoiceId, final BigDecimal amountOutstanding, final Currency currency, final UUID paymentId, final DateTime paymentDate, final CallContext context) {
+        final InvoicePayment invoicePayment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoiceId, paymentDate, amountOutstanding, currency);
+        notifyOfPayment(invoicePayment, context);
     }
 
     @Override
@@ -157,7 +157,7 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public List<InvoicePayment> getChargebacksByPaymentAttemptId(final UUID paymentAttemptId) {
+    public List<InvoicePayment> getChargebacksByPaymentId(final UUID paymentId) {
         throw new UnsupportedOperationException();
     }
 
@@ -167,7 +167,7 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public InvoicePayment createRefund(UUID paymentAttemptId,
+    public InvoicePayment createRefund(UUID paymentId,
             BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context)
             throws InvoiceApiException {
         // TODO Auto-generated method stub
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
index da91371..310b24b 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
@@ -124,11 +124,11 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public UUID getInvoiceIdByPaymentAttemptId(final UUID paymentAttemptId) {
+    public UUID getInvoiceIdByPaymentId(final UUID paymentId) {
         synchronized (monitor) {
             for (final Invoice invoice : invoices.values()) {
                 for (final InvoicePayment payment : invoice.getPayments()) {
-                    if (paymentAttemptId.equals(payment.getPaymentAttemptId())) {
+                    if (paymentId.equals(payment.getPaymentId())) {
                         return invoice.getId();
                     }
                 }
@@ -138,11 +138,11 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(final UUID paymentAttemptId) {
+    public InvoicePayment getInvoicePayment(final UUID paymentId) {
         synchronized (monitor) {
             for (final Invoice invoice : invoices.values()) {
                 for (final InvoicePayment payment : invoice.getPayments()) {
-                    if (paymentAttemptId.equals(payment.getPaymentAttemptId())) {
+                    if (paymentId.equals(payment.getPaymentId())) {
                         return payment;
                     }
                 }
@@ -153,7 +153,7 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
+    public void notifyOfPayment(final InvoicePayment invoicePayment, final CallContext context) {
         synchronized (monitor) {
             final Invoice invoice = invoices.get(invoicePayment.getInvoiceId());
             if (invoice != null) {
@@ -233,7 +233,7 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public List<InvoicePayment> getChargebacksByPaymentAttemptId(final UUID paymentAttemptId) {
+    public List<InvoicePayment> getChargebacksByPaymentId(final UUID paymentId) {
         throw new UnsupportedOperationException();
     }
 
@@ -259,7 +259,7 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public InvoicePayment createRefund(UUID paymentAttemptId,
+    public InvoicePayment createRefund(UUID paymentId,
             BigDecimal amount, boolean isInvoiceAdjusted, UUID paymentCookieId, CallContext context)
             throws InvoiceApiException {
         // TODO Auto-generated method stub
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
index ebeb7d0..626cb2f 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
@@ -111,9 +111,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
         assertEquals(savedInvoice.getInvoiceItems().size(), 1);
 
         final BigDecimal paymentAmount = new BigDecimal("11.00");
-        final UUID paymentAttemptId = UUID.randomUUID();
+        final UUID paymentId = UUID.randomUUID();
 
-        invoiceDao.notifyOfPaymentAttempt(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT,paymentAttemptId, invoiceId, clock.getUTCNow().plusDays(12), paymentAmount, Currency.USD), context);
+        invoiceDao.notifyOfPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT,paymentId, invoiceId, clock.getUTCNow().plusDays(12), paymentAmount, Currency.USD), context);
 
         final Invoice retrievedInvoice = invoiceDao.getById(invoiceId);
         assertNotNull(retrievedInvoice);
@@ -130,36 +130,36 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
     }
 
     @Test(groups = {"slow"})
-    public void testAddPayment() {
+    public void testAddPayment1() {
         final UUID accountId = UUID.randomUUID();
         final DateTime targetDate = new DateTime(2011, 10, 6, 0, 0, 0, 0);
         Invoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
 
-        final UUID paymentAttemptId = UUID.randomUUID();
-        final DateTime paymentAttemptDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
+        final UUID paymentId = UUID.randomUUID();
+        final DateTime paymentDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
         final BigDecimal paymentAmount = new BigDecimal("14.0");
 
         invoiceDao.create(invoice, context);
-        invoiceDao.notifyOfPaymentAttempt(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentAttemptId, invoice.getId(), paymentAttemptDate, paymentAmount, Currency.USD), context);
+        invoiceDao.notifyOfPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice.getId(), paymentDate, paymentAmount, Currency.USD), context);
 
         invoice = invoiceDao.getById(invoice.getId());
         assertEquals(invoice.getPaidAmount().compareTo(paymentAmount), 0);
-        assertEquals(invoice.getLastPaymentAttempt().compareTo(paymentAttemptDate), 0);
+        assertEquals(invoice.getLastPaymentDate().compareTo(paymentDate), 0);
         assertEquals(invoice.getNumberOfPayments(), 1);
     }
 
     @Test(groups = {"slow"})
-    public void testAddPaymentAttempt() {
+    public void testAddPayment2() {
         final UUID accountId = UUID.randomUUID();
         final DateTime targetDate = new DateTime(2011, 10, 6, 0, 0, 0, 0);
         Invoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
 
-        final DateTime paymentAttemptDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
+        final DateTime paymentDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
 
         invoiceDao.create(invoice, context);
-        invoiceDao.notifyOfPaymentAttempt(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice.getId(), paymentAttemptDate, invoice.getBalance(), Currency.USD), context);
+        invoiceDao.notifyOfPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice.getId(), paymentDate, invoice.getBalance(), Currency.USD), context);
         invoice = invoiceDao.getById(invoice.getId());
-        assertEquals(invoice.getLastPaymentAttempt().compareTo(paymentAttemptDate), 0);
+        assertEquals(invoice.getLastPaymentDate().compareTo(paymentDate), 0);
     }
 
     @Test(groups = {"slow"})
@@ -577,14 +577,14 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
         assertEquals(balance.compareTo(new BigDecimal("20.00")), 0);
 
         // Pay the whole thing
-        final UUID paymentAttemptId = UUID.randomUUID();
+        final UUID paymentId = UUID.randomUUID();
         final BigDecimal payment1 = rate1;
-        final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentAttemptId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
+        final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
         invoicePaymentDao.create(payment, context);
         balance = invoiceDao.getAccountBalance(accountId);
         assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
 
-        invoiceDao.createRefund(paymentAttemptId, refund1, withAdjustment, UUID.randomUUID(), context);
+        invoiceDao.createRefund(paymentId, refund1, withAdjustment, UUID.randomUUID(), context);
         balance = invoiceDao.getAccountBalance(accountId);
         if (withAdjustment) {
             assertEquals(balance.compareTo(BigDecimal.ZERO), 0);
@@ -653,9 +653,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
         assertEquals(balance.compareTo(new BigDecimal("25.00")), 0);
 
         // Pay the whole thing
-        final UUID paymentAttemptId = UUID.randomUUID();
+        final UUID paymentId = UUID.randomUUID();
         final BigDecimal payment1 = amount1.add(rate1);
-        final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentAttemptId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
+        final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
         invoicePaymentDao.create(payment, context);
         balance = invoiceDao.getAccountBalance(accountId);
         assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
@@ -678,7 +678,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
         assertEquals(cba.compareTo(new BigDecimal("10.00")), 0);
 
         // PARTIAL REFUND on the payment
-        invoiceDao.createRefund(paymentAttemptId, refundAmount, withAdjustment, UUID.randomUUID(), context);
+        invoiceDao.createRefund(paymentId, refundAmount, withAdjustment, UUID.randomUUID(), context);
 
         balance = invoiceDao.getAccountBalance(accountId);
         assertEquals(balance.compareTo(expectedFinalBalance), 0);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
index 114fa8d..23c31c2 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
@@ -202,8 +202,8 @@ public class TestChargeBacks  {
     }
 
     @Test(groups = {"slow"})
-    public void testGetChargeBacksByPaymentAttemptIdWithEmptyReturnSet() throws InvoiceApiException {
-        final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentAttemptId(UUID.randomUUID());
+    public void testGetChargeBacksByPaymentIdWithEmptyReturnSet() throws InvoiceApiException {
+        final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentId(UUID.randomUUID());
         assertNotNull(chargebacks);
         assertEquals(chargebacks.size(), 0);
     }
@@ -216,7 +216,7 @@ public class TestChargeBacks  {
         // create a partial charge back
         invoicePaymentApi.createChargeback(payment.getId(), FIFTEEN, context);
 
-        final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentAttemptId(payment.getPaymentAttemptId());
+        final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentId(payment.getPaymentId());
         assertNotNull(chargebacks);
         assertEquals(chargebacks.size(), 1);
         assertEquals(chargebacks.get(0).getLinkedInvoicePaymentId(), payment.getId());
@@ -254,13 +254,13 @@ public class TestChargeBacks  {
         zombie.addResult("getId", UUID.randomUUID());
         zombie.addResult("getType", InvoicePaymentType.ATTEMPT);
         zombie.addResult("getInvoiceId", invoiceId);
-        zombie.addResult("getPaymentAttemptId", UUID.randomUUID());
-        zombie.addResult("getPaymentAttemptDate", clock.getUTCNow());
+        zombie.addResult("getPaymentId", UUID.randomUUID());
+        zombie.addResult("getPaymentDate", clock.getUTCNow());
         zombie.addResult("getAmount", amount);
         zombie.addResult("getCurrency", CURRENCY);
         zombie.addResult("getLinkedInvoicePaymentId", BrainDeadProxyFactory.ZOMBIE_VOID);
         zombie.addResult("getPaymentCookieId", BrainDeadProxyFactory.ZOMBIE_VOID);
-        invoicePaymentApi.notifyOfPaymentAttempt(payment, context);
+        invoicePaymentApi.notifyOfPayment(payment, context);
 
         return payment;
     }
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/ChargebackJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/ChargebackJson.java
index 70385a6..2cb35fc 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/ChargebackJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/ChargebackJson.java
@@ -47,7 +47,7 @@ public class ChargebackJson {
 
     public ChargebackJson(final InvoicePayment chargeback) {
         this.requestedDate = null;
-        this.effectiveDate = chargeback.getPaymentAttemptDate();
+        this.effectiveDate = chargeback.getPaymentDate();
         this.chargebackAmount = chargeback.getAmount().negate();
         this.paymentId = chargeback.getLinkedInvoicePaymentId().toString();
         this.reason = null;
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/ChargebackResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/ChargebackResource.java
index c08c01a..0d38e47 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/ChargebackResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/ChargebackResource.java
@@ -106,20 +106,7 @@ public class ChargebackResource implements JaxrsResource {
     public Response getForPayment(@PathParam("paymentId") final String paymentId) {
 
         try {
-            final Payment payment = paymentApi.getPayment(UUID.fromString(paymentId));
-            final Collection<PaymentAttempt> attempts = Collections2.filter(payment.getAttempts(), new Predicate<PaymentAttempt>() {
-                @Override
-                public boolean apply(final PaymentAttempt input) {
-                    return input.getPaymentStatus() == PaymentStatus.SUCCESS;
-                }
-            });
-            if (attempts.size() == 0) {
-                final String error = String.format("Failed to locate successful payment attempts for paymentId %s", paymentId);
-                return Response.status(Response.Status.NO_CONTENT).entity(error).build();
-            }
-            final UUID paymentAttemptId = attempts.iterator().next().getId();
-
-            final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentAttemptId(paymentAttemptId);
+            final List<InvoicePayment> chargebacks = invoicePaymentApi.getChargebacksByPaymentId(UUID.fromString(paymentId));
             if (chargebacks.size() == 0) {
                 return Response.status(Response.Status.NO_CONTENT).build();
             }
@@ -130,9 +117,6 @@ public class ChargebackResource implements JaxrsResource {
             final ChargebackCollectionJson json = new ChargebackCollectionJson(accountId, chargebacksJson);
 
             return Response.status(Response.Status.OK).entity(json).build();
-        } catch (PaymentApiException e) {
-            final String error = String.format("Failed to locate payment attempt for payment id %s", paymentId);
-            return Response.status(Response.Status.NO_CONTENT).entity(error).build();
         } catch (InvoiceApiException e) {
             final String error = String.format("Failed to locate account for payment id %s", paymentId);
             return Response.status(Response.Status.NO_CONTENT).entity(error).build();
@@ -147,23 +131,9 @@ public class ChargebackResource implements JaxrsResource {
                                      @HeaderParam(HDR_REASON) final String reason,
                                      @HeaderParam(HDR_COMMENT) final String comment) {
         try {
-            final Payment payment = paymentApi.getPayment(UUID.fromString(json.getPaymentId()));
-            final Collection<PaymentAttempt> attempts = Collections2.filter(payment.getAttempts(), new Predicate<PaymentAttempt>() {
-                @Override
-                public boolean apply(final PaymentAttempt input) {
-                    return input.getPaymentStatus() == PaymentStatus.SUCCESS;
-                }
-            });
-            if (attempts.size() == 0) {
-                final String error = String.format("Failed to locate successful payment attempts for paymentId %s", json.getPaymentId());
-                return Response.status(Response.Status.NO_CONTENT).entity(error).build();
-            }
-
-            // STEPH that does not seem to work, we need to find the correct attempt
-            final UUID paymentAttemptId = attempts.iterator().next().getId();
-            final InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(paymentAttemptId);
+            final InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(UUID.fromString(json.getPaymentId()));
             if (invoicePayment == null) {
-                final String error = String.format("Failed to locate invoice payment for paymentAttemptId %s", paymentAttemptId);
+                final String error = String.format("Failed to locate invoice payment for paymentAttemptId %s", json.getPaymentId());
                 return Response.status(Response.Status.NO_CONTENT).entity(error).build();
             }
 
@@ -176,8 +146,6 @@ public class ChargebackResource implements JaxrsResource {
             return Response.status(Response.Status.BAD_REQUEST).entity(error).build();
         } catch (IllegalArgumentException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build();
-        } catch (PaymentApiException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build();
         }
     }
 
diff --git a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
index 2506f58..f00de24 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
@@ -142,7 +142,6 @@ public class PaymentProcessor extends ProcessorBase {
 
     public Payment createPayment(final Account account, final UUID invoiceId, final BigDecimal inputAmount, final CallContext context, final boolean isInstantPayment)
     throws PaymentApiException {
-
         final PaymentPluginApi plugin = getPaymentProviderPlugin(account);
 
         try {
@@ -286,9 +285,8 @@ public class PaymentProcessor extends ProcessorBase {
 
         BusEvent event = null;
         List<PaymentAttemptModelDao> allAttempts = null;
-        PaymentAttemptModelDao lastAttempt = null;
         PaymentModelDao payment = null;
-        PaymentStatus paymentStatus = PaymentStatus.UNKNOWN;
+        PaymentStatus paymentStatus;
         try {
 
             final PaymentInfoPlugin paymentPluginInfo = plugin.processPayment(account.getExternalKey(), paymentInput.getId(), attemptInput.getRequestedAmount());
@@ -300,15 +298,14 @@ public class PaymentProcessor extends ProcessorBase {
 
                 // Fetch latest objects
                 allAttempts = paymentDao.getAttemptsForPayment(paymentInput.getId());
-                lastAttempt = allAttempts.get(allAttempts.size() - 1);
-                payment = paymentDao.getPayment(paymentInput.getId());
 
-                invoicePaymentApi.notifyOfPaymentAttempt(invoice.getId(),
-                        payment.getAmount(),
-                        paymentStatus == PaymentStatus.SUCCESS ? payment.getCurrency() : null,
-                                lastAttempt.getId(),
-                                lastAttempt.getEffectiveDate(),
-                                context);
+                payment = paymentDao.getPayment(paymentInput.getId());
+                invoicePaymentApi.notifyOfPayment(invoice.getId(),
+                                                  payment.getAmount(),
+                                                  paymentStatus == PaymentStatus.SUCCESS ? payment.getCurrency() : null,
+                                                  payment.getId(),
+                                                  payment.getEffectiveDate(),
+                                                  context);
 
                 // Create Bus event
                 event = new DefaultPaymentInfoEvent(account.getId(),
diff --git a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
index df8ef98..6e33f2d 100644
--- a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
@@ -64,7 +64,6 @@ import static org.testng.Assert.fail;
 @Guice(modules = {PaymentTestModuleWithMocks.class, MockClockModule.class, MockJunctionModule.class, CallContextModule.class})
 @Test(groups = "fast")
 public class TestPaymentApi {
-
     private static final Logger log = LoggerFactory.getLogger(TestPaymentApi.class);
 
     @Inject
@@ -82,7 +81,6 @@ public class TestPaymentApi {
 
     private Account account;
 
-
     @Inject
     public TestPaymentApi(final Clock clock) {
         context = new DefaultCallContext("Payment Tests", CallOrigin.INTERNAL, UserType.SYSTEM, clock);
@@ -103,8 +101,7 @@ public class TestPaymentApi {
         eventBus.stop();
     }
 
-
-    @Test(enabled = true)
+    @Test
     public void testSimplePaymentWithNoAmount() throws Exception {
         final BigDecimal invoiceAmount = new BigDecimal("10.0011");
         final BigDecimal requestedAmount = null;
@@ -113,7 +110,7 @@ public class TestPaymentApi {
         testSimplePayment(invoiceAmount, requestedAmount, expectedAmount);
     }
 
-    @Test(enabled = true)
+    @Test
     public void testSimplePaymentWithInvoiceAmount() throws Exception {
         final BigDecimal invoiceAmount = new BigDecimal("10.0011");
         final BigDecimal requestedAmount = invoiceAmount;
@@ -122,7 +119,7 @@ public class TestPaymentApi {
         testSimplePayment(invoiceAmount, requestedAmount, expectedAmount);
     }
 
-    @Test(enabled = true)
+    @Test
     public void testSimplePaymentWithLowerAmount() throws Exception {
         final BigDecimal invoiceAmount = new BigDecimal("10.0011");
         final BigDecimal requestedAmount = new BigDecimal("8.0091");
@@ -131,7 +128,7 @@ public class TestPaymentApi {
         testSimplePayment(invoiceAmount, requestedAmount, expectedAmount);
     }
 
-    @Test(enabled = true)
+    @Test
     public void testSimplePaymentWithInvalidAmount() throws Exception {
         final BigDecimal invoiceAmount = new BigDecimal("10.0011");
         final BigDecimal requestedAmount = new BigDecimal("80.0091");
@@ -140,10 +137,8 @@ public class TestPaymentApi {
         testSimplePayment(invoiceAmount, requestedAmount, expectedAmount);
     }
 
-
     private void testSimplePayment(final BigDecimal invoiceAmount, final BigDecimal requestedAmount, final BigDecimal expectedAmount) throws Exception {
-
-        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPaymentAttempt", BrainDeadProxyFactory.ZOMBIE_VOID);
+        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPayment", BrainDeadProxyFactory.ZOMBIE_VOID);
 
         final DateTime now = new DateTime(DateTimeZone.UTC);
         final Invoice invoice = testHelper.createTestInvoice(account, now, Currency.USD);
@@ -151,7 +146,6 @@ public class TestPaymentApi {
         final UUID subscriptionId = UUID.randomUUID();
         final UUID bundleId = UUID.randomUUID();
 
-
         invoice.addInvoiceItem(new MockRecurringInvoiceItem(invoice.getId(), account.getId(),
                                                             subscriptionId,
                                                             bundleId,
@@ -188,17 +182,14 @@ public class TestPaymentApi {
         }
     }
 
-    @Test(enabled = true)
+    @Test
     public void testPaymentMethods() throws Exception {
-
         List<PaymentMethod> methods = paymentApi.getPaymentMethods(account, false);
         assertEquals(methods.size(), 1);
 
         final PaymentMethod initDefaultMethod = methods.get(0);
         assertEquals(initDefaultMethod.getId(), account.getPaymentMethodId());
 
-
-        //((ZombieControl)accountApi).addResult("updateAccount", );
         final PaymentMethodPlugin newPaymenrMethod = new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), true, null);
         final UUID newPaymentMethodId = paymentApi.addPaymentMethod(PaymentTestModuleWithMocks.PLUGIN_TEST_NAME, account, true, newPaymenrMethod, context);
         ((ZombieControl) account).addResult("getPaymentMethodId", newPaymentMethodId);
@@ -220,6 +211,4 @@ public class TestPaymentApi {
         methods = paymentApi.getPaymentMethods(account, false);
         assertEquals(methods.size(), 1);
     }
-
-
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/MockInvoice.java b/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
index d87dfb1..5443dcf 100644
--- a/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
+++ b/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
@@ -150,21 +150,21 @@ public class MockInvoice extends EntityBase implements Invoice {
     }
 
     @Override
-    public DateTime getLastPaymentAttempt() {
-        DateTime lastPaymentAttempt = null;
+    public DateTime getLastPaymentDate() {
+        DateTime lastPayment = null;
 
-        for (final InvoicePayment paymentAttempt : payments) {
-            final DateTime paymentAttemptDate = paymentAttempt.getPaymentAttemptDate();
-            if (lastPaymentAttempt == null) {
-                lastPaymentAttempt = paymentAttemptDate;
+        for (final InvoicePayment payment : payments) {
+            final DateTime paymentDate = payment.getPaymentDate();
+            if (lastPayment == null) {
+                lastPayment = paymentDate;
             }
 
-            if (lastPaymentAttempt.isBefore(paymentAttemptDate)) {
-                lastPaymentAttempt = paymentAttemptDate;
+            if (lastPayment.isBefore(paymentDate)) {
+                lastPayment = paymentDate;
             }
         }
 
-        return lastPaymentAttempt;
+        return lastPayment;
     }
 
     @Override
@@ -213,7 +213,7 @@ public class MockInvoice extends EntityBase implements Invoice {
             return false;
         }
 
-        final DateTime lastPaymentAttempt = getLastPaymentAttempt();
+        final DateTime lastPaymentAttempt = getLastPaymentDate();
         if (lastPaymentAttempt == null) {
             return true;
         }
@@ -223,24 +223,21 @@ public class MockInvoice extends EntityBase implements Invoice {
 
     @Override
     public String toString() {
-        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
+        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentDate=" + getLastPaymentDate() + "]";
     }
 
     @Override
     public BigDecimal getCBAAmount() {
-        // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public BigDecimal getTotalAdjAmount() {
-        // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public BigDecimal getRefundAdjAmount() {
-        // TODO Auto-generated method stub
         return null;
     }
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
index b9ab5d0..957ce75 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
@@ -104,7 +104,7 @@ public class TestRetryService {
         mockPaymentProviderPlugin.clear();
 
         context = new DefaultCallContext("RetryServiceTests", CallOrigin.INTERNAL, UserType.TEST, clock);
-        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPaymentAttempt", BrainDeadProxyFactory.ZOMBIE_VOID);
+        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPayment", BrainDeadProxyFactory.ZOMBIE_VOID);
     }
 
     @AfterMethod(groups = "fast")
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
index 5c34b36..90e41c4 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
@@ -53,5 +53,4 @@ public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
         installInvoiceMigrationApi();
         installInvoiceTestApi();
     }
-
 }