Skip to content

DealPOS API (3.1.0)

Welcome Developer

This page lists the reference documentation for DealPOS APIs. For guides and tutorials.

Download OpenAPI description
Overview
Languages
Servers
Production Server
https://{subdomain}/

Token

Operations related to authentication tokens

Operations

Category

Operations related to category, including create, get, etc

Operations

Product

Operations related to product, including create, get, etc

Operations

Variant

Operations related to variant, including create, get, etc

Operations

Serial

Operation related to Serial product type

Operations

Estimate

Operations related to estimate, including create, get, etc

Operations

Sales Order

Operations related to sales order, including create, get, etc

Operations

Invoice

Operations related to invoice, including create, get, etc

Operations

Shift

Operation related to shift, including create, get, etc

Operations

Report

Operations related to report page, including create, get, etc

Operations

Customer

Operations related to customer data, including create, get, etc

Operations

Comment

Operations related to comment (Contact Feedback), including create, get, etc

Operations

Supplier

Operations related to supplier data, including create, get, etc

Operations

Invoice Payment

Operations related to invoice payment, including create, get, etc

Operations

Bill Payment

Operations related to bill payment, including create, get, etc

Operations

Invoice Write Off

Operations related to invoice write off, including create, get, etc

Operations

Inventory

Operations related to inventory, including create, get, etc

Operations

Get Inventory By List

Request

Get a list of inventory items with optional filters (outlet, category, quantity, tags). Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Query
PageNumberintegerrequired

The page number of the product

Example: PageNumber=1
PageSizeintegerrequired

The page size of the product list

Example: PageSize=500
ListOutletIDArray of strings

Guid outlet ID array. if not send the request, it will get from OutletName list

Example: ListOutletID=3558dc76-3e32-49c4-84dd-0b3f76f02570,a5f5b2e1-2d3c-4e8f-9f4d-1c2b3a4d5e6f
ListOutletArray of strings

List of outlet name array. if not send the request, it will get from OutletID list

Example: ListOutlet=Outlet1,Outlet2
Categorystring

The product category

Example: Category=Top
QuantityFrominteger

The minimum quantity of the product that users want to view

Example: QuantityFrom=1
Discontinuedboolean

The product discontinued status

Tagsstring

The product tags

Example: Tags=Summer
curl -i -X GET \
  'https://subdomain.dealpos.net/api/v3/Inventory?PageNumber=1&PageSize=500&ListOutletID=3558dc76-3e32-49c4-84dd-0b3f76f02570%2Ca5f5b2e1-2d3c-4e8f-9f4d-1c2b3a4d5e6f&ListOutlet=Outlet1%2COutlet2&Category=Top&QuantityFrom=1&Discontinued=true&Tags=Summer' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Bodyapplication/jsonArray [
Categorystring

Name of product category

Productstring

Name of product

Variantstring

The variant name

Codestring

The variant code

Iobject

Inventory for the variant

]
Response
application/json
[ { "Category": "Top/Men", "Product": "Captain America T-Shirt", "Variant": "Captain America T-Shirt (Large)", "Code": "1003L", "I": { … } }, { "Category": "Top/Men", "Product": "Captain America T-Shirt", "Variant": "Captain America T-Shirt (Medium)", "Code": "1003M", "I": { … } }, { "Category": "Top/Men", "Product": "Denim Shirt", "Variant": "Denim Shirt (L)", "Code": "1342L", "I": { … } }, { "Category": "Top/Men", "Product": "Denim Shirt", "Variant": "Denim Shirt (M)", "Code": "1342M", "I": { … } }, { "Category": "Top/Men", "Product": "Jacket", "Variant": "Jacket (L)", "Code": "1021L", "I": { … } }, { "Category": "Top/Men", "Product": "Jacket", "Variant": "Jacket (M)", "Code": "1021M", "I": { … } }, { "Category": "Top/Men", "Product": "Jacket", "Variant": "Jacket (S)", "Code": "1021S", "I": { … } } ]

Inventory Count

Request

Count of inventory items with optional filters (outlet, category, quantity, tags). Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/jsonrequired

Inventory count request body

ListOutletIDArray of strings

Guid outlet ID array. if not send the request, it will get from OutletName list

Example: "3558dc76-3e32-49c4-84dd-0b3f76f02570,a5f5b2e1-2d3c-4e8f-9f4d-1c2b3a4d5e6f"
ListOutletArray of strings

List of outlet name array. if not send the request, it will get from OutletID list

Example: "Outlet1,Outlet2"
Categorystring

The product category

Example: "Top"
QuantityFrominteger

The minimum quantity of the product that users want to view

Example: 1
Discontinuedboolean

The product discontinued status

Example: false
Tagsstring

The product tags

Example: "Summer"
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/Count \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "ListOutletID": [
      "3558dc76-3e32-49c4-84dd-0b3f76f02570",
      "a5f5b2e1-2d3c-4e8f-9f4d-1c2b3a4d5e6f"
    ],
    "ListOutlet": [
      "Outlet1",
      "Outlet2"
    ],
    "Category": "Top",
    "QuantityFrom": 1,
    "Discontinued": false,
    "Tags": "Summer"
  }'

Responses

Bodyapplication/jsonArray [
Countinteger

Count of inventory items

]
Response
application/json
{ "Count": 1500 }

Get Inventory By Code

Request

Get inventory details for a variant code across outlets. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/json
One of:
OutletArray of strings

Outlet's Name will be show the inventory data

Example: ["Outlet1","Outlet2","Outlet3"]
Codestringrequired

Variant code of product this is primary key for the object

Example: "2001"
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/Code \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "Outlet": [
      "Outlet1",
      "Outlet2",
      "Outlet3"
    ],
    "Code": "2001"
  }'

Responses

Bodyapplication/jsonArray [
Outletstring

Outlet Name

Inventoryinteger

OnHand Quantity

Iobject
]
Response
application/json
[ { "Outlet": "Outlet1", "Inventory": 140, "I": { … } }, { "Outlet": "Outlet2", "Inventory": 10, "I": { … } } ]

Get Inventory Modified Since Date

Request

Get inventory items modified since the provided date-time, sorted by last modified descending. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Query
PageNumberintegerrequired

Page number for pagination

Example: PageNumber=1
PageSizeintegerrequired

The size of one page. Max=500

Example: PageSize=20
Sincestring(date-time)required

Filter records since the given date-time

Example: Since=2025-01-08T07:01:21
Outletstring

Filter by Outlet name

Example: Outlet=PIK
Codestring

Filter by Variant Code

Example: Code=001
curl -i -X GET \
  'https://subdomain.dealpos.net/api/v3/Inventory/Modified?PageNumber=1&PageSize=20&Since=2025-01-08T07%3A01%3A21&Outlet=PIK&Code=001' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

A list of inventory items

Bodyapplication/jsonArray [
Outletstring

Name of the outlet

Codestring

Variant Code of the product

Allocatedinteger

Quantity allocated

OnHandinteger

Quantity on hand

Modifiedstring(date-time)

Date and time of the last modify

]
Response
application/json
[ { "Outlet": "PIK", "Code": "001", "Allocated": 5, "OnHand": 35, "Modified": "2025-01-08T07:01:21" }, { "Outlet": "PIK", "Code": "002", "Allocated": 5, "OnHand": 35, "Modified": "2025-01-08T07:01:21" } ]

Get Inventory Modified Since Date with Count

Request

Get the count of inventory items modified since the provided date-time. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Query
PageNumberintegerrequired

Page number for pagination

Example: PageNumber=1
PageSizeintegerrequired

The size of one page. Max=500

Example: PageSize=20
Sincestring(date-time)required

Filter records since the given date-time

Example: Since=2025-01-08T07:01:21
curl -i -X GET \
  'https://subdomain.dealpos.net/api/v3/Inventory/Modified/Count?PageNumber=1&PageSize=20&Since=2025-01-08T07%3A01%3A21' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

A list of inventory items

Bodyapplication/json
Countinteger

Total row count of inventory items

Response
application/json
{ "Count": 800 }

Get Inventory By Code Array

Request

Get inventory quantities for multiple variant codes across outlets. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/json
One of:
OutletArray of stringsrequired

List of Outlet Name

Example: ["Jakarta","Surabaya"]
CodeArray of stringsrequired

List of Variants Code of product. Max=100 variants code

Example: ["907","908","909"]
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/CodeArray \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "Outlet": [
      "Jakarta",
      "Surabaya"
    ],
    "Code": [
      "907",
      "908",
      "909"
    ]
  }'

Responses

Bodyapplication/jsonArray [
Codestring

Variant Code of product

Inventoryinteger

On Hand Quantity

]
Response
application/json
[ { "Code": "907", "Inventory": 140 }, { "Code": "908", "Inventory": 20 }, { "Code": "909", "Inventory": 7 } ]

Get Inventory By ListCode Group by Outlet

Request

Get inventory quantities for multiple variant codes grouped by outlet. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/json
One of:
OutletArray of strings

List of Outlet Name

Example: ["Jakarta","Surabaya"]
CodeArray of stringsrequired

List of Variants Code of variant. Max=50 Variants Code

Example: ["907","908"]
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/CodeArrayGroupByOutlet \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "Outlet": [
      "Jakarta",
      "Surabaya"
    ],
    "Code": [
      "907",
      "908"
    ]
  }'

Responses

Bodyapplication/jsonArray [
Codestring

Variant Code

InventoriesArray of objects
]
Response
application/json
[ { "Code": "907", "Inventories": [ … ] }, { "Code": "908", "Inventories": [ … ] } ]

Get Inventory By List ID

Request

Get inventory details for a list of variant IDs across specified outlets. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/json
One of:
ListIDArray of stringsrequired

Variants ID. Max=50

Example: ["69b2a2cd-406a-44ac-b1e2-8df079f50304","d94579c0-eeb5-4b03-893e-d24cc624786c"]
ListOutletArray of stringsrequired

Outlets Name. (if empty it will be show inventory of all outlet)

Example: ["Outlet1","Outlet2"]
CalculateCompositeInventoryboolean

Only effect product type Composite (if true OnHand will be show, if false OnHand always 0)

Default false
Example: true
IncludeParentInventoryboolean

Show detail inventory of Parents Product

Default false
Example: true
IncludeChildrenInventoryboolean

Show detail inventory of Children Product

Default false
Example: true
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/ListID \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "ListOutlet": [
      "Outlet1",
      "Outlet2"
    ],
    "ListID": [
      "69b2a2cd-406a-44ac-b1e2-8df079f50304",
      "d94579c0-eeb5-4b03-893e-d24cc624786c"
    ],
    "CalculateCompositeInventory": true,
    "IncludeParentInventory": true,
    "IncludeChildrenInventory": true
  }'

Responses

Bodyapplication/jsonArray [
IDstring

Variant's ID

Codestring

Variant's Code

Iobject
ChildrenArray of objects
]
Response
application/json
[ { "ID": "9c82ec2f-2646-4327-8ec7-640fa01522c4", "Code": "sausage", "I": { … }, "Parent": [ … ] } ]

Get Inventory By List Code

Request

Get inventory for a list of variant codes across specified outlets. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Bodyapplication/json
One of:
ListOutletArray of strings

Outlets Name. (if empty it will be show inventory of all outlet)

Example: ["Outlet1","Outlet2"]
ListCodeArray of strings

List of Variants Code of variant. Max=50

Example: ["T001","T002"]
curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/ListCode \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "ListOutlet": [
      "Outlet1",
      "Outlet2"
    ],
    "ListCode": [
      "T001",
      "T002"
    ]
  }'

Responses

Bodyapplication/jsonArray [
IDstring

Variants ID

Codestring

Variant's Code

Iobject
]
Response
application/json
[ { "ID": "9c82ec2f-2646-4327-8ec7-640fa01522c4", "Code": "T001", "I": { … } }, { "ID": "9c82ec2f-2646-4327-8ec7-640fa01522c4", "Code": "T002", "I": { … } } ]

Get List Inventory With Total Count

Request

Get a list of inventory items with total count and optional filters. Requires the "VIEW" role in the "Inventory" group.

Security
OAuth2_clientCredentials
Query
PageNumberintegerrequired

The page number of the product

Example: PageNumber=1
PageSizeintegerrequired

The page size of the product list

Example: PageSize=500
Categorystring

The product category

Example: Category=Top
QuantityFrominteger

The minimum quantity of the product that users want to view

Example: QuantityFrom=1
Discontinuedboolean

The product discontinued status

Outletstring

Name of the outlet that have the stock. if Outlet provided, OutletID will be ignored

Example: Outlet=Outlet1
OutletIDstring

Guid of Outlet ID. if OutletID provided, Outlet name will be ignored

Example: OutletID=0d46700d-35a3-4fb5-9b3a-644c370b5af1
Bodyapplication/json
One of:
Outletstring

Name of the outlet that have the stock.

Example: "Outlet1"
Categorystring

Name of category products

Example: "Top"
QuantityFrominteger

Starting quantity of the product

Example: 1
Discontinuedstring

Product that has been discontinued

Default "false"
Enum"True""False"
PageNumberintegerrequired

Page number of get inventory

Example: 1
PageSizeintegerrequired

The size of one page. Max=500

Example: 500
curl -i -X GET \
  'https://subdomain.dealpos.net/api/v3/Inventory/WithTotalCount?PageNumber=1&PageSize=500&Category=Top&QuantityFrom=1&Discontinued=true&Outlet=Outlet1&OutletID=0d46700d-35a3-4fb5-9b3a-644c370b5af1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "Outlet": "Outlet1",
    "Category": "Top",
    "QuantityFrom": 1,
    "Discontinued": false,
    "PageNumber": 1,
    "PageSize": 500
  }'

Responses

Bodyapplication/json
DataArray of objects
TotalCountinteger
Response
application/json
{ "Data": [ { … }, { … }, { … }, { … }, { … }, { … }, { … } ], "TotalCount": 100 }

Get Inventory In Transit

Request

Get inventory in-transit quantities for specified destination outlets and category.

Security
OAuth2_clientCredentials
Bodyapplication/json
ListOutletArray of strings

List Outlet Destination Name. If send with empty value will be show data from all outlet

Categorystring

Category Name. If empty value will be show data from all category

curl -i -X POST \
  https://subdomain.dealpos.net/api/v3/Inventory/InTransit \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "ListOutlet": [
      "Outlet1",
      "Outlet2"
    ],
    "Category": "Top"
  }'

Responses

OK

Bodyapplication/jsonArray [
Namestring

Variant Name

Codestring

Variant Code

Categorystring

Category

Transitinteger

Qty in transit to Outlet Destination

]
Response
application/json
[ { "Name": "Shirt (L)", "Code": "S001", "Category": "Top/Men", "Transit": 3 }, { "Name": "Shirt (M)", "Code": "S002", "Category": "Top/Men", "Transit": 4 } ]

Inventory Log

Operations related to inventory log, including create, get, etc

Operations

Inventory Adjustment

Operations related to inventory adjustment, including create, get, etc

Operations

Bill

Operations related to bill, including create, get, etc

Operations

OutboundLogistic

Operations related to outbound logistic, including create, get, etc

Operations

InboundLogistic

Operations related to inbound logistic, including create, get, etc

Operations

TransferOrder

Operations related to transfer order, including create, get, etc

Operations

Fulfillment

Operations related to fulfillment, including create, get, etc

Operations

Prepaid Package

Operations related to prepaid package, including create, get, etc

Operations

Promotion Coupon

Operations related to promotion coupon, including create, get, etc

Operations

Promotion Event

Operations related to promotion event, including create, get, etc

Operations

Pricebook

Operations related to promotion event, including create, get, etc

Operations

Outlet

Operations related to outlet, including create, get, etc

Operations

User

Operations related to user, including create, get, etc

Operations

Outlet Price

Operations related to outlet price, including create, get, etc

Operations

Loyalty Point

Operations related to loyalty point, including create, get, etc

Operations

Notification

Operations related to notification, including create, get, etc

Operations

Payment Method

Operations related to payment method, including create, get, etc

Operations

Invoice Write Off Option

Operations related to invoice write off option, including create, get, etc

Operations

Tax

Operations related to tax, including create, get, etc

Operations

Expense

Operations related to get expense

Operations

Logistics Service

Operations related to logistics service, including create, get, etc

Operations

Park Order Display

Operations related to parked order display, including create, get, etc

Operations

Midtrans Payment Gateway

Operations related to Midtrans Payment Gateway, including create, get, etc

Operations

Apps

Operations related to Apps, including create, get, etc

Operations

Client Secret

Operations related to client secret, including create, get, etc

Operations

Rate Limit

Operations related to rate limit, including create, get, etc

Operations

Deprecated

Operations