> 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: updateInvoice(id: IdAndVersion, invoiceFields: InvoiceFields, fieldMask: Array) # Method package: wixBillingBackend # Method menu location: wixBillingBackend --> Invoices --> updateInvoice # Method Link: https://dev.wix.com/docs/velo/apis/wix-billing-backend/invoices/update-invoice.md # Method Description: Update an existing invoice. The `updateInvoice()` function returns a Promise that resolves to the ID and version of the updated invoice. > **Note:** The customer listed on the invoice must be an existing site contact or member. # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Update an existing invoice ```javascript import { Permissions, webMethod } from 'wix-web-module'; import { invoices } from 'wix-billing-backend'; export const updateInvoice = webMethod(Permissions.Anyone, (id) => { return invoices.getInvoice(id) .then((result) => { //make some changes result.metadata.notes = "An updated note."; let updateFields = { "title": result.title, "customer": result.customer, "currency": result.currency, "lineItems": result.lineItems, "discount": result.discount, "payments": result.payments, "metadata": result.metadata, "dates": result.dates }; return invoices.updateInvoice(result.id, updateFields); }); }); /* Promise resolves to: * { * { * "id": { * "id": "1ed3a515-24f9-4039-8937-2e69b6a2f33a", * "version": 31 * } * } * } */ ``` ---