diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@
 
 ## Unreleased
 
+## 0.6.0.0
+
+- Add `OpenCascade.BRepFiletAPI_MakeChamfer`
+
 ## 0.5.1.1
 
 ## 0.5.1.0
diff --git a/cpp/hs_BRepFilletAPI_MakeChamfer.cpp b/cpp/hs_BRepFilletAPI_MakeChamfer.cpp
new file mode 100644
--- /dev/null
+++ b/cpp/hs_BRepFilletAPI_MakeChamfer.cpp
@@ -0,0 +1,35 @@
+#include <BRepFilletAPI_MakeChamfer.hxx>
+#include <TopoDS_Shape.hxx>
+#include "hs_BRepFilletAPI_MakeChamfer.h"
+
+BRepFilletAPI_MakeChamfer * hs_new_BRepFilletAPI_MakeChamfer_fromShape(TopoDS_Shape * shape) {
+    return new BRepFilletAPI_MakeChamfer(*shape);
+}
+
+void hs_delete_BRepFilletAPI_MakeChamfer(BRepFilletAPI_MakeChamfer * builder) {
+    delete builder;
+}
+
+void hs_BRepFilletAPI_MakeChamfer_addEdge(BRepFilletAPI_MakeChamfer * builder, TopoDS_Edge *edge ){
+    builder->Add(*edge);
+}
+
+void hs_BRepFilletAPI_MakeChamfer_addEdgeWithDistance(BRepFilletAPI_MakeChamfer * builder, double d, TopoDS_Edge *edge ){
+    builder->Add(d, *edge);
+}
+
+void hs_BRepFilletAPI_MakeChamfer_reset(BRepFilletAPI_MakeChamfer * builder){
+    builder->Reset();
+}
+
+int hs_BRepFilletAPI_MakeChamfer_nbEdges(BRepFilletAPI_MakeChamfer * builder, int contourIndex){
+    return builder->NbEdges(contourIndex);
+}
+
+TopoDS_Edge * hs_BRepFilletAPI_MakeChamfer_edge(BRepFilletAPI_MakeChamfer * builder, int contourIndex, int edgeIndex){
+    return new TopoDS_Edge(builder->Edge(contourIndex, edgeIndex));
+}
+
+void hs_BRepFilletAPI_MakeChamfer_remove(BRepFilletAPI_MakeChamfer * builder, TopoDS_Edge * edge){
+    builder->Remove(*edge);
+}
diff --git a/cpp/hs_BRepFilletAPI_MakeChamfer.h b/cpp/hs_BRepFilletAPI_MakeChamfer.h
new file mode 100644
--- /dev/null
+++ b/cpp/hs_BRepFilletAPI_MakeChamfer.h
@@ -0,0 +1,30 @@
+#ifndef HS_BREPFILLETAPI_MAKECHAMFER_H
+#define HS_BREPFILLETAPI_MAKECHAMFER_H
+
+#include "hs_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BRepFilletAPI_MakeChamfer * hs_new_BRepFilletAPI_MakeChamfer_fromShape(TopoDS_Shape * shape) ;
+
+void hs_delete_BRepFilletAPI_MakeChamfer(BRepFilletAPI_MakeChamfer * builder) ;
+
+void hs_BRepFilletAPI_MakeChamfer_addEdge(BRepFilletAPI_MakeChamfer * builder, TopoDS_Edge *edge );
+
+void hs_BRepFilletAPI_MakeChamfer_addEdgeWithDistance(BRepFilletAPI_MakeChamfer * builder, double d, TopoDS_Edge *edge );
+
+void hs_BRepFilletAPI_MakeChamfer_reset(BRepFilletAPI_MakeChamfer * builder);
+
+int hs_BRepFilletAPI_MakeChamfer_nbEdges(BRepFilletAPI_MakeChamfer * builder, int contourIndex);
+
+TopoDS_Edge * hs_BRepFilletAPI_MakeChamfer_edge(BRepFilletAPI_MakeChamfer * builder, int contourIndex, int edgeIndex);
+
+void hs_BRepFilletAPI_MakeChamfer_remove(BRepFilletAPI_MakeChamfer * builder, TopoDS_Edge * edge);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // HS_BREPFILLETAPI_MAKECHAMFER_H
diff --git a/cpp/hs_types.h b/cpp/hs_types.h
--- a/cpp/hs_types.h
+++ b/cpp/hs_types.h
@@ -41,6 +41,7 @@
 typedef int BRepBuilderAPI_WireError;
 typedef int BRepBuilderAPI_FaceError;
 typedef void BRepFilletAPI_MakeFillet;
+typedef void BRepFilletAPI_MakeChamfer;
 typedef void BRepPrimAPI_MakeBox;
 typedef void TopExp_Explorer;
 typedef void BRepPrimAPI_MakeCylinder;
diff --git a/opencascade-hs.cabal b/opencascade-hs.cabal
--- a/opencascade-hs.cabal
+++ b/opencascade-hs.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           opencascade-hs
-version:        0.5.1.1
+version:        0.6.0.0
 synopsis:       Thin Wrapper for the OpenCASCADE CAD Kernel
 description:    Please see the README on GitHub at <https://github.com/joe-warren/opencascade-hs#readme>
 category:       Graphics,FFI
@@ -42,6 +42,7 @@
     cpp/hs_BRepBuilderAPI_MakeWire.h
     cpp/hs_BRepBuilderAPI_Sewing.h
     cpp/hs_BRepBuilderAPI_Transform.h
+    cpp/hs_BRepFilletAPI_MakeChamfer.h
     cpp/hs_BRepFilletAPI_MakeFillet.h
     cpp/hs_BRepGProp.h
     cpp/hs_BRepLib.h
@@ -165,6 +166,7 @@
       OpenCascade.BRepBuilderAPI.WireError
       OpenCascade.BRepFilletAPI
       OpenCascade.BRepFilletAPI.Internal.Destructors
+      OpenCascade.BRepFilletAPI.MakeChamfer
       OpenCascade.BRepFilletAPI.MakeFillet
       OpenCascade.BRepFilletAPI.Types
       OpenCascade.BRepGProp
@@ -368,6 +370,7 @@
       cpp/hs_BRepBuilderAPI_MakeWire.cpp
       cpp/hs_BRepBuilderAPI_Sewing.cpp
       cpp/hs_BRepBuilderAPI_Transform.cpp
+      cpp/hs_BRepFilletAPI_MakeChamfer.cpp
       cpp/hs_BRepFilletAPI_MakeFillet.cpp
       cpp/hs_BRepGProp.cpp
       cpp/hs_BRepLib.cpp
diff --git a/src/OpenCascade/BRepFilletAPI/Internal/Destructors.hs b/src/OpenCascade/BRepFilletAPI/Internal/Destructors.hs
--- a/src/OpenCascade/BRepFilletAPI/Internal/Destructors.hs
+++ b/src/OpenCascade/BRepFilletAPI/Internal/Destructors.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE CApiFFI #-}
 module OpenCascade.BRepFilletAPI.Internal.Destructors
 ( deleteMakeFillet
+, deleteMakeChamfer
 ) where
 
 import OpenCascade.BRepFilletAPI.Types
@@ -8,5 +9,7 @@
 import Foreign.Ptr
 
 foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_delete_BRepFilletAPI_MakeFillet" deleteMakeFillet :: Ptr MakeFillet -> IO ()
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_delete_BRepFilletAPI_MakeChamfer" deleteMakeChamfer :: Ptr MakeChamfer -> IO ()
 
 
diff --git a/src/OpenCascade/BRepFilletAPI/MakeChamfer.hs b/src/OpenCascade/BRepFilletAPI/MakeChamfer.hs
new file mode 100644
--- /dev/null
+++ b/src/OpenCascade/BRepFilletAPI/MakeChamfer.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE CApiFFI #-}
+module OpenCascade.BRepFilletAPI.MakeChamfer 
+( MakeChamfer
+, fromShape
+, addEdge
+, addEdgeWithDistance
+, reset
+, nbEdges
+, edge
+, remove
+) where
+
+import OpenCascade.BRepFilletAPI.Types (MakeChamfer)
+import OpenCascade.BRepFilletAPI.Internal.Destructors (deleteMakeChamfer)
+import qualified OpenCascade.TopoDS as TopoDS
+import OpenCascade.TopoDS.Internal.Destructors (deleteShape)
+import OpenCascade.Inheritance (upcast)
+import Foreign.Ptr
+import Foreign.C
+import Data.Acquire
+import Data.Coerce (coerce)
+
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_new_BRepFilletAPI_MakeChamfer_fromShape" rawFromShape :: Ptr TopoDS.Shape -> IO (Ptr MakeChamfer)
+
+fromShape :: Ptr TopoDS.Shape  -> Acquire (Ptr MakeChamfer)
+fromShape shape = mkAcquire (rawFromShape shape) deleteMakeChamfer
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_addEdge" addEdge :: Ptr MakeChamfer -> Ptr TopoDS.Edge -> IO ()
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_addEdgeWithDistance" rawAddEdgeWithDistance :: Ptr MakeChamfer -> CDouble -> Ptr TopoDS.Edge -> IO ()
+
+addEdgeWithDistance :: Ptr MakeChamfer -> Double -> Ptr TopoDS.Edge -> IO ()
+addEdgeWithDistance = coerce rawAddEdgeWithDistance
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_reset" reset :: Ptr MakeChamfer -> IO ()
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_nbEdges" rawNbEdges :: Ptr MakeChamfer -> CInt -> IO CInt
+
+nbEdges :: Ptr MakeChamfer -> Int -> IO Int
+nbEdges builder index = fromIntegral <$> rawNbEdges builder (fromIntegral index)
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_edge" rawEdge :: Ptr MakeChamfer -> CInt -> CInt -> IO (Ptr TopoDS.Edge)
+
+edge :: Ptr MakeChamfer -> Int -> Int -> Acquire (Ptr TopoDS.Edge)
+edge builder contourIndex edgeIndex = mkAcquire (rawEdge builder (fromIntegral contourIndex) (fromIntegral edgeIndex)) (deleteShape . upcast)
+
+foreign import capi unsafe "hs_BRepFilletAPI_MakeChamfer.h hs_BRepFilletAPI_MakeChamfer_remove" remove :: Ptr MakeChamfer -> Ptr TopoDS.Edge -> IO ()
diff --git a/src/OpenCascade/BRepFilletAPI/Types.hs b/src/OpenCascade/BRepFilletAPI/Types.hs
--- a/src/OpenCascade/BRepFilletAPI/Types.hs
+++ b/src/OpenCascade/BRepFilletAPI/Types.hs
@@ -1,12 +1,15 @@
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE EmptyDataDecls #-}
 module OpenCascade.BRepFilletAPI.Types
-( MakeFillet 
+( MakeFillet
+, MakeChamfer
 ) where
 
 import qualified OpenCascade.Inheritance as Inheritance
 import OpenCascade.BRepBuilderAPI.MakeShape (MakeShape)
 
 data MakeFillet
+data MakeChamfer
 
 instance Inheritance.SubTypeOf MakeShape MakeFillet
+instance Inheritance.SubTypeOf MakeShape MakeChamfer
