{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/tidybill.app"
        }
    ],
    "info": {
        "name": "Tidybill API Documentation",
        "_postman_id": "e8c7ef1e-c7c6-4e6b-bef0-d7f2dfeb1cab",
        "description": "REST API for managing invoices, clients, projects, time tracking, and more.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Authentication",
            "description": "",
            "item": [
                {
                    "name": "Register",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/register",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/register"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"password\":\"-0pBNvYgxw\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":1,\"name\":\"John\",\"email\":\"john@example.com\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Login",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/login",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\",\"password\":\"|]|{+-\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"name\":\"John\",\"email\":\"john@example.com\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"message\":\"Invalid credentials.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Send password reset link",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/forgot-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/forgot-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"If an account exists, a reset link has been sent.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Reset password",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/reset-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/reset-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"architecto\",\"email\":\"zbailey@example.net\",\"password\":\"-0pBNvYgxw\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Password has been reset.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This password reset token is invalid.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Redirect to Google OAuth",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/google",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/google"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to Google"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "location",
                                    "value": "https:\/\/accounts.google.com\/o\/oauth2\/auth?client_id=122074070973-q2t44i2big2vg257o5bkbn5kjhuu1d34.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Ftidybill.app%2Fapi%2Fauth%2Fgoogle%2Fcallback&scope=openid+profile+email&response_type=code"
                                },
                                {
                                    "key": "content-type",
                                    "value": "text\/html; charset=utf-8"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                },
                                {
                                    "key": "set-cookie",
                                    "value": "XSRF-TOKEN=eyJpdiI6IjBCalBaQVRIeFE2Zi90d0U3MHlOR1E9PSIsInZhbHVlIjoiVnhqWkE3amhmRkw1bmptRjVTY05LTmRsejJkbHlVdGYrOTJxNlBDYndrWjBIN2FWSTdzTjg3Njc2ankzdEFIR2s1RlpBM011VVEySVRIdnVYemlsUVJ6VDR1bWprL2kwbWo3QUNuSHFWdGRwMS9XTDkrQXdYcmI0MzRzTmlWOHoiLCJtYWMiOiI0ZjQzOGU1MWZkNjhhMzdjNzZlZWE1NDY2ZjJhMDQzMWRiYWJhYTA4ZmYyZmI2OWIxZTE3MDM2MjE0YWVmMGRmIiwidGFnIjoiIn0%3D; expires=Sun, 12 Apr 2026 19:38:12 GMT; Max-Age=604799; path=\/; domain=tidybill.app; secure; samesite=lax; tidybill_session=eyJpdiI6ImUzNExwdytvUHY2UExCNFFlWW9jbnc9PSIsInZhbHVlIjoiS09BdTh3eEJIODlOSExkR3U3NndQL2FudERDKzF1NDltNFBZY3g1dHdBQ3RySGIxdU9RaWRBV1BNa0xuYTRQSjhWRGYrWVVhSjd4b2pNV0lDaXdmakkxZlNJMVcxOWVveHRvWGxtWmJEdEdwbWRtNVFhSDF3bFYwNzUvUERDaGkiLCJtYWMiOiI0MTI4OGMzZDY0ZTJhMDUzZjc3NDU4ODc1ZDA1Yzc4MzEzODAxMjBmY2NhMzAyZjA0NzMyN2ZjYWNjYzg0YmM3IiwidGFnIjoiIn0%3D; expires=Sun, 12 Apr 2026 19:38:12 GMT; Max-Age=604799; path=\/; domain=tidybill.app; secure; httponly; samesite=lax"
                                }
                            ],
                            "code": 302,
                            "body": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\" \/>\n        <meta http-equiv=\"refresh\" content=\"0;url='https:\/\/accounts.google.com\/o\/oauth2\/auth?client_id=122074070973-q2t44i2big2vg257o5bkbn5kjhuu1d34.apps.googleusercontent.com&amp;redirect_uri=https%3A%2F%2Ftidybill.app%2Fapi%2Fauth%2Fgoogle%2Fcallback&amp;scope=openid+profile+email&amp;response_type=code'\" \/>\n\n        <title>Redirecting to https:\/\/accounts.google.com\/o\/oauth2\/auth?client_id=122074070973-q2t44i2big2vg257o5bkbn5kjhuu1d34.apps.googleusercontent.com&amp;redirect_uri=https%3A%2F%2Ftidybill.app%2Fapi%2Fauth%2Fgoogle%2Fcallback&amp;scope=openid+profile+email&amp;response_type=code<\/title>\n    <\/head>\n    <body>\n        Redirecting to <a href=\"https:\/\/accounts.google.com\/o\/oauth2\/auth?client_id=122074070973-q2t44i2big2vg257o5bkbn5kjhuu1d34.apps.googleusercontent.com&amp;redirect_uri=https%3A%2F%2Ftidybill.app%2Fapi%2Fauth%2Fgoogle%2Fcallback&amp;scope=openid+profile+email&amp;response_type=code\">https:\/\/accounts.google.com\/o\/oauth2\/auth?client_id=122074070973-q2t44i2big2vg257o5bkbn5kjhuu1d34.apps.googleusercontent.com&amp;redirect_uri=https%3A%2F%2Ftidybill.app%2Fapi%2Fauth%2Fgoogle%2Fcallback&amp;scope=openid+profile+email&amp;response_type=code<\/a>.\n    <\/body>\n<\/html>",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Google OAuth callback",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/google\/callback",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/google\/callback"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to frontend after authentication"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "location",
                                    "value": "https:\/\/tidybill.app\/login?error=google_auth_failed"
                                },
                                {
                                    "key": "content-type",
                                    "value": "text\/html; charset=utf-8"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                },
                                {
                                    "key": "set-cookie",
                                    "value": "XSRF-TOKEN=eyJpdiI6IjVWMERBdEhsWnJ3QUFncU5PNVVxVFE9PSIsInZhbHVlIjoiS0tESUNoeHNmN3pCRjJ1ZE9ESmNvQVhZU2dqWU5ldUcxMnpsTjZwdTkvbTFhVCs4OHFHR1JHUjR4TzNQTEhMNTkvWS9kQTAxYW5nL1owd3dLZGVJQVJZQjlKMHhxODVnMEhvMnh1SFB6cEdUUlY0MHMvaE9oUTIxbUJicmFDdjEiLCJtYWMiOiI2ZmY4ZmJjODgzOGFkYzdjYjQ1ZjRiNzQ1OTA3MThjNmYzYjlkNDMzMDdhYmFlZjczOGMyZjQxNWFiNzM5YzM0IiwidGFnIjoiIn0%3D; expires=Sun, 12 Apr 2026 19:38:13 GMT; Max-Age=604800; path=\/; domain=tidybill.app; secure; samesite=lax; tidybill_session=eyJpdiI6IjNuVFFhMVNMVUpvTldKOEFIMmVObXc9PSIsInZhbHVlIjoieWNPTDhXazQxeUZCR3FyV0lTYlpRd1ZzTDZvVHFaNEl3L1JyeG1JbGpLeElYbkt0eU5NS2ZsZVBSV1FmU25LRG15Wk5xL0VBTFJ3aVdnS1lCOWdPRWhBS1c4S1pxVEZvc2pDSnNWeHFwb0xFUmFqSFhCb3ExMGdhbytaSkw0ZjgiLCJtYWMiOiI2OTRiN2NiMzJlMzc5Yjg4YTZhMDExZmNkZjk0M2FmZTE4NjVlMzVjNTgxODg5ZGY3MDIxOWYzYjU1ZjU0MTc3IiwidGFnIjoiIn0%3D; expires=Sun, 12 Apr 2026 19:38:13 GMT; Max-Age=604800; path=\/; domain=tidybill.app; secure; httponly; samesite=lax"
                                }
                            ],
                            "code": 302,
                            "body": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\" \/>\n        <meta http-equiv=\"refresh\" content=\"0;url='https:\/\/tidybill.app\/login?error=google_auth_failed'\" \/>\n\n        <title>Redirecting to https:\/\/tidybill.app\/login?error=google_auth_failed<\/title>\n    <\/head>\n    <body>\n        Redirecting to <a href=\"https:\/\/tidybill.app\/login?error=google_auth_failed\">https:\/\/tidybill.app\/login?error=google_auth_failed<\/a>.\n    <\/body>\n<\/html>",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Logout",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Logged out.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get authenticated user",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/user",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/user"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":8,\"name\":\"Morgan Hirthe\",\"email\":\"dare.emelie@example.com\",\"avatar_url\":null,\"current_company_id\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update authenticated user",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/user",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/user"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":9,\"name\":\"Ms. Elisabeth Okuneva\",\"email\":\"gulgowski.asia@example.com\",\"avatar_url\":null,\"current_company_id\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Companies",
            "description": "",
            "item": [
                {
                    "name": "List companies",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all companies the authenticated user is a member of, regardless of role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":15,\"uuid\":\"0db07a5e-1aa6-4165-ba1e-f4c0990f7705\",\"name\":\"Price Ltd\",\"legal_name\":null,\"email\":\"dare.emelie@baumbach.org\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"},{\"id\":16,\"uuid\":\"81e00a44-fe6f-47fe-9604-3dc4ac4cae5a\",\"name\":\"Leuschke, Bauch and Fritsch\",\"legal_name\":null,\"email\":\"isidro.mclaughlin@smitham.com\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"legal_name\":\"n\",\"email\":\"ashly64@example.com\",\"phone\":\"v\",\"address_line_1\":\"d\",\"address_line_2\":\"l\",\"city\":\"j\",\"state\":\"n\",\"postal_code\":\"ikhwaykcmyuwpwlv\",\"country\":\"qw\",\"currency\":\"rsi\",\"tax_number\":\"t\",\"invoice_prefix\":\"cpscql\",\"quote_prefix\":\"dzsnrw\",\"default_payment_terms\":19,\"default_hourly_rate\":33,\"default_tax_name_1\":\"j\",\"default_tax_rate_1\":17,\"default_tax_name_2\":\"v\",\"default_tax_rate_2\":24}"
                        },
                        "description": "Creates a company, attaches the authenticated user as owner, and creates a default invoice template. Returns 403 if the user's plan company limit is reached."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":17,\"uuid\":\"3e26903d-5044-4d8b-ab0e-e1e541451f00\",\"name\":\"Considine LLC\",\"legal_name\":null,\"email\":\"ernie.nitzsche@ankunding.biz\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\":\"You've reached your free plan limit of 1 companies. Please upgrade.\",\"upgrade_required\":true}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":18,\"uuid\":\"1f26aac2-cf55-4962-b801-73a762a46bee\",\"name\":\"Price Ltd\",\"legal_name\":null,\"email\":\"dare.emelie@baumbach.org\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"legal_name\":\"n\",\"email\":\"ashly64@example.com\",\"phone\":\"v\",\"address_line_1\":\"d\",\"address_line_2\":\"l\",\"city\":\"j\",\"state\":\"n\",\"postal_code\":\"ikhwaykcmyuwpwlv\",\"country\":\"qw\",\"currency\":\"rsi\",\"tax_number\":\"t\",\"invoice_prefix\":\"cpscql\",\"quote_prefix\":\"dzsnrw\",\"default_payment_terms\":19,\"default_hourly_rate\":33,\"default_tax_name_1\":\"j\",\"default_tax_rate_1\":17,\"default_tax_name_2\":\"v\",\"default_tax_rate_2\":24}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":19,\"uuid\":\"426db81d-0fdf-43ee-9022-d67d5e37bcd8\",\"name\":\"Considine LLC\",\"legal_name\":null,\"email\":\"ernie.nitzsche@ankunding.biz\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Only the company owner can delete a company. Returns 403 for any other role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\":\"Only the owner can delete a company.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Switch active company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/switch",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/switch",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Updates the user's `current_company_id` so subsequent requests default to this company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":20,\"uuid\":\"f7fb15be-3a49-4a8b-bca9-17805160b129\",\"name\":\"Price Ltd\",\"legal_name\":null,\"email\":\"dare.emelie@baumbach.org\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List company members",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all users belonging to the company with their assigned role from the pivot table."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"John\",\"email\":\"john@example.com\",\"role\":\"owner\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Invite a member",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/invite",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/invite",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\",\"role\":\"architecto\"}"
                        },
                        "description": "Creates an invitation record with a 7-day expiry and emails the invite link. Returns 422 if the user is already a member or a pending invitation exists."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"message\":\"Invitation sent.\",\"data\":{\"id\":1,\"email\":\"jane@example.com\",\"role\":\"member\",\"expires_at\":\"2026-04-12T00:00:00.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"User is already a member.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List pending invitations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/invitations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/invitations",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all non-expired, non-accepted invitations for the company, ordered by most recent."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"email\":\"jane@example.com\",\"role\":\"member\",\"invited_by\":\"John\",\"expires_at\":\"2026-04-12T00:00:00.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Cancel an invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/invitations\/:invitation_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/invitations\/:invitation_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                },
                                {
                                    "id": "invitation_id",
                                    "key": "invitation_id",
                                    "value": "4",
                                    "description": "The ID of the invitation."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Resend an invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/invitations\/:invitation_id\/resend",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/invitations\/:invitation_id\/resend",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                },
                                {
                                    "id": "invitation_id",
                                    "key": "invitation_id",
                                    "value": "4",
                                    "description": "The ID of the invitation."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Regenerates the invitation token, extends the expiry by 7 days, and re-sends the email. Returns 422 if the invitation has already been accepted."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Invitation resent.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Invitation already accepted.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a member's role",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/:user_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/:user_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                },
                                {
                                    "id": "user_id",
                                    "key": "user_id",
                                    "value": "2",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"role\":\"architecto\"}"
                        },
                        "description": "Changes the role on the company-user pivot. The owner role cannot be changed; returns 403 if attempted."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Member updated.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\":\"Cannot change the owner role.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Remove a member",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/companies\/:company_id\/members\/:user_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/companies\/:company_id\/members\/:user_id",
                            "variable": [
                                {
                                    "id": "company_id",
                                    "key": "company_id",
                                    "value": "2",
                                    "description": "The ID of the company."
                                },
                                {
                                    "id": "user_id",
                                    "key": "user_id",
                                    "value": "2",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\":\"Cannot remove the company owner.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"You cannot remove yourself.\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Clients",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on clients",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"archive\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List clients",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports name\/email search and archived state filtering. Results are paginated and include active\/archived counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":128,\"uuid\":\"d7179e59-a6fc-4543-ad1f-1a32b4d1bde9\",\"name\":\"Price Ltd\",\"email\":\"dare.emelie@example.com\",\"phone\":\"+14324666067\",\"address_line_1\":\"26432 Leuschke Throughway Apt. 227\",\"address_line_2\":null,\"city\":\"Lake Audreyborough\",\"state\":\"Montana\",\"postal_code\":\"36080-0782\",\"country\":\"VG\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"},{\"id\":129,\"uuid\":\"5631d5c1-7b94-445f-b78a-96df0d7280b0\",\"name\":\"Fahey, Cartwright and Balistreri\",\"email\":\"florence.wolff@example.net\",\"phone\":\"1-346-252-9368\",\"address_line_1\":\"20568 Murl Villages\",\"address_line_2\":null,\"city\":\"New Modesta\",\"state\":\"Iowa\",\"postal_code\":\"57582-4237\",\"country\":\"TM\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a client",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\",\"address_line_1\":\"y\",\"address_line_2\":\"v\",\"city\":\"d\",\"state\":\"l\",\"postal_code\":\"jnikhwaykcmyuwpw\",\"country\":\"lv\",\"currency\":\"qwr\",\"payment_terms\":10,\"notes\":\"i\",\"is_archived\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":130,\"uuid\":\"d0ae1404-48ba-4c80-81e2-18f7d3562e16\",\"name\":\"Fritsch-O'Keefe\",\"email\":\"carey67@example.com\",\"phone\":\"283.476.7809\",\"address_line_1\":\"67339 Gaylord Meadow Suite 788\",\"address_line_2\":null,\"city\":\"Verliebury\",\"state\":\"Colorado\",\"postal_code\":\"61747-3805\",\"country\":\"KP\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:14.000000Z\",\"updated_at\":\"2026-04-05T19:38:14.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a client",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes the client's contacts and associated projects."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":131,\"uuid\":\"fe59f5ac-a325-4d12-9ea3-af4385b8a9b1\",\"name\":\"Price Ltd\",\"email\":\"dare.emelie@example.com\",\"phone\":\"+14324666067\",\"address_line_1\":\"26432 Leuschke Throughway Apt. 227\",\"address_line_2\":null,\"city\":\"Lake Audreyborough\",\"state\":\"Montana\",\"postal_code\":\"36080-0782\",\"country\":\"VG\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a client",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\",\"address_line_1\":\"y\",\"address_line_2\":\"v\",\"city\":\"d\",\"state\":\"l\",\"postal_code\":\"jnikhwaykcmyuwpw\",\"country\":\"lv\",\"currency\":\"qwr\",\"payment_terms\":10,\"notes\":\"i\",\"is_archived\":true}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":132,\"uuid\":\"b185a943-0f68-43f2-93a2-d720c608be3a\",\"name\":\"Fritsch-O'Keefe\",\"email\":\"carey67@example.com\",\"phone\":\"283.476.7809\",\"address_line_1\":\"67339 Gaylord Meadow Suite 788\",\"address_line_2\":null,\"city\":\"Verliebury\",\"state\":\"Colorado\",\"postal_code\":\"61747-3805\",\"country\":\"KP\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a client",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Move client to another company",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/move",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/move",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"target_company_id\":16}"
                        },
                        "description": "Moves the client and all their associated invoices, quotes, recurring invoices, projects, time entries, and expenses to the target company in a single transaction."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":133,\"uuid\":\"345c2f0a-3b35-4f33-a9d5-80a146687983\",\"name\":\"Bailey Ltd\",\"email\":\"rempel.chadrick@example.org\",\"phone\":\"1-973-868-2042\",\"address_line_1\":\"77432 Amber Crossing\",\"address_line_2\":null,\"city\":\"Leuschkeland\",\"state\":\"Kentucky\",\"postal_code\":\"25744\",\"country\":\"MD\",\"currency\":\"USD\",\"payment_terms\":30,\"notes\":null,\"is_archived\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":{\"message\":\"Client is already in this company.\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get client stats",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/stats",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/stats",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns total invoiced, total paid, outstanding balance (active invoices only), and total tracked hours for the client."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"total_invoiced\":10000,\"total_paid\":5000,\"outstanding\":5000,\"total_hours\":12.5}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get client statement data",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/statement",
                            "query": [
                                {
                                    "key": "from",
                                    "value": "2026-01-01",
                                    "description": "Start date (YYYY-MM-DD).",
                                    "disabled": false
                                },
                                {
                                    "key": "to",
                                    "value": "2026-03-31",
                                    "description": "End date (YYYY-MM-DD).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/statement?from=2026-01-01&to=2026-03-31",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"from\":\"2026-04-05T19:38:15\",\"to\":\"2026-04-05T19:38:15\"}"
                        },
                        "description": "Returns a list of non-draft, non-voided invoices for the date range with running balance, plus total invoiced, paid, and outstanding amounts."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"client\":{},\"from\":\"2026-01-01\",\"to\":\"2026-03-31\",\"total_invoiced\":10000,\"total_paid\":5000,\"total_outstanding\":5000,\"items\":[]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download client statement as PDF",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/statement\/pdf",
                            "query": [
                                {
                                    "key": "from",
                                    "value": "2026-01-01",
                                    "description": "Start date (YYYY-MM-DD).",
                                    "disabled": false
                                },
                                {
                                    "key": "to",
                                    "value": "2026-03-31",
                                    "description": "End date (YYYY-MM-DD).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/statement\/pdf?from=2026-01-01&to=2026-03-31",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"from\":\"2026-04-05T19:38:15\",\"to\":\"2026-04-05T19:38:15\"}"
                        },
                        "description": "Generates a PDF statement using the company's default invoice template and streams it as a file download."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"content-type\":\"application\/pdf\"}",
                            "name": "PDF binary"
                        }
                    ]
                },
                {
                    "name": "Send client statement by email",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/statement\/send",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/statement\/send",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"from\":\"2026-04-05T19:38:15\",\"to\":\"2026-04-05T19:38:15\",\"note\":\"b\",\"cc\":[\"zbailey@example.net\"]}"
                        },
                        "description": "Generates the statement PDF and emails it to the client's primary contact or email address. Accepts an optional `note` for a custom body and a `cc` list of additional recipients."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Statement sent successfully.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Client has no email address.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List client contacts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/contacts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/contacts",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":124,\"name\":\"Morgan Hirthe\",\"email\":\"dare.emelie@example.com\",\"phone\":\"+14324666067\",\"is_primary\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\"},{\"id\":125,\"name\":\"Ms. Anais Conroy\",\"email\":\"moises37@example.com\",\"phone\":\"1-678-926-5062\",\"is_primary\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a client contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/contacts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/contacts",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\",\"is_primary\":true}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":126,\"name\":\"Mr. Gerhard Dach Jr.\",\"email\":\"lafayette.considine@example.com\",\"phone\":\"+1-626-249-0432\",\"is_primary\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a client contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/contacts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/contacts\/:id",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                },
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the contact."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":127,\"name\":\"Morgan Hirthe\",\"email\":\"dare.emelie@example.com\",\"phone\":\"+14324666067\",\"is_primary\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a client contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/contacts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/contacts\/:id",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                },
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the contact."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\",\"is_primary\":true}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":128,\"name\":\"Mr. Gerhard Dach Jr.\",\"email\":\"lafayette.considine@example.com\",\"phone\":\"+1-626-249-0432\",\"is_primary\":false,\"created_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a client contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/contacts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/contacts\/:id",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                },
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the contact."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Invoices",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"unarchive\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `mark-sent` (draft invoices only), `delete` (draft invoices only, also unbills linked time entries). Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Bulk record payments for multiple invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/bulk-record-payment",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/bulk-record-payment"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"payments\":[{\"invoice_id\":16,\"amount\":22,\"payment_date\":\"2026-04-05T19:38:19\",\"payment_method\":\"g\",\"reference\":\"z\",\"notes\":\"m\"}],\"send_notification\":false}"
                        },
                        "description": "Records a payment against each invoice in a single transaction. If `send_notification` is true, a payment received email is sent to each affected client."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"recorded\":2,\"errors\":[]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices",
                            "query": [
                                {
                                    "key": "filter%5Bstatus%5D",
                                    "value": "sent",
                                    "description": "Filter by status.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bclient_id%5D",
                                    "value": "1",
                                    "description": "Filter by client ID.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Binvoice_number%5D",
                                    "value": "INV-001",
                                    "description": "Partial match on invoice number.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bids%5D",
                                    "value": "1%2C2%2C3",
                                    "description": "Comma-separated list of invoice IDs.",
                                    "disabled": false
                                },
                                {
                                    "key": "sort",
                                    "value": "-issue_date",
                                    "description": "Sort field (prefix with - for descending).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/invoices?filter%5Bstatus%5D=sent&filter%5Bclient_id%5D=1&filter%5Binvoice_number%5D=INV-001&filter%5Bids%5D=1%2C2%2C3&sort=-issue_date"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by status, client_id, invoice_number, and a comma-separated ids list. Results are paginated and include aggregate totals and status counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1599,\"uuid\":\"a2dbfa6b-cc9d-4b33-96f9-0c2b607910bb\",\"client_id\":155,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-79198\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},{\"id\":1600,\"uuid\":\"458979ce-7d33-4578-a55f-d98c55ed88f2\",\"client_id\":156,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-21385\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"architecto\",\"issue_date\":\"2026-04-05T19:38:19\",\"due_date\":\"2052-04-28\",\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"terms\":\"g\",\"footer\":\"z\",\"is_archived\":false,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "Creates a draft invoice. Pass a `line_items` array to create and attach line items in the same request."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1601,\"uuid\":\"5ce597fd-4196-459a-ac53-a97436b8c7b6\",\"client_id\":157,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-70546\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes the client, all line items (including late fee items), and payment records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1602,\"uuid\":\"245c8ecd-a2e5-4497-85e0-fdad85549e30\",\"client_id\":158,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-54634\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"issue_date\":\"2026-04-05T19:38:19\",\"due_date\":\"2052-04-28\",\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"terms\":\"g\",\"footer\":\"z\",\"is_archived\":true,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "If `line_items` is provided, the full set of line items is synced (added, updated, and removed). Omit `line_items` to update invoice fields only without touching line items."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1603,\"uuid\":\"64c63ff1-396c-4f1f-a073-f1ff3c3a2184\",\"client_id\":159,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-63526\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Soft deletes the invoice and marks any linked time entries as unbilled so they can be re-invoiced."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "List line items for an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/line-items",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":10149,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nostrum qui commodi incidunt iure.\",\"quantity\":1.02,\"unit_price\":\"13053.000000\",\"amount\":13314,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},{\"id\":10150,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nemo voluptate accusamus ut et.\",\"quantity\":8.73,\"unit_price\":\"36405.000000\",\"amount\":317816,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a line item to an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/line-items",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":10151,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a line item on an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "20",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":10152,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a line item from an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "20",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Archive an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/archive",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/unarchive",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Move an invoice to another company.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/move",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/move",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The authenticated user must have access to the target company. Reassigns the invoice, its payments, credits, time entries, and expenses to the target company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1608,\"uuid\":\"3ea400bd-683a-4261-a610-0afa3c801d65\",\"client_id\":164,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-80304\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Import time entries as line items onto an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/import-time",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/import-time",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"time_entry_ids\":[16]}"
                        },
                        "description": "Converts the specified unbilled time entries into invoice line items and marks them as billed. Accepts an array of `time_entry_ids`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1609,\"uuid\":\"fa2ce905-7b4f-4195-afcc-00ffb631e736\",\"client_id\":165,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-24492\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Send an invoice by email.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/send",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/send",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Sends the invoice to the client's email address and transitions a draft invoice to sent status. Returns 422 if the client has no email configured."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1610,\"uuid\":\"c15f8d2e-94cf-4858-b434-429303945b48\",\"client_id\":166,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-14650\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Mark an invoice as sent without emailing.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/mark-sent",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/mark-sent",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Transitions the invoice status to sent and logs the activity, but does not send any email to the client."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1611,\"uuid\":\"9b5f355b-edb9-48c6-863a-589f17b401ca\",\"client_id\":167,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-62492\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Mark an invoice as fully paid.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/mark-paid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/mark-paid",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Sets amount_paid to the invoice total and amount_due to zero in a single transaction, then transitions the status to paid."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1612,\"uuid\":\"501f9d28-97c4-4bfb-b2af-1d9e6114fda7\",\"client_id\":168,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-45193\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Record a payment against an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/record-payment",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/record-payment",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"amount\":1,\"payment_date\":\"2026-04-05T19:38:19\",\"payment_method\":\"card\",\"reference\":\"n\",\"notes\":\"g\"}"
                        },
                        "description": "Records a partial or full payment and updates amount_paid and amount_due. Automatically transitions the invoice to partial or paid status based on the remaining balance."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1613,\"uuid\":\"8f637055-efeb-4f8b-9aaa-8e46e57b8fac\",\"client_id\":169,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-45117\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Void an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/void",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/void",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Transitions the invoice to cancelled status and marks any linked time entries as unbilled so they can be re-invoiced."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1614,\"uuid\":\"a712eab5-a5ad-4a1b-8496-4966297be422\",\"client_id\":170,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-30805\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Duplicate an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/duplicate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/duplicate",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a new draft invoice with the same line items and client as the original, assigned the next available invoice number."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1615,\"uuid\":\"526b85dc-f533-4d45-85fc-ea5483106ae6\",\"client_id\":171,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-93082\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download invoice as PDF.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invoices\/:invoice_id\/pdf",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invoices\/:invoice_id\/pdf",
                            "variable": [
                                {
                                    "id": "invoice_id",
                                    "key": "invoice_id",
                                    "value": "1088",
                                    "description": "The ID of the invoice."
                                },
                                {
                                    "id": "invoice",
                                    "key": "invoice",
                                    "value": "1",
                                    "description": "The invoice ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Generates the invoice PDF on demand and streams it inline using the company's default template."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "<<binary>>",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Quotes",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on quotes.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"mark-sent\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `mark-sent` (draft quotes only), `delete` (draft quotes only). Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List quotes.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes",
                            "query": [
                                {
                                    "key": "filter%5Bstatus%5D",
                                    "value": "sent",
                                    "description": "Filter by status.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bclient_id%5D",
                                    "value": "1",
                                    "description": "Filter by client ID.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bquote_number%5D",
                                    "value": "QUO-001",
                                    "description": "Partial match on quote number.",
                                    "disabled": false
                                },
                                {
                                    "key": "sort",
                                    "value": "-issue_date",
                                    "description": "Sort field (prefix with - for descending).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/quotes?filter%5Bstatus%5D=sent&filter%5Bclient_id%5D=1&filter%5Bquote_number%5D=QUO-001&sort=-issue_date"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by status, client_id, and quote_number. Results are paginated and include active\/archived counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":154,\"uuid\":\"3a2924fe-1de9-4cf1-a89c-03baf0e76d42\",\"client_id\":172,\"quote_number\":\"QUO-92439\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},{\"id\":155,\"uuid\":\"307265bb-89f7-4c75-b5e8-cc58585bbe7f\",\"client_id\":173,\"quote_number\":\"QUO-09313\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"architecto\",\"issue_date\":\"2026-04-05T19:38:19\",\"expiry_date\":\"2052-04-28\",\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"terms\":\"g\",\"footer\":\"z\",\"is_archived\":true,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "Creates a draft quote. Pass a `line_items` array to create and attach line items in the same request."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":156,\"uuid\":\"36c78c49-6db6-49a2-89b1-14e1472123d9\",\"client_id\":174,\"quote_number\":\"QUO-26855\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes the client and all line items."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":157,\"uuid\":\"5c547376-ab85-43b3-a8d4-78a9825f8192\",\"client_id\":175,\"quote_number\":\"QUO-47352\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"issue_date\":\"2026-04-05T19:38:20\",\"expiry_date\":\"2052-04-28\",\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"terms\":\"g\",\"footer\":\"z\",\"is_archived\":false,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "If `line_items` is provided, the full set of line items is synced. Omit `line_items` to update quote fields only without touching line items."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":158,\"uuid\":\"be67fa0b-ce1b-4e12-b309-0ff89a74305e\",\"client_id\":176,\"quote_number\":\"QUO-23164\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Only draft quotes can be deleted. Returns 422 for any other status."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "List line items for a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/line-items",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1512,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nostrum qui commodi incidunt iure.\",\"quantity\":1.02,\"unit_price\":\"13053.000000\",\"amount\":13314,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},{\"id\":1513,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nemo voluptate accusamus ut et.\",\"quantity\":8.73,\"unit_price\":\"36405.000000\",\"amount\":317816,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a line item to a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/line-items",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1514,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a line item on a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "1",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1515,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a line item from a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "1",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Archive a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/archive",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/unarchive",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Send a quote by email.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/send",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/send",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Sends the quote to the client's email address and transitions the status to sent. Returns 422 if the client has no email configured."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":163,\"uuid\":\"f102d993-55e1-4722-9374-5c984455862a\",\"client_id\":181,\"quote_number\":\"QUO-35644\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Mark a quote as sent without emailing.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/mark-sent",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/mark-sent",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Transitions the quote status to sent and logs the activity, but does not send any email to the client."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":164,\"uuid\":\"746befd7-b5a8-45fe-b63b-5a0e68a5f1d9\",\"client_id\":182,\"quote_number\":\"QUO-08317\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Convert a quote to an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/convert-to-invoice",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/convert-to-invoice",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a new draft invoice from the quote's line items and client. The quote must be in sent, viewed, or accepted status."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1616,\"uuid\":\"91cb4b60-aff6-4487-b436-46de2e36ed56\",\"client_id\":183,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-98251\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Convert a quote to a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/convert-to-project",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/convert-to-project",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a new project from the quote details. The quote must be in sent, viewed, or accepted status."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":43,\"client_id\":184,\"name\":\"implement intuitive e-tailers\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":14351,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Duplicate a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/duplicate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/duplicate",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a new draft quote with the same line items and client as the original, assigned the next available quote number."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":165,\"uuid\":\"4b5d9dda-6611-407e-8472-ad4f39c91403\",\"client_id\":185,\"quote_number\":\"QUO-82093\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download quote as PDF.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/quotes\/:quote_id\/pdf",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/quotes\/:quote_id\/pdf",
                            "variable": [
                                {
                                    "id": "quote_id",
                                    "key": "quote_id",
                                    "value": "1",
                                    "description": "The ID of the quote."
                                },
                                {
                                    "id": "quote",
                                    "key": "quote",
                                    "value": "1",
                                    "description": "The quote ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Generates the quote PDF on demand and streams it inline using the company's default template."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "<<binary>>",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Projects",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on projects.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"archive\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `complete`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List projects.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by status, client_id, and name search. Results are paginated and include per-status and archived counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":37,\"client_id\":139,\"name\":\"implement intuitive e-tailers\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":14351,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"},{\"id\":38,\"client_id\":140,\"name\":\"benchmark one-to-one infrastructures\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":21548,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"architecto\",\"name\":\"n\",\"status\":\"active\",\"billing_method\":\"flat_rate\",\"hourly_rate\":84,\"budget_hours\":12,\"budget_amount\":77,\"start_date\":\"2026-04-05T19:38:15\",\"end_date\":\"2052-04-28\",\"is_archived\":true}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":39,\"client_id\":141,\"name\":\"exploit scalable supply-chains\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":17320,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes the client and project members with their hourly rates."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":40,\"client_id\":142,\"name\":\"implement intuitive e-tailers\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":14351,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"status\":\"archived\",\"billing_method\":\"flat_rate\",\"hourly_rate\":39,\"budget_hours\":84,\"budget_amount\":12,\"start_date\":\"2026-04-05T19:38:15\",\"end_date\":\"2052-04-28\",\"is_archived\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":41,\"client_id\":143,\"name\":\"exploit scalable supply-chains\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":17320,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Move project to another company.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/move",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/move",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"target_company_id\":16}"
                        },
                        "description": "Moves the project (and its time entries) to a company the authenticated user has access to.\nDetaches all project members and clears the client association."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":42,\"client_id\":144,\"name\":\"exploit scalable supply-chains\",\"status\":\"active\",\"is_archived\":false,\"billing_method\":\"hourly\",\"hourly_rate\":17320,\"budget_hours\":null,\"budget_amount\":null,\"start_date\":null,\"end_date\":null,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Archive a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/archive",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive a project.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/unarchive",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Get project stats.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/stats",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/stats",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns hours breakdown (total, billed, unbilled) and budget info for the project."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"total_hours\":10.5,\"billed_hours\":4.0,\"unbilled_hours\":6.5,\"budget_hours\":20.0,\"budget_amount\":300000}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List project members.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/members",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/members",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns each member's user details and their project-specific hourly rate from the pivot table."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"Jane Smith\",\"email\":\"jane@example.com\",\"hourly_rate\":15000}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a project member.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/members",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/members",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"user_id\":16,\"hourly_rate\":39}"
                        },
                        "description": "The user must be a member of the current company. Accepts an optional `hourly_rate` (in cents) to override the company default for this project."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"message\":\"Member added.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Remove a project member.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_id\/members\/:user_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_id\/members\/:user_id",
                            "variable": [
                                {
                                    "id": "project_id",
                                    "key": "project_id",
                                    "value": "7",
                                    "description": "The ID of the project."
                                },
                                {
                                    "id": "user_id",
                                    "key": "user_id",
                                    "value": "2",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Detaches the user from the project. The user must be a member of the current company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Time Tracking",
            "description": "\nManage time entries for tracking billable and non-billable work. Time entries store a `date` and `duration`\n(in seconds). The `started_at`, `ended_at`, and `is_running` fields in the response are read-only and only\npopulated when using the Timer endpoints (start\/stop\/current\/discard). To create a manual time entry,\nprovide `date` and `duration` only. The `hourly_rate` is auto-resolved from project, service, or company\ndefaults if not provided. All money values (`hourly_rate`, `calculated_amount`) are integers in cents.",
            "item": [
                {
                    "name": "Resolve hourly rate.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/resolve-rate",
                            "query": [
                                {
                                    "key": "project_id",
                                    "value": "1",
                                    "description": "optional The project ID to check.",
                                    "disabled": false
                                },
                                {
                                    "key": "service_id",
                                    "value": "1",
                                    "description": "optional The service ID to check.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/time-entries\/resolve-rate?project_id=1&service_id=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the hourly rate that would be auto-applied for a given project\/service combination.\nResolution order: project rate, service rate, company default rate."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"rate\":15000,\"source\":\"project\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List unbilled time entries.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/unbilled",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/unbilled"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns billable entries that have not yet been added to an invoice. Excludes running timers."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":4818,\"user_id\":10,\"client_id\":145,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-11\",\"duration\":5783,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15266,\"notes\":\"Qui commodi incidunt iure odit.\",\"calculated_amount\":24523,\"duration_hours\":1.61,\"created_at\":\"2026-04-05T19:38:16.000000Z\",\"updated_at\":\"2026-04-05T19:38:16.000000Z\"},{\"id\":4819,\"user_id\":11,\"client_id\":146,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-30\",\"duration\":17654,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":5977,\"notes\":\"Ex repellendus assumenda et tenetur ab reiciendis.\",\"calculated_amount\":29311,\"duration_hours\":4.9,\"created_at\":\"2026-04-05T19:38:16.000000Z\",\"updated_at\":\"2026-04-05T19:38:16.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Bulk create time entries.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/bulk",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/bulk"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"entries\":[{\"client_id\":1,\"project_id\":1,\"service_id\":1,\"date\":\"2026-03-29\",\"duration\":3600,\"is_billable\":true,\"hourly_rate\":15000,\"notes\":\"API integration work\"}]}"
                        },
                        "description": "Create up to 50 time entries in a single request. Each entry uses the same schema as the single create endpoint."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":[]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Bulk delete time entries.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/bulk",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/bulk"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[1,2,3]}"
                        },
                        "description": "Delete up to 100 time entries. Only deletes entries owned by the authenticated user."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "List time entries.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a paginated list of time entries, sorted by date descending by default."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":4820,\"user_id\":12,\"client_id\":147,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-11\",\"duration\":5783,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15266,\"notes\":\"Qui commodi incidunt iure odit.\",\"calculated_amount\":24523,\"duration_hours\":1.61,\"created_at\":\"2026-04-05T19:38:16.000000Z\",\"updated_at\":\"2026-04-05T19:38:16.000000Z\"},{\"id\":4821,\"user_id\":13,\"client_id\":148,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-12\",\"duration\":21598,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":12880,\"notes\":\"Repellendus assumenda et tenetur ab reiciendis.\",\"calculated_amount\":77273,\"duration_hours\":6,\"created_at\":\"2026-04-05T19:38:17.000000Z\",\"updated_at\":\"2026-04-05T19:38:17.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a time entry.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":1,\"project_id\":1,\"service_id\":1,\"date\":\"2026-03-29\",\"duration\":3600,\"is_billable\":true,\"is_billed\":false,\"hourly_rate\":15000,\"notes\":\"API integration work\"}"
                        },
                        "description": "Create a manual time entry. Provide `date` (YYYY-MM-DD) and `duration` (in seconds, e.g. 3600 = 1 hour).\nDo NOT send `started_at`, `ended_at`, or `is_running` - those are managed by the Timer endpoints.\nIf `hourly_rate` is omitted, it is auto-resolved from the project, service, or company default rate."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4822,\"user_id\":14,\"client_id\":149,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-16\",\"duration\":1838,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":14575,\"notes\":\"Sunt nihil accusantium harum mollitia.\",\"calculated_amount\":7441,\"duration_hours\":0.51,\"created_at\":\"2026-04-05T19:38:17.000000Z\",\"updated_at\":\"2026-04-05T19:38:17.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a time entry.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "5",
                                    "description": "The ID of the time entry."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4823,\"user_id\":15,\"client_id\":150,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-11\",\"duration\":5783,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15266,\"notes\":\"Qui commodi incidunt iure odit.\",\"calculated_amount\":24523,\"duration_hours\":1.61,\"created_at\":\"2026-04-05T19:38:17.000000Z\",\"updated_at\":\"2026-04-05T19:38:17.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a time entry.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "5",
                                    "description": "The ID of the time entry."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"project_id\":\"architecto\",\"service_id\":\"architecto\",\"date\":\"2026-04-05T19:38:17\",\"duration\":39,\"is_billable\":false,\"is_billed\":false,\"hourly_rate\":84,\"notes\":\"z\"}"
                        },
                        "description": "Same body schema as create. Only the entry owner or a company admin\/owner can update."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4824,\"user_id\":16,\"client_id\":151,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-16\",\"duration\":1838,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":14575,\"notes\":\"Sunt nihil accusantium harum mollitia.\",\"calculated_amount\":7441,\"duration_hours\":0.51,\"created_at\":\"2026-04-05T19:38:17.000000Z\",\"updated_at\":\"2026-04-05T19:38:17.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a time entry.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/time-entries\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/time-entries\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "5",
                                    "description": "The ID of the time entry."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Only the entry owner or a company admin\/owner can delete."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Start a timer.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/timer\/start",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/timer\/start"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":1,\"project_id\":1,\"service_id\":1,\"notes\":\"Working on API integration\",\"is_billable\":true,\"hourly_rate\":15000}"
                        },
                        "description": "Starts a new running timer. If a timer is already running, it is stopped first.\nThe `started_at` is set to the current time. Duration is calculated when the timer is stopped."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4825,\"user_id\":17,\"client_id\":152,\"project_id\":null,\"service_id\":null,\"date\":\"2026-04-01\",\"duration\":21771,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15990,\"notes\":\"Et fugiat sunt nihil accusantium.\",\"calculated_amount\":96700,\"duration_hours\":6.05,\"created_at\":\"2026-04-05T19:38:18.000000Z\",\"updated_at\":\"2026-04-05T19:38:18.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Stop the running timer.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/timer\/stop",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/timer\/stop"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Stops the current user's running timer, calculates the duration from `started_at` to now,\nand sets `ended_at`. Returns 404 if no timer is running."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4826,\"user_id\":18,\"client_id\":153,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-11\",\"duration\":5783,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15266,\"notes\":\"Qui commodi incidunt iure odit.\",\"calculated_amount\":24523,\"duration_hours\":1.61,\"created_at\":\"2026-04-05T19:38:18.000000Z\",\"updated_at\":\"2026-04-05T19:38:18.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get current running timer.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/timer\/current",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/timer\/current"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the current user's running timer, or `{\"data\": null}` if no timer is running."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4827,\"user_id\":19,\"client_id\":154,\"project_id\":null,\"service_id\":null,\"date\":\"2026-03-11\",\"duration\":5783,\"started_at\":null,\"ended_at\":null,\"is_running\":false,\"is_billable\":true,\"is_billed\":false,\"invoice_id\":null,\"hourly_rate\":15266,\"notes\":\"Qui commodi incidunt iure odit.\",\"calculated_amount\":24523,\"duration_hours\":1.61,\"created_at\":\"2026-04-05T19:38:19.000000Z\",\"updated_at\":\"2026-04-05T19:38:19.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Discard the running timer.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/timer\/discard",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/timer\/discard"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Deletes the running timer without saving. Returns 204 whether or not a timer was running."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Services",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on services.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"deactivate\"}"
                        },
                        "description": "Supported actions: `activate`, `deactivate`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List services.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by is_active, type, and name search. Results are paginated with active\/inactive counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":71,\"type\":\"service\",\"name\":\"Development\",\"description\":\"Quidem nostrum qui commodi incidunt iure odit.\",\"default_rate\":14003,\"unit\":\"hour\",\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_name_2\":null,\"tax_rate_2\":null,\"is_active\":true,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"},{\"id\":72,\"type\":\"service\",\"name\":\"Consulting\",\"description\":\"Facere tempora ex voluptatem laboriosam.\",\"default_rate\":14572,\"unit\":\"item\",\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_name_2\":null,\"tax_rate_2\":null,\"is_active\":true,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a service.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"default_rate\":42,\"type\":\"product\",\"unit\":\"ljnikhwaykcmyuwp\",\"tax_name_1\":\"w\",\"tax_rate_1\":89,\"tax_name_2\":\"v\",\"tax_rate_2\":3,\"is_active\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":73,\"type\":\"service\",\"name\":\"Consulting\",\"description\":\"Et et modi ipsum nostrum.\",\"default_rate\":13789,\"unit\":\"day\",\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_name_2\":null,\"tax_rate_2\":null,\"is_active\":true,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a service.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the service."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":74,\"type\":\"service\",\"name\":\"Development\",\"description\":\"Quidem nostrum qui commodi incidunt iure odit.\",\"default_rate\":14003,\"unit\":\"hour\",\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_name_2\":null,\"tax_rate_2\":null,\"is_active\":true,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a service.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the service."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"default_rate\":42,\"type\":\"product\",\"unit\":\"ljnikhwaykcmyuwp\",\"tax_name_1\":\"w\",\"tax_rate_1\":89,\"tax_name_2\":\"v\",\"tax_rate_2\":3,\"is_active\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":75,\"type\":\"service\",\"name\":\"Consulting\",\"description\":\"Et et modi ipsum nostrum.\",\"default_rate\":13789,\"unit\":\"day\",\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_name_2\":null,\"tax_rate_2\":null,\"is_active\":true,\"created_at\":\"2026-04-05T19:38:15.000000Z\",\"updated_at\":\"2026-04-05T19:38:15.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a service.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/services\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/services\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the service."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Expenses",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on expenses.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"unarchive\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List expenses.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by category, client_id, project_id, is_billable, is_billed, and date range. Meta includes aggregate totals for active expenses."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"user_id\":20,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:20.000000Z\",\"updated_at\":\"2026-04-05T19:38:20.000000Z\"},{\"id\":2,\"user_id\":21,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:21.000000Z\",\"updated_at\":\"2026-04-05T19:38:21.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"category\":\"meals\",\"vendor\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"amount\":26,\"currency\":\"l\",\"tax_amount\":9,\"tax_name\":\"n\",\"tax_rate\":5,\"expense_date\":\"2026-04-05T19:38:21\",\"is_billable\":false,\"reference\":\"k\"}"
                        },
                        "description": "Creates an expense attributed to the authenticated user. Currency defaults to the company currency if not provided."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":3,\"user_id\":22,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:21.000000Z\",\"updated_at\":\"2026-04-05T19:38:21.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4,\"user_id\":23,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:21.000000Z\",\"updated_at\":\"2026-04-05T19:38:21.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"category\":\"advertising\",\"vendor\":\"b\",\"description\":\"Et animi quos velit et fugiat.\",\"amount\":26,\"currency\":\"l\",\"tax_amount\":9,\"tax_name\":\"n\",\"tax_rate\":5,\"expense_date\":\"2026-04-05T19:38:21\",\"is_billable\":true,\"reference\":\"k\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":5,\"user_id\":24,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:21.000000Z\",\"updated_at\":\"2026-04-05T19:38:21.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Archive an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:expense_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:expense_id\/archive",
                            "variable": [
                                {
                                    "id": "expense_id",
                                    "key": "expense_id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:expense_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:expense_id\/unarchive",
                            "variable": [
                                {
                                    "id": "expense_id",
                                    "key": "expense_id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Upload a receipt for an expense.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:expense_id\/receipt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:expense_id\/receipt",
                            "variable": [
                                {
                                    "id": "expense_id",
                                    "key": "expense_id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"receipt\":\"b\"}"
                        },
                        "description": "Accepts JPEG, PNG, GIF, WebP, or PDF files up to 5 MB."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":6,\"user_id\":25,\"client_id\":null,\"project_id\":null,\"invoice_id\":null,\"category\":\"other\",\"vendor\":null,\"description\":null,\"amount\":5000,\"currency\":\"USD\",\"tax_amount\":0,\"tax_name\":null,\"tax_rate\":0,\"expense_date\":\"2026-04-05\",\"status\":\"pending\",\"is_archived\":false,\"is_billable\":false,\"is_billed\":false,\"receipt_path\":null,\"reference\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download an expense receipt.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/expenses\/:expense_id\/receipt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/expenses\/:expense_id\/receipt",
                            "variable": [
                                {
                                    "id": "expense_id",
                                    "key": "expense_id",
                                    "value": "16",
                                    "description": "The ID of the expense."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Streams the uploaded receipt file as a download. Returns 404 if no receipt is attached."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "file",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Credits",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on credits.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"unarchive\"}"
                        },
                        "description": "Supported actions: `archive`, `unarchive`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List credits.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by client_id, type, and has_balance. Results are paginated with active\/archived counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"client_id\":186,\"invoice_id\":null,\"type\":\"credit_note\",\"is_archived\":false,\"amount\":26768,\"balance\":26768,\"currency\":\"USD\",\"description\":\"Quidem nostrum qui commodi incidunt iure odit.\",\"date\":\"2026-04-05T00:00:00.000000Z\",\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"},{\"id\":2,\"client_id\":187,\"invoice_id\":null,\"type\":\"credit_note\",\"is_archived\":false,\"amount\":13913,\"balance\":13913,\"currency\":\"USD\",\"description\":\"Ratione nemo voluptate accusamus ut et recusandae modi rerum.\",\"date\":\"2026-04-05T00:00:00.000000Z\",\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a credit.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"architecto\",\"type\":\"overpayment\",\"amount\":22,\"currency\":\"gzm\",\"description\":\"Et fugiat sunt nihil accusantium.\",\"date\":\"2026-04-05T19:38:22\"}"
                        },
                        "description": "Creates a credit note for a client. The initial `balance` is automatically set equal to `amount`. Currency defaults to the company currency if not provided."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":3,\"client_id\":188,\"invoice_id\":null,\"type\":\"credit_note\",\"is_archived\":false,\"amount\":21638,\"balance\":21638,\"currency\":\"USD\",\"description\":\"Modi deserunt aut ab provident perspiciatis.\",\"date\":\"2026-04-05T00:00:00.000000Z\",\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a credit.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "16",
                                    "description": "The ID of the credit."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":4,\"client_id\":189,\"invoice_id\":null,\"type\":\"credit_note\",\"is_archived\":false,\"amount\":26768,\"balance\":26768,\"currency\":\"USD\",\"description\":\"Quidem nostrum qui commodi incidunt iure odit.\",\"date\":\"2026-04-05T00:00:00.000000Z\",\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Archive a credit.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits\/:credit_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits\/:credit_id\/archive",
                            "variable": [
                                {
                                    "id": "credit_id",
                                    "key": "credit_id",
                                    "value": "16",
                                    "description": "The ID of the credit."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive a credit.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits\/:credit_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits\/:credit_id\/unarchive",
                            "variable": [
                                {
                                    "id": "credit_id",
                                    "key": "credit_id",
                                    "value": "16",
                                    "description": "The ID of the credit."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Get client credit balance.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/clients\/:client_id\/credits",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/clients\/:client_id\/credits",
                            "variable": [
                                {
                                    "id": "client_id",
                                    "key": "client_id",
                                    "value": "4",
                                    "description": "The ID of the client."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the total available credit balance and list of credits with a remaining balance for the given client."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"client_id\":1,\"available_balance\":5000,\"credits\":[]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Apply credit to an invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/credits\/:credit_id\/apply",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/credits\/:credit_id\/apply",
                            "variable": [
                                {
                                    "id": "credit_id",
                                    "key": "credit_id",
                                    "value": "16",
                                    "description": "The ID of the credit."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"invoice_id\":\"architecto\",\"amount\":22}"
                        },
                        "description": "Applies part or all of a credit's balance to an outstanding invoice. Both must belong to the same client.\nThe invoice must be in a payable state (sent, viewed, partial, or overdue). Automatically transitions the\ninvoice to paid or partial based on the resulting amount_due."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":5,\"client_id\":190,\"invoice_id\":null,\"type\":\"credit_note\",\"is_archived\":false,\"amount\":11278,\"balance\":11278,\"currency\":\"USD\",\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"date\":\"2026-04-05T00:00:00.000000Z\",\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Recurring Invoices",
            "description": "",
            "item": [
                {
                    "name": "Bulk action on recurring invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/bulk-action",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/bulk-action"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16],\"action\":\"architecto\"}"
                        },
                        "description": "Supported actions: `activate`, `pause`, `archive`, `delete`. Returns the count of affected records."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"affected\":3}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List recurring invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices",
                            "query": [
                                {
                                    "key": "filter%5Bstatus%5D",
                                    "value": "active",
                                    "description": "Filter by status.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bclient_id%5D",
                                    "value": "1",
                                    "description": "Filter by client ID.",
                                    "disabled": false
                                },
                                {
                                    "key": "filter%5Bfrequency%5D",
                                    "value": "monthly",
                                    "description": "Filter by frequency.",
                                    "disabled": false
                                },
                                {
                                    "key": "sort",
                                    "value": "next_generate_date",
                                    "description": "Sort field (prefix with - for descending).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices?filter%5Bstatus%5D=active&filter%5Bclient_id%5D=1&filter%5Bfrequency%5D=monthly&sort=next_generate_date"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Supports filtering by status, client_id, and frequency. Results are paginated and include per-status counts in the meta."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":38,\"client_id\":191,\"title\":\"Adipisci quidem nostrum qui.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"},{\"id\":39,\"client_id\":192,\"title\":\"Qui repudiandae laboriosam.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"architecto\",\"title\":\"n\",\"frequency\":\"quarterly\",\"interval\":67,\"start_date\":\"2026-04-05T19:38:22\",\"end_date\":\"2052-04-28\",\"auto_send\":false,\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"payment_terms\":84,\"next_generate_date\":\"2026-04-05T19:38:22\",\"max_occurrences\":66,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "Creates an active recurring invoice template. The `next_generate_date` is set to `start_date` and invoices are generated automatically on schedule. Pass `line_items` to attach them in the same request."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":40,\"client_id\":193,\"title\":\"Et animi quos.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Includes line items, client, and the list of invoices generated from this template."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":41,\"client_id\":194,\"title\":\"Adipisci quidem nostrum qui.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"b\",\"frequency\":\"quarterly\",\"interval\":22,\"start_date\":\"2026-04-05T19:38:22\",\"end_date\":\"2052-04-28\",\"auto_send\":false,\"currency\":\"ngz\",\"discount_type\":\"percentage\",\"discount_value\":16,\"notes\":\"n\",\"payment_terms\":84,\"next_generate_date\":\"2026-04-05T19:38:22\",\"max_occurrences\":66,\"line_items\":[{\"description\":\"Velit et fugiat sunt nihil accusantium.\",\"quantity\":52,\"unit_price\":8,\"tax_name\":\"k\",\"tax_rate\":14,\"sort_order\":16}]}"
                        },
                        "description": "If `line_items` is provided, the full set of line items is synced. Omit `line_items` to update template fields only without touching line items."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":42,\"client_id\":195,\"title\":\"Et animi quos.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "List line items for a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurring_invoice_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurring_invoice_id\/line-items",
                            "variable": [
                                {
                                    "id": "recurring_invoice_id",
                                    "key": "recurring_invoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":87,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nostrum qui commodi incidunt iure.\",\"quantity\":1.02,\"unit_price\":\"13053.000000\",\"amount\":13314,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"},{\"id\":88,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Nemo voluptate accusamus ut et.\",\"quantity\":8.73,\"unit_price\":\"36405.000000\",\"amount\":317816,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a line item to a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurring_invoice_id\/line-items",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurring_invoice_id\/line-items",
                            "variable": [
                                {
                                    "id": "recurring_invoice_id",
                                    "key": "recurring_invoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":89,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a line item on a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurring_invoice_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurring_invoice_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "recurring_invoice_id",
                                    "key": "recurring_invoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "4",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"description\":\"Eius et animi quos velit et.\",\"quantity\":60,\"unit_price\":42,\"tax_name_1\":\"l\",\"tax_rate_1\":19,\"tax_name_2\":\"n\",\"tax_rate_2\":5,\"sort_order\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":90,\"service_id\":null,\"time_entry_id\":null,\"description\":\"Quos velit et fugiat sunt nihil accusantium harum.\",\"quantity\":9.96,\"unit_price\":\"11278.000000\",\"amount\":112329,\"tax_name_1\":null,\"tax_rate_1\":null,\"tax_amount_1\":0,\"tax_name_2\":null,\"tax_rate_2\":null,\"tax_amount_2\":0,\"sort_order\":0,\"is_late_fee\":false,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a line item from a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurring_invoice_id\/line-items\/:lineItem_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurring_invoice_id\/line-items\/:lineItem_id",
                            "variable": [
                                {
                                    "id": "recurring_invoice_id",
                                    "key": "recurring_invoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurring invoice."
                                },
                                {
                                    "id": "lineItem_id",
                                    "key": "lineItem_id",
                                    "value": "4",
                                    "description": "The ID of the lineItem."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                },
                                {
                                    "id": "lineItem",
                                    "key": "lineItem",
                                    "value": "1",
                                    "description": "The line item ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Move a recurring invoice to another company.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/move",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/move",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"target_company_id\":16}"
                        },
                        "description": "Reassigns the template to the target company. Clears the client association, nullifies service references on line items, and unlinks previously generated invoices in the source company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":47,\"client_id\":200,\"title\":\"Et animi quos.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Archive a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/archive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/archive",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Unarchive a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/unarchive",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/unarchive",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                },
                {
                    "name": "Pause a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/pause",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/pause",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Stops automatic invoice generation. Only active recurring invoices can be paused."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":48,\"client_id\":201,\"title\":\"Adipisci quidem nostrum qui.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Resume a paused recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/resume",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/resume",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Resumes automatic invoice generation by setting the status back to active. Only paused recurring invoices can be resumed."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":49,\"client_id\":202,\"title\":\"Adipisci quidem nostrum qui.\",\"status\":\"active\",\"is_archived\":false,\"frequency\":\"monthly\",\"frequency_label\":\"Monthly\",\"interval\":1,\"start_date\":\"2026-04-05\",\"end_date\":null,\"next_generate_date\":\"2026-04-05\",\"last_generated_at\":null,\"auto_send\":false,\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"payment_terms\":30,\"occurrences_generated\":0,\"max_occurrences\":null,\"created_at\":\"2026-04-05T19:38:22.000000Z\",\"updated_at\":\"2026-04-05T19:38:22.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Manually generate an invoice from a recurring invoice.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/recurring-invoices\/:recurringInvoice_id\/generate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/recurring-invoices\/:recurringInvoice_id\/generate",
                            "variable": [
                                {
                                    "id": "recurringInvoice_id",
                                    "key": "recurringInvoice_id",
                                    "value": "6",
                                    "description": "The ID of the recurringInvoice."
                                },
                                {
                                    "id": "recurringInvoice",
                                    "key": "recurringInvoice",
                                    "value": "1",
                                    "description": "The recurring invoice ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Immediately generates the next invoice regardless of the scheduled date. Returns 422 if the maximum occurrence limit has been reached."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1617,\"uuid\":\"5134a4d7-1b9b-43c7-bc68-9dbc2f15bb1f\",\"client_id\":203,\"recurring_invoice_id\":null,\"invoice_number\":\"INV-52976\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"due_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"amount_paid\":0,\"amount_due\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"paid_at\":null,\"late_fee_amount\":0,\"late_fee_applied_at\":null,\"reminders_sent\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"},\"status\":\"201\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Billing",
            "description": "",
            "item": [
                {
                    "name": "List Stripe prices for all plans.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/prices",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/prices"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns active recurring prices per plan keyed by plan name. Cached for one hour."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"starter\":[{\"price_id\":\"price_starter_monthly\",\"amount\":900,\"currency\":\"usd\",\"interval\":\"month\",\"interval_count\":1},{\"price_id\":\"price_starter_annual\",\"amount\":700,\"currency\":\"usd\",\"interval\":\"month\",\"interval_count\":1}],\"pro\":[{\"price_id\":\"price_pro_monthly\",\"amount\":1800,\"currency\":\"usd\",\"interval\":\"month\",\"interval_count\":1}]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get current subscription.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/subscription",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/subscription"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the authenticated user's active subscription or a default free plan object."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"plan\":\"starter\",\"status\":\"active\",\"trial_ends_at\":null,\"current_period_end\":\"2026-05-01T00:00:00Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List available plans.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/plans",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/plans"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all plan tiers and their feature limits."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"plan\":\"free\",\"max_clients\":5,\"max_invoices_per_month\":5,\"max_projects\":3,\"max_members\":1,\"max_companies\":1,\"feature_api_access\":false,\"feature_recurring_invoices\":false,\"feature_time_tracking\":false,\"feature_quotes\":false,\"feature_client_portal\":false},{\"id\":2,\"plan\":\"starter\",\"max_clients\":25,\"max_invoices_per_month\":50,\"max_projects\":10,\"max_members\":3,\"max_companies\":2,\"feature_api_access\":false,\"feature_recurring_invoices\":true,\"feature_time_tracking\":true,\"feature_quotes\":true,\"feature_client_portal\":true},{\"id\":3,\"plan\":\"pro\",\"max_clients\":null,\"max_invoices_per_month\":null,\"max_projects\":null,\"max_members\":25,\"max_companies\":5,\"feature_api_access\":true,\"feature_recurring_invoices\":true,\"feature_time_tracking\":true,\"feature_quotes\":true,\"feature_client_portal\":true}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get current plan usage.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/usage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/usage"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns usage counts for the authenticated user's companies against their plan limits."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"clients\":12,\"invoices_this_month\":8,\"projects\":4,\"team_members\":2,\"companies\":1,\"max_companies\":2}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List Stripe billing invoices.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/invoices",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/invoices"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the last 12 Stripe invoices for the authenticated user's subscription.\nReturns an empty array if the user has no Stripe customer ID."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":\"in_xxx\",\"number\":\"INV-0001\",\"amount\":900,\"currency\":\"USD\",\"status\":\"paid\",\"date\":\"2026-03-01\",\"pdf_url\":\"https:\/\/pay.stripe.com\/invoice\/xxx\/pdf\"}]}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[]}",
                            "name": "No Stripe customer"
                        }
                    ]
                },
                {
                    "name": "Create a Stripe Checkout session.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/checkout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/checkout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"plan\":\"starter\",\"price_id\":\"price_abc123\"}"
                        },
                        "description": "Creates a Stripe Checkout session for the given plan and price. Returns the hosted checkout URL."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"checkout_url\":\"https:\/\/checkout.stripe.com\/pay\/cs_live_xxx\",\"plan\":\"starter\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Plan not configured.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Stripe Billing Portal URL.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/billing\/portal",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/billing\/portal"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a URL to the Stripe Customer Portal where the user can manage their subscription.\nReturns `null` if the user has no Stripe customer ID."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"portal_url\":\"https:\/\/billing.stripe.com\/session\/xxx\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"portal_url\":null}}",
                            "name": "No Stripe customer"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Settings",
            "description": "",
            "item": [
                {
                    "name": "Get company settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":178,\"uuid\":\"53a3ef0f-7120-4769-9543-8498f8da2a40\",\"name\":\"Price Ltd\",\"legal_name\":null,\"email\":\"dare.emelie@baumbach.org\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update company settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"legal_name\":\"n\",\"email\":\"ashly64@example.com\",\"phone\":\"v\",\"address_line_1\":\"d\",\"address_line_2\":\"l\",\"city\":\"j\",\"state\":\"n\",\"postal_code\":\"ikhwaykcmyuwpwlv\",\"country\":\"qw\",\"currency\":\"rsi\",\"tax_number\":\"t\",\"invoice_prefix\":\"cpscql\",\"quote_prefix\":\"dzsnrw\",\"default_payment_terms\":19,\"default_hourly_rate\":33,\"default_tax_name_1\":\"j\",\"default_tax_rate_1\":17,\"default_tax_name_2\":\"v\",\"default_tax_rate_2\":24,\"invoice_layout\":\"classic\"}"
                        },
                        "description": "Updates general company settings including address, currency, invoice\/quote prefix, default tax rates, default payment terms, and hourly rate. All fields are optional (PATCH semantics)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":179,\"uuid\":\"303015f8-8550-415a-a3b8-eee3d4976f0e\",\"name\":\"Considine LLC\",\"legal_name\":null,\"email\":\"ernie.nitzsche@ankunding.biz\",\"phone\":null,\"address_line_1\":null,\"address_line_2\":null,\"city\":null,\"state\":null,\"postal_code\":null,\"country\":null,\"currency\":\"USD\",\"tax_number\":null,\"logo_path\":null,\"invoice_prefix\":\"INV-\",\"quote_prefix\":\"QUO-\",\"invoice_layout\":\"classic\",\"default_payment_terms\":30,\"default_hourly_rate\":null,\"default_tax_name_1\":null,\"default_tax_rate_1\":null,\"default_tax_name_2\":null,\"default_tax_rate_2\":null,\"late_fee_type\":null,\"late_fee_value\":null,\"late_fee_days\":null,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get branding settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/branding",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/branding"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the company logo path and default invoice template branding settings."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"logo_path\":\"logos\/1\/logo.png\",\"template\":{\"id\":1,\"layout\":\"modern\",\"primary_color\":\"#1a1a2e\",\"secondary_color\":\"#1e40af\",\"accent_color\":\"#3b82f6\",\"font_family\":\"Helvetica\",\"show_logo\":true,\"header_html\":null,\"footer_html\":null,\"custom_css\":null}}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update branding settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/branding",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/branding"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"layout\":\"modern\",\"primary_color\":\"bngzmiy\",\"secondary_color\":\"vdljnik\",\"accent_color\":\"hwaykcm\",\"font_family\":\"y\",\"show_logo\":false,\"header_html\":\"u\",\"footer_html\":\"w\",\"custom_css\":\"p\"}"
                        },
                        "description": "Creates or updates the default invoice template for the company. HTML fields are sanitized."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"layout\":\"modern\",\"primary_color\":\"#1a1a2e\",\"secondary_color\":\"#1e40af\",\"accent_color\":\"#3b82f6\",\"font_family\":\"Helvetica\",\"show_logo\":true,\"header_html\":null,\"footer_html\":null,\"custom_css\":null}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Upload company logo.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/branding\/logo",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/branding\/logo"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "logo",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "Accepts a JPEG, PNG, GIF, or WebP image up to 2 MB. Replaces any existing logo."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"logo_path\":\"logos\/1\/logo.png\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get late fee settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/late-fees",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/late-fees"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"late_fee_type\":\"percentage\",\"late_fee_value\":150,\"late_fee_days\":30}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update late fee settings.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/late-fees",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/late-fees"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"late_fee_type\":\"flat\",\"late_fee_value\":27,\"late_fee_days\":22}"
                        },
                        "description": "`late_fee_value` is stored in cents (flat) or basis points (percentage). `late_fee_days` is\nthe number of days past due before the fee applies."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"late_fee_type\":\"percentage\",\"late_fee_value\":150,\"late_fee_days\":30}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List payment reminders.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/reminders",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/reminders"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all payment reminders for the current company ordered by reminder number."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"reminder_number\":1,\"days_offset\":-3,\"subject\":\"Invoice due soon\",\"body\":\"Your invoice is due in 3 days.\",\"is_active\":true}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a payment reminder.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/reminders",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/reminders"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"reminder_number\":1,\"days_offset\":22,\"subject\":\"g\",\"body\":\"z\",\"is_active\":false}"
                        },
                        "description": "`days_offset` is relative to the due date: negative values send before due, positive values\nsend after due."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":2,\"reminder_number\":2,\"days_offset\":7,\"subject\":\"Invoice overdue\",\"body\":\"Your invoice is 7 days overdue.\",\"is_active\":true}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a payment reminder.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/reminders\/:reminder_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/reminders\/:reminder_id",
                            "variable": [
                                {
                                    "id": "reminder_id",
                                    "key": "reminder_id",
                                    "value": "16",
                                    "description": "The ID of the reminder."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"reminder_number\":1,\"days_offset\":22,\"subject\":\"g\",\"body\":\"z\",\"is_active\":true}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":1,\"reminder_number\":1,\"days_offset\":-3,\"subject\":\"Invoice due soon\",\"body\":\"Your invoice is due in 3 days.\",\"is_active\":true}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a payment reminder.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/reminders\/:reminder_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/reminders\/:reminder_id",
                            "variable": [
                                {
                                    "id": "reminder_id",
                                    "key": "reminder_id",
                                    "value": "16",
                                    "description": "The ID of the reminder."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Bank Accounts",
            "description": "",
            "item": [
                {
                    "name": "List bank accounts.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/bank-accounts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/bank-accounts"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all bank accounts for the current company ordered by `sort_order`. Not paginated."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":4,\"name\":\"Primary\",\"details\":\"Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.\",\"sort_order\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"},{\"id\":5,\"name\":\"Primary\",\"details\":\"Corporis dolorem mollitia deleniti nemo odit quia officia. Dignissimos neque blanditiis odio.\",\"sort_order\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create a bank account.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/bank-accounts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/bank-accounts"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"details\":\"n\",\"sort_order\":84}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":6,\"name\":\"Primary\",\"details\":\"Velit et fugiat sunt nihil accusantium. Mollitia modi deserunt aut ab provident perspiciatis quo. Nostrum aut adipisci quidem nostrum. Commodi incidunt iure odit.\",\"sort_order\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 201,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Show a bank account.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/bank-accounts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/bank-accounts\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the bank account."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":7,\"name\":\"Primary\",\"details\":\"Quidem nostrum qui commodi incidunt iure odit. Et modi ipsum nostrum omnis autem et consequatur. Dolores enim non facere tempora. Voluptatem laboriosam praesentium quis adipisci.\",\"sort_order\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update a bank account.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/bank-accounts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/bank-accounts\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the bank account."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"details\":\"n\",\"sort_order\":84}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":8,\"name\":\"Primary\",\"details\":\"Velit et fugiat sunt nihil accusantium. Mollitia modi deserunt aut ab provident perspiciatis quo. Nostrum aut adipisci quidem nostrum. Commodi incidunt iure odit.\",\"sort_order\":0,\"created_at\":\"2026-04-05T19:38:23.000000Z\",\"updated_at\":\"2026-04-05T19:38:23.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete a bank account.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/bank-accounts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/bank-accounts\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the bank account."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Imports",
            "description": "",
            "item": [
                {
                    "name": "FreshBooks OAuth callback.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/callback",
                            "query": [
                                {
                                    "key": "code",
                                    "value": "authcode123",
                                    "description": "Authorization code from FreshBooks.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/callback?code=authcode123"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Handles the authorization code callback from FreshBooks. Exchanges the code for access\ntokens, fetches the FreshBooks identity, and syncs company settings. Redirects to the\nfrontend settings page on success.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to settings on success"
                        },
                        {
                            "header": [],
                            "code": 400,
                            "body": "{\"message\":\"Missing authorization code or session cookie. Please try connecting again.\"}",
                            "name": ""
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                }
                            ],
                            "code": 400,
                            "body": "{\n    \"message\": \"Missing authorization code or session cookie. Please try connecting again.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 502,
                            "body": "{\"message\":\"Failed to exchange code for tokens.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Initiate FreshBooks OAuth.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/connect",
                            "query": [
                                {
                                    "key": "company_id",
                                    "value": "1",
                                    "description": "The company to import into.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/connect?company_id=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Redirects the user to FreshBooks' OAuth authorization page. Credentials must be saved first.\nIdentity is preserved via a signed cookie (FreshBooks does not support state parameter)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to FreshBooks"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Save FreshBooks OAuth credentials.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/credentials",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/credentials"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"client_id\":\"abc123\",\"client_secret\":\"secret456\"}"
                        },
                        "description": "Stores the FreshBooks app client ID and secret for the current user\/company. Required before\ninitiating the OAuth flow."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"message\":\"Credentials saved\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Preview FreshBooks import counts.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/preview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/preview"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Fetches resource counts from FreshBooks (clients, invoices, etc.) without importing. Updates\nthe import status to `previewing`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"clients\":42,\"invoices\":210,\"payments\":185,\"expenses\":67}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":{\"message\":\"FreshBooks is not connected.\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Start FreshBooks import.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/import",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/import"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"selected_resources\":[\"clients\",\"invoices\"],\"reimport_existing\":false}"
                        },
                        "description": "Queues the import job for the connected FreshBooks account. Optionally restrict to specific\nresource types. Returns 409 if an import is already in progress."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\"data\":{\"message\":\"Import started\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 409,
                            "body": "{\"data\":{\"message\":\"Import is already in progress.\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":{\"message\":\"FreshBooks is not connected.\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get FreshBooks import status.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/status"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the current state of the import record for the authenticated user and company.\nReturns `null` data if no import record exists."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"status\":\"importing\",\"progress\":{\"clients\":42,\"invoices\":0},\"preview_data\":null,\"error_message\":null,\"started_at\":\"2026-04-05T08:00:00+00:00\",\"completed_at\":null,\"has_credentials\":true,\"has_tokens\":true,\"freshbooks_account_id\":\"ABC123\",\"selected_resources\":[\"clients\",\"invoices\"]}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":null}",
                            "name": "No import record"
                        }
                    ]
                },
                {
                    "name": "Reset import to preview state.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/reset",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/reset"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Clears any in-progress or errored import so a new import can be started from the preview\nstep."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"message\":\"Ready for new import\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":{\"message\":\"FreshBooks is not connected.\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Disconnect FreshBooks.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/freshbooks\/disconnect",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/freshbooks\/disconnect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Clears stored OAuth tokens and account identifiers from the import record. The credentials\n(client ID\/secret) are preserved."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"message\":\"Disconnected from FreshBooks.\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Stripe Connect",
            "description": "",
            "item": [
                {
                    "name": "Stripe Connect OAuth callback.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/stripe\/callback",
                            "query": [
                                {
                                    "key": "code",
                                    "value": "ac_xxx",
                                    "description": "Authorization code from Stripe.",
                                    "disabled": false
                                },
                                {
                                    "key": "state",
                                    "value": "base64encodedstate",
                                    "description": "Signed state parameter issued during connect.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/settings\/stripe\/callback?code=ac_xxx&state=base64encodedstate"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Handles the OAuth callback from Stripe. Exchanges the authorization code for tokens, stores\nthe connected account ID on the company, then redirects to the frontend settings page.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to settings on success"
                        },
                        {
                            "header": [],
                            "code": 400,
                            "body": "{\"message\":\"Missing authorization code or state. Please try connecting again.\"}",
                            "name": ""
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                }
                            ],
                            "code": 400,
                            "body": "{\n    \"message\": \"Invalid session. Please try connecting again.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 502,
                            "body": "{\"message\":\"Failed to connect Stripe account.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Initiate Stripe Connect OAuth.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/stripe\/connect",
                            "query": [
                                {
                                    "key": "company_id",
                                    "value": "1",
                                    "description": "The company to connect Stripe to.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/settings\/stripe\/connect?company_id=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Redirects the user to Stripe's OAuth authorization page. Requires `company_id` as a query\nparameter. The user must have access to the specified company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "",
                            "name": "Redirect to Stripe"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "https:\/\/tidybill.app"
                                },
                                {
                                    "key": "access-control-allow-credentials",
                                    "value": "true"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Stripe Connect status.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/stripe\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/stripe\/status"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the connection status of the company's Stripe Connect account. Fetches live status\nfrom Stripe and syncs it locally; falls back to cached values if Stripe is unreachable."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"connected\":true,\"account_name\":\"Acme Corp\",\"payouts_enabled\":true,\"charges_enabled\":true,\"connected_at\":\"2026-01-15T10:00:00+00:00\"}}",
                            "name": "Connected"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"connected\":false}}",
                            "name": "Not connected"
                        }
                    ]
                },
                {
                    "name": "Disconnect Stripe Connect.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/settings\/stripe\/disconnect",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/settings\/stripe\/disconnect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Deauthorizes the connected Stripe account and clears the connection from the company record.\nProceeds even if the Stripe deauthorization API call fails."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"message\":\"Stripe account disconnected.\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "API Tokens",
            "description": "",
            "item": [
                {
                    "name": "List API tokens.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-tokens",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-tokens"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns all personal access tokens for the authenticated user. The token value is never\nreturned after creation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"My Token\",\"last_used_at\":\"2026-04-01T10:00:00Z\",\"created_at\":\"2026-03-01T10:00:00Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create an API token.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-tokens",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-tokens"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"CI Deploy Token\"}"
                        },
                        "description": "Requires a Pro plan. The `token` field is only returned on creation and cannot be retrieved\nagain."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":2,\"name\":\"CI Deploy Token\",\"token\":\"1|abc123plaintext\",\"created_at\":\"2026-04-05T08:00:00Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\"message\":\"API access requires a Pro plan. Please upgrade.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Revoke an API token.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-tokens\/:tokenId",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-tokens\/:tokenId",
                            "variable": [
                                {
                                    "id": "tokenId",
                                    "key": "tokenId",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "No content"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Invitations",
            "description": "",
            "item": [
                {
                    "name": "Get invitation details.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invitations\/:token\/details",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invitations\/:token\/details",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "abc123token",
                                    "description": "The invitation token."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the company name, role, invitee email, and inviter name for the given invitation\ntoken. Returns 404 if the token is not found, 410 if expired, and 422 if already accepted.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"company_name\":\"Acme Corp\",\"role\":\"member\",\"email\":\"jane@example.com\",\"inviter\":\"John Smith\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\"message\":\"This invitation has expired.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This invitation has already been accepted.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Accept an invitation.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invitations\/:token\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invitations\/:token\/accept",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "abc123token",
                                    "description": "The invitation token."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Adds the authenticated user to the company with the invited role and marks the invitation\nas accepted. Runs inside a transaction. Returns the company ID on success."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"Invitation accepted.\",\"data\":{\"company_id\":5}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"message\":\"You are already a member of this company.\",\"data\":{\"company_id\":5}}",
                            "name": "Already a member"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\"message\":\"This invitation has expired.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This invitation has already been accepted.\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Client Portal",
            "description": "",
            "item": [
                {
                    "name": "Get invoice for client portal.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/invoices\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/invoices\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The invoice UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Public endpoint accessed via invoice UUID. Marks the invoice as viewed on first access.\nAlso returns Stripe payment availability and bank account details if configured.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":42,\"invoice_number\":\"INV-0042\",\"status\":\"sent\",\"total\":150000,\"amount_due\":150000,\"currency\":\"USD\"},\"payment_available\":true,\"bank_details\":null}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download invoice PDF.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/invoices\/:uuid\/pdf",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/invoices\/:uuid\/pdf",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The invoice UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the invoice as a PDF file. Public endpoint accessed via UUID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"Content-Type\": \"application\/pdf\"}",
                            "name": "PDF file"
                        }
                    ]
                },
                {
                    "name": "Get quote for client portal.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/quotes\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/quotes\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440001",
                                    "description": "The quote UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Public endpoint accessed via quote UUID. Marks the quote as viewed on first access.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":151,\"uuid\":\"13fb884a-24bf-4790-9731-a88368d2068a\",\"client_id\":125,\"quote_number\":\"QUO-66650\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:13.000000Z\",\"updated_at\":\"2026-04-05T19:38:13.000000Z\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Download quote PDF.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/quotes\/:uuid\/pdf",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/quotes\/:uuid\/pdf",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440001",
                                    "description": "The quote UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the quote as a PDF file. Public endpoint accessed via UUID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"Content-Type\": \"application\/pdf\"}",
                            "name": "PDF file"
                        }
                    ]
                },
                {
                    "name": "Accept a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/quotes\/:uuid\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/quotes\/:uuid\/accept",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440001",
                                    "description": "The quote UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Transitions the quote to the accepted status. Public endpoint accessed via UUID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":152,\"uuid\":\"2398d4ba-97d1-45dc-9fa1-fa2af7b601cc\",\"client_id\":126,\"quote_number\":\"QUO-77300\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:13.000000Z\",\"updated_at\":\"2026-04-05T19:38:13.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Quote cannot be accepted in its current status.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Decline a quote.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/quotes\/:uuid\/decline",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/quotes\/:uuid\/decline",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440001",
                                    "description": "The quote UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Transitions the quote to the declined status. Public endpoint accessed via UUID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"id\":153,\"uuid\":\"94349ce5-6058-456d-9288-03f3dc8e70cc\",\"client_id\":127,\"quote_number\":\"QUO-10778\",\"status\":\"draft\",\"is_archived\":false,\"status_label\":\"Draft\",\"status_color\":\"gray\",\"issue_date\":\"2026-04-05\",\"expiry_date\":\"2026-05-05\",\"currency\":\"USD\",\"subtotal\":0,\"tax_total\":0,\"discount_type\":null,\"discount_value\":null,\"discount_total\":0,\"total\":0,\"notes\":null,\"terms\":null,\"footer\":null,\"sent_at\":null,\"viewed_at\":null,\"accepted_at\":null,\"declined_at\":null,\"converted_to_invoice_id\":null,\"converted_to_project_id\":null,\"pdf_path\":null,\"created_at\":\"2026-04-05T19:38:13.000000Z\",\"updated_at\":\"2026-04-05T19:38:13.000000Z\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Quote cannot be declined in its current status.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Initiate portal payment.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/portal\/invoices\/:uuid\/checkout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/portal\/invoices\/:uuid\/checkout",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The invoice UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a Stripe Checkout session for the invoice (using the company's Connect account) or\nreturns bank transfer details if Stripe is not connected. Public endpoint accessed via UUID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"checkout_url\":\"https:\/\/checkout.stripe.com\/pay\/cs_live_xxx\"}}",
                            "name": "Stripe checkout"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"payment_method\":\"bank_details\",\"bank_accounts\":[{\"name\":\"Main Account\",\"details\":\"BSB 123-456, Account 987654321\"}],\"reference\":\"INV-0042\",\"amount\":150000,\"currency\":\"USD\"}}",
                            "name": "Bank transfer"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Invoice is not payable.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 502,
                            "body": "{\"message\":\"Payment service unavailable. Please try again later.\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Dashboard",
            "description": "",
            "item": [
                {
                    "name": "Get dashboard stats.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/stats",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/stats"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns outstanding and overdue invoice totals (by currency), plus unbilled time entry\nhours and estimated value for the current company."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"outstanding_by_currency\":{\"USD\":250000},\"overdue_by_currency\":{\"USD\":75000},\"unbilled_hours\":12.5,\"unbilled_amount\":187500}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get revenue chart data.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/revenue-chart",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/revenue-chart"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns monthly revenue grouped by currency for the last 12 months."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"month\":\"May 2025\",\"revenue_by_currency\":{\"USD\":120000}},{\"month\":\"Apr 2026\",\"revenue_by_currency\":{\"USD\":180000}}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get recent activity.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/recent-activity",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/recent-activity"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the 10 most recently updated non-cancelled, non-archived invoices."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"type\":\"invoice\",\"id\":42,\"description\":\"Invoice INV-0042 to Acme Corp\",\"status\":\"sent\",\"amount\":150000,\"date\":\"2026-04-04T09:00:00Z\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get accounts receivable aging.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/aging",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/aging"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns outstanding invoice totals bucketed by age (0-30, 31-60, 61-90, 91+ days), grouped\nby currency."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"USD\":{\"overdue_total\":75000,\"outstanding_total\":175000,\"total\":250000,\"buckets\":[{\"label\":\"0-30 Days\",\"amount\":100000},{\"label\":\"31-60 Days\",\"amount\":75000},{\"label\":\"61-90 Days\",\"amount\":50000},{\"label\":\"91+ Days\",\"amount\":25000}]}}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get unbilled hours by client.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/unbilled-by-client",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/unbilled-by-client"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the top 10 clients with unbilled billable time entries, ordered by total unbilled\nhours."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"total_hours\":34.5,\"clients\":[{\"client_id\":7,\"client_name\":\"Acme Corp\",\"hours\":18.0,\"seconds\":64800},{\"client_id\":3,\"client_name\":\"Globex\",\"hours\":16.5,\"seconds\":59400}]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get revenue by client.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/dashboard\/revenue-by-client",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/dashboard\/revenue-by-client"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the top 10 clients by total invoiced amount (year to date), grouped by currency."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"year\":2026,\"clients\":[{\"client_id\":7,\"client_name\":\"Acme Corp\",\"currency\":\"USD\",\"total\":480000},{\"client_id\":3,\"client_name\":\"Globex\",\"currency\":\"USD\",\"total\":210000}]}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Reports",
            "description": "",
            "item": [
                {
                    "name": "Profit and loss report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/profit-loss",
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Date in YYYY-MM-DD format. Defaults to start of current year.",
                                    "disabled": false
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-12-31",
                                    "description": "Date in YYYY-MM-DD format. Defaults to end of current year.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/reports\/profit-loss?start_date=2026-01-01&end_date=2026-12-31"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start_date\":\"2026-04-05T19:38:23\",\"end_date\":\"2052-04-28\"}"
                        },
                        "description": "Returns monthly invoiced\/collected revenue and expenses for the given date range. All\nmonetary values are in cents."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"period\":{\"start\":\"2026-01-01\",\"end\":\"2026-12-31\"},\"revenue\":{\"invoiced\":600000,\"collected\":480000,\"by_month\":[{\"month\":\"Jan 2026\",\"month_key\":\"2026-01\",\"invoiced\":50000,\"collected\":40000,\"expenses\":10000,\"profit\":30000}]},\"summary\":{\"total_invoiced\":600000,\"total_collected\":480000,\"outstanding\":120000,\"total_expenses\":60000,\"net_profit\":420000}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Accounts receivable aging report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/account-aging",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/reports\/account-aging"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns outstanding invoice amounts bucketed by age across all payable invoices, with a\nper-client breakdown."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"buckets\":[{\"label\":\"Current\",\"range\":\"0-30 days\",\"amount\":100000,\"count\":5},{\"label\":\"31-60 days\",\"range\":\"31-60 days\",\"amount\":50000,\"count\":2},{\"label\":\"61-90 days\",\"range\":\"61-90 days\",\"amount\":25000,\"count\":1},{\"label\":\"90+ days\",\"range\":\"90+ days\",\"amount\":10000,\"count\":1}],\"total_outstanding\":185000,\"clients\":[{\"client_id\":7,\"client_name\":\"Acme Corp\",\"current\":100000,\"days_31_60\":50000,\"days_61_90\":0,\"days_90_plus\":0,\"total\":150000}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Tax summary report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/tax-summary",
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Date in YYYY-MM-DD format. Defaults to start of current year.",
                                    "disabled": false
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-12-31",
                                    "description": "Date in YYYY-MM-DD format. Defaults to end of current year.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/reports\/tax-summary?start_date=2026-01-01&end_date=2026-12-31"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start_date\":\"2026-04-05T19:38:23\",\"end_date\":\"2052-04-28\"}"
                        },
                        "description": "Returns tax collected per tax name\/rate combination for the given date range. Amounts in\ncents, tax rates in basis points (e.g. 1500 = 15%)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"period\":{\"start\":\"2026-01-01\",\"end\":\"2026-12-31\"},\"taxes\":[{\"tax_name\":\"GST\",\"tax_rate\":1500,\"taxable_amount\":400000,\"tax_collected\":60000,\"invoice_count\":12}],\"total_tax_collected\":60000}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Team utilization report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/team-utilization",
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Date in YYYY-MM-DD format. Defaults to start of current year.",
                                    "disabled": false
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-12-31",
                                    "description": "Date in YYYY-MM-DD format. Defaults to end of current year.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/reports\/team-utilization?start_date=2026-01-01&end_date=2026-12-31"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start_date\":\"2026-04-05T19:38:23\",\"end_date\":\"2052-04-28\"}"
                        },
                        "description": "Returns billable vs non-billable hours and utilization rate per team member for the given\ndate range."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"period\":{\"start\":\"2026-01-01\",\"end\":\"2026-12-31\"},\"members\":[{\"user_id\":1,\"name\":\"Jane Smith\",\"total_hours\":160.0,\"billable_hours\":128.0,\"non_billable_hours\":32.0,\"utilization_rate\":80.0,\"billable_amount\":1920000,\"by_client\":[{\"client_id\":7,\"client_name\":\"Acme Corp\",\"hours\":80.0,\"amount\":1200000}]}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Expense report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/expenses",
                            "query": [
                                {
                                    "key": "from",
                                    "value": "2026-01-01",
                                    "description": "Start date in YYYY-MM-DD format.",
                                    "disabled": false
                                },
                                {
                                    "key": "to",
                                    "value": "2026-12-31",
                                    "description": "End date in YYYY-MM-DD format.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/reports\/expenses?from=2026-01-01&to=2026-12-31"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"from\":\"2026-04-05T19:38:23\",\"to\":\"2052-04-28\"}"
                        },
                        "description": "Returns total expenses with breakdowns by category and by client (billable only) for the\ngiven date range. All amounts in cents."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"total\":85000,\"total_tax\":12750,\"billable_total\":60000,\"by_category\":[{\"category\":\"travel\",\"total\":30000,\"count\":3}],\"by_client\":[{\"client\":\"Acme Corp\",\"client_id\":7,\"total\":60000,\"count\":5}]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Invoice summary report.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/reports\/invoice-summary",
                            "query": [
                                {
                                    "key": "start_date",
                                    "value": "2026-01-01",
                                    "description": "Date in YYYY-MM-DD format. Defaults to start of current year.",
                                    "disabled": false
                                },
                                {
                                    "key": "end_date",
                                    "value": "2026-12-31",
                                    "description": "Date in YYYY-MM-DD format. Defaults to end of current year.",
                                    "disabled": false
                                },
                                {
                                    "key": "client_id",
                                    "value": "7",
                                    "description": "Filter to a specific client.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/reports\/invoice-summary?start_date=2026-01-01&end_date=2026-12-31&client_id=7"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start_date\":\"2026-04-05T19:38:23\",\"end_date\":\"2052-04-28\",\"client_id\":16}"
                        },
                        "description": "Returns invoice counts and totals grouped by currency, status, and client for the given date\nrange. All amounts in cents."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"totals_by_currency\":{\"USD\":{\"total_invoiced\":600000,\"total_paid\":480000,\"total_outstanding\":95000,\"total_overdue\":25000,\"invoice_count\":24}},\"by_status\":{\"paid\":{\"count\":18,\"total\":480000},\"sent\":{\"count\":4,\"total\":95000},\"overdue\":{\"count\":2,\"total\":25000}},\"by_client\":[{\"client_id\":7,\"client_name\":\"Acme Corp\",\"currency\":\"USD\",\"invoiced\":300000,\"paid\":240000,\"outstanding\":60000}]}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Activity Log",
            "description": "",
            "item": [
                {
                    "name": "List activity log entries",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/activity-log",
                            "query": [
                                {
                                    "key": "subject_type",
                                    "value": "invoice",
                                    "description": "The subject type (invoice, quote, credit, recurring-invoice).",
                                    "disabled": false
                                },
                                {
                                    "key": "subject_id",
                                    "value": "1",
                                    "description": "The subject ID.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/activity-log?subject_type=invoice&subject_id=1"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"subject_type\":\"architecto\",\"subject_id\":16}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"description\":\"created\",\"event\":\"created\",\"causer_name\":\"John\",\"properties\":{},\"created_at\":\"2026-04-05T00:00:00+00:00\"}],\"meta\":{\"current_page\":1,\"last_page\":1,\"total\":1}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "",
                            "name": "Invalid subject type"
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}