public PaymentJson(final Payment payment, final String bundleExternalKey,
final List<RefundJson> refunds, final List<ChargebackJson> chargebacks,
@Nullable final List<AuditLog> auditLogs) {
this(payment.getAmount(), payment.getPaidAmount(), payment.getAccountId().toString(),
payment.getInvoiceId().toString(), payment.getId().toString(),
payment.getPaymentNumber().toString(),
payment.getPaymentMethodId().toString(),
payment.getEffectiveDate(), payment.getEffectiveDate(),
payment.getAttempts().size(), payment.getCurrency().toString(), payment.getPaymentStatus().toString(),
payment.getAttempts().get(payment.getAttempts().size() - 1).getGatewayErrorCode(),
payment.getAttempts().get(payment.getAttempts().size() - 1).getGatewayErrorMsg(),
bundleExternalKey, refunds, chargebacks, toAuditLogJson(auditLogs));
}