in src/main/java/com/amazonaws/partners/saasfactory/metering/aggregation/StripeBillingPublish.java [266:289]
private Instant getUpcomingInvoiceExpirationDate(TenantConfiguration tenantConfiguration) {
// Need to first retrieve the subscription ID with the subscription item ID
String subscription = getSubscription(tenantConfiguration);
if (subscription.isEmpty()) {
return null;
}
InvoiceUpcomingParams invoiceUpcomingParams = InvoiceUpcomingParams.builder()
.setSubscription(subscription)
.build();
Invoice upcomingInvoice = null;
try {
upcomingInvoice = Invoice.upcoming(invoiceUpcomingParams);
} catch (StripeException e) {
this.logger.error("Error retrieving upcoming invoice for tenant {}", tenantConfiguration.getTenantID());
this.logger.error("Stripe exception:\n{}", e.getMessage());
return null;
}
Instant invoiceExpiration = Instant.ofEpochSecond(upcomingInvoice.getPeriodEnd());
this.logger.info(
"Closing time for tenant {} is {}",
tenantConfiguration.getTenantID(),
invoiceExpiration);
return invoiceExpiration;
}