NakPOS Documentation

Overview

Base URL

All API requests should be made to:

https://sales.smarthome.com.gh/api/v1

Authentication

Use Laravel Sanctum Bearer tokens. Include in all requests:

Authorization: Bearer {token}

Content Type

All requests and responses use JSON format:

Content-Type: application/json
Accept: application/json

Rate Limiting

Default limits per endpoint type:

Standard: 60/min
POS lookups: 120/min
Bulk operations: 10/min

Generated Contract

This documentation and the downloadable JSON contract are generated from the Laravel route surface.

OpenAPI JSON
Generated Mar 25, 2026 04:17

Response Format

All API responses follow a consistent structure:

Success Response
{
    "success": true,
    "data": { "...response data..." },
    "meta": { "...pagination info (if applicable)..." }
}
Error Response
{
    "success": false,
    "message": "Error description",
    "errors": { "...validation errors (if applicable)..." }
}

Authentication

User authentication and session management.

POST /auth/login User Login
5/minute

Authenticate a user and issue a Sanctum token for API requests.

Request Parameters
Parameter In Type Description
email *required body string User email address
password *required body string User password
device_name body string Optional device label
store_id body integer Preferred store context for login
two_factor_code body string Two-factor code when required
Example Request
JSON
{
    "email": "cashier@example.com",
    "password": "secret123",
    "device_name": "iPhone 15 Pro",
    "store_id": 1
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "token": "1|abc123xyz...",
        "user": {
            "id": 1,
            "name": "John Doe",
            "email": "cashier@example.com",
            "role": {
                "id": 2,
                "name": "Cashier",
                "slug": "cashier"
            },
            "store_id": 1,
            "store_name": "Main Store",
            "is_super_admin": false,
            "has_two_factor": false
        },
        "permissions": [
            "pos.access",
            "sales.create",
            "customers.view"
        ],
        "store_id": 1
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "The given data was invalid.",
    "errors": {
        "email": [
            "The provided credentials are incorrect."
        ]
    }
}
POST /auth/logout User Logout
Auth 60/minute

Revoke the current token and end the current API session.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "message": "Successfully logged out."
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /auth/me Current User Profile
Auth 60/minute

Return the authenticated user profile, permissions, and discount limits.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Products & Catalog

Items, categories, stores, warehouses, and reference data.

GET /categories List Categories
Auth 60/minute

Get paginated categories with optional hierarchy and count metadata.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /categories Create Categories
Auth 60/minute

Submit a Categories request to /categories.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
DELETE /categories/{category} Delete Categories
Auth 60/minute

Delete Categories data through /categories/{category}.

Request Parameters
Parameter In Type Description
category *required path string Path parameter: Category
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "message": "Operation completed successfully."
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /categories/{category} Get Categories
Auth 60/minute

Retrieve Categories data from /categories/{category}.

Request Parameters
Parameter In Type Description
category *required path string Path parameter: Category
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
PUT /categories/{category} Update Categories
Auth 60/minute

Update Categories data through /categories/{category}.

Request Parameters
Parameter In Type Description
category *required path string Path parameter: Category
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /items List Items
Auth 60/minute

Get paginated items with optional search by query, SKU, barcode, or related catalog metadata.

Request Parameters
Parameter In Type Description
q query string Search query
search query string Legacy search parameter alias for q
per_page query integer Results per page (default: 50, max: 100)
Example Request
JSON
{
    "q": "example",
    "search": "example",
    "per_page": 1
}
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 50,
        "total": 1
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /items/check-name Check Name
Auth 60/minute

Retrieve Items data from /items/check-name.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /items/{item}/applicable-price-books Applicable Price Books
Auth 60/minute

Retrieve Items data from /items/{item}/applicable-price-books.

Request Parameters
Parameter In Type Description
item *required path string Path parameter: Item
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /items/{item}/price Price
Auth 60/minute

Retrieve Items data from /items/{item}/price.

Request Parameters
Parameter In Type Description
item *required path string Path parameter: Item
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /items/{item}/price-breakdown Price Breakdown
Auth 60/minute

Retrieve Items data from /items/{item}/price-breakdown.

Request Parameters
Parameter In Type Description
item *required path string Path parameter: Item
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /payment-methods List Payment Methods
Auth 60/minute

Retrieve Payment Methods data from /payment-methods.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /payment-methods/{paymentMethod} Get Payment Methods
Auth 60/minute

Retrieve Payment Methods data from /payment-methods/{paymentMethod}.

Request Parameters
Parameter In Type Description
paymentMethod *required path string Path parameter: Payment Method
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /price-books List Price Books
Auth 60/minute

Retrieve Price Books data from /price-books.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /price-books/{priceBook} Get Price Books
Auth 60/minute

Retrieve Price Books data from /price-books/{priceBook}.

Request Parameters
Parameter In Type Description
priceBook *required path string Path parameter: Price Book
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /stores List Accessible Stores
Auth 60/minute

Return stores the authenticated user can access, with optional warehouses and payment methods.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /stores/{store} Get Stores
Auth 60/minute

Retrieve Stores data from /stores/{store}.

Request Parameters
Parameter In Type Description
store *required path string Path parameter: Store
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /stores/{store}/warehouses List Store Warehouses
Auth 60/minute

Return active warehouses for a specific store, optionally including standalone warehouses that serve it.

Request Parameters
Parameter In Type Description
store *required path string Path parameter: Store
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /warehouses List Warehouses
Auth 60/minute

Return active warehouses with store and standalone filtering options.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /warehouses/standalone Standalone
Auth 60/minute

Retrieve Warehouses data from /warehouses/standalone.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /warehouses/{warehouse} Get Warehouses
Auth 60/minute

Retrieve Warehouses data from /warehouses/{warehouse}.

Request Parameters
Parameter In Type Description
warehouse *required path string Path parameter: Warehouse
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

POS Operations

POS catalog, checkout, tax, discounts, and session status.

POST /pos/checkout Create POS Checkout
Auth 60/minute

Validate, price, tax, and complete a POS sale.

Request Parameters
Parameter In Type Description
items *required body array Field: Items
items.*.id *required body string Field: Items * Id
items.*.qty *required body number Field: Items * Qty
items.*.serial_number body string Field: Items * Serial Number
items.*.price body number Field: Items * Price
items.*.unit_id body string Field: Items * Unit Id
items.*.base_quantity body number Field: Items * Base Quantity
items.*.warehouse_id body integer Field: Items * Warehouse Id
items.*.discount_type body string Field: Items * Discount Type
items.*.discount_value body number Field: Items * Discount Value
items.*.discount_amount body number Field: Items * Discount Amount
items.*.discount_reason body string Field: Items * Discount Reason
items.*.discount_approved_by body string Field: Items * Discount Approved By
items.*.discount_approval_token body string Field: Items * Discount Approval Token
payments *required body array Field: Payments
payments.*.payment_method_code *required body string Field: Payments * Payment Method Code
payments.*.payment_method_id body string Field: Payments * Payment Method Id
payments.*.amount *required body number Field: Payments * Amount
payments.*.tendered body number Field: Payments * Tendered
payments.*.change body number Field: Payments * Change
payments.*.reference body string Field: Payments * Reference
payment_method body string Field: Payment Method
payment_method_id body string Field: Payment Method Id
total_amount *required body number Field: Total Amount
subtotal body number Field: Subtotal
customer_id body string Field: Customer Id
reference body string Field: Reference
cart_discount_type body string Field: Cart Discount Type
cart_discount_value body number Field: Cart Discount Value
cart_discount_amount body number Field: Cart Discount Amount
cart_discount_reason body string Field: Cart Discount Reason
cart_discount_approved_by body string Field: Cart Discount Approved By
cart_discount_approval_token body string Field: Cart Discount Approval Token
total_discount body number Field: Total Discount
tax_exempt body boolean Field: Tax Exempt
idempotency_key *required body string Field: Idempotency Key
store_id *required body integer Field: Store Id
offline_created_at body date Field: Offline Created At
Example Request
JSON
{
    "items": [],
    "items.*.id": "example",
    "items.*.qty": 9.99,
    "items.*.serial_number": "example",
    "items.*.price": 9.99,
    "items.*.unit_id": "example",
    "items.*.base_quantity": 9.99,
    "items.*.warehouse_id": 1,
    "items.*.discount_type": "example",
    "items.*.discount_value": 9.99,
    "items.*.discount_amount": 9.99,
    "items.*.discount_reason": "example",
    "items.*.discount_approved_by": "example",
    "items.*.discount_approval_token": "example",
    "payments": [],
    "payments.*.payment_method_code": "example",
    "payments.*.payment_method_id": "example",
    "payments.*.amount": 9.99,
    "payments.*.tendered": 9.99,
    "payments.*.change": 9.99,
    "payments.*.reference": "example",
    "payment_method": "example",
    "payment_method_id": "example",
    "total_amount": 9.99,
    "subtotal": 9.99,
    "customer_id": "example",
    "reference": "example",
    "cart_discount_type": "example",
    "cart_discount_value": 9.99,
    "cart_discount_amount": 9.99,
    "cart_discount_reason": "example",
    "cart_discount_approved_by": "example",
    "cart_discount_approval_token": "example",
    "total_discount": 9.99,
    "tax_exempt": true,
    "idempotency_key": "example",
    "store_id": 1,
    "offline_created_at": "2026-03-16"
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pos/checkout/validate Validate
Auth 60/minute

Submit a Pos Checkout request to /pos/checkout/validate.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/discount-limits Discount Limits
Auth 60/minute

Retrieve Pos data from /pos/discount-limits.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pos/discount/approve Approve
Auth 60/minute

Submit a Pos Discount request to /pos/discount/approve.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/products List POS Products
Auth 60/minute

Get paginated POS-ready products with live price and stock data.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/products/search Search POS Products
Auth 60/minute

Search POS products by name, SKU, or barcode.

Request Parameters
Parameter In Type Description
q *required query string Field: Q
store_id *required query integer Field: Store Id
warehouse_id query integer Field: Warehouse Id
category_id query integer Field: Category Id
limit query integer Field: Limit
Example Request
JSON
{
    "q": "example",
    "store_id": 1,
    "warehouse_id": 1,
    "category_id": 1,
    "limit": 1
}
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/products/{item} Get Pos Products
Auth 60/minute

Retrieve Pos Products data from /pos/products/{item}.

Request Parameters
Parameter In Type Description
item *required path string Path parameter: Item
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/session-status POS Session Status
Auth 60/minute

Return POS readiness, including store access and active cashier session status.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pos/tax/calculate Calculate POS Tax
Auth 60/minute

Return tax details for a POS cart before checkout.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pos/tax/info Info
Auth 60/minute

Retrieve Pos Tax data from /pos/tax/info.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Cashier Sessions

Cashier shift open, close, suspend, and cash movement APIs.

GET /sessions/current Current Cashier Session
Auth 60/minute

Return the open cashier session, if any, for the current user and store.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sessions/open Open Cashier Session
Auth 60/minute

Open a new cashier session for the authenticated user.

Request Parameters
Parameter In Type Description
store_id *required body integer Field: Store Id
opening_balance *required body number Field: Opening Balance
cash_register_id body integer Field: Cash Register Id
notes body string Field: Notes
Example Request
JSON
{
    "store_id": 1,
    "opening_balance": 9.99,
    "cash_register_id": 1,
    "notes": "example"
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sessions/{session} Get Sessions
Auth 60/minute

Retrieve Sessions data from /sessions/{session}.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sessions/{session}/cash-movement Cash Movement
Auth 60/minute

Submit a Sessions request to /sessions/{session}/cash-movement.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
type *required body string Field: Type
amount *required body number Field: Amount
reason *required body string Field: Reason
notes body string Field: Notes
reference body string Field: Reference
Example Request
JSON
{
    "type": "example",
    "amount": 9.99,
    "reason": "example",
    "notes": "example",
    "reference": "example"
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sessions/{session}/close Close
Auth 60/minute

Submit a Sessions request to /sessions/{session}/close.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
closing_balance *required body number Field: Closing Balance
notes body string Field: Notes
discrepancy_notes body string Field: Discrepancy Notes
Example Request
JSON
{
    "closing_balance": 9.99,
    "notes": "example",
    "discrepancy_notes": "example"
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sessions/{session}/resume Resume
Auth 60/minute

Submit a Sessions request to /sessions/{session}/resume.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sessions/{session}/summary Cashier Session Summary
Auth 60/minute

Return the summary rollup for a cashier session.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sessions/{session}/suspend Suspend
Auth 60/minute

Submit a Sessions request to /sessions/{session}/suspend.

Request Parameters
Parameter In Type Description
session *required path string Path parameter: Session
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Customers

Customer search, listing, and CRUD operations.

GET /customers List Customers
Auth 60/minute

Get paginated customers with status and search filters.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /customers Create Customers
Auth 60/minute

Submit a Customers request to /customers.

Request Parameters
Parameter In Type Description
name *required body string Field: Name
email body string Field: Email
phone body string Field: Phone
address body string Field: Address
customer_group_id body integer Field: Customer Group Id
Example Request
JSON
{
    "name": "example",
    "email": "user@example.com",
    "phone": "example",
    "address": "example",
    "customer_group_id": 1
}
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /customers/search Search Customers
Auth 60/minute

Search customers by name, phone, email, or address for quick POS selection.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
DELETE /customers/{customer} Delete Customers
Auth 60/minute

Delete Customers data through /customers/{customer}.

Request Parameters
Parameter In Type Description
customer *required path string Path parameter: Customer
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "message": "Operation completed successfully."
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /customers/{customer} Get Customers
Auth 60/minute

Retrieve Customers data from /customers/{customer}.

Request Parameters
Parameter In Type Description
customer *required path string Path parameter: Customer
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
PUT /customers/{customer} Update Customers
Auth 60/minute

Update Customers data through /customers/{customer}.

Request Parameters
Parameter In Type Description
customer *required path string Path parameter: Customer
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Sales

Sales history, receipt, and search endpoints.

GET /sales List Sales
Auth 60/minute

Retrieve Sales data from /sales.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sales/search Search Sales
Auth 60/minute

Retrieve Sales data from /sales/search.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sales/{sale} Get Sales
Auth 60/minute

Retrieve Sales data from /sales/{sale}.

Request Parameters
Parameter In Type Description
sale *required path string Path parameter: Sale
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sales/{sale}/receipt Receipt
Auth 60/minute

Retrieve Sales data from /sales/{sale}/receipt.

Request Parameters
Parameter In Type Description
sale *required path string Path parameter: Sale
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Returns

Return validation, creation, approval, and lookup endpoints.

GET /returns List Returns
Auth 60/minute

Get paginated returns scoped by store, warehouse, status, date, and search filters.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /returns Create Returns
Auth 60/minute

Submit a Returns request to /returns.

Request Parameters
Parameter In Type Description
sale_id *required body string Field: Sale Id
items *required body array Field: Items
items.*.sale_item_id *required body string Field: Items * Sale Item Id
items.*.quantity *required body integer Field: Items * Quantity
items.*.condition body string Field: Items * Condition
items.*.restock body boolean Field: Items * Restock
items.*.notes body string Field: Items * Notes
items.*.warehouse_id body string Field: Items * Warehouse Id
reason_id body string Field: Reason Id
reason_notes body string Field: Reason Notes
internal_notes body string Field: Internal Notes
process_immediately body boolean Field: Process Immediately
idempotency_key body string Field: Idempotency Key
Example Request
JSON
{
    "sale_id": "example",
    "items": [],
    "items.*.sale_item_id": "example",
    "items.*.quantity": 1,
    "items.*.condition": "example",
    "items.*.restock": true,
    "items.*.notes": "example",
    "items.*.warehouse_id": "example",
    "reason_id": "example",
    "reason_notes": "example",
    "internal_notes": "example",
    "process_immediately": true,
    "idempotency_key": "example"
}
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /returns/check-sale Check Return Eligibility
Auth 60/minute

Validate whether a sale can be returned and return returnable items when eligible.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /returns/reasons List Return Reasons
Auth 60/minute

Return active return reasons for return creation flows.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /returns/{saleReturn} Get Returns
Auth 60/minute

Retrieve Returns data from /returns/{saleReturn}.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /returns/{saleReturn}/approve Approve
Auth 60/minute

Submit a Returns request to /returns/{saleReturn}/approve.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /returns/{saleReturn}/cancel Cancel
Auth 60/minute

Submit a Returns request to /returns/{saleReturn}/cancel.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /returns/{saleReturn}/process Process
Auth 60/minute

Submit a Returns request to /returns/{saleReturn}/process.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /returns/{saleReturn}/reject Reject
Auth 60/minute

Submit a Returns request to /returns/{saleReturn}/reject.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Offline Sync

Initial sync, delta sync, upload, and sync status APIs.

GET /sync/delta Delta Offline Sync
Auth 60/minute

Return only records changed since the provided timestamp.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sync/initial Initial Offline Sync
Auth 60/minute

Return the full offline payload needed to bootstrap a device.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /sync/status Offline Sync Status
Auth 60/minute

Return sync health, pending uploads, and related status metadata.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /sync/upload Upload Offline Transactions
Auth 60/minute

Upload offline-created transactions in bulk for server reconciliation.

Request Parameters
Parameter In Type Description
store_id *required body integer Field: Store Id
transactions *required body array Field: Transactions
transactions.*.idempotency_key *required body string Field: Transactions * Idempotency Key
transactions.*.type *required body string Field: Transactions * Type
transactions.*.offline_created_at body date Field: Transactions * Offline Created At
transactions.*.data *required body array Field: Transactions * Data
Example Request
JSON
{
    "store_id": 1,
    "transactions": [],
    "transactions.*.idempotency_key": "example",
    "transactions.*.type": "example",
    "transactions.*.offline_created_at": "2026-03-16",
    "transactions.*.data": []
}
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Pricing & Bundles

Price books, pricing rules, pricing calculators, bundles, and currencies.

GET /bundles List Bundles
Auth 60/minute

Get paginated bundles with optional store and validity filters.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /bundles Create Bundles
Auth 60/minute

Submit a Bundles request to /bundles.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /bundles/calculate Calculate Bundles
Auth 60/minute

Submit a Bundles request to /bundles/calculate.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
DELETE /bundles/{bundle} Delete Bundles
Auth 60/minute

Delete Bundles data through /bundles/{bundle}.

Request Parameters
Parameter In Type Description
bundle *required path string Path parameter: Bundle
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "message": "Operation completed successfully."
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /bundles/{bundle} Get Bundles
Auth 60/minute

Retrieve Bundles data from /bundles/{bundle}.

Request Parameters
Parameter In Type Description
bundle *required path string Path parameter: Bundle
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
PUT /bundles/{bundle} Update Bundles
Auth 60/minute

Update Bundles data through /bundles/{bundle}.

Request Parameters
Parameter In Type Description
bundle *required path string Path parameter: Bundle
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /bundles/{bundle}/availability Availability
Auth 60/minute

Retrieve Bundles data from /bundles/{bundle}/availability.

Request Parameters
Parameter In Type Description
bundle *required path string Path parameter: Bundle
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /currencies List Currencies
Auth 60/minute

Retrieve Currencies data from /currencies.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /currencies/convert Convert
Auth 60/minute

Retrieve Currencies data from /currencies/convert.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /currencies/{currency} Get Currencies
Auth 60/minute

Retrieve Currencies data from /currencies/{currency}.

Request Parameters
Parameter In Type Description
currency *required path string Path parameter: Currency
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pricing-rules List Pricing Rules
Auth 60/minute

Get paginated pricing rules with optional store, validity, and relationship filters.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing-rules Create Pricing Rules
Auth 60/minute

Submit a Pricing Rules request to /pricing-rules.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing-rules/evaluate Evaluate
Auth 60/minute

Submit a Pricing Rules request to /pricing-rules/evaluate.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
DELETE /pricing-rules/{pricingRule} Delete Pricing Rules
Auth 60/minute

Delete Pricing Rules data through /pricing-rules/{pricingRule}.

Request Parameters
Parameter In Type Description
pricingRule *required path string Path parameter: Pricing Rule
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "message": "Operation completed successfully."
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pricing-rules/{pricingRule} Get Pricing Rules
Auth 60/minute

Retrieve Pricing Rules data from /pricing-rules/{pricingRule}.

Request Parameters
Parameter In Type Description
pricingRule *required path string Path parameter: Pricing Rule
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
PUT /pricing-rules/{pricingRule} Update Pricing Rules
Auth 60/minute

Update Pricing Rules data through /pricing-rules/{pricingRule}.

Request Parameters
Parameter In Type Description
pricingRule *required path string Path parameter: Pricing Rule
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing-rules/{pricingRule}/toggle Toggle Pricing Rules
Auth 60/minute

Submit a Pricing Rules request to /pricing-rules/{pricingRule}/toggle.

Request Parameters
Parameter In Type Description
pricingRule *required path string Path parameter: Pricing Rule
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing/calculate Calculate Price
Auth 60/minute

Evaluate pricing rules for a single item request.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing/calculate-result Calculate Result
Auth 60/minute

Submit a Pricing request to /pricing/calculate-result.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing/cart Cart
Auth 60/minute

Submit a Pricing request to /pricing/cart.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pricing/rules Rules
Auth 60/minute

Retrieve Pricing data from /pricing/rules.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /pricing/rules-for-item/{item} Rules For Item
Auth 60/minute

Retrieve Pricing data from /pricing/rules-for-item/{item}.

Request Parameters
Parameter In Type Description
item *required path string Path parameter: Item
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
POST /pricing/validate Validate
Auth 60/minute

Submit a Pricing request to /pricing/validate.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Reporting

Read-only integration sales and report feeds for external consumers.

GET /integration/reports/cashier Cashier
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/cashier.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/cashier/{cashier} Detail
Auth 60/minute

Retrieve Integration Reports Cashier data from /integration/reports/cashier/{cashier}.

Request Parameters
Parameter In Type Description
cashier *required path string Path parameter: Cashier
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/closeout Closeout
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/closeout.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/customers Customers
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/customers.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/discounts Discounts
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/discounts.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/heatmap Heatmap
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/heatmap.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/damage-spoilage Damage Spoilage
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/damage-spoilage.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/dead-stock Dead Stock
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/dead-stock.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/movement Movement
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/movement.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/overview Overview
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/overview.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/replenishment Replenishment
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/replenishment.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/stock Stock
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/stock.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/turns Turns
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/turns.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/inventory/valuation Valuation
Auth 60/minute

Retrieve Integration Reports Inventory data from /integration/reports/inventory/valuation.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/invoices Invoices
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/invoices.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/invoices/aging Aging
Auth 60/minute

Retrieve Integration Reports Invoices data from /integration/reports/invoices/aging.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/invoices/credit-notes Credit Notes
Auth 60/minute

Retrieve Integration Reports Invoices data from /integration/reports/invoices/credit-notes.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/invoices/dso Dso
Auth 60/minute

Retrieve Integration Reports Invoices data from /integration/reports/invoices/dso.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/invoices/funnel Funnel
Auth 60/minute

Retrieve Integration Reports Invoices data from /integration/reports/invoices/funnel.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/overview Integration Report Overview
Auth 60/minute

Return high-level report overview data for external consumers.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/payments Payments
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/payments.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/price-source Price Source
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/price-source.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/products Products
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/products.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/products/abc Abc
Auth 60/minute

Retrieve Integration Reports Products data from /integration/reports/products/abc.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/profit Profit
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/profit.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/return-rate Return Rate
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/return-rate.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/returns Returns
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/returns.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/revenue Revenue
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/revenue.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/sales Integration Report Sales
Auth 60/minute

Return detailed sales reporting rows for external consumers.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/stores Stores
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/stores.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/tax Tax
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/tax.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/reports/voids Voids
Auth 60/minute

Retrieve Integration Reports data from /integration/reports/voids.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/sales Daily Summary Pull (By Status)
Auth 60/minute

Pull sales for reporting and aggregation. Compatibility alias: `/integrations/sales`. Common scenarios include Store Rollup Pull and Warehouse Rollup Pull using `store_id` and `warehouse_id` filters.

Request Parameters
Parameter In Type Description
from query date Start date (YYYY-MM-DD)
to query date End date (YYYY-MM-DD)
status query string Sale status filter
store_id query integer Optional store filter
warehouse_id query integer Optional warehouse filter
q query string Free-text search on receipt, barcode, or reference
per_page query integer Results per page (default: 50, max: 200)
Example Request
JSON
{
    "from": "2026-02-11",
    "to": "2026-02-11",
    "status": "completed",
    "store_id": 1,
    "per_page": 100
}
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 901,
            "receipt_number": "RCP-20260211-0001",
            "status": "completed",
            "store": {
                "id": 1,
                "name": "Main Store"
            },
            "warehouse": {
                "id": 2,
                "name": "Sales Floor"
            },
            "total_amount": 245,
            "created_at": "2026-02-11T09: 15: 00Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 3,
        "per_page": 100,
        "total": 467
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/sales/{sale} Incremental Sync Drilldown
Auth 60/minute

Use sale detail lookups to reconcile line items and payments flagged during reporting syncs. Compatibility alias: `/integrations/sales/{sale}`.

Request Parameters
Parameter In Type Description
sale *required path string Path parameter: Sale
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Integration Data

Read-only integration access to items, customers, stores, warehouses, and related data feeds.

GET /integration/data/customers Integration Data: Customers
Auth 60/minute

Return paginated customer data for external integrations.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/customers/{customer} Get Integration Data Customers
Auth 60/minute

Retrieve Integration Data Customers data from /integration/data/customers/{customer}.

Request Parameters
Parameter In Type Description
customer *required path string Path parameter: Customer
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/inventory List Integration Data Inventory
Auth 60/minute

Retrieve Integration Data Inventory data from /integration/data/inventory.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/invoices List Integration Data Invoices
Auth 60/minute

Retrieve Integration Data Invoices data from /integration/data/invoices.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/invoices/{invoice} Get Integration Data Invoices
Auth 60/minute

Retrieve Integration Data Invoices data from /integration/data/invoices/{invoice}.

Request Parameters
Parameter In Type Description
invoice *required path string Path parameter: Invoice
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/items Integration Data: Items
Auth 60/minute

Return paginated item data for external integrations.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/returns List Integration Data Returns
Auth 60/minute

Retrieve Integration Data Returns data from /integration/data/returns.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/returns/{saleReturn} Get Integration Data Returns
Auth 60/minute

Retrieve Integration Data Returns data from /integration/data/returns/{saleReturn}.

Request Parameters
Parameter In Type Description
saleReturn *required path string Path parameter: Sale Return
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/sales List Integration Data Sales
Auth 60/minute

Retrieve Integration Data Sales data from /integration/data/sales.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/sales/{sale} Get Integration Data Sales
Auth 60/minute

Retrieve Integration Data Sales data from /integration/data/sales/{sale}.

Request Parameters
Parameter In Type Description
sale *required path string Path parameter: Sale
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/stores Integration Data: Stores
Auth 60/minute

Return store reference data for external integrations.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/stores/{store} Get Integration Data Stores
Auth 60/minute

Retrieve Integration Data Stores data from /integration/data/stores/{store}.

Request Parameters
Parameter In Type Description
store *required path string Path parameter: Store
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/warehouses Integration Data: Warehouses
Auth 60/minute

Return warehouse reference data for external integrations.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": [
        {
            "id": 1,
            "name": "Example"
        }
    ]
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}
GET /integration/data/warehouses/{warehouse} Get Integration Data Warehouses
Auth 60/minute

Retrieve Integration Data Warehouses data from /integration/data/warehouses/{warehouse}.

Request Parameters
Parameter In Type Description
warehouse *required path string Path parameter: Warehouse
Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Other

Additional authenticated API endpoints.

POST /prices/bulk Bulk
Auth 60/minute

Submit a Prices request to /prices/bulk.

Example Request
JSON
[]
Example Success Response
JSON
{
    "success": true,
    "data": {
        "id": 1,
        "name": "Example"
    }
}
Example Error Response
JSON
{
    "success": false,
    "message": "Unauthorized."
}

Error Handling

HTTP Status Codes

The API uses standard HTTP status codes to indicate the success or failure of requests:

Status Meaning Description
200 OK Request succeeded
201 Created Resource created successfully
400 Bad Request Invalid request data or checkout validation error
401 Unauthorized Missing or invalid authentication token
403 Forbidden User lacks permission for this action
404 Not Found Resource not found
409 Conflict Conflict (e.g., duplicate session)
422 Unprocessable Entity Validation errors in request data
429 Too Many Requests Rate limit exceeded
500 Server Error Internal server error

Validation Error Response

When validation fails (422), the response includes field-specific errors:

422 Validation Error
{
    "success": false,
    "message": "The given data was invalid.",
    "errors": {
        "email": ["The email field is required."],
        "password": ["The password must be at least 8 characters."]
    }
}