<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>515</ContextCount>
  <ElementCount>569</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>144</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>14</UnitCount>
  <MyReports>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000010001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>000020002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>100010003 - Statement - Consolidated Statement of Financial Position</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ConsolidatedStatementofFinancialPosition</Role>
      <ShortName>Consolidated Statement of Financial Position</ShortName>
      <MenuCategory>Uncategorized</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>100020004 - Statement - Consolidated Statement of Loss and Comprehensive Income (Loss)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ConsolidatedStatementofLossandComprehensiveIncomeLoss</Role>
      <ShortName>Consolidated Statement of Loss and Comprehensive Income (Loss)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>100030005 - Statement - Consolidated Statement of Changes in Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ConsolidatedStatementofChangesinEquity</Role>
      <ShortName>Consolidated Statement of Changes in Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>100040006 - Statement - Consolidated Statement of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ConsolidatedStatementofCashFlows</Role>
      <ShortName>Consolidated Statement of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>210011001 - Disclosure - Reporting entity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Reportingentity</Role>
      <ShortName>Reporting entity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>210021002 - Disclosure - Basis of preparation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Basisofpreparation</Role>
      <ShortName>Basis of preparation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>210031003 - Disclosure - Changes in accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Changesinaccountingpolicies</Role>
      <ShortName>Changes in accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>210041004 - Disclosure - Significant accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Significantaccountingpolicies</Role>
      <ShortName>Significant accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>210081005 - Disclosure - Critical judgments in applying accounting policies and key sources of estimation uncertainty</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Criticaljudgmentsinapplyingaccountingpoliciesandkeysourcesofestimationuncertainty</Role>
      <ShortName>Critical judgments in applying accounting policies and key sources of estimation uncertainty</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>210091006 - Disclosure - Recent accounting pronouncements and future accounting policy changes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Recentaccountingpronouncementsandfutureaccountingpolicychanges</Role>
      <ShortName>Recent accounting pronouncements and future accounting policy changes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>210111007 - Disclosure - Acquisition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Acquisition</Role>
      <ShortName>Acquisition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>210181008 - Disclosure - Discontinued operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Discontinuedoperations</Role>
      <ShortName>Discontinued operations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>210231009 - Disclosure - Trade and other receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Tradeandotherreceivables</Role>
      <ShortName>Trade and other receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>210271010 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>210301011 - Disclosure - Property, plant and equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Propertyplantandequipment</Role>
      <ShortName>Property, plant and equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>210371012 - Disclosure - Intangible assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Intangibleassets</Role>
      <ShortName>Intangible assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>210421013 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Goodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>210441014 - Disclosure - Investments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Investments</Role>
      <ShortName>Investments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>210491015 - Disclosure - Bank facilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Bankfacilities</Role>
      <ShortName>Bank facilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>210511016 - Disclosure - Trade and other payables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Tradeandotherpayables</Role>
      <ShortName>Trade and other payables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>210541017 - Disclosure - Deferred revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Deferredrevenue</Role>
      <ShortName>Deferred revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>210571018 - Disclosure - Provisions and other liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Provisionsandotherliabilities</Role>
      <ShortName>Provisions and other liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>210611019 - Disclosure - Lease liability</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Leaseliability</Role>
      <ShortName>Lease liability</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>210671020 - Disclosure - Employee future benefits</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Employeefuturebenefits</Role>
      <ShortName>Employee future benefits</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>210751021 - Disclosure - Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Equity</Role>
      <ShortName>Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>210851022 - Disclosure - Commitments and contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Commitmentsandcontingencies</Role>
      <ShortName>Commitments and contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>210871023 - Disclosure - Disaggregation of revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Disaggregationofrevenue</Role>
      <ShortName>Disaggregation of revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>210901024 - Disclosure - Personnel expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Personnelexpenses</Role>
      <ShortName>Personnel expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>210931025 - Disclosure - Other operating expense</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Otheroperatingexpense</Role>
      <ShortName>Other operating expense</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>210961026 - Disclosure - Finance income and expense</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Financeincomeandexpense</Role>
      <ShortName>Finance income and expense</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>210991027 - Disclosure - Income taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Incometaxes</Role>
      <ShortName>Income taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>211051028 - Disclosure - Related party transactions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Relatedpartytransactions</Role>
      <ShortName>Related party transactions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>211091029 - Disclosure - Supplemental disclosure of cash flow information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Supplementaldisclosureofcashflowinformation</Role>
      <ShortName>Supplemental disclosure of cash flow information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>211121030 - Disclosure - Operating segments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Operatingsegments</Role>
      <ShortName>Operating segments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>211161031 - Disclosure - Financial instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/Financialinstruments</Role>
      <ShortName>Financial instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>220052001 - Disclosure - Significant accounting policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/SignificantaccountingpoliciesPolicies</Role>
      <ShortName>Significant accounting policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>230063001 - Disclosure - Significant accounting policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/SignificantaccountingpoliciesTables</Role>
      <ShortName>Significant accounting policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Significantaccountingpolicies</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>230123002 - Disclosure - Acquisition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionTables</Role>
      <ShortName>Acquisition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Acquisition</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>230193003 - Disclosure - Discontinued operations (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DiscontinuedoperationsTables</Role>
      <ShortName>Discontinued operations (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Discontinuedoperations</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>230243004 - Disclosure - Trade and other receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/TradeandotherreceivablesTables</Role>
      <ShortName>Trade and other receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Tradeandotherreceivables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>230283005 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Inventories</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>230313006 - Disclosure - Property, plant and equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentTables</Role>
      <ShortName>Property, plant and equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Propertyplantandequipment</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>230383007 - Disclosure - Intangible assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IntangibleassetsTables</Role>
      <ShortName>Intangible assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Intangibleassets</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>230453008 - Disclosure - Investments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InvestmentsTables</Role>
      <ShortName>Investments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Investments</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>230523009 - Disclosure - Trade and other payables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/TradeandotherpayablesTables</Role>
      <ShortName>Trade and other payables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Tradeandotherpayables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>230553010 - Disclosure - Deferred revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DeferredrevenueTables</Role>
      <ShortName>Deferred revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Deferredrevenue</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>230583011 - Disclosure - Provisions and other liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ProvisionsandotherliabilitiesTables</Role>
      <ShortName>Provisions and other liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Provisionsandotherliabilities</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>230623012 - Disclosure - Lease liability (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/LeaseliabilityTables</Role>
      <ShortName>Lease liability (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Leaseliability</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>230683013 - Disclosure - Employee future benefits (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsTables</Role>
      <ShortName>Employee future benefits (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Employeefuturebenefits</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>230763014 - Disclosure - Equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityTables</Role>
      <ShortName>Equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Equity</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>230883015 - Disclosure - Disaggregation of revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DisaggregationofrevenueTables</Role>
      <ShortName>Disaggregation of revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Disaggregationofrevenue</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>230913016 - Disclosure - Personnel expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PersonnelexpensesTables</Role>
      <ShortName>Personnel expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Personnelexpenses</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>230943017 - Disclosure - Other operating expense (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/OtheroperatingexpenseTables</Role>
      <ShortName>Other operating expense (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Otheroperatingexpense</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>230973018 - Disclosure - Finance income and expense (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinanceincomeandexpenseTables</Role>
      <ShortName>Finance income and expense (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Financeincomeandexpense</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>231003019 - Disclosure - Income taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IncometaxesTables</Role>
      <ShortName>Income taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Incometaxes</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>231063020 - Disclosure - Related party transactions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/RelatedpartytransactionsTables</Role>
      <ShortName>Related party transactions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Relatedpartytransactions</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>231103021 - Disclosure - Supplemental disclosure of cash flow information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/SupplementaldisclosureofcashflowinformationTables</Role>
      <ShortName>Supplemental disclosure of cash flow information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Supplementaldisclosureofcashflowinformation</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>231133022 - Disclosure - Operating segments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/OperatingsegmentsTables</Role>
      <ShortName>Operating segments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Operatingsegments</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>231173023 - Disclosure - Financial instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinancialinstrumentsTables</Role>
      <ShortName>Financial instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Financialinstruments</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>240074001 - Disclosure - Significant accounting policies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/SignificantaccountingpoliciesDetails</Role>
      <ShortName>Significant accounting policies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/SignificantaccountingpoliciesTables</ParentRole>
      <Position>62</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>240104002 - Disclosure - Recent accounting pronouncements and future accounting policy changes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/RecentaccountingpronouncementsandfutureaccountingpolicychangesDetails</Role>
      <ShortName>Recent accounting pronouncements and future accounting policy changes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Recentaccountingpronouncementsandfutureaccountingpolicychanges</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>240134003 - Disclosure - Acquisition - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionNarrativeDetails</Role>
      <ShortName>Acquisition - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>240144004 - Disclosure - Acquisition - The fair value of purchase consideration (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionThefairvalueofpurchaseconsiderationDetails</Role>
      <ShortName>Acquisition - The fair value of purchase consideration (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>240154005 - Disclosure - Acquisition - The fair values of assets acquired and liabilities assumed (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionThefairvaluesofassetsacquiredandliabilitiesassumedDetails</Role>
      <ShortName>Acquisition - The fair values of assets acquired and liabilities assumed (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>240164006 - Disclosure - Acquisition - Identified intangible assets based on the following useful lives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionIdentifiedintangibleassetsbasedonthefollowingusefullivesDetails</Role>
      <ShortName>Acquisition - Identified intangible assets based on the following useful lives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>240174007 - Disclosure - Acquisition - Pro Form Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/AcquisitionProFormInformationDetails</Role>
      <ShortName>Acquisition - Pro Form Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>240204008 - Disclosure - Discontinued operations - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DiscontinuedoperationsNarrativeDetails</Role>
      <ShortName>Discontinued operations - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>240214009 - Disclosure - Discontinued operations - Net Loss from Discontinued Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DiscontinuedoperationsNetLossfromDiscontinuedOperationsDetails</Role>
      <ShortName>Discontinued operations - Net Loss from Discontinued Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>240224010 - Disclosure - Discontinued operations - Net Cash Flows from Discontinued Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DiscontinuedoperationsNetCashFlowsfromDiscontinuedOperationsDetails</Role>
      <ShortName>Discontinued operations - Net Cash Flows from Discontinued Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>240254011 - Disclosure - Trade and other receivables - Trade and other receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/TradeandotherreceivablesTradeandotherreceivablesDetails</Role>
      <ShortName>Trade and other receivables - Trade and other receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>240264012 - Disclosure - Trade and other receivables - Contract assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/TradeandotherreceivablesContractassetsDetails</Role>
      <ShortName>Trade and other receivables - Contract assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>240294013 - Disclosure - Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InventoriesDetails</Role>
      <ShortName>Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/InventoriesTables</ParentRole>
      <Position>74</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>240324014 - Disclosure - Property, plant and equipment - Net carrying amounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentNetcarryingamountsDetails</Role>
      <ShortName>Property, plant and equipment - Net carrying amounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>240334015 - Disclosure - Property, plant and equipment - Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentRollforwardDetails</Role>
      <ShortName>Property, plant and equipment - Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>240344016 - Disclosure - Property, plant and equipment - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentNarrativeDetails</Role>
      <ShortName>Property, plant and equipment - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>240354017 - Disclosure - Property, plant and equipment - Right-of-use Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentRightofuseAssetsDetails</Role>
      <ShortName>Property, plant and equipment - Right-of-use Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>240364018 - Disclosure - Property, plant and equipment - Right-of-use Assets Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PropertyplantandequipmentRightofuseAssetsRollforwardDetails</Role>
      <ShortName>Property, plant and equipment - Right-of-use Assets Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>240394019 - Disclosure - Intangible assets - Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IntangibleassetsAcquiredDetails</Role>
      <ShortName>Intangible assets - Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>240404020 - Disclosure - Intangible assets - Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IntangibleassetsRollforwardDetails</Role>
      <ShortName>Intangible assets - Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>240414021 - Disclosure - Intangible assets - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IntangibleassetsNarrativeDetails</Role>
      <ShortName>Intangible assets - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>240434022 - Disclosure - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/GoodwillDetails</Role>
      <ShortName>Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Goodwill</ParentRole>
      <Position>83</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>240464023 - Disclosure - Investments - Schedule of investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InvestmentsScheduleofinvestmentsDetails</Role>
      <ShortName>Investments - Schedule of investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>240474024 - Disclosure - Investments - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InvestmentsNarrativeDetails</Role>
      <ShortName>Investments - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>240484025 - Disclosure - Investments - Financial Information of Weichai Ballard (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/InvestmentsFinancialInformationofWeichaiBallardDetails</Role>
      <ShortName>Investments - Financial Information of Weichai Ballard (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>240504026 - Disclosure - Bank facilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/BankfacilitiesDetails</Role>
      <ShortName>Bank facilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Bankfacilities</ParentRole>
      <Position>87</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>240534027 - Disclosure - Trade and other payables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/TradeandotherpayablesDetails</Role>
      <ShortName>Trade and other payables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/TradeandotherpayablesTables</ParentRole>
      <Position>88</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>240564028 - Disclosure - Deferred revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DeferredrevenueDetails</Role>
      <ShortName>Deferred revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/DeferredrevenueTables</ParentRole>
      <Position>89</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>240594029 - Disclosure - Provisions and other liabilities - Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ProvisionsandotherliabilitiesRollforwardDetails</Role>
      <ShortName>Provisions and other liabilities - Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>240604030 - Disclosure - Provisions and other liabilities - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/ProvisionsandotherliabilitiesNarrativeDetails</Role>
      <ShortName>Provisions and other liabilities - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>240634031 - Disclosure - Lease liability - Summary of Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/LeaseliabilitySummaryofLeasesDetails</Role>
      <ShortName>Lease liability - Summary of Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>240644032 - Disclosure - Lease liability - Maturity Analysis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/LeaseliabilityMaturityAnalysisDetails</Role>
      <ShortName>Lease liability - Maturity Analysis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>240654033 - Disclosure - Lease liability - IFRS 16 Impact (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/LeaseliabilityIFRS16ImpactDetails</Role>
      <ShortName>Lease liability - IFRS 16 Impact (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>240664034 - Disclosure - Lease liability - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/LeaseliabilityNarrativeDetails</Role>
      <ShortName>Lease liability - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>240694035 - Disclosure - Employee future benefits - Net defined benefit liability (asset) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsNetdefinedbenefitliabilityassetDetails</Role>
      <ShortName>Employee future benefits - Net defined benefit liability (asset) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>240704036 - Disclosure - Employee future benefits - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsAdditionalInformationDetails</Role>
      <ShortName>Employee future benefits - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>97</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>240714037 - Disclosure - Employee future benefits - Future Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsFutureBenefitsDetails</Role>
      <ShortName>Employee future benefits - Future Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>240724038 - Disclosure - Employee future benefits - Included in comprehensive income (loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsIncludedincomprehensiveincomelossDetails</Role>
      <ShortName>Employee future benefits - Included in comprehensive income (loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>240734039 - Disclosure - Employee future benefits - Composition of Plan Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsCompositionofPlanAssetsDetails</Role>
      <ShortName>Employee future benefits - Composition of Plan Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>240744040 - Disclosure - Employee future benefits - Actuarial Assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EmployeefuturebenefitsActuarialAssumptionsDetails</Role>
      <ShortName>Employee future benefits - Actuarial Assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>101</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>240774041 - Disclosure - Equity - Share-based compensation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquitySharebasedcompensationDetails</Role>
      <ShortName>Equity - Share-based compensation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>240784042 - Disclosure - Equity - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityNarrativeDetails</Role>
      <ShortName>Equity - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>240794043 - Disclosure - Equity - Share capital (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquitySharecapitalDetails</Role>
      <ShortName>Equity - Share capital (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>240804044 - Disclosure - Equity - Share options, rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityShareoptionsrollforwardDetails</Role>
      <ShortName>Equity - Share options, rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>105</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>240814045 - Disclosure - Equity - Share options, range of exercise prices (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityShareoptionsrangeofexercisepricesDetails</Role>
      <ShortName>Equity - Share options, range of exercise prices (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>106</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>240824046 - Disclosure - Equity - Share options, fair value assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityShareoptionsfairvalueassumptionsDetails</Role>
      <ShortName>Equity - Share options, fair value assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>107</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>240834047 - Disclosure - Equity - Deferred share units (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityDeferredshareunitsDetails</Role>
      <ShortName>Equity - Deferred share units (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>108</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>240844048 - Disclosure - Equity - Restricted share units (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/EquityRestrictedshareunitsDetails</Role>
      <ShortName>Equity - Restricted share units (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>109</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R110.htm</HtmlFileName>
      <LongName>240864049 - Disclosure - Commitments and contingencies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/CommitmentsandcontingenciesDetails</Role>
      <ShortName>Commitments and contingencies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/Commitmentsandcontingencies</ParentRole>
      <Position>110</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R111.htm</HtmlFileName>
      <LongName>240894050 - Disclosure - Disaggregation of revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/DisaggregationofrevenueDetails</Role>
      <ShortName>Disaggregation of revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/DisaggregationofrevenueTables</ParentRole>
      <Position>111</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R112.htm</HtmlFileName>
      <LongName>240924051 - Disclosure - Personnel expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/PersonnelexpensesDetails</Role>
      <ShortName>Personnel expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/PersonnelexpensesTables</ParentRole>
      <Position>112</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R113.htm</HtmlFileName>
      <LongName>240954052 - Disclosure - Other operating expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/OtheroperatingexpenseDetails</Role>
      <ShortName>Other operating expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/OtheroperatingexpenseTables</ParentRole>
      <Position>113</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R114.htm</HtmlFileName>
      <LongName>240984053 - Disclosure - Finance income and expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinanceincomeandexpenseDetails</Role>
      <ShortName>Finance income and expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/FinanceincomeandexpenseTables</ParentRole>
      <Position>114</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R115.htm</HtmlFileName>
      <LongName>241014054 - Disclosure - Income taxes - Current Tax Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IncometaxesCurrentTaxExpenseDetails</Role>
      <ShortName>Income taxes - Current Tax Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>115</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R116.htm</HtmlFileName>
      <LongName>241024055 - Disclosure - Income taxes - Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IncometaxesTaxRateReconciliationDetails</Role>
      <ShortName>Income taxes - Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>116</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R117.htm</HtmlFileName>
      <LongName>241034056 - Disclosure - Income taxes - Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IncometaxesDeferredTaxAssetsandLiabilitiesDetails</Role>
      <ShortName>Income taxes - Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>117</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R118.htm</HtmlFileName>
      <LongName>241044057 - Disclosure - Income taxes - Unrecognized Deferred Tax Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/IncometaxesUnrecognizedDeferredTaxAssetsDetails</Role>
      <ShortName>Income taxes - Unrecognized Deferred Tax Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>118</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R119.htm</HtmlFileName>
      <LongName>241074058 - Disclosure - Related party transactions - Transactions with Related Parties (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/RelatedpartytransactionsTransactionswithRelatedPartiesDetails</Role>
      <ShortName>Related party transactions - Transactions with Related Parties (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>119</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R120.htm</HtmlFileName>
      <LongName>241084059 - Disclosure - Related party transactions - Key Management Compensation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/RelatedpartytransactionsKeyManagementCompensationDetails</Role>
      <ShortName>Related party transactions - Key Management Compensation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>120</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R121.htm</HtmlFileName>
      <LongName>241114060 - Disclosure - Supplemental disclosure of cash flow information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/SupplementaldisclosureofcashflowinformationDetails</Role>
      <ShortName>Supplemental disclosure of cash flow information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ballard.com/role/SupplementaldisclosureofcashflowinformationTables</ParentRole>
      <Position>121</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R122.htm</HtmlFileName>
      <LongName>241144061 - Disclosure - Operating segments - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/OperatingsegmentsNarrativeDetails</Role>
      <ShortName>Operating segments - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>122</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R123.htm</HtmlFileName>
      <LongName>241154062 - Disclosure - Operating segments - Geographical (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/OperatingsegmentsGeographicalDetails</Role>
      <ShortName>Operating segments - Geographical (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>123</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R124.htm</HtmlFileName>
      <LongName>241184063 - Disclosure - Financial instruments - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinancialinstrumentsNarrativeDetails</Role>
      <ShortName>Financial instruments - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>124</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R125.htm</HtmlFileName>
      <LongName>241194064 - Disclosure - Financial instruments - Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinancialinstrumentsInvestmentsDetails</Role>
      <ShortName>Financial instruments - Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>125</Position>
    </Report>
    <Report instance="bldp-20211231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R126.htm</HtmlFileName>
      <LongName>241204065 - Disclosure - Financial instruments - Allowance of Impairment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ballard.com/role/FinancialinstrumentsAllowanceofImpairmentDetails</Role>
      <ShortName>Financial instruments - Allowance of Impairment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>126</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="40-F" original="bldp-20211231.htm">bldp-20211231.htm</File>
    <File doctype="40-F" original="bldp-20211231_d2.htm">bldp-20211231_d2.htm</File>
    <File>ballard993123121annualinfo.htm</File>
    <File>ballard994123121soxsection.htm</File>
    <File>ballard995123121soxsection.htm</File>
    <File>ballard996123121kpmgcertif.htm</File>
    <File>bldp-20211231.xsd</File>
    <File>bldp-20211231_cal.xml</File>
    <File>bldp-20211231_def.xml</File>
    <File>bldp-20211231_lab.xml</File>
    <File>bldp-20211231_pre.xml</File>
    <File>bldp123121-ex992mda.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>bldp-20211231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1486">http://xbrl.ifrs.org/taxonomy/2021-03-24/ifrs-full</BaseTaxonomy>
    <BaseTaxonomy items="46">http://xbrl.sec.gov/dei/2021q4</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
