# Invoice Operations related to invoice, including create, get, etc ## Create an Invoice - [POST /api/v3/Invoice](https://developer.dealpos.com/openapi/openapi/invoice/createinvoice.md): Create a new invoice in the system. Requires the "Create" role in the "Sell" module. ## Update an Invoice - [PUT /api/v3/Invoice](https://developer.dealpos.com/openapi/openapi/invoice/updateinvoice.md): Update an Invoices based on Number You must have "EDIT" role in "Orders" Module OR "EDIT" role in "Global" Module ## Delete an Invoice - [DELETE /api/v3/Invoice](https://developer.dealpos.com/openapi/openapi/invoice/deleteinvoice.md): Delete an Invoice based on Number You must have "DELETE" role in "Orders" Module ## List Invoice Multiple Outlet - [GET /api/v3/Invoice/MultipleOutlet](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutlet.md): Get a list of invoices across multiple outlets with filtering options. ## List Invoice Multiple Outlet With Variant - [GET /api/v3/Invoice/MultipleOutlet/WithVariant](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutletwithvariants.md): Get invoices across multiple outlets including variant details. ## List Invoice Multiple Outlet With Total Count - [GET /api/v3/Invoice/MultipleOutlet/WithTotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutletwithtotalcount.md): Get invoices across multiple outlets with total count and filters. ## List Invoices Return - [GET /api/v3/Invoice/Return](https://developer.dealpos.com/openapi/openapi/invoice/listinvoicesreturn.md): Get a list of returned invoices with filtering options. Requires the "View" role in the "Orders" module. ## List Invoice With Total Count - [GET /api/v3/Invoice/WithTotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistwithtotalcount.md): List invoices with total count and filtering options. Requires the "View" role in the "Orders" module. ## Get List Invoice ID - [GET /api/v3/Invoice/ListID](https://developer.dealpos.com/openapi/openapi/invoice/getlistidinvoice.md): Get a list of invoice IDs filtered by date range and outlets. Requires the "View" role in the "Orders" module. ## Get List Invoice ID by Key Set - [GET /api/v3/Invoice/ListIDByKeyset](https://developer.dealpos.com/openapi/openapi/invoice/getlistidinvoicebykeyset.md): Get a list of invoice IDs by date range and keyset (after ID) for pagination. Requires the "View" role in the "Orders" module. ## Get List Invoice By List ID - [GET /api/v3/Invoice/ListInvoiceByListID](https://developer.dealpos.com/openapi/openapi/invoice/getlistinvoicebylistid.md): Get invoices for a list of invoice IDs. Requires the "View" role in the "Orders" module. ## Create Multiple Invoice - [POST /api/v3/Invoice/List](https://developer.dealpos.com/openapi/openapi/invoice/createmultipleinvoice.md): Create multiple invoices in a single request. Requires the "CREATE" role in the "Orders" module. ## Get Invoice By - [GET /api/v3/Invoice/Detail](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicedetail.md): Retrieve invoice details by number, ID, or outlet. Requires the "View" role in the "Orders" module. Use one of the following parameter combinations to retrieve an invoice detail: By Invoice & Outlet Name: GET /Invoice/Detail?Number=20.05.00157&Outlet=Outlet1 Example Pair: > Outlet: Outlet 1 > Number: 20.05.00157 By Invoice & Outlet ID: GET /Invoice/Detail?Number=20.05.00157&OutletID=9c8a1b0e-1c9c-4b3f-9a7d-2e5f6a7b8c9d Example Pair: > OutletID: 9c8a1b0e-1c9c-4b3f-9a7d-2e5f6a7b8c9d > Number: 20.05.00157 By Invoice ID: GET /Invoice/Detail?ID=aad4a789-b802-49c1-b66f-f45fbc7ce17f Example: > ID: aad4a789-b802-49c1-b66f-f45fbc7ce17f ## Get Invoice By Number - [GET /api/v3/Invoice/Number](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicebynumber.md): Retrieve an invoice by its number and outlet. Requires the "View" role in the "Orders" module. ## Get Invoice By ID - [GET /api/v3/Invoice/ID](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicebyid.md): Retrieve an invoice by its ID. Requires the "View" role in the "Orders" module. ## Get Invoice ID By Number - [GET /api/v3/Invoice/IDByNumber](https://developer.dealpos.com/openapi/openapi/invoice/getinvoiceidbynumber.md): Get the invoice ID for a given invoice number and outlet. Requires the "View" role in the "Orders" module. ## Send Receipt By Email - [POST /api/v3/Invoice/SendReceiptByEmail](https://developer.dealpos.com/openapi/openapi/invoice/sendreceiptbyemail.md): Send an invoice receipt to the customer by email. Requires the "View" role in the "Orders" module. ## Invoice Count - [GET /api/v3/Invoice/GetCountMultipleOutlet](https://developer.dealpos.com/openapi/openapi/invoice/getcountmultipleoutlet.md): Count total invoices across multiple outlets using the provided filters. ## List Invoice by Number - [GET /api/v3/Invoice/GetByListNumber](https://developer.dealpos.com/openapi/openapi/invoice/getbylistnumber.md): Retrieve multiple invoices by their numbers. Requires the "View" role in the "Orders" module. ## List Invoice Multiple Outlet and Payment - [GET /api/v3/Invoice/MultipleOutletNPayment](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicemultipleoutletnpayment.md): Get invoices across multiple outlets with payment-state filters. ## Void Invoice - [PUT /api/v3/Invoice/Void](https://developer.dealpos.com/openapi/openapi/invoice/voidinvoice.md): Void an invoice to the recycle bin (soft delete). Requires the "EDIT" role in the "Sell" module or the "VoidInvoice" role in the "Orders" module. ## Restore Invoice - [PUT /api/v3/Invoice/Restore](https://developer.dealpos.com/openapi/openapi/invoice/restoreinvoice.md): Restore an invoice from the recycle bin. Requires the "EDIT" role in the "Sell" module or the "EDIT" role in the "Global" module. ## Erase Invoice - [DELETE /api/v3/Invoice/Erase](https://developer.dealpos.com/openapi/openapi/invoice/invoice-erase.md): Permanently erase an invoice from the recycle bin; this action cannot be undone. Requires the "DELETE" role in the "ORDER" module or the "DELETE" role in the "Global" module. ## List Join Invoice - [GET /api/v3/Invoice/Join](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicelist.md): Get a paginated list of joined invoices. Requires the "View" role in the "Debt" module. ## List Join Invoice with Total Count - [GET /api/v3/Invoice/Join/TotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicelisttotalcount.md): Get a paginated list of joined invoices with total count. Requires the "View" role in the "Debt" module. ## Join Invoice Detail - [GET /api/v3/Invoice/Join/Detail/{id}](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicedetail.md): Retrieve joined invoice details by join-invoice ID. Requires the "View" role in the "Debt" module. ## Get Reference Number By Invoice ID - [GET /api/v3/Invoice/GetReferenceNumber](https://developer.dealpos.com/openapi/openapi/invoice/get-invoice-getreferencenumber.md): Get reference numbers for a list of invoice IDs. ## Update Note in Invoice - [PUT /api/v3/Invoice/Note](https://developer.dealpos.com/openapi/openapi/invoice/put-invoice-note.md): Add or edit the note on an invoice. Requires the "EDIT" role in the "Sell" module.