As of today (31 Dec 2025), Dodo Payments does not provide us with any option for a hosted invoice PDF. As of now we get the contents of the PDF in the response which we can then stream to the user or save it in S3 and then provide them with a view url.
It would be great if we can obtain a InvoiceUrl in the payment details itself. That way, we could paginate over payments for a given subscription without having to worry about handling invoice processing at our end.
Else right now we hav to do something like this
// Step 1: Get all the payments details
iter := s.client.Payments.ListAutoPaging(ctx, dodopayments.PaymentListParams{
SubscriptionID: dodopayments.F(req.SubscriptionId),
})
paymentInvoices := make([]*DodoPaymentsInvoiceDetails, 0)
for iter.Next() {
p := iter.Current()
// FEATURE SUGGESTION => p.InvoiceUrl to be obtained here to skip all the rest of the processing given below
pdf, err := s.client.Invoices.Payments.Get(ctx, p.PaymentID)
if err != nil {
goLibOtelLogger.Errorf(ctx, err, "error fetching invoice pdf for payment id %s: %v", p.PaymentID, err)
paymentInvoice.ErrorFetching = true
paymentInvoice.Invoice = nil
paymentInvoices = append(paymentInvoices, paymentInvoice)
continue
}
paymentInvoice.Invoice = pdf
paymentInvoice.ErrorFetching = false
paymentInvoices = append(paymentInvoices, paymentInvoice)
}
if err := iter.Err(); err != nil {
return nil, err
}
// Step 2: Process paymentInvoices and upload to S3I am looking forward to this feature. Please, please help implement this as soon as possible.
Please authenticate to join the conversation.
Completed
Feature Request
About 2 months ago

Tanishq Vyas
Get notified by email when there are changes.
Completed
Feature Request
About 2 months ago

Tanishq Vyas
Get notified by email when there are changes.