{
  "opencollection": "1.0.0",
  "info": {
    "name": "API Key accounts quotes API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "quotes",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Quotes",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/quotes",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "page_size",
                "value": "",
                "type": "query",
                "description": "Number of items per page (max 100)"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Page number (1-based)"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Sort order for results"
              },
              {
                "name": "updated_after",
                "value": "",
                "type": "query",
                "description": "Filter items updated after this timestamp (ISO 8601)"
              },
              {
                "name": "updated_before",
                "value": "",
                "type": "query",
                "description": "Filter items updated before this timestamp (ISO 8601)"
              },
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter quotes by status"
              }
            ]
          },
          "docs": "Retrieve a paginated list of quotes.\n\nSupports:\n- Pagination (`page_size`, `page`)\n- Date filtering (`updated_after`, `updated_before`)\n- Status filtering (`status`)\n- Sorting (`order_by`)\n"
        },
        {
          "info": {
            "name": "Create Quote",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.coperniq.io/v1/quotes",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new quote on an opportunity (project/deal/account record).\n\n- `opportunityId`: Required — record ID used by the payment service.\n- `sections` or `lineItems`: At least one item required\n- `discountType` / `discountValue`: Optional discount\n- `taxId`: Optional tax\n- `issueDate` / `status`: `issueDate` only allowed with `status` of `SENT` or `APPROVED`\n\nTo add or replace line items on a **work order**, use `PUT /work-orders/{workOrderId}/line-items` instead.\n"
        },
        {
          "info": {
            "name": "Get Opportunity Quotes",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/opportunities/:opportunityId/quotes",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "opportunityId",
                "value": "",
                "type": "path",
                "description": "Opportunity ID"
              },
              {
                "name": "page_size",
                "value": "",
                "type": "query",
                "description": "Number of items per page (max 100)"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Page number (1-based)"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Sort order for results"
              },
              {
                "name": "updated_after",
                "value": "",
                "type": "query",
                "description": "Filter items updated after this timestamp (ISO 8601)"
              },
              {
                "name": "updated_before",
                "value": "",
                "type": "query",
                "description": "Filter items updated before this timestamp (ISO 8601)"
              }
            ]
          },
          "docs": "Retrieve quotes for a specific opportunity."
        },
        {
          "info": {
            "name": "Get Quote",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/quotes/:quoteId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "quoteId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve a specific quote by ID"
        },
        {
          "info": {
            "name": "Update Quote",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.coperniq.io/v1/quotes/:quoteId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "quoteId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing quote. Supports partial updates.\n\n**`isArchived`**: pass `true` to archive or `false` to unarchive.\n\nWhen setting **`status`** to anything other than **`DRAFT`**, you must supply **`issueDate`** unless the quote already has one.\n\n**`sharedWithPortal`**: pass `true` or `false` to show or hide the quote on the client portal.\n"
        },
        {
          "info": {
            "name": "Delete Quote",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.coperniq.io/v1/quotes/:quoteId",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "quoteId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a quote. The quote is archived first (required by the payment service),\nthen permanently deleted.\n"
        },
        {
          "info": {
            "name": "Get Quote PDF",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.coperniq.io/v1/quotes/:quoteId/pdf",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "quoteId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Returns the quote PDF. Response is JSON with base64-encoded PDF (`pdfBase64`) and `contentType`.\n"
        },
        {
          "info": {
            "name": "Send Quote",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.coperniq.io/v1/quotes/:quoteId/send",
            "headers": [
              {
                "name": "x-api-key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "quoteId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Email the quote to the customer and transition **DRAFT** to **SENT** when applicable.\n"
        }
      ]
    }
  ],
  "bundled": true
}