Send invoice to multiple contacts using API

Hi, doing some work with the QuickFile API and I can’t seem to find a way to send an invoice or estimate to more than one contact at once. Is this something that can be done? It’s pretty important to be able to send our quotes to more than one email address.

If this isn’t possible, is there a way to extract the client side invoice view link that is normally embedded in the email using the API? We would need this to construct our own email that can be send to multiple email addresses.

Hi @Adam_Johnston

There’s an optional ClientContactId field that you can pass to the invoice send endpoint. It can only be used with one contact at a time, but calling this with different IDs will send the email to the contact you specify

Hi @QFMathew,

Good to know the invoice send function will work multiple times for the same invoice.

Is there a way to extract the client side invoice view link? This would still be useful.

Thanks for your help

Hi @QFMathew,

Did you have any note on extracting the invoice view link?


Hi all,

Does anyone know how to extract the invoice or quote view link that is included in an email sent to the client for use in our own emails, using the API?

Including this link in emails explaining context surrounding the service being quoted would be useful for us.

Hi @Adam_Johnston

Apologies, I missed your previous message.

The Invoice_Get method should do this for you. One of the fields returned is "DirectPreviewUri", which would give you a link to view it directly. There’s an example of this here: Invoice_Get API Schema

Or, if you’d prefer to get an actual link to log into the client control panel (similar to those in the emails), the Client_Login endpoint would do this: Client_LogIn API Schema

@QFMathew The “DirectPreviewUri” only allows access to a PDF copy of the quote, not the page where a client can accept it. The Client_Login endpoint is exactly what we are looking for, except the docs say the link will expire 20 minutes after it is issued, which is far too soon for our use case. Is there a way to get a copy of the link that does not expire, except by scraping it from the sent email?

There isn’t a way of doing this I’m afraid. What you would need to do is create an intermediary page, which would generate the URL and redirect when viewed. Additionally, this would allow you to do your own checks and create your own logs as needed.

Perhaps you could share some details of what you’re looking to achieve and we could advise on another way of doing this?