# DealPOS API ## Welcome Developer This page lists the reference documentation for DealPOS APIs. For guides and tutorials. Version: 3.1.0 ## Servers Production Server ``` https://{subdomain}/api/v3 ``` Variables: - `subdomain`: Your DealPOS Subdomain Default: "subdomain.dealpos.net" ## Security ### OAuth2_clientCredentials require access_token Type: oauth2 ## Download OpenAPI description [DealPOS API](https://developer.dealpos.com/_bundle/openapi/openapi.yaml) ## Token Operations related to authentication tokens ### Get Token by Client ID & Client Secret - [POST /Token/OAuth2](https://developer.dealpos.com/openapi/openapi/token/post-token-oauth2.md): Get Oauth 2.0 to access our API using ClientID and API Client Secret. ## Category Operations related to category, including create, get, etc ### Create a Category - [POST /Category](https://developer.dealpos.com/openapi/openapi/category/createcategory.md): Create a Category based on name You must have "CREATE" role in "Products" Module ### Update a Category - [PUT /Category](https://developer.dealpos.com/openapi/openapi/category/updatecategory.md): Update a category based on name You must have "EDIT" role in "Products" Module OR "EDIT" role in "Global" Module ### Delete a Category - [DELETE /Category](https://developer.dealpos.com/openapi/openapi/category/deletecategory.md): Delete a Category based on name You must have "DELETE" role in "Products" Module ### List Categories - [GET /Category](https://developer.dealpos.com/openapi/openapi/category/listcategories.md): >Also available as HTTP POST (endpoint: /api/v3/Category/p) Get list of product categories Use First example (empty object) to return all categories, and use second example to get spesific category with its children. Required Group Role: "Products" - "View" ### Get a Category By ID - [GET /Category/ID](https://developer.dealpos.com/openapi/openapi/category/getcategorybyid.md): >Also available as HTTP POST with the same endpoint Get a Category based on ID Required Group Role: "Products" - "VIEW" ## Product Operations related to product, including create, get, etc ### Create a Product - [POST /Product](https://developer.dealpos.com/openapi/openapi/product/createproduct.md): Create New Product You must have "CREATE" role in "Products" Module ### Update a Product By Code - [PUT /Product](https://developer.dealpos.com/openapi/openapi/product/updateproduct.md): Update Product Existing You must have "EDIT" role in "Products" Module OR "EDIT" role in "Global" Module ### Delete a Product - [DELETE /Product](https://developer.dealpos.com/openapi/openapi/product/deleteproduct.md): Delete Product by Code You must have "DELETE" role in "Products" Module ### List Products - [GET /Product](https://developer.dealpos.com/openapi/openapi/product/listproducts.md): >Also available as HTTP POST (endpoint: /api/v3/Product/p) Get List of Products sorted by Category Asc, Code Asc, Name Asc Required Group Role: "Products" - "VIEW" ### Get a Product By Code - [GET /Product/Code](https://developer.dealpos.com/openapi/openapi/product/getproductbycode.md): >Also available as HTTP POST with the same endpoints Get Product Detail By Code Required Group Role: "Products" - "VIEW" ### Get a Product By ID - [GET /Product/ID](https://developer.dealpos.com/openapi/openapi/product/getproductbyid.md): >Also available as HTTP POST with the same endpoints Get Product Detail By ID Required Group Role: "Products" - "VIEW" ### Get Product List With Inventory By List ID - [GET /Product/WithInventoryByListID](https://developer.dealpos.com/openapi/openapi/product/getproductlistwithinventorybylistid.md): Get Product List WIth Inventory By List ID ### Get Product List By ID - [GET /Product/ListID](https://developer.dealpos.com/openapi/openapi/product/getproductlistbyid.md): You can query a product based on Code or by GUID ### Get Product List Detail By ID - [GET /Product/DetailByListID](https://developer.dealpos.com/openapi/openapi/product/getproductlistdetailbylistid.md): Slower compared with /v3/Product/ListID But returns Extra Column p.Description + v.Weight ### Get Product List With Outlet Price By List ID - [GET /Product/WithOutletPriceByListID](https://developer.dealpos.com/openapi/openapi/product/getproductlistwithoutletpricebylistid.md): Get Product List With Outlet Price By List ID ### Get Product List With Pricebook By List ID - [GET /Product/WithPricebookByListID](https://developer.dealpos.com/openapi/openapi/product/getproductlistwithpricebookbylistid.md): Get Product List With Pricebook By List ID ## Variant Operations related to variant, including create, get, etc ### Add Variant By Product Code - [POST /Variant/Add](https://developer.dealpos.com/openapi/openapi/variant/post-variant-add.md) ### Update Variant by Code - [PUT /Variant](https://developer.dealpos.com/openapi/openapi/variant/putvariant.md): Update Variant By variant code You must have "EDIT" role in "Products" Module ### Delete a Variant - [DELETE /Variant](https://developer.dealpos.com/openapi/openapi/variant/deletevariant.md): Delete Variant By variant code You must have "DELETE" role in "Products" Module ### List Variants - [GET /Variant](https://developer.dealpos.com/openapi/openapi/variant/getvariant.md): >Also available as HTTP POST with the same endpoint Get List of Variant existing Required Group Role: "Products" - "VIEW" ### List Variant Data - [GET /Variant/Data](https://developer.dealpos.com/openapi/openapi/variant/getvariantdata.md): >Also available as HTTP POST with the same endpoint Get List of Variant Data Required Group Role: "Products" - "VIEW" ### Variants Count - [GET /Variant/Count](https://developer.dealpos.com/openapi/openapi/variant/getvariantcount.md): >Also available as HTTP POST with the same endpoint Count total Variant Required Group Role: "Products" - "VIEW" ### Get a Variant By Code - [GET /Variant/Code](https://developer.dealpos.com/openapi/openapi/variant/getvariantbycode.md): Get Variant info by code. This API does not return the OnHand inventory , to retreive the inventory please use this API Get Inventory By Code Required Group Role: "Products" - "VIEW" ### Get a Variant By ID - [GET /Variant/ID](https://developer.dealpos.com/openapi/openapi/variant/getvariantbyid.md): > This endpoint is coming soon >Also available as HTTP POST with the same endpoint Get Variant info by Code Required Group Role: "Products" - "VIEW" ### Get Variant Code By List ID - [GET /Variant/ListID](https://developer.dealpos.com/openapi/openapi/variant/getvariantlistid.md): Get Variant List ID by Outlet ### Get Variant By List Code - [GET /Variant/GetByListCode](https://developer.dealpos.com/openapi/openapi/variant/getvariantbylistcode.md): Get List Variant By List Code >Also available as [HTTP POST](https://pos.docs.stoplight.io/FAQ#1-my-httpclient-library-does-not-support-http-get-with-request-body-what-should-i-do) (endpoint: /api/v3/Variant/GetByListCode) ## Serial Operation related to Serial product type ### List Serial - [GET /Serial](https://developer.dealpos.com/openapi/openapi/serial/get-serial.md): Return a list of Variant Serial (type is Serialized / Batch Number) Can be used to aggregate Serial Number from Multiple Outlets ### Get Serial By Variant Code - [GET /Serial/byVariantCode](https://developer.dealpos.com/openapi/openapi/serial/get-variant-serialized.md): Get Variant with Type Serialized by Variant Code for specific variant ## Estimate Operations related to estimate, including create, get, etc
### Get Estimate List - [GET /Estimate](https://developer.dealpos.com/openapi/openapi/estimate/getestimatelist.md): >Also available as HTTP POST (endpoint: /api/v3/Estimate/p) Get list of estimate order Required Group Role: "Orders" - "VIEW" ### Update Estimate - [PUT /Estimate](https://developer.dealpos.com/openapi/openapi/estimate/putestimate.md): Update an Estimate based on order You must have "EDIT" role in "Estimate" Module OR "EDIT" role in "Global" Module ### Create an Estimate - [POST /Estimate](https://developer.dealpos.com/openapi/openapi/estimate/postestimate.md): Create an estimate based on order You must have "CREATE" role in "Estimate" Module OR "EDIT" role in "Global" Module ### Delete Estimate - [DELETE /Estimate](https://developer.dealpos.com/openapi/openapi/estimate/deleteestimate.md): Delete an estimate invoice You must have "Delete" role in "Estimate" Module ### Get Estimate Detail - [GET /Estimate/Detail](https://developer.dealpos.com/openapi/openapi/estimate/getestimatedetail.md): >Also available as HTTP POST with the same endpoint Get an estimate detail Required Group Role: "Orders" - "VIEW" ### List Estimate With Total Count - [GET /Estimate/WithTotalCount](https://developer.dealpos.com/openapi/openapi/estimate/getestimatewithtotalcount.md): >Also available as HTTP POST with the same endpoint Get list of estimate order with total count Required Group Role: "Orders" - "VIEW" ### Convert To Sales Order - [PUT /Estimate/ConvertToSalesOrder](https://developer.dealpos.com/openapi/openapi/estimate/put-estimate-converttosalesorder.md): Convert Estimate to Sales Order ### Convert To Invoice - [PUT /Estimate/ConvertToInvoice](https://developer.dealpos.com/openapi/openapi/estimate/put-estimate-converttoinvoice.md): Convert Estimate to Invoice ## Sales Order Operations related to sales order, including create, get, etc ### Create Sales Order - [POST /SalesOrder](https://developer.dealpos.com/openapi/openapi/sales-order/createsalesorder.md): Create Sales Order You must have "Create" role in "Sell" Module OR "EDIT" role in "Global" Module ### Delete Sales Order - [DELETE /SalesOrder](https://developer.dealpos.com/openapi/openapi/sales-order/deletesalesorder.md): Delete Sales Order You must have "Delete" role in "Sell" Module ### Convert Sales Order to Invoice - [PUT /SalesOrder/ConvertInvoice](https://developer.dealpos.com/openapi/openapi/sales-order/convertsalesordertoinvoice.md): Convert Sales Order to Invoice You must have “Create” role in “Sell” Module OR “EDIT” role in “Global” Module ### Update Sales Order Fields - [PUT /SalesOrder/Field](https://developer.dealpos.com/openapi/openapi/sales-order/updatefieldsalesorder.md): Update the fields (Reference Number, Logistic Service Code, Note) of an existing Sales Order. You must have "Edit" role in "Sell" Module OR "EDIT" role in "Global" Module * POS Condition * The system sets the fulfillment state to AWAITING_COLLECTION when a payload containing "Fulfillment": "AwaitingCollection" is received. * A transition to AWAITING_COLLECTION occurs only if the current fulfillment state is UNSENT or any earlier state. * When duplicate updates are received, the existing fulfillment state remains unchanged. Metadata fields (ReferenceNumber and/or LogisticServiceCode) are updated only when new values are provided. * Channel Service Condition * "Fulfillment": "AwaitingCollection" is emitted to the Channel Service only when at least one of the following fields is included: * ReferenceNumber * LogisticServiceCode ### Get Sales Order By List Number - [GET /SalesOrder/GetByListNumber](https://developer.dealpos.com/openapi/openapi/sales-order/getsalesorderlistbylistnumber.md): >Also available as HTTP POST with the same endpoint Get Sales Order List based on Number Required Group Role: "Orders" - "View" ### Get Sales Order ID by Number - [GET /SalesOrder/GetIDByNumber](https://developer.dealpos.com/openapi/openapi/sales-order/getsalesorderidbynumber.md): >Also available as HTTP POST with the same endpoint Get Sales Order ID by Number Required Group Role: "Orders" - "View" ### Get Sales Order Total Count - [GET /SalesOrder/TotalCount](https://developer.dealpos.com/openapi/openapi/sales-order/salesorder-totalcount.md): >Also available as HTTP POST with the same endpoint Get Sales Order Total Count based on selected outlet(s). Required Group Role: "Orders" - "View" ### Get Parked Order - [GET /SalesOrder/GetParked](https://developer.dealpos.com/openapi/openapi/sales-order/getparkedorder.md): >Also available as HTTP POST with the same endpoint Get Parked Order List with multiple outlet ### Get Reference Number By Sales Order ID - [GET /SalesOrder/GetReferenceNumber](https://developer.dealpos.com/openapi/openapi/sales-order/get-salesorder-getreferencenumber.md): Get List of Reference Number By Sales Order ID ### Get Sales Order Next Number - [GET /SalesOrder/GetNextNumber](https://developer.dealpos.com/openapi/openapi/sales-order/get-salesorder-getnextnumber.md): This API use to check sales order next number that generated from our system ## Invoice Operations related to invoice, including create, get, etc ### Create an Invoice - [POST /Invoice](https://developer.dealpos.com/openapi/openapi/invoice/createinvoice.md): Create an Invoice You must have "Create" role in "Sell" Module ### Update an Invoice - [PUT /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 /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 /Invoice/MultipleOutlet](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutlet.md): >Also available as HTTP POST with the same endpoint Get Invoice List by Multiple Outlet ### List Invoice Multiple Outlet With Variant - [GET /Invoice/MultipleOutlet/WithVariant](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutletwithvariants.md): Get Invoice List by Multiple Outlet With Variant ### List Invoice Multiple Outlet With Total Count - [GET /Invoice/MultipleOutlet/WithTotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistmultipleoutletwithtotalcount.md): >Also available as HTTP POST with the same endpoint Get Invoice List by Multiple Outlet with Total Count ### List Invoices Return - [GET /Invoice/Return](https://developer.dealpos.com/openapi/openapi/invoice/listinvoicesreturn.md): >Also available as HTTP POST (endpoint: /api/v3/Invoice/p) Get List of Invoices Return Required Group Role: "Orders" - "View" ### List Invoice With Total Count - [GET /Invoice/WithTotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicelistwithtotalcount.md): >Also available as HTTP POST with the same endpoints List Invoices with Total Count Required Group Role: "Orders" - "View" ### Create Multiple Invoice - [POST /Invoice/List](https://developer.dealpos.com/openapi/openapi/invoice/createmultipleinvoice.md): Create Multiples Invoices based on Number. You must have "CREATE" role in "Orders" Module ### Get Invoice By Number - [GET /Invoice/Number](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicebynumber.md): >Also available as HTTP POST with the same endpoint Get an Invoice based on Number Required Group Role: "Orders" - "View" ### Get Invoice By ID - [GET /Invoice/ID](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicebyid.md): >Also available as HTTP POST with the same endpoint Get an Invoice based on Invoice ID Required Group Role: "Orders" - "View" ### Get Invoice ID By Number - [GET /Invoice/IDByNumber](https://developer.dealpos.com/openapi/openapi/invoice/getinvoiceidbynumber.md): >Also available as HTTP POST with the same endpoint Get Invoice ID by Number to check that available in POS Required Group Role: "Orders" - "View" ### Send Receipt By Email - [POST /Invoice/SendReceiptByEmail](https://developer.dealpos.com/openapi/openapi/invoice/sendreceiptbyemail.md): Send Receipt to customer by email You must have "View" role in "Orders" Module ### Invoice Count - [GET /Invoice/GetCountMultipleOutlet](https://developer.dealpos.com/openapi/openapi/invoice/getcountmultipleoutlet.md): Count total invoice with multiple outlet >Also available as HTTP POST with the same endpoint ### List Invoice by Number - [GET /Invoice/GetByListNumber](https://developer.dealpos.com/openapi/openapi/invoice/getbylistnumber.md): >Also available as HTTP POST with the same endpoint Get List Invoices By Number Required Group Role: "Orders" - "View" ### List Invoice Multiple Outlet and Payment - [GET /Invoice/MultipleOutletNPayment](https://developer.dealpos.com/openapi/openapi/invoice/getinvoicemultipleoutletnpayment.md): >Also available as HTTP POST with the same endpoint Get Invoice List by Multiple Outlet and Payment ### Void Invoice - [PUT /Invoice/Void](https://developer.dealpos.com/openapi/openapi/invoice/voidinvoice.md): Void Invoice to recycle bin You must have "EDIT" role in "Sell" Module OR "VoidInvoice" role in "Orders" Module ### Restore Invoice - [PUT /Invoice/Restore](https://developer.dealpos.com/openapi/openapi/invoice/restoreinvoice.md): Restore Invoice from recycle bin You must have "EDIT" role in "Sell" Module OR "EDIT" role in "Global" Module ### Erase Invoice - [DELETE /Invoice/Erase](https://developer.dealpos.com/openapi/openapi/invoice/invoice-erase.md): > Please keep in mind that erased Invoice cannot be restored Permanently Delete Invoice if its already on Recycle Bin You must have "DELETE" role in "ORDER" Module OR "DELETE" role in "Global" Module ### List Join Invoice - [GET /Invoice/Join](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicelist.md): Get List of Join Invoice Required Group Role: "Debt" - "View" ### List Join Invoice with Total Count - [GET /Invoice/Join/TotalCount](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicelisttotalcount.md): Get List of Join Invoice with Total Count Required Group Role: "Debt" - "View" ### Join Invoice Detail - [GET /Invoice/Join/Detail/{id}](https://developer.dealpos.com/openapi/openapi/invoice/getjoininvoicedetail.md): Get Join Invoice Detail based on ID Join Invoice. Required Group Role: "Debt" - "View" ### Get Reference Number By Invoice ID - [GET /Invoice/GetReferenceNumber](https://developer.dealpos.com/openapi/openapi/invoice/get-invoice-getreferencenumber.md): Get List Reference Number by Invoice ID ### Update Note in Invoice - [PUT /Invoice/Note](https://developer.dealpos.com/openapi/openapi/invoice/put-invoice-note.md): Add / edit Invoice note You must have "EDIT" role in "Sell" Modul ## Shift Operation related to shift, including create, get, etc ### Get List Of Shifts - [GET /Shift](https://developer.dealpos.com/openapi/openapi/shift/getshiftlist.md): Required Group Role: "Shift" - "VIEW" ### Close register/end shift - [PUT /Shift](https://developer.dealpos.com/openapi/openapi/shift/closeshift.md): Required Group Role: "Shift" - "VIEW" ### Open Shift - [POST /Shift](https://developer.dealpos.com/openapi/openapi/shift/openshift.md): Required Group Role: "Shift" - "VIEW" ### Delete Shift - [DELETE /Shift](https://developer.dealpos.com/openapi/openapi/shift/deleteshift.md): Delete Previous Shift Invoice You must have "Delete" role in "Shift" Module ### Get List Of Shifts with Total Count - [GET /Shift/TotalCount](https://developer.dealpos.com/openapi/openapi/shift/getshiftlisttotalcount.md): Required Group Role: "Shift" - "VIEW" ### Get Shift Invoice Detail - [GET /Shift/InvoiceDetail](https://developer.dealpos.com/openapi/openapi/shift/getshiftinvoicedetail.md): >Also available as HTTP POST with the same endpoint Get Shift Invoice Detail Required Group Role: "Shift" - "VIEW" ### Get Shift Invoice Detail With Note - [GET /Shift/InvoiceDetailWithNote](https://developer.dealpos.com/openapi/openapi/shift/getshiftinvoicedetailwithnote.md): >Also available as HTTP POST with the same endpoint Get Shift Invoice Detail with Note ### Get Shift By Number - [GET /Shift/Number](https://developer.dealpos.com/openapi/openapi/shift/getshiftnumber.md): >Also available as HTTP POST with the same endpoint Get Shift By Number Required Group Role: "Shift" - "VIEW" ### Void Previous Shift - [DELETE /Shift/Void](https://developer.dealpos.com/openapi/openapi/shift/void-shift.md): Void Previous Shift Invoice You must have "Void" role in "Shift" Modul ### Erase Previous Shift - [DELETE /Shift/Erase](https://developer.dealpos.com/openapi/openapi/shift/delete-shift-erase.md): Erase (Delete Permanent) Previous Shift Invoice You must have "Erase" role in "Orders" Module ## Report Operations related to report page, including create, get, etc ### Get Sales Invoice - [GET /Report](https://developer.dealpos.com/openapi/openapi/report/getreport.md): >Also available as HTTP POST with the same endpoint Get Sales Transaction Required Group Role: "Report" - "VIEW" ### Get Sales Invoice by Sales Person - [GET /Report/SalesPerson](https://developer.dealpos.com/openapi/openapi/report/getsalesinvoicebysalesperson.md): >Also available as HTTP POST with the same endpoint Get Sales Invoice Transaction by Sales Person Required Group Role: "Report" - "VIEW" ### Get Sales Aggregate - [GET /Report/GetSalesAggregate](https://developer.dealpos.com/openapi/openapi/report/getsalesaggregate.md): >Also available as HTTP POST with the same endpoint Get aggregated sales data between specific dates. Required Group Role: "Report" - "VIEW" ### Get Outlet Performance - [GET /Report/OutletPerformance](https://developer.dealpos.com/openapi/openapi/report/getoutletperformance.md): >Also available as HTTP POST with the same endpoint Get Report Sales Performance by Outlet Required Group Role: "Report" - "VIEW" ### Get Sales Invoice With Item Net Sales - [GET /Report/WithItemNetSales](https://developer.dealpos.com/openapi/openapi/report/getsalesinvoicewithitemnetsales.md): >Also available as HTTP POST with the same endpoint Get Sales Invoice based on prorate nett sales calculation Required Group Role: "Report" - "VIEW" ### Get Daily Sales By Month - [GET /Report/DailySales](https://developer.dealpos.com/openapi/openapi/report/getdailysales.md): >Also available as HTTP POST with the same endpoint Get Daily Sales Transaction by Month Required Group Role: "Report" - "VIEW" ### Get Sales Invoice With Item Net Sales Complete - [GET /Report/WithItemNetSalesComplete](https://developer.dealpos.com/openapi/openapi/report/getsalesinvoicewithitemnetsalescomplete.md): >Also available as HTTP POST with the same endpoint Get Sales Invoice based on prorate nett sales calculation Required Group Role: "Report" - "VIEW" ### Get Product Sold - [GET /Report/ProductSold](https://developer.dealpos.com/openapi/openapi/report/getproductsold.md): >Also available as HTTP POST with the same endpoint Get Product Sold Required Group Role: "Report" - "VIEW" ### Get Sales Group by Outlet Tag - [GET /Report/InvoiceGroupByOutletNTag](https://developer.dealpos.com/openapi/openapi/report/getsalesgroupbyoutlettag.md): >Also available as HTTP POST with the same endpoint Chart for Sales Transaction in omni.dealpos.app Required Group Role: "Report" - "VIEW" ### Get Product Sales by SKU Group by Day - [GET /Report/ProductSold/BySKUGroupDay](https://developer.dealpos.com/openapi/openapi/report/getproductsalesbyskugroupbyday.md): >Also available as HTTP POST with the same endpoint Get Quantity Product Sales by SKU Group by Day Required Group Role: "Report" - "VIEW" ## Customer Operations related to customer data, including create, get, etc ### List Customers - [GET /Customer](https://developer.dealpos.com/openapi/openapi/customer/listcustomers.md): >Also available as HTTP POST (endpoint: /api/v3/Customer/p) Get List of customers Required Group Role: "Contacts" - "VIEW" ### Update a Customer by Email - [PUT /Customer](https://developer.dealpos.com/openapi/openapi/customer/updatecustomerbyemail.md): Update a Customer based on email You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Create a Customer - [POST /Customer](https://developer.dealpos.com/openapi/openapi/customer/createcustomer.md): Create a customer based on the name You must have "CREATE" role in "Contacts" Module ### Delete a Customer by Email - [DELETE /Customer](https://developer.dealpos.com/openapi/openapi/customer/deletecustomerbyemail.md): Delete a customer based on email You must have "DELETE" role in "Contacts" Module ### Update AppLastSignIn Customer by ID - [PUT /Customer/AppSignIn](https://developer.dealpos.com/openapi/openapi/customer/updateapplastsignincustomerbyid.md): Update Customer info by ID ### Get Customer By - [GET /Customer/Detail](https://developer.dealpos.com/openapi/openapi/customer/getcustomerdetail.md): Get customer detail based on customer ID / Code / Email / MobilePhone Required Group Role: "Contacts" - "VIEW" ### Update Customer By Code - [PUT /Customer/ByCode](https://developer.dealpos.com/openapi/openapi/customer/updatecustomerbycode.md): Update a customer based on customer code You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Update Customer By ID - [PUT /Customer/ByID](https://developer.dealpos.com/openapi/openapi/customer/updatecustomerbyid.md): Update a customer based on customer ID You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Get Customer By List ID - [GET /Customer/ListID](https://developer.dealpos.com/openapi/openapi/customer/getcustomerbylistid.md): >Get customer based on customer List ID Required Group Role: "Contacts" - "VIEW" ### Update Customer By MobilePhone - [PUT /Customer/ByMobilePhone](https://developer.dealpos.com/openapi/openapi/customer/updatecustomerbymobilephone.md): Update a customer based on customer' mobile phone You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Verify Customer's Mobile - [PUT /Customer/VerifyMobile](https://developer.dealpos.com/openapi/openapi/customer/verifycustomermobile.md): Use to verify customer's mobile phone You must have "EDIT" role in "Contacts" Module ### Verify Customer's Email - [PUT /Customer/VerifyEmail](https://developer.dealpos.com/openapi/openapi/customer/verifycustomeremail.md): Use to verify customer's email You must have "EDIT" role in "Contacts" Module ### Delete Customer By Code - [DELETE /Customer/DeleteByCode](https://developer.dealpos.com/openapi/openapi/customer/deletecustomerbycode.md): Delete a customer based on customer code You must have "DELETE" role in "Contacts" Module ### List Customer With Total Count - [GET /Customer/WithTotalCount](https://developer.dealpos.com/openapi/openapi/customer/listcustomerwithtotalcount.md): >Also available as HTTP POST with the same endpoint List Customer With Total Count Required Group Role: "Contacts" - "VIEW" ### Suspend a Customer - [PUT /Customer/Suspend](https://developer.dealpos.com/openapi/openapi/customer/suspendcustomer.md): Suspend a Customer by their ID, Code, Email, & Phone. You can choose ONE of those options because those options have this hierarchy tier: 1. ID 2. Code 3. Email 4. Phone If ID is not found, we will search for the Code, and so on base on those hierarchy You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Unsuspend a Customer - [PUT /Customer/Unsuspend](https://developer.dealpos.com/openapi/openapi/customer/unsuspendcustomer.md): Unsuspend a Customer by their ID, Code, Email, & Phone. You can choose ONE of those options because those options have this hierarchy tier: 1. ID 2. Code 3. Email 4. Phone If ID is not found, we will search for the Code, and so on base on those hierarchy You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Get New Customer Code - [GET /Customer/NewCode](https://developer.dealpos.com/openapi/openapi/customer/getnewcustomercode.md): This API is only working if you use Customer Code Generator (auto increment customer code Learn more Here). With this API, you can get the Next Customer code that the generator could assign. For example, the last customer code existed is MM-003, the API will return "MM-004" as the response. ### Merge Customer - [PUT /Customer/Merge](https://developer.dealpos.com/openapi/openapi/customer/put-customer-merge.md): This API use for merge several customer to be one customer ### Check Customer PIN Authenticate - [POST /Customer/PIN/Authenticate](https://developer.dealpos.com/openapi/openapi/customer/check-customer-pin-authenticate.md): Check Customer PIN Authenticate for redemption point ### Set Customer PIN - [PUT /Customer/PIN](https://developer.dealpos.com/openapi/openapi/customer/put-customer-pin.md): Set Customer PIN for redemption point ## Comment Operations related to comment (Contact Feedback), including create, get, etc ### Get Customer Comment - [GET /Comments](https://developer.dealpos.com/openapi/openapi/comment/get-comment.md): >Also available as HTTP POST with the same endpoint Get Customer Comment Required Group Role: "Customer" - "VIEW" ## Supplier Operations related to supplier data, including create, get, etc ### List Supplier - [GET /Supplier](https://developer.dealpos.com/openapi/openapi/supplier/listsupplier.md) ### Create Supplier - [POST /Supplier](https://developer.dealpos.com/openapi/openapi/supplier/createsupplier.md): Create a supplier based on the name You must have “CREATE” role in “Contacts” Module ### Update Supplier By Code - [PUT /Supplier/ByCode](https://developer.dealpos.com/openapi/openapi/supplier/updatesupplierbycode.md): Update a supplier based on customer code You must have "EDIT" role in "Contacts" Module OR "EDIT" role in "Global" Module ### Delete Supplier By Code - [DELETE /Supplier/DeleteByCode](https://developer.dealpos.com/openapi/openapi/supplier/deletesupplierbycode.md): Delete a supplier based on customer code You must have "DELETE" role in "Contacts" Module ### Get Supplier By Code - [GET /Supplier/Code](https://developer.dealpos.com/openapi/openapi/supplier/getsupplierbycode.md): Get supplier based on supplier code Required Group Role: "Contacts" - "VIEW" ### List Supplier With Total Count - [GET /Supplier/WithTotalCount](https://developer.dealpos.com/openapi/openapi/supplier/listsupplierwithtotalcount.md): >Also available as HTTP POST with the same endpoint List Supplier With Total Count Required Group Role: "Orders" - "VIEW" ### Get Supplier By List ID - [GET /Supplier/ListID](https://developer.dealpos.com/openapi/openapi/supplier/getsupplierbylistid.md): >Get supplier based on supploer List ID Required Group Role: "Contacts" - "VIEW" ### Merge Supplier - [PUT /Supplier/Merge](https://developer.dealpos.com/openapi/openapi/supplier/put-supplier-merge.md): This API use for merge several Supplie to be one customer ## Invoice Payment Operations related to invoice payment, including create, get, etc ### Received by Outlet - [GET /Payment/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-payment/getpaymentinvoice.md): >Also available as HTTP POST (endpoint: /api/v3/Payment/Invoice/p) Invoice Payment Received By Outlet Required Group Role: "Payment" - "VIEW" ### Add Payment - [POST /Payment/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-payment/postpaymentinvoice.md): > #### Terminology Changes > > StateFilter, will be changed into UnpaidValidation in the upcoming update, the old one will remain works. Add Payment in invoice You must have "ADD" role in "Payment" Module OR "EDIT" role in "Global" Module ### Delete Payment - [DELETE /Payment/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-payment/deletepaymentinvoice.md): Delete Payment in invoice You must have "Edit" role in "Payment" Module ### Add Payment (Full Payment) - [POST /Payment/Invoice/AddPaymentFull](https://developer.dealpos.com/openapi/openapi/invoice-payment/postpaymentinvoicefull.md): > #### Terminology Changes > > StateFilter, will be changed into UnpaidValidation in the upcoming update, the old one will remain works. > This endpoint is a fractions from API/V3/Payment/Invoice. In This endpoint, you will not need to fill the exact payment amount in order to fill the entire payments (fully paid). You will only need to fill the Amount to 0 (zero). Please see the request example attached. You must have "ADD" role in "Payment" Module OR "EDIT" role in "Global" Module ## Bill Payment Operations related to bill payment, including create, get, etc ### Add Payment - [POST /Payment/SupplierBill](https://developer.dealpos.com/openapi/openapi/bill-payment/postpaymentsupplierbill.md): Add Payment in Supplier Bill You must have "ADD" role in "Payment" Module OR "EDIT" role in "Global" Module ### Delete Payment - [DELETE /Payment/SupplierBill](https://developer.dealpos.com/openapi/openapi/bill-payment/deletepaymentsupplierbill.md): Delete Payment in invoice You must have "Edit" role in "Payment" Module ## Invoice Write Off Operations related to invoice write off, including create, get, etc ### Get WriteOff Invoice by Number - [GET /WriteOff/Invoice/Number](https://developer.dealpos.com/openapi/openapi/invoice-write-off/getwriteoffinvoicebynumber.md): Get detail of Write Off Invoice by Number ### List WriteOff Invoice - [GET /WriteOff/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-write-off/listwriteoffinvoices.md): List of WriteOff Invoice can filter by date and outlet ### Update Write Off - [PUT /WriteOff/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-write-off/put-writeoff-invoice.md): UpdateWrite Off Payment in Invoice. You must have "ADD" role in "Payment" Module ### Add Write Off - [POST /WriteOff/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-write-off/post-writeoff-invoice.md): Write Off Payment in Invoice. This API still backwards compatibility with Endpoint api/v3/Payment/Invoice/WriteOff. You must have "ADD" role in "Payment" Module ### Delete Write Off - [DELETE /WriteOff/Invoice](https://developer.dealpos.com/openapi/openapi/invoice-write-off/delete-writeoff-invoice.md): Delete WriteOff payment in Invoice ### Get WriteOff By List Invoice Number - [GET /WriteOff/Invoice/ListInvoiceNumber](https://developer.dealpos.com/openapi/openapi/invoice-write-off/get-writeoff-invoice-listinvoicenumber.md): This APi is use for get WriteOff invoice by List Invoice Number ## Inventory Operations related to inventory, including create, get, etc ### Get Inventory By List - [GET /Inventory](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybylist.md): >Also available as HTTP POST with the same endpoint Get list of Inventory Required Group Role: "Inventory" - "VIEW" ### Get Inventory By Code - [GET /Inventory/Code](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybycode.md): >Also available as HTTP POST with the same endpoint Get an Inventory based on CodeGet list of Inventory Required Group Role: "Inventory" - "VIEW" ### Get Inventory Modified Since Date - [GET /Inventory/Modified](https://developer.dealpos.com/openapi/openapi/inventory/getinventorymodified.md): Get an Inventory Log modified since the given date-time. Data returned is sorted by Modified property DESC Required Group Role: "Inventory" - "VIEW" get: summary: Get inventory Modified ### Get Inventory Modified Since Date with Count - [GET /Inventory/Modified/Count](https://developer.dealpos.com/openapi/openapi/inventory/getinventorymodifiedcount.md): Get an Inventory Log modified since the given date-time Required Group Role: "Inventory" - "VIEW" get: summary: Get inventory Modified Count ### Get Inventory By Code Array - [GET /Inventory/CodeArray](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybycodearray.md): >Also available as HTTP POST with the same endpoint Get Inventory for Multiple Code, this is an enhancement from previous api /inventory/code which can only query single Code Required Group Role: "Inventory" - "VIEW" ### Get Inventory By ListCode Group by Outlet - [GET /Inventory/CodeArrayGroupByOutlet](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybylistcodegroupbyoutlet.md): >Also available as HTTP POST with the same endpoint Get Inventory for Multiple Code group by Outlet, this is an enhancement from previous api /inventory/code which can only query single Code Required Group Role: "Inventory" - "VIEW" ### Get Inventory By List ID - [GET /Inventory/ListID](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybylistid.md): >Also available as HTTP POST with the same endpoint Get Inventory By List Outlet and List ID Required Group Role: "Inventory" - "VIEW" ### Get Inventory By List Code - [GET /Inventory/ListCode](https://developer.dealpos.com/openapi/openapi/inventory/getinventorybylistcode.md): >Also available as HTTP POST with the same endpoint Get Inventory By List Outlet and List Code Required Group Role: "Inventory" - "VIEW" ### Get List Inventory With Total Count - [GET /Inventory/WithTotalCount](https://developer.dealpos.com/openapi/openapi/inventory/getinventorywithtotalcount.md): >Also available as HTTP POST with the same endpoint Get list of Inventory Required Group Role: "Inventory" - "VIEW" ### Get Inventory In Transit - [GET /Inventory/InTransit](https://developer.dealpos.com/openapi/openapi/inventory/get-inventory-intransit.md): This API use for get data from Inventory In Transit ## Inventory Log Operations related to inventory log, including create, get, etc ### Get Inventory Log - [GET /Inventory/Log](https://developer.dealpos.com/openapi/openapi/inventory-log/getinventorylog.md): >Also available as HTTP POST with the same endpoint Get an Inventory Log based on Code Required Group Role: "Inventory" - "VIEW" ## Inventory Adjustment Operations related to inventory adjustment, including create, get, etc ### Create Adjustment by Updating Inventory - [POST /Adjustment/Set](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/createadjustment.md): ### Create Adjustment Update Inventory - Set available quantity to a given value You must have "ADD" role in "Adjustment" Module OR "EDIT" role in "Global" Module Product with type "Composite" and "Non Inventory" cannot be adjusted. When config InventoryAdjustment Approval is turned on, when adjustment is created state will be StateID: 1 (In Progress) / 2 (Waiting for Approval) ### Update Adjustment with Type Count Quantity - [PUT /Adjustment/Set](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/updateadjustmentset.md): ### Update Adjustment with Type Count Quantity Count - Set available quantity to a given value and when quantity is still Draft You must have "ADD" role in "Adjustment" Module OR "EDIT" role in "Global" Module Product with type "Composite" and "Non Inventory" cannot be adjusted. When config InventoryAdjustment Approval is turned on, when adjustment is created state will be StateID: 1 (Draft) / 2 (Pending) ### Create Adjustment by Adjusting Differences - [POST /Adjustment](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/createadjustmentbyadjustingdifferences.md): ### Create Adjustment Adjust Differences - Increment or Decrement Inventory by given amount You must have "ADD" role in "Adjustment" Module OR "EDIT" role in "Global" Module ### Update an Adjustment - [PUT /Adjustment](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/updateadjustment.md): Update an Adjustment based on the outlet and code. Only Adjustment with Type AdjustDifference that can be edit. You must have "EDIT" role in "Adjustment" Module OR "EDIT" role in "Global" Module ### Delete an Adjustment - [DELETE /Adjustment](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/deleteadjustment.md): Delete an Adjustment based on Code You must have "DELETE" role in "Adjustment" Module ### List Adjustment - [GET /Adjustment](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/listadjustment.md): >Also available as HTTP POST (endpoint: /api/v3/Adjustment/p) Get List of Adjustment Required Group Role: "Adjustment" - "VIEW" ### Get Adjustment By Number - [GET /Adjustment/Detail](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/getadjustmentbynumber.md): >Also available as HTTP POST with the same endpoint Get Adjustment detail based on Number. Required Group Role: "Adjustment" - "VIEW" ### Get Adjustment By ID - [GET /Adjustment/ID](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/getadjustmentbyid.md): >Also available as HTTP POST with the same endpoint Get Adjustment detail based on ID Adjustment. Required Group Role: "Adjustment" - "VIEW" ### List Adjustment With Total Count - [GET /Adjustment/WithTotalCount](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/listadjustmentwithtotalcount.md): Get Adjustment List With Total Count Required Group Role: "Adjustment" - "VIEW" ### Get Adjustment Workflow - [GET /Adjustment/Workflow](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/getadjustmentworkflow.md): > Get Adjustment Workflow based on configuration set in the system ### Submit Review Adjustment - [PUT /Adjustment/Submit](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/put-adjustment-submit.md): This API is for Submit Review for Pending Adjustment based on Outlet and Number Adjustment You must have "APPROVAL" role in "Adjustment" Module ### Accept Adjustment - [PUT /Adjustment/Accept](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/put-adjustment-accept.md): This API is for Accept Adjustment based on Outlet and Number Adjustment You must have "APPROVAL" role in "Adjustment" Module ### Reject Adjustment - [PUT /Adjustment/Reject](https://developer.dealpos.com/openapi/openapi/inventory-adjustment/put-adjustment-reject.md): This API is for Reject Adjustment based on Outlet and Number Adjustment You must have "APPROVAL" role in "Adjustment" Module ## Bill Operations related to bill, including create, get, etc ### Create a Bill - [POST /Bill](https://developer.dealpos.com/openapi/openapi/bill/createbill.md): Create a Supplier Bill You must have "CREATE" role in "Buy" Module OR "EDIT" role in "Global" Module ### Update a Bill - [PUT /Bill](https://developer.dealpos.com/openapi/openapi/bill/updatebill.md): Update a Supplier Bill based on number. You must have "EDIT" role in "Orders" Module OR "EDIT" role in "Global" Module ### List Bills - [GET /Bill](https://developer.dealpos.com/openapi/openapi/bill/listbills.md): >Also available as HTTP POST (endpoint: /api/v3/Bill/p) Get List of Supplier Bills based on Outlet You must have "SupplierBill" role in "Orders" Module ### Delete a Bill - [DELETE /Bill](https://developer.dealpos.com/openapi/openapi/bill/deletebill.md): Delete a Supplier Bill based on Outlet and Number You must have role "DELETE" role in "Buy" Module ### Get a Bill By Number - [GET /Bill/Number](https://developer.dealpos.com/openapi/openapi/bill/getbillbynumber.md): >Also available as HTTP POST with the same endpoint Get a Supplier Bill detail based on bill number. You must have "SupplierBill" role in "Orders" Module ### List Bills With Total Count - [GET /Bill/WithTotalCount](https://developer.dealpos.com/openapi/openapi/bill/listbillwithtotalcount.md): >Also available as HTTP POST with the same endpoint Get list of Supplier Bill detail with Total Count You must have "SupplierBill" role in "Orders" Module ### Bill Count - [GET /Bill/GetCountMultipleOutlet](https://developer.dealpos.com/openapi/openapi/bill/getcountmultipleoutlets.md): Count total bill with multiple outlet >Also available as HTTP POST with the same endpoint ### Get a Bill by ID - [GET /Bill/ID](https://developer.dealpos.com/openapi/openapi/bill/get-bill-id.md): Get a Supplier Bill detail based on bill ID. You must have "SupplierBill" role in "Orders" Module ### Join Bill Detail - [GET /Bill/Join/Detail/{id}](https://developer.dealpos.com/openapi/openapi/bill/getjoinbilldetail.md): Get Join Bill Detail based on ID Join Bill Required Group Role: "Debt" - "View" ### List Join Bill - [GET /Bill/Join](https://developer.dealpos.com/openapi/openapi/bill/getjoinbilllist.md): Get List of Join Bill Required Group Role: "Debt" - "View" ### List Join Bill with Total Count - [GET /Bill/Join/TotalCount](https://developer.dealpos.com/openapi/openapi/bill/getjoinbilllisttotalcount.md): Get List of Join Bill with Total Count Required Group Role: "Debt" - "View" ## OutboundLogistic Operations related to outbound logistic, including create, get, etc ### List OutboundLogistic - [GET /OutboundLogistic](https://developer.dealpos.com/openapi/openapi/outboundlogistic/listoutboundlogistic.md): >Previous Endpoint: https://brand.dealpos.net/api/v3/CustomerDelivery. As for now, both the new & the old ones can be use. >Also available as HTTP POST (endpoint: /api/v3/CustomerDelivery/p) Get list of Customer Delivery Required Group Role: "Logistic" - "VIEW" ### Delete OutboundLogistic - [DELETE /OutboundLogistic](https://developer.dealpos.com/openapi/openapi/outboundlogistic/deleteoutboundlogistic.md): >Previous Endpoint: https://brand.dealpos.net/api/v3/CustomerDelivery. As for now, both the new & the old ones can be use. You must have "DELETE" role in "Logistic" Module ### Create OutboundLogistic New - [POST /OutboundLogistic/New](https://developer.dealpos.com/openapi/openapi/outboundlogistic/createoutboundlogisticnew.md): Use this API to send an Outbound Logistic from an Invoice and set tracking number ### Get OutboundLogistic By Number - [GET /OutboundLogistic/Number](https://developer.dealpos.com/openapi/openapi/outboundlogistic/getoutboundlogisticbynumber.md): >Previous Endpoint: https://brand.dealpos.net/api/v3/CustomerDelivery/Number. As for now, both the new & the old ones can be use. >Also available as HTTP POST with the same endpoint Get Customer Delivery By Number Required Group Role: "Logistic" - "VIEW" ### Get OutboundLogistic By Order Number - [GET /OutboundLogistic/byOrderNumber](https://developer.dealpos.com/openapi/openapi/outboundlogistic/oubound-logistic-bynumber.md): >Also available as HTTP POST with the same endpoint Get Customer Delivery By Order / Invoice Number Required Group Role: "Logistic" - "VIEW" ### List OutboundLogistic With Total Count - [GET /OutboundLogistic/WithTotalCount](https://developer.dealpos.com/openapi/openapi/outboundlogistic/getoutboundlogisticwithtotalcount.md): >Previous Endpoint: https://brand.dealpos.net/api/v3/CustomerDelivery/WithTotalCount. As for now, both the new & the old ones can be use. >Also available as HTTP POST with the same endpoint Get list of Customer Delivery with Total Count Required Group Role: "Logistic" - "VIEW" ## InboundLogistic Operations related to inbound logistic, including create, get, etc ### List InboundLogistic - [GET /InboundLogistic](https://developer.dealpos.com/openapi/openapi/inboundlogistic/get-inboundlogistic.md): Get list of Inbound Logistics You must have "View" role in "Logistic" Module ### Create InboundLogistic - [POST /InboundLogistic](https://developer.dealpos.com/openapi/openapi/inboundlogistic/post-inboundlogistic.md): >Previous Endpoint: https://brand.dealpos.net/api/v3/SupplierDelivery. As for now, both the new & the old ones can be use. Receive supplier delivery based on number You must have "DelC" role in "Logistic" Module if config Workflow Buy Approve need "PurA" role in "Buy" Module ### Delete Inbound Logistic - [DELETE /InboundLogistic](https://developer.dealpos.com/openapi/openapi/inboundlogistic/delete-inboundlogistic.md): You must have "DELETE" role in "Logistic" Module ### Get InboundLogistic By Number - [GET /InboundLogistic/Number](https://developer.dealpos.com/openapi/openapi/inboundlogistic/inboundnumber.md): Get Inbound Logistic By Number Required Group Role: "Logistic" - "VIEW" ### Get InboundLogistic By Order Number - [GET /InboundLogistic/byOrderNumber](https://developer.dealpos.com/openapi/openapi/inboundlogistic/ordnumberinbound.md): Get Supplier Delivery By Order / Invoice Number Required Group Role: "Logistic" - "VIEW" ### Get InboundLogistic With Total Count - [GET /InboundLogistic/WithTotalCount](https://developer.dealpos.com/openapi/openapi/inboundlogistic/withtotalcountinbound.md): Get list of Supplier Delivery with Total Count Required Group Role: "Logistic" - "VIEW" ## TransferOrder Operations related to transfer order, including create, get, etc ### Create TransferOrder - [POST /TransferOrder](https://developer.dealpos.com/openapi/openapi/transferorder/createtransferorder.md): >Previous Endpoint: /api/v3/OutletDelivery. As for now, both the new & the old ones can be use. Create an Outlet Delivery You must have "CREATE" role in "Logistic" Module ### Update TransferOrder - [PUT /TransferOrder](https://developer.dealpos.com/openapi/openapi/transferorder/updatetransferorder.md): >Previous Endpoint: /api/v3/OutletDelivery. As for now, both the new & the old ones can be use. Update an Outlet Delivery You must have "EDIT" role in "Logistic" Module OR "EDIT" role in "Global" Module ### List TransferOrder - [GET /TransferOrder](https://developer.dealpos.com/openapi/openapi/transferorder/listtransferorder.md): >Previous Endpoint: /api/v3/OutletDelivery. As for now, both the new & the old ones can be use. >Also available as HTTP POST (endpoint: /api/v3/OutletDelivery/p) Get List of Outlet Delivery Required Group Role: "Logistic" - "VIEW" ### Delete TransferOrder - [DELETE /TransferOrder](https://developer.dealpos.com/openapi/openapi/transferorder/deletetransferorder.md): >Previous Endpoint: /api/v3/OutletDelivery. As for now, both the new & the old ones can be use. Delete Outlet Delivery You must have "DELETE" role in "Logistic" Module ### Void TransferOrder - [PUT /TransferOrder/Void](https://developer.dealpos.com/openapi/openapi/transferorder/voidtransferorder.md): Void an Transfer Order ### Get Transfer Order Workflow - [GET /TransferOrder/Workflow](https://developer.dealpos.com/openapi/openapi/transferorder/gettransferorderworkflow.md): > Get Transfer Order Workflow based on configuration set in the system ### Get TransferOrder by Number - [GET /TransferOrder/Detail](https://developer.dealpos.com/openapi/openapi/transferorder/gettransferorderdetail.md): >Previous Endpoint: /api/v3/OutletDelivery/Detail. As for now, both the new & the old ones can be use. >Also available as HTTP POST with the same endpoint Get Outlet Delivery detail Required Group Role: "Logistic" - "VIEW" ### Update Status TransferOrder - [PUT /TransferOrder/UpdateStatus](https://developer.dealpos.com/openapi/openapi/transferorder/updatetransferorderstatus.md): Update Status Delivery You must have "EDIT" role in "Delivery" Module OR "EDIT" role in "Global" Module ### List TransferOrder With Total Count - [GET /TransferOrder/WithTotalCount](https://developer.dealpos.com/openapi/openapi/transferorder/gettransferorderwithtotalcount.md): >Previous Endpoint: /api/v3/OutletDelivery/WithTotalCount. As for now, both the new & the old ones can be use. >Also available as HTTP POST with the same endpoint Get list of Outlet Delivery with Total Count Required Group Role: "Logistic" - "VIEW" ## Fulfillment Operations related to fulfillment, including create, get, etc ### List of New Order Fulfillment - [GET /Fulfillment/NewOrder](https://developer.dealpos.com/openapi/openapi/fulfillment/getfulfillmentneworder.md): Get list of New Order Fulfillment that is not yet picked Required Group Role: "Fulfillment" - "VIEW" ### List of New Order Fulfillment With Product - [GET /Fulfillment/NewOrderWithProduct](https://developer.dealpos.com/openapi/openapi/fulfillment/getfulfillmentneworderwithproduct.md): Get list of New Order Fulfillment with product that is not yet picked Required Group Role: "Fulfillment" - "VIEW" ### List of New Order Fulfillment With Product and Total Count - [GET /Fulfillment/NewOrderWithProduct/TotalCount](https://developer.dealpos.com/openapi/openapi/fulfillment/getfulfillmentneworderwithproducttotalcount.md): Get list of New Order Fulfillment with product that is not yet picked Required Group Role: "Fulfillment" - "VIEW" ### Get PickList by Number - [GET /PickList/Number](https://developer.dealpos.com/openapi/openapi/fulfillment/getpicklistbynumber.md): Get PickList Detail by Number Required Group Role: "Fulfillment" - "VIEW" ### Get PickList with Product and Total Count - [GET /PickList/TotalCount](https://developer.dealpos.com/openapi/openapi/fulfillment/getfulfillmentpicklistwithproducttotalcountunique.md): Get list of Picklist Fulfillment with product Required Group Role: "Fulfillment" - "VIEW" ### Get PickList - [GET /PickList](https://developer.dealpos.com/openapi/openapi/fulfillment/getpicklist.md): >Also available as HTTP POST (endpoint: /api/v3/PickList/p) Get list of PickList Required Group Role: "Fulfillment" - "VIEW" ### Create PickList - [POST /PickList](https://developer.dealpos.com/openapi/openapi/fulfillment/post-picklist.md): Create New Pick from Order Outlet Required Group Role: "Fulfillment" - "CREATED" ### Delete PickList - [DELETE /PickList](https://developer.dealpos.com/openapi/openapi/fulfillment/delete-picklist.md): Delete existing Picklist ### Get PickList by ID - [GET /PickList/ID/{id}](https://developer.dealpos.com/openapi/openapi/fulfillment/getpicklistbyid.md): Get PickList Detail by ID Required Group Role: "Fulfillment" - "VIEW" ### Assign Picklist - [PUT /PickList/Assign](https://developer.dealpos.com/openapi/openapi/fulfillment/pack-picklist.md): Assigned User.LoginID picklist Required Group Role: "Fulfillment" - "EDIT" *Recommended to use Request example by PickListID cause it more faster and specific ### Pack PickList - [PUT /PickList/Pack](https://developer.dealpos.com/openapi/openapi/fulfillment/pack-picklist-unique.md): Set Assigned to Pack or Pick to Pack PickList Required Group Role: "Fulfillment" - "CREATED" ### Ship PickList - [PUT /PickList/Ship](https://developer.dealpos.com/openapi/openapi/fulfillment/shippicklistunique.md): Set Pack to Ship PickList Required Group Role: "Fulfillment" - "CREATED" ## Prepaid Package Operations related to prepaid package, including create, get, etc ### Check In for Prepaid Package - [POST /PrepaidPackage/CheckIn](https://developer.dealpos.com/openapi/openapi/prepaid-package/checkinprepaidpackage.md): Check In prepaid packages You must have "CREATE" role in "Prepaid Packages" Module ### Check Out for Prepaid Package - [POST /PrepaidPackage/CheckOut](https://developer.dealpos.com/openapi/openapi/prepaid-package/checkoutprepaidpackage.md): Check Out prepaid packages You must have "CREATE" role in "Prepaid Packages" Module ### Get Prepaid Package History - [POST /PrepaidPackage/History](https://developer.dealpos.com/openapi/openapi/prepaid-package/post-prepaidpackage-history.md): Get prepaid packages history. You must have "VIEW" role in "Prepaid Packages" Module ### Get Prepaid Package History Detail - [POST /PrepaidPackage/History/Detail](https://developer.dealpos.com/openapi/openapi/prepaid-package/post-prepaidpackage-history-detail.md): Get single prepaid packages history with detail. You must have "VIEW" role in "Prepaid Packages" Module ### Get Prepaid Package List - [POST /PrepaidPackage/List](https://developer.dealpos.com/openapi/openapi/prepaid-package/post-prepaidpackage-list.md): Get Prepaid Package List You must have "VIEW" role in "Prepaid Packages" Module ## Promotion Coupon Operations related to promotion coupon, including create, get, etc ### List Promotion Coupons - [GET /PromotionCoupon](https://developer.dealpos.com/openapi/openapi/promotion-coupon/listpromotioncoupon.md): >Also available as HTTP POST (endpoint: /api/v3/PromotionCoupon/p) Get List of Promotion Coupons Required Group Role: "Promotion" - "VIEW" ### Create a Promotion Coupon - [POST /PromotionCoupon](https://developer.dealpos.com/openapi/openapi/promotion-coupon/createpromotioncoupon.md): Create new promotion coupon You must have "CREATE" role in "Promotion" Module ### Delete a Promotion Coupon - [DELETE /PromotionCoupon](https://developer.dealpos.com/openapi/openapi/promotion-coupon/deletepromotioncoupon.md): Delete Promotion by Code You must have "DELETE" role in "Promotion" Module ### List Promotion Coupons With Total Count - [GET /PromotionCoupon/WithTotalCount](https://developer.dealpos.com/openapi/openapi/promotion-coupon/listpromotioncouponwithtotalcount.md): >Also available as HTTP POST with the same endpoint Get List of Promotion Coupons Required Group Role: "Promotion" - "VIEW" ### Get Promotion Coupon by Code - [GET /PromotionCoupon/ByCode](https://developer.dealpos.com/openapi/openapi/promotion-coupon/get-promotioncoupon-bycode.md): >Also available as HTTP POST (endpoint: /api/v3/PromotionCoupon/p) Get Promotion Coupon Detail by Coupon Code Required Group Role: "Promotion" - "VIEW" ### Delete Promotion Coupon List - [DELETE /PromotionCoupon/ListCode](https://developer.dealpos.com/openapi/openapi/promotion-coupon/delete-promotioncoupon-listcode.md): Bulk Delete Promotion by Promotion Coupon Key. Please use NEW LINE as the separator. You must have "DELETE" role in "Promotion" Module ### Get Promotion Coupon By Reference ID - [GET /PromotionCoupon/ByReferenceID](https://developer.dealpos.com/openapi/openapi/promotion-coupon/get-promotioncoupon-byreferenceid.md): Get Promotion Coupon Detail by ReferenceI Required Group Role: "Promotion" - "VIEW" ## Promotion Event Operations related to promotion event, including create, get, etc ### List Promotion Event - [GET /PromotionEvent](https://developer.dealpos.com/openapi/openapi/promotion-event/listpromotionevent.md): >Also available as HTTP POST with the same endpoint Get List Promotion Event Required Group Role: "Promotion" - "VIEW" ### Get Promotion Event by Variant ID - [GET /PromotionEvent/GetByVariantID](https://developer.dealpos.com/openapi/openapi/promotion-event/getpromotioneventbyvariantid.md): >Also available as HTTP POST with the same endpoint Get Promotion Event by Variant ID Required Group Role: "Promotion" - "VIEW" ### Get Promotion Event by Variant Code - [GET /PromotionEvent/GetByVariantCode](https://developer.dealpos.com/openapi/openapi/promotion-event/getpromotioneventbyvariantcode.md): >Also available as HTTP POST with the same endpoint Get Promotion Event by Variant ID Required Group Role: "Promotion" - "VIEW" ## Pricebook Operations related to promotion event, including create, get, etc ### List Pricebooks - [GET /Pricebook](https://developer.dealpos.com/openapi/openapi/pricebook/listpricebook.md): > Get List of Pricebooks Required Group Role: "Promotion" - "Pricebook" ### Create Pricebook - [POST /Pricebook](https://developer.dealpos.com/openapi/openapi/pricebook/createpricebook.md): Create a new Pricebook ### Update Pricebook - [PUT /Pricebook](https://developer.dealpos.com/openapi/openapi/pricebook/update%20pricebook.md): Update an existing Pricebook ### Pricebook Detail By ID - [GET /Pricebook/ID/{id}](https://developer.dealpos.com/openapi/openapi/pricebook/pricebook_detailbyid.md): > Get Pricebook Detail By ID Required Group Role: "Promotion" - "Pricebook" ## Outlet Operations related to outlet, including create, get, etc ### List Outlets - [GET /Outlet](https://developer.dealpos.com/openapi/openapi/outlet/getoutletlist.md): >Also available as HTTP POST (endpoint: /api/v3/Outlet/p) Get List of Outlets Required Group Role: "Outlets" - "VIEW" ### Update an Outlet - [PUT /Outlet](https://developer.dealpos.com/openapi/openapi/outlet/putoutlet.md): Update an Outlet You must have "EDIT" role in "Outlets" Module OR "EDIT" role in "Global" Module ### Create an Outlet - [POST /Outlet](https://developer.dealpos.com/openapi/openapi/outlet/postoutlet.md): Create an Outlet You must have "CREATE" role in "Outlets" Module ### Delete an Outlet - [DELETE /Outlet](https://developer.dealpos.com/openapi/openapi/outlet/deleteoutlet.md): Delete an Outlet You must have "DELETE" role in "Outlets" Module ### Get Outlet By ID - [GET /Outlet/ID/{id}](https://developer.dealpos.com/openapi/openapi/outlet/getoutletbyid.md): >Get Outlet Name and Code By ID Required Group Role: "Outlets" - "VIEW" ### Get Outlet List By List ID - [GET /Outlet/ListID](https://developer.dealpos.com/openapi/openapi/outlet/getoutletlistbylistid.md): >Get Outlet Name and Code By ID Required Group Role: "Outlets" - "VIEW" ### Get Outlet Detail - [GET /Outlet/Detail](https://developer.dealpos.com/openapi/openapi/outlet/getoutletdetail.md): >Also available as HTTP POST with the same endpoint Get Outlet Detail Required Group Role: "Outlet" - "VIEW" ### Get Register by Outlet - [GET /Outlet/Register](https://developer.dealpos.com/openapi/openapi/outlet/get-outlet-register.md): Get Register List by Outlet ### Get Register By OutletID - [GET /Outlet/Register/ID](https://developer.dealpos.com/openapi/openapi/outlet/getregisterbyoutletid.md): > Get Register By OutletID Required Group Role: "Outlets" - "VIEW" ## User Operations related to user, including create, get, etc ### Create User - [POST /User](https://developer.dealpos.com/openapi/openapi/user/createuser.md): Create a new user with the specified details. Required Group Role: "Users" - "Create" ### Create Group - [POST /Group](https://developer.dealpos.com/openapi/openapi/user/creategroup.md): Create a new group with the specified details. Required Group Role: "Users" - "Group" ### Get User By List ID - [GET /User/ID](https://developer.dealpos.com/openapi/openapi/user/getuserbylistid.md): >Get User Name By List ID Required Group Role: "Users" - "VIEW" ### Get User By List - [GET /User/List](https://developer.dealpos.com/openapi/openapi/user/getuserbylist.md): >Get User Name List By status and role Required Group Role: "Users" - "VIEW" ## Outlet Price Operations related to outlet price, including create, get, etc ### Get Outlet Price By Code - [GET /OutletPrice](https://developer.dealpos.com/openapi/openapi/outlet-price/getoutletpricebycode.md): >Also available as HTTP POST (endpoint: /api/v3/OutletPrice/p) Get Outlet Price By Variant Code Required Group Role: "Products" - "VIEW" ### Update Outlet Price - [PUT /OutletPrice](https://developer.dealpos.com/openapi/openapi/outlet-price/updateoutletprice.md): Update Outlet Price You must have "EDIT" role in "Products" Module OR "EDIT" role in "Global" Module ### Create an Outlet Price - [POST /OutletPrice](https://developer.dealpos.com/openapi/openapi/outlet-price/createoutletprice.md): Add Outlet Price in Product You must have "EDIT" role in "Products" Module OR "EDIT" role in "Global" Module ### Delete an Outlet Price - [DELETE /OutletPrice](https://developer.dealpos.com/openapi/openapi/outlet-price/deleteoutletprice.md): Delete an Outlet Price You must have "EDIT" role in "Products" Module OR "EDIT" role in "Global" Module ## Loyalty Point Operations related to loyalty point, including create, get, etc ### Get History by Email or Phone - [GET /LoyaltyPoint/EmailOrPhone](https://developer.dealpos.com/openapi/openapi/loyalty-point/getloyaltypointhistory.md): >Also available as HTTP POST with the same endpoint Get Loyalty Point History for a specific customer by Email, MobilePhone or Phone Required Group Role: "Contacts" - "VIEW" ### Get Loyalty Point Expiration By Email - [GET /LoyaltyPoint/ExpirationByEmail](https://developer.dealpos.com/openapi/openapi/loyalty-point/getloyaltypointexpirationbyemail.md): Get Loyalty Point Expiration for a specific customer by Email Required Group Role: "Contacts" - "VIEW" ### Get Loyalty Point Expiration By Mobile Phone - [GET /LoyaltyPoint/ExpirationByMobile](https://developer.dealpos.com/openapi/openapi/loyalty-point/getloyaltypointexpirationbymobile.md): Get Loyalty Point Expiration for a specific customer by Mobile Phone Required Group Role: "Contacts" - "VIEW" ### Add / Redeem Loyalty Point by Mobile - [PUT /LoyaltyPoint/Mobile](https://developer.dealpos.com/openapi/openapi/loyalty-point/put-loyaltypoint-mobile.md): Add / Redeem Loyalty Point Customer by Mobile ### Get Loyalty Point - [GET /LoyaltyPoint](https://developer.dealpos.com/openapi/openapi/loyalty-point/getloyaltypoint.md): >Also available as HTTP POST (endpoint: /api/v3/LoyaltyPoint/p) Get Loyalty Point History Required Group Role: "Contacts" - "VIEW" ### Add / Redeem Loyalty Point By Email - [PUT /LoyaltyPoint](https://developer.dealpos.com/openapi/openapi/loyalty-point/addredeemloyaltypointbyemail.md): Add / Redeem Loyalty Point Customer by Email ### Get Total Earn and Redeem Loyalty Point - [GET /LoyaltyPoint/EarnAndRedeem](https://developer.dealpos.com/openapi/openapi/loyalty-point/getearnandredeemloyaltypoint.md): >Also available as HTTP POST (endpoint: /api/v3/LoyaltyPoint/p) Get total Earn and Redeem Loyalty Point according period define Required Group Role: "Contacts" - "VIEW" ### Get Loyalty Point With Total Count - [GET /LoyaltyPoint/WithTotalCount](https://developer.dealpos.com/openapi/openapi/loyalty-point/getloyaltypointwithtotalcount.md): >Also available as HTTP POST with the same endpoint Get Loyalty Point With Total Count Required Group Role: "Contacts" - "VIEW" ## Notification Operations related to notification, including create, get, etc ### List Notifications - [GET /Notification](https://developer.dealpos.com/openapi/openapi/notification/listnotifications.md): >Also available as HTTP POST (endpoint: /api/v3/Notification/p) Get List of Notifications Required Group Role: "My Profile" - "Notification" OR "Global" - "EDIT" ### Create a Notification - [POST /Notification](https://developer.dealpos.com/openapi/openapi/notification/api/notification/push.md): Push Notification to Cashier Point of Sales Create a Notification based on outlets You must have "Notification" role in "My Profile" Module ### Delete Notifications - [DELETE /Notification](https://developer.dealpos.com/openapi/openapi/notification/deletenotifications.md): Delete a Notification You must have "Notification" role in "My Profile" Module ### List Notifications With Total Count - [GET /Notification/WithTotalCount](https://developer.dealpos.com/openapi/openapi/notification/listnotificationswithtotalcount.md): >Also available as HTTP POST with the same endpoint Get List of Notifications With Total Count Required Group Role: "My Profile" - "Notification" OR "Global" - "EDIT" ## Payment Method Operations related to payment method, including create, get, etc ### List Payment Method - [GET /PaymentMethod](https://developer.dealpos.com/openapi/openapi/payment-method/listpaymentmethod.md): List of payment method ## Invoice Write Off Option Operations related to invoice write off option, including create, get, etc ### List Write Off Option - [GET /WriteOff/Option](https://developer.dealpos.com/openapi/openapi/invoice-write-off-option/listwriteoffoption.md): Get Write Off Option. This API still backwards compatibility with Endpoint api/v3/WriteOff. You must have "VIEW" role in "Setup" Module ### Add WriteOff Option - [POST /WriteOff/Option](https://developer.dealpos.com/openapi/openapi/invoice-write-off-option/post-writeoff-option.md): Add new option in list WriteOff ### Delete Write Off Option - [DELETE /WriteOff/Option](https://developer.dealpos.com/openapi/openapi/invoice-write-off-option/delete-writeoff-option.md): Delete option in list writeoff ## Tax Operations related to tax, including create, get, etc ### List Tax - [GET /Tax](https://developer.dealpos.com/openapi/openapi/tax/listtax.md): List of Tax ## Expense Operations related to get expense ### List Expense - [GET /Expense](https://developer.dealpos.com/openapi/openapi/expense/listexpense.md): Get List of Expense ## Logistics Service Operations related to logistics service, including create, get, etc ### List Logistics Service - [GET /LogisticsService](https://developer.dealpos.com/openapi/openapi/logistics-service/listlogisticsservice.md): List of Logistics Service ## Park Order Display Operations related to parked order display, including create, get, etc ### Update State - [PUT /ParkedOrderDisplay/UpdateState](https://developer.dealpos.com/openapi/openapi/park-order-display/updatestate.md): Updates the state of multiple items using query parameters. ### Get Parked Order Summary Default - [GET /ParkedOrderDisplay/Summary/Default](https://developer.dealpos.com/openapi/openapi/park-order-display/getparkedordersummary.md): Retrieves a summary of parked orders based on Outlet and Category by Entry Time ### Get Parked Order Summary Group By Order - [GET /ParkedOrderDisplay/Summary/GroupByOrder](https://developer.dealpos.com/openapi/openapi/park-order-display/getparkedordersummaryorder.md): Retrieves a summary of parked orders based on Outlet and Category group by order. ### Get Parked Order Summary Group By Variant - [GET /ParkedOrderDisplay/Summary/GroupByVariant](https://developer.dealpos.com/openapi/openapi/park-order-display/getparkedordersummaryvariant.md): Retrieves a summary of parked orders based on Outlet and Category group by variant. ### Get Parked Orders Grouped by Variant - [GET /ParkedOrderDisplay/GroupByVariant](https://developer.dealpos.com/openapi/openapi/park-order-display/getparkedordersbyvariant.md): Retrieves parked orders grouped by variant, filtered by state, outlet, and category. ### Get Parked Orders Grouped by Order - [GET /ParkedOrderDisplay/GroupByOrder](https://developer.dealpos.com/openapi/openapi/park-order-display/getparkedordersbyorder.md): Retrieves parked orders grouped by order, filtered by state, outlet, and category. ### Get Parked Orders Default - [GET /ParkedOrderDisplay/Default](https://developer.dealpos.com/openapi/openapi/park-order-display/getdefaultparkedorders.md): Retrieves a list of parked orders with filtering options. ## Midtrans Payment Gateway Operations related to Midtrans Payment Gateway, including create, get, etc ### Generate QRIS - [POST /Payment/Midtrans/Charge](https://developer.dealpos.com/openapi/openapi/midtrans-payment-gateway/get-payment-midtrans-charge.md): Generate QRIS for specified Invoice When the QR has been paid, an Invoice Payment is automatically added to the Invoice Note: If you require custom amount for your QR you can also directly use Midtrans API https://docs.midtrans.com/reference/qris ### Get Transaction Status - [POST /Payment/Midtrans/Status](https://developer.dealpos.com/openapi/openapi/midtrans-payment-gateway/get-payment-midtrans-status.md): Wrapper for https://docs.midtrans.com/reference/get-transaction-status https://docs.midtrans.com/reference/get-transaction-status ## Apps Operations related to Apps, including create, get, etc ### List Apps - [GET /Apps/List](https://developer.dealpos.com/openapi/openapi/apps/listapps.md): List of Apps which can integrated with our system ### Active Apps - [GET /Apps/Active](https://developer.dealpos.com/openapi/openapi/apps/activeapps.md): Detected apps which checklist in config POS ## Barcode Operations related to barcode, including create, get, etc ### Get Barcode by Bill Number - [GET /Barcode/ByBillNumber](https://developer.dealpos.com/openapi/openapi/barcode/getbarcodebybillnumber.md): Get List Variant by Bill Number ### Get Barcode By Outlet Delivery Number - [GET /Barcode/ByOutletDeliveryNumber](https://developer.dealpos.com/openapi/openapi/barcode/getbarcodebyoutletdeliverynumber.md): Get List Variant By Outlet Delivery Number ## Client Secret Operations related to client secret, including create, get, etc ### Get Client Secret - [GET /ClientSecret](https://developer.dealpos.com/openapi/openapi/client-secret/getclientsecret.md): Get Client Secret from existing client secret ### Generate Client Secret - [PUT /ClientSecret/Update](https://developer.dealpos.com/openapi/openapi/client-secret/updateclientsecret.md): Generate New Client Secret ## Rate Limit Operations related to rate limit, including create, get, etc ### Rate Limit Checking - [GET /ratelimit](https://developer.dealpos.com/openapi/openapi/rate-limit/ratelimitchecking.md): Get number of PermitLimit, Window, QueueLimit ## Deprecated ### Get Customer By Email - [GET /Customer/Email](https://developer.dealpos.com/openapi/openapi/deprecated/getcustomerbyemail.md): >Also available as HTTP POST with the same endpoint Get a customer based on customer email Required Group Role: "Contacts" - "VIEW" ### Get Variant ID By List Code - [GET /Variant/GetIDByListCode](https://developer.dealpos.com/openapi/openapi/deprecated/getvariantidbylistcode.md): Given a list of ProductSKU, the system will then return Internal ProductID+VariantID ### Get Variant ID By List Code Discontinued - [GET /Variant/GetIDByListCodeDiscontinued](https://developer.dealpos.com/openapi/openapi/deprecated/getvariantidbylistcodediscontinued.md): Given a list of ProductSKU, the system will then return Internal ProductID+VariantID filter by Discontinued State ### Get Customer By Code - [GET /Customer/Code](https://developer.dealpos.com/openapi/openapi/deprecated/getcustomerbycode.md): >Also available as HTTP POST with the same endpoint Get customer based on customer code Required Group Role: "Contacts" - "VIEW" ### Get Customer By MobilePhone - [GET /Customer/MobilePhone](https://developer.dealpos.com/openapi/openapi/deprecated/getcustomerbymobilephone.md): >Also available as HTTP POST with the same endpoint Get a customer based on customer mobile phone number Required Group Role: "Contacts" - "VIEW" ### Update Sales Order Reference Number - [PUT /SalesOrder/ReferenceNumber](https://developer.dealpos.com/openapi/openapi/deprecated/updatereferencenumbersalesorder.md): Update the Reference Number of an existing Sales Order. You must have "Edit" role in "Sell" Module OR "EDIT" role in "Global" Module ### Get Customer PIN - [GET /Customer/PIN](https://developer.dealpos.com/openapi/openapi/deprecated/get-customer-pin.md): Get Customer PIN for redemption point