> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Method name: createInvoicePreviewUrl(id: IdAndVersion, options: AuthOptions) # Method package: wixBillingBackend # Method menu location: wixBillingBackend --> Invoices --> createInvoicePreviewUrl # Method Link: https://dev.wix.com/docs/velo/apis/wix-billing-backend/invoices/create-invoice-preview-url.md # Method Description: Creates a link that can be used by a customer to preview the invoice. The `createInvoicePreviewUrl()` function returns a Promise that resolves to a temporary link to a preview of the invoice with the specified ID. You can get a list of invoices by querying your site's "Billing/Invoices" collection. Each invoice in the query result contains the `_id` and `version` fields, which must be used when calling `createInvoicePreviewUrl()`. By default, `createInvoicePreviewUrl()` can be called by site contributors only. To allow customers to generate the invoice preview link, set `suppressAuth` in the `options` argument to `true`. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Create invoice preview link ```javascript import { Permissions, webMethod } from 'wix-web-module'; import { invoices } from 'wix-billing-backend'; export const myCreateInvoicePreviewUrlFunction = webMethod(Permissions.Anyone, async (myInvoiceId, myInvoiceVersion) => { const id = { id: myInvoiceId, version: myInvoiceVersion }; const options = { suppressAuth: false }; return await invoices.createInvoicePreviewUrl(id, options); }); /* Promise resolves to: * * "https://invoices.wix.com/invoice/4ffbe78f-d789-5f3b-9a01-e892987ee43e:a5af37a4-753d-4701-8518-be23920ac3a0/view?token=628fa483-a473-4408-bac7-7501e81b32e3" */ ``` ## Get the invoice version and create the invoice preview link ```javascript import { Permissions, webMethod } from 'wix-web-module'; import { invoices } from 'wix-billing-backend'; export const myCreateInvoicePreviewUrlFunction = webMethod(Permissions.Anyone, async (myInvoiceId) => { const retrievedInvoice = await invoices.getInvoice(myInvoiceId); const options = { suppressAuth: false }; return await invoices.createInvoicePreviewUrl(retrievedInvoice.id, options); }); /* Promise resolves to: * * "https://invoices.wix.com/invoice/4ffbe78f-d789-5f3b-9a01-e892987ee43e:a5af37a4-753d-4701-8518-be23920ac3a0/view?token=628fa483-a473-4408-bac7-7501e81b32e3" */ ``` ## Query invoices and create the invoice preview link for the first result ```javascript import { Permissions, webMethod } from 'wix-web-module'; import { invoices } from 'wix-billing-backend'; import wixData from 'wix-data'; export const myCreateInvoicePreviewUrlFunction = webMethod(Permissions.Anyone, async () => { const returnedInvoices = await wixData.query('Billing/Invoices').find(); const firstInvoice = returnedInvoices.items[0]; const id = { id: firstInvoice._id, version: firstInvoice.version }; const options = { suppressAuth: false }; return await invoices.createInvoicePreviewUrl(id, options); }); /* Promise resolves to: * * "https://invoices.wix.com/invoice/4ffbe78f-d789-5f3b-9a01-e892987ee43e:a5af37a4-753d-4701-8518-be23920ac3a0/view?token=628fa483-a473-4408-bac7-7501e81b32e3" */ ``` ---