{
  "info": {
    "name": "Firmao — mcp.ai",
    "description": "REST API for the Firmao MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/firmao",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "firmao_create_invoice",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/invoice",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "invoice"
          ]
        },
        "description": "Creates a new sales or purchase invoice in Firmao CRM. This action generates an invoice transaction with line items, customer information, pricing details, and payment terms. It can auto-create custom",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"\",\n  \"paid\": false,\n  \"type\": \"\",\n  \"emails\": \"\",\n  \"phones\": \"\",\n  \"currency\": \"\",\n  \"customer\": 0,\n  \"paidValue\": 0,\n  \"autoNumber\": false,\n  \"invoiceDate\": \"\",\n  \"paymentDate\": \"\",\n  \"paymentType\": \"\",\n  \"customerName\": \"\",\n  \"splitPayment\": false,\n  \"issuingPerson\": \"\",\n  \"customerAddress\": {},\n  \"organization_id\": \"\",\n  \"restOfPaidValue\": 0,\n  \"transactionDate\": \"\",\n  \"invoicePatternId\": 0,\n  \"transactionNumber\": \"\",\n  \"calculateFromGross\": false,\n  \"invoiceAnnotations\": \"\",\n  \"transactionEntries\": \"\",\n  \"transactionVatPrice\": 0,\n  \"transactionNettoPrice\": 0,\n  \"transactionBruttoPrice\": 0,\n  \"createNewCustomerIfNeeded\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_delete_company_setting",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/company/setting",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "company",
            "setting"
          ]
        },
        "description": "Deletes a company setting by its unique identifier. Returns success status and details about the deletion attempt. Use this when you need to permanently remove a specific company setting configuration",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"setting_id\": \"\",\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_delete_contact",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/contact",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "contact"
          ]
        },
        "description": "Soft-deletes a contact in Firmao CRM by marking it as deleted (sets deleted=true). This action sends a PUT request to mark the contact as deleted without permanently removing it from the system. The c",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"contact_id\": 0,\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_delete_invoice",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/invoice",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "invoice"
          ]
        },
        "description": "Soft-deletes a Firmao invoice by marking it as deleted. This action sends a PUT request to mark the invoice's 'deleted' field as true. The invoice record remains in the system but is marked as deleted",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"invoice_id\": 0,\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_delete_offer",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/delete/offer",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "delete",
            "offer"
          ]
        },
        "description": "Soft-delete an offer in Firmao by marking it as deleted. The offer record is not permanently removed but is marked with deleted=true, making it inactive in the system. Use this action when you need to",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"offer_id\": 0,\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_get_invoice",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/invoice",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "invoice"
          ]
        },
        "description": "Retrieve detailed information about a specific invoice by its ID. Returns comprehensive invoice data including customer details, line items, payment status, pricing information, and metadata. Use this",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"invoice_id\": 0,\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_get_offer",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/offer",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "offer"
          ]
        },
        "description": "Retrieve detailed information about a specific offer from Firmao CRM by its unique ID. This action fetches comprehensive offer data including customer details, pricing, line items, payment information",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"offer_id\": 0,\n  \"dataFormat\": \"\",\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_get_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "task"
          ]
        },
        "description": "Retrieves detailed information about a specific task by its unique ID. Use this action when you need to: - Get full details of a task after obtaining its ID from a list or search - Check the current s",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"dir\": \"\",\n  \"sort\": \"\",\n  \"limit\": 0,\n  \"start\": 0,\n  \"taskId\": 0,\n  \"dataFormat\": \"\",\n  \"organizationId\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_list_company_settings",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/company/settings",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "company",
            "settings"
          ]
        },
        "description": "Lists all company settings from Firmao. Company settings are key-value configuration pairs that store custom configurations for companies. Use this action to retrieve settings, with optional filtering",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"start\": 0,\n  \"company_id\": 0,\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_list_invoices",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/invoices",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "invoices"
          ]
        },
        "description": "Tool to list invoices. Use when retrieving a list of invoices with optional pagination and filtering.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"dir\": \"\",\n  \"mode\": \"\",\n  \"sort\": \"\",\n  \"limit\": 0,\n  \"start\": 0,\n  \"customer\": 0,\n  \"dataFormat\": \"\",\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_list_tasks",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/tasks",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "tasks"
          ]
        },
        "description": "Retrieves a paginated list of tasks from Firmao. Returns task details including status, priority, dates, responsible users, tags, and financial data. Supports sorting, filtering by various fields, and",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"dir\": \"\",\n  \"sort\": \"\",\n  \"limit\": 0,\n  \"start\": 0,\n  \"filters\": {},\n  \"dataFormat\": \"\",\n  \"organization_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_update_contact",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/contact",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "contact"
          ]
        },
        "description": "Updates an existing contact in Firmao CRM by its ID. Use this tool to modify contact information such as name, email, phone, position, or customer association. Only include the fields you want to chan",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"tags\": \"\",\n  \"label\": \"\",\n  \"emails\": \"\",\n  \"phones\": \"\",\n  \"customer\": 0,\n  \"lastName\": \"\",\n  \"position\": \"\",\n  \"firstName\": \"\",\n  \"contact_id\": 0,\n  \"description\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_update_offer",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/offer",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "offer"
          ]
        },
        "description": "Updates an existing offer/quote in Firmao by ID. Modifies specified fields while preserving unspecified ones. Returns a changelog detailing what changed. Supports partial updates - only provide fields",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"\",\n  \"name\": \"\",\n  \"tags\": \"\",\n  \"task\": 0,\n  \"type\": \"\",\n  \"number\": \"\",\n  \"contact\": {},\n  \"entries\": \"\",\n  \"project\": 0,\n  \"currency\": \"\",\n  \"customer\": 0,\n  \"offer_id\": 0,\n  \"offerDate\": \"\",\n  \"validFrom\": \"\",\n  \"annotations\": \"\",\n  \"description\": \"\",\n  \"offerStatus\": \"\",\n  \"paymentDate\": \"\",\n  \"paymentType\": \"\",\n  \"customerName\": \"\",\n  \"daysToDueDate\": 0,\n  \"issuingPerson\": \"\",\n  \"customerAddress\": {},\n  \"organization_id\": \"\",\n  \"reminderAdvance\": \"\",\n  \"calculateFromGross\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "firmao_update_task",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/task",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "task"
          ]
        },
        "description": "Tool to update an existing task. Use when you need to modify one or more fields of a task after confirming its current details.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"tags\": \"\",\n  \"parent\": 0,\n  \"status\": \"\",\n  \"task_id\": 0,\n  \"priority\": 0,\n  \"description\": \"\",\n  \"percentDone\": 0,\n  \"estimatedHours\": 0,\n  \"plannedEndDate\": \"\",\n  \"organization_id\": \"\",\n  \"plannedStartDate\": \"\",\n  \"responsibleUsers\": \"\",\n  \"plannedEndDateType\": \"\",\n  \"plannedStartDateType\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}