{
    "info": {
        "name": "bPOS REST API",
        "description": "Complete API collection for bPOS integration with WooCommerce, Shopify, and other platforms",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
        "version": "1.0.0"
    },
    "auth": {
        "type": "apikey",
        "apikey": [
            {
                "key": "value",
                "value": "{{api_key}}",
                "type": "string"
            },
            {
                "key": "key",
                "value": "X-API-Key",
                "type": "string"
            }
        ]
    },
    "variable": [
        {
            "key": "base_url",
            "value": "https://your-domain.com/api/v1",
            "type": "string"
        },
        {
            "key": "api_key",
            "value": "your-api-key-here",
            "type": "string"
        }
    ],
    "item": [
        {
            "name": "Products",
            "item": [
                {
                    "name": "List Products",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/products?per_page=20&page=1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "products"
                            ],
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Items per page (max: 100)"
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number"
                                },
                                {
                                    "key": "category",
                                    "value": "",
                                    "description": "Filter by category name or ID",
                                    "disabled": true
                                },
                                {
                                    "key": "brand",
                                    "value": "",
                                    "description": "Filter by brand name or ID",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Search by product name or code",
                                    "disabled": true
                                },
                                {
                                    "key": "featured",
                                    "value": "true",
                                    "description": "Filter featured products",
                                    "disabled": true
                                },
                                {
                                    "key": "include_stock",
                                    "value": "true",
                                    "description": "Include stock information",
                                    "disabled": true
                                },
                                {
                                    "key": "branch_id",
                                    "value": "1",
                                    "description": "Branch ID for stock (required if include_stock=true)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Get list of all products with pagination and optional filters"
                    },
                    "response": []
                },
                {
                    "name": "Search Products",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/products/search?term=iphone&limit=10",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "products",
                                "search"
                            ],
                            "query": [
                                {
                                    "key": "term",
                                    "value": "iphone",
                                    "description": "Search term"
                                },
                                {
                                    "key": "limit",
                                    "value": "10",
                                    "description": "Max results (default: 10, max: 50)"
                                }
                            ]
                        },
                        "description": "Search products (autocomplete functionality)"
                    },
                    "response": []
                },
                {
                    "name": "Get Single Product",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/products/:code",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "products",
                                ":code"
                            ],
                            "variable": [
                                {
                                    "key": "code",
                                    "value": "PROD-001",
                                    "description": "Product code"
                                }
                            ],
                            "query": [
                                {
                                    "key": "include_stock",
                                    "value": "true",
                                    "description": "Include stock information",
                                    "disabled": true
                                },
                                {
                                    "key": "branch_id",
                                    "value": "1",
                                    "description": "Branch ID for stock",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Get single product details by product code"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Categories",
            "item": [
                {
                    "name": "List Categories",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/categories",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "categories"
                            ]
                        },
                        "description": "Get list of all categories"
                    },
                    "response": []
                },
                {
                    "name": "Get Single Category",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/categories/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "categories",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Category ID"
                                }
                            ]
                        },
                        "description": "Get single category details"
                    },
                    "response": []
                },
                {
                    "name": "Get Subcategories",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/categories/:id/subcategories",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "categories",
                                ":id",
                                "subcategories"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Category ID"
                                }
                            ]
                        },
                        "description": "Get subcategories of a category"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Brands",
            "item": [
                {
                    "name": "List Brands",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/brands",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "brands"
                            ]
                        },
                        "description": "Get list of all brands"
                    },
                    "response": []
                },
                {
                    "name": "Get Single Brand",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/brands/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "brands",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Brand ID"
                                }
                            ]
                        },
                        "description": "Get single brand details"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Orders",
            "item": [
                {
                    "name": "List Orders",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/orders?per_page=20&page=1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders"
                            ],
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Items per page (max: 100)"
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number"
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "Filter by status",
                                    "disabled": true
                                },
                                {
                                    "key": "customer_id",
                                    "value": "",
                                    "description": "Filter by customer ID",
                                    "disabled": true
                                },
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Start date (YYYY-MM-DD)",
                                    "disabled": true
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-01-31",
                                    "description": "End date (YYYY-MM-DD)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Get list of all orders with pagination and filters"
                    },
                    "response": []
                },
                {
                    "name": "Get Single Order",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/orders/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Order ID"
                                }
                            ]
                        },
                        "description": "Get single order details"
                    },
                    "response": []
                },
                {
                    "name": "Create Order",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"customer_id\": 123,\n  \"items\": [\n    {\n      \"product_code\": \"PROD-001\",\n      \"quantity\": 2,\n      \"price\": 1500.00\n    },\n    {\n      \"product_code\": \"PROD-002\",\n      \"quantity\": 1,\n      \"price\": 2500.00\n    }\n  ],\n  \"delivery_address_id\": 456,\n  \"delivery_date\": \"2026-01-25\",\n  \"payment_type\": 1,\n  \"notes\": \"Please deliver before 5 PM\",\n  \"discount\": 100.00\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/orders",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders"
                            ]
                        },
                        "description": "Create a new order with items, shipping, and payment details"
                    },
                    "response": []
                },
                {
                    "name": "Update Order Status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"status\": \"processing\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/orders/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Order ID"
                                }
                            ]
                        },
                        "description": "Update order status (pending, processing, completed, cancelled)"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Customers",
            "item": [
                {
                    "name": "List Customers",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/customers?per_page=20&page=1",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers"
                            ],
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Items per page (max: 100)"
                                },
                                {
                                    "key": "page",
                                    "value": "1",
                                    "description": "Page number"
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Search by name, email, or phone",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Get list of all customers with pagination"
                    },
                    "response": []
                },
                {
                    "name": "Get Single Customer",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/customers/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Customer ID"
                                }
                            ]
                        },
                        "description": "Get single customer details"
                    },
                    "response": []
                },
                {
                    "name": "Create Customer",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"f_name\": \"John\",\n  \"l_name\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+94771234567\",\n  \"address\": \"123 Main Street\",\n  \"city_id\": 1,\n  \"lat\": 6.9271,\n  \"lng\": 79.8612,\n  \"custom_fields\": \"\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers"
                            ]
                        },
                        "description": "Create a new customer"
                    },
                    "response": []
                },
                {
                    "name": "Update Customer",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"name\": \"John Updated Doe\",\n  \"email\": \"john.updated@example.com\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Customer ID"
                                }
                            ]
                        },
                        "description": "Update customer information"
                    },
                    "response": []
                },
                {
                    "name": "Get Customer Orders",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/customers/:id/orders?per_page=20",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":id",
                                "orders"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Customer ID"
                                }
                            ],
                            "query": [
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Items per page"
                                }
                            ]
                        },
                        "description": "Get all orders for a specific customer"
                    },
                    "response": []
                },
                {
                    "name": "Get Customer Addresses",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/customers/:id/addresses",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":id",
                                "addresses"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Customer ID"
                                }
                            ]
                        },
                        "description": "Get all addresses for a specific customer"
                    },
                    "response": []
                },
                {
                    "name": "Create Customer Address",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"address\": \"123 Main Street\",\n  \"address_line_1\": \"Building A\",\n  \"address_line_2\": \"Floor 2\",\n  \"contact_person\": \"John Doe\",\n  \"company_name\": \"ABC Corporation\",\n  \"country\": \"Sri Lanka\",\n  \"province\": \"Western\",\n  \"city\": \"Colombo\",\n  \"postal_code\": \"00100\",\n  \"contact\": \"+94771234567\",\n  \"lat\": 6.9271,\n  \"lng\": 79.8612\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers/:id/addresses",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":id",
                                "addresses"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "1",
                                    "description": "Customer ID"
                                }
                            ]
                        },
                        "description": "Create a new address for a customer"
                    },
                    "response": []
                },
                {
                    "name": "Update Customer Address",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"address\": \"456 Updated Street\",\n  \"city\": \"Kandy\",\n  \"postal_code\": \"20000\"\n}"
                        },
                        "url": {
                            "raw": "{{base_url}}/customers/:customerId/addresses/:addressId",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "customers",
                                ":customerId",
                                "addresses",
                                ":addressId"
                            ],
                            "variable": [
                                {
                                    "key": "customerId",
                                    "value": "1",
                                    "description": "Customer ID"
                                },
                                {
                                    "key": "addressId",
                                    "value": "1",
                                    "description": "Address ID"
                                }
                            ]
                        },
                        "description": "Update an existing customer address"
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Reports",
            "item": [
                {
                    "name": "Sales Report",
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{base_url}}/reports/sales?start_date=2026-01-01&end_date=2026-01-31&per_page=50",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reports",
                                "sales"
                            ],
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Start date (required, YYYY-MM-DD)"
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-01-31",
                                    "description": "End date (required, YYYY-MM-DD)"
                                },
                                {
                                    "key": "per_page",
                                    "value": "50",
                                    "description": "Items per page (max: 500)"
                                },
                                {
                                    "key": "branch_id",
                                    "value": "1",
                                    "description": "Filter by branch",
                                    "disabled": true
                                },
                                {
                                    "key": "customer_id",
                                    "value": "",
                                    "description": "Filter by customer",
                                    "disabled": true
                                },
                                {
                                    "key": "product_code",
                                    "value": "",
                                    "description": "Filter by product code",
                                    "disabled": true
                                },
                                {
                                    "key": "category",
                                    "value": "",
                                    "description": "Filter by category",
                                    "disabled": true
                                },
                                {
                                    "key": "brand",
                                    "value": "",
                                    "description": "Filter by brand",
                                    "disabled": true
                                },
                                {
                                    "key": "agent_id",
                                    "value": "",
                                    "description": "Filter by agent",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Get sales report with date range and optional filters. Includes summary totals (quantity, sales, cost, profit)"
                    },
                    "response": []
                }
            ]
        }
    ]
}