简介:这是一份面向计划共同出资创办公司的创业者与合伙人团队的多方股份合作协议书范本,可帮助解决多人合伙时权责不清、出资比例与利润分配不明等核心问题。协议逐项列明合伙人身份确认、出资总额与股份占比、股利分配与保底收益、合伙期限、入股退股及出资转让流程、事务管理、违约责任与争议解决等内容,同时涵盖保密、知识产权、解散清算等补充条款,结构完整、条款细致,适合作为起草正式合伙协议的参照底稿。资源为1个doc格式文档,压缩包大小44KB,便于直接编辑修改后使用,目前已有104人学习下载。对初次成立股份制公司、需要规范合伙人关系的团队而言,这份范本提供了较为全面的法律条款参考,有助于降低协议漏洞带来的合作风险。
1. 合伙协议也是状态机,先看清楚边界条件
拿到这份《公司股份合作协议书(多人合伙范本)》时,我第一反应不是把它当法律文书读,而是像在审查一份没有注释的配置文件。全文到处是“XXXX”占位符:公司名称要填,出资额要填,股份比例要填,甚至连“出资金额 万元以下”里的保底阈值都空着。这些变量直接决定后续分红、退股、转让时的运算分支。如果你正打算和几个朋友合伙开公司,或者要为公司搭建合伙人制度,这份模板最有价值的地方在于:它把“人、钱、权、责”拆成了可以被校验的字段和规则。接下来我用字段映射、状态机和权限矩阵的方式拆解它,并给出可以直接改改就用的检查脚本和生成脚本。适合愿意先把规矩想清楚再签字的人。
2. 出资、股权与分红字段映射:把合同条款变成可校验的数据模型
合同第一条就是出资总额和每位合伙人的出资金额、所占股份、出资形式。这一部分和程序里的数据模型没有本质区别:每个合伙人对应一条记录,每条记录有若干属性,而整个公司的股权结构就是这些记录的集合。如果能从合同里把这些字段抽出来,后续的校验、分红、清算都可以变成可执行代码。
2.1 出资条款的字段化设计
原文中的表述是“合伙人一:身份证号:”,然后“出资共计 万,占XXXX股份 %,出资的形式:”。按这个结构,一条出资记录的最小字段集合如下:
| 字段名 | 类型 | 示例值 | 约束说明 |
|---|---|---|---|
| partner_id | int | 1 | 从1递增,唯一 |
| name | string | 张三 | 需与身份证一致 |
| id_card | string | 110101199001011234 | 18位,需校验 |
| capital_amount | decimal | 500000 | 单位:元,大于0 |
| equity_ratio | decimal | 0.25 | 用小数表示,25%写作0.25 |
| capital_form | enum | 现金 | 现金/实物/技术/知识产权 |
注意范本里“出资共计 万”指的是出资金额,单位是万元。实际写代码时建议统一转换成“元”来做算术,避免大小写、小数位导致的分歧。“占XXXX股份 %”对应 equity_ratio,在合同里通常写百分数,例如“25%”。而在脚本中,百分数要转成小数参与计算,否则累加会变成100而不是1。
出资形式字段在范本中没有给可选值,但常见的是现金、实物(设备/房产)、技术(专利/专有技术)、知识产权(商标/软件著作权)。实物和技术必须经过评估作价,否则后续转让、退股时按什么价值结算会产生争执。我一般会在协议正文里增加一句“实物与技术出资的价值以全体股东确认的评估报告为准”,把估值依据固定下来。
2.2 分红与保底收益的分支逻辑
按范本第二条,每年一月份汇总上一年度盈亏,清算完毕后进行股利分配。这是最基础的分红时序。同时范本设置了保利措施:“出资金额 万元以下的股东”,如果当年盈利大于等于10%,按实际股权比例分配;如果小于10%,按入股总金额10%的利息支付。这里“万元以下”是一个未定义的阈值,必须由股东在签订前协商明确,否则这条会成为争议点。
我把这个规则转成一段可运行的伪代码,便于理解参数的含义:
def distribute_dividend(net_profit, total_capital, partners, threshold=100000): result = [] for p in partners: # 低于或等于? 需要在协议中明确,这里按"小于"处理 if p.capital_amount < threshold: if net_profit / total_capital >= 0.10: dividend = net_profit * p.equity_ratio else: # 保底:按入股总金额10%支付利息 dividend = p.capital_amount * 0.10 else: # 原文未对阈值以上股东设置保底,这里沿用按比例分红 dividend = net_profit * p.equity_ratio result.append((p.name, round(dividend, 2))) return result代码里的 threshold 就是“万元以下”的边界。如果你们约定的是“10万元以下”,那么出资小于10万的股东触发保底;如果等于10万是否触发,建议在协议中写明“含本数”或“不含本数”。函数里先计算整体盈利率 net_profit / total_capital,它与各股东出资金额无关,只与公司总出资有关。保底分红用的是该股东自己的 capital_amount,而不是总资本。这一段逻辑若不写清楚,年末结账时很容易出现“盈利10%但小股东要求保底利息”的争论。
2.3 出资数据的校验与常见错误
多人合伙最容易犯的错误是股份比例之和不是100%。哪怕有1%的误差,到分红、表决时都会变成矛盾。我习惯在签署前跑一遍校验脚本:
def validate_partners(partners, total_capital): total_ratio = sum(p.equity_ratio for p in partners) total_amount = sum(p.capital_amount for p in partners) assert abs(total_ratio - 1.0) < 1e-6, "股份比例之和必须为100%" assert total_amount == total_capital, "各出资之和必须等于出资总额" id_cards = [p.id_card for p in partners] assert len(id_cards) == len(set(id_cards)), "身份证号不能重复" print("校验通过")这段脚本校验三件事:比例和、金额和、身份证唯一性。比例和采用浮点数近似比较,避免 Python 浮点累加的微小误差导致误报。如果你们在协议中允许部分出资为“技术”或“知识产权”,金额和也要与出资总额一致,不能只写“技术股”而不作价。另一个常见错误是合伙人数与正文第一条预留的“十人”不一致,范本里预留了10个合伙人位置,如果你是8人,需要删除多余的空位,而不是留空。
3. 入退股与转让的状态转换:结算算法和边界情况实现
合伙关系不是静态的,人员会变化,股份会转移,最复杂的条款集中在“入股、退股、出资转让”和“合伙的终止”这两节。这部分非常像一个有限状态机:每个股东在“正常、执意退股、被踢出、擅自退出、转让中、已退出”等状态之间迁移,每次迁移都触发一组结算规则。
3.1 股东生命周期状态定义与迁移条件
根据范本,我把可识别的状态和迁移事件整理成下表:
| 当前状态 | 触发事件 | 条件 | 目标状态 | 结算要点 |
|---|---|---|---|---|
| 正常 | 执意退股 | 合伙期限内,无论公司是否正常经营 | 已退出 | 股利按50%发放,本金三年后返还;三年内从事本行业,本金不返还 |
| 正常 | 被其他股东踢出 | 全体股东共同商讨通过 | 已退出 | 按当年实际股利分配金额的50%发放,与本金一同发放;造成损失先赔偿 |
| 正常 | 私自转让股权 | 未经全体股东同意 | 已退出(原股东) | 当年红利不发,本金三年后返还,三年内从事本行业不返还;受让人股权作废 |
| 正常 | 正常转让 | 合同起始六个月后至终止前,全体股东同意 | 转让中/已退出 | 其他股东优先受让;转让给第三人按入股处理 |
| 已退出 | 三年后 | 无竞业行为 | 完全退出 | 返还本金 |
注意范文中“未经合同人同意而自行退股”与“执意退股”之间的差别:自行退股是指没有走正式流程、也不理会其他股东意见的退出,惩罚比执意退股更重,当年红利直接没有,而执意退股还能拿到50%的股利。代码实现时,需要用 exit_type 区分这两类。
3.2 退股结算算法实现
以下函数模拟了三种退出方式的核心结算逻辑:
def settle_exit_share(base_capital, current_dividend, exit_type, has_noncompete_violation=False): # exit_type: voluntary 执意退股, forced 被踢出, secret 私自退股/私自转让 if exit_type == "secret": dividend_payable = 0 elif exit_type == "forced": # 被踢出按当年实际股利分配金额的50%,与本金一同发放 dividend_payable = current_dividend * 0.5 else: # voluntary dividend_payable = current_dividend * 0.5 # 本金返还规则:三年内有本行业行为则不再返还 if has_noncompete_violation: capital_refund = 0 else: capital_refund = base_capital return { "dividend_payable": round(dividend_payable, 2), "capital_refund": capital_refund, "note": "本金返还时间为退股后三年" if capital_refund > 0 else "本金已作废" }参数 base_capital 是入股本金,current_dividend 是退股时公司盈利状况对应的当期应得股利。范本只说“以退股时XXXX盈利状况结算清单为标准”,但没有定义当期应得股利怎么算,通常做法是“截至退股日的净利润 × 该股东股份比例”。函数中 has_noncompete_violation 对应三年内从事本行业,一旦触发,本金不再返还,所以返回0。注意,被踢出时若有损失,需要在发放前先扣除赔偿额,范本写的是“对XXXX损失进行估算及XXXX后,方可执行正常被踢出原则”,这个“后”字意味着赔偿优先。
3.3 转让优先权、作废条件与终止清算顺序
出资转让的核心是优先受让权。范本规定转让声明只能在合同起始六个月后至合同终止前提出,且需全体股权人商讨通过。如果转让给股东以外的人,新进入者按“入股”对待,即需要承认合同、经各方同意、执行权利义务。私下转让的后果是“以退股对待转让人,并私自受让人股权作废”。这意味着受让方没有任何股东权利,已经把真金白银交出去却拿不到股份。我们在设计类似系统时,会在协议中加入“股权变更登记日”概念,明确以书面签字且完成内部登记为股权转移生效点,而不是以打款日为准。
合伙终止后的清算顺序,范本写得非常清楚:收取债权、清偿债务、返还出资、按股份比例分配剩余财产。这个顺序和《公司法》的清算顺序基本一致。固定资产和不可分物作价卖给合伙人或第三人,价款参与分配。亏损时先以合伙共同财产偿还,不足部分由股东按出资比例承担。也就是说,股东责任不是以出资额为限,而是对外承担无限连带责任——这是合伙与有限责任公司的根本区别。如果你们要注册的是有限公司,这份“合伙协议”需要改名为《公司章程》,并且不能出现“合伙”字样,否则法律性质会混乱。
4. 治理结构与权限矩阵:总经理、重大事项与公章分离的配置化
范本第四节是“职能分配及议定事项”,这其实是公司治理的权限配置。多人合伙最大的难点不是分钱,而是谁有权拍板。范本给出的默认配置是:委托一名总经理全权统筹协调处理XXXX事务,其他部门负责人由全体股东共同协商指定,非指定负责人不参与管理。同时列出了一批重大事项必须由股东研究同意后才能执行。
4.1 权限矩阵与决策规则
我把范本中的治理规则拆成一张权限矩阵,方便对照检查:
| 事项 | 决策主体 | 是否需要全体股东一致 | 说明 |
|---|---|---|---|
| 日常经营管理 | 总经理 | 否 | 全权统筹协调 |
| 各部门负责人指定及罢免 | 股东共同协商 | 是 | 属于重大事项 |
| 新产品或设备引进 | 股东研究同意 | 是 | 属于重大事项 |
| 再投资事项 | 股东研究同意 | 是 | 属于重大事项 |
| 章程约定其他重大事项 | 股东研究同意 | 是 | 兜底条款 |
| 月度盘点 | 全体股东参与 | 是 | 每月一次 |
| 公司公章保管 | 指定股东 | 否 | 与账目保管分离 |
这里要注意,范本没有规定表决通过的比例,只写了“由股东研究同意”。实际操作中,我建议在协议里补一句“重大事项须经持有三分之二以上股份的股东同意”,否则“共同协商”可能变成无休止的扯皮。如果你们希望更严格,可以设一致决;但一致决容易僵化,一般只用于增减资、解散、修改协议。日常经营决策则交给总经理,避免事事开会。
4.2 公章与账目分离的落地方式
“XXXX公章由____保管,账目由____保管”这一条是典型的内控分离。公章代表对外意思表示,账目代表资金与资产流向,如果由同一人保管,未经授权的对外担保、挪用资金问题很难早期发现。工程上这叫职责分离,和运维里“管理员账号与审计账号分开”一个道理。以下代码模拟了这种权限分离的检查:
def check_internal_control(seal_keeper, account_keeper): if seal_keeper == account_keeper: return False, "公章与账目保管人不能为同一人" if not seal_keeper or not account_keeper: return False, "保管人未指定" return True, "内控分离通过"这段脚本适合把协议条款做成系统参数时使用。如果你们不写系统,也可以把检查结果直接打印出来附在协议后。保管人在首次签约时就应指定,而不是留空。每月盘点由股东一起参与结算,这条相当关键,能让所有合伙人实时掌握盈亏,避免年底一次性算账才发现“利润”只是账面数字。
4.3 争议解决与未尽事宜的兜底
范本第七节规定“如个别股东无视本合同条款及XXXX规章制度,任意作为,其他股东可对其踢出,并不再分配当年红利,入股本金三年后返还。”这个条款给出了最严厉的处罚,但“任意作为”这个表述太模糊,执行时很难举证。我一般会在协议中细化成具体的违约情形,例如“未按约定时间缴纳出资”“私自对外以公司名义借款”“连续三次缺席月度盘点”等,让踢出机制具备可操作性。
纠纷解决方面,范本写的是“如协商不成,可以诉诸法院”,没有约定仲裁。诉讼程序周期长且公开审理,如果公司内部信息有保密要求,可以考虑约定仲裁机构。但仲裁条款必须规范地写明仲裁委员会名称,不能只写“仲裁”。另外,范本提到“本协议未尽事宜由各股东共同协商”,这在法律上是兜底条款,但在实际经营中,最好同时约定“补充协议与本协议具有同等效力”,否则口头协商的结果很难作为依据。这一节的本质是把权限和争议路径都参数化,每一项都应有明确的默认值。
5. 模板工程化:用脚本自动填充和自检合规要点
把范本变成可复用的协议生成器,不只是替换“XXXX”。先提取变量,再做合规自检,最后输出可签署的文档。这里给出一个最小可用脚本的思路。
5.1 用Python批量生成协议文本
def fill_template(template, company, partners, total_capital): text = template.replace("XXXX", company) text = text.replace("出资的总额为:人民币(大写): 万圆,¥: 万。", f"出资的总额为:人民币(大写):{num_to_cn(total_capital)}万圆,¥:{total_capital}万。") lines = [] for i, p in enumerate(partners, 1): lines.append(f"{i}、{p['name']}出资共计 {p['amount']} 万,占{company}股份 {p['ratio']*100:.0f}%。出资的形式:{p['form']}。") # 替换第一个出资列表块,这里按文本块简化 ...这段代码只展示变量替换思路,真正用来生成完整协议时,我会先把范本拆成按行模板,再用循环生成合伙人清单。特别注意“大写”金额要用数字转大写函数,避免协议金额大小写不一致导致无效。签名处和日期也要生成占位行,建议保留“年 月 日”的空白,由各方在签署时手写日期。
5.2 关键条款自检清单
| 检查项 | 判定标准 | 是否通过 |
|---|---|---|
| 合伙期限 | 有明确起止日期 | |
| 出资比例和 | 等于100% | |
| 保底阈值 | 已写明具体金额 | |
| 公章保管人 | 已指定且与账目保管人不同 | |
| 总经理 | 已委托 | |
| 退股竞业限制 | 明确“三年内有本行业行为不返还” |
这个清单可以直接打印用于签署前核对。我通常还会加一项“身份证号是否18位”,用正则一次性校验所有合伙人,避免签字后才发现身份证号少了一位。
5.3 容易被忽略的三个坑
第一,范本默认是“合伙企业”的法律结构,如果注册为有限责任公司,需要把“合伙”改为“股东”,并把无限连带责任改成有限责任,否则会与《公司法》冲突。第二,“出资金额 万元以下”的保底条款中,分红顺序没有写明是否先提取公积金,建议在协议中明确“可分配利润”的定义,否则“盈利”到底是净利润还是可分配利润,会产生两种计算结果。第三,退股本金的“三年后返还”不是现金到账,而是债权确认,若公司届时无资金,可能变为分批偿还。这个坑尤其常见:很多人签字时默认三年后一定能拿到钱,却没有约定支付计划和逾期利息,结果公司现金流紧张时只能无限期拖延。建议在协议里补一句“到期未返还的,应按同期贷款利率支付利息”,至少让债权人有个制约手段。
本文还有配套的精品资源,点击获取