diff --git a/PaymentServer.cabal b/PaymentServer.cabal
index 56d7c013c6bb0ec8b54d3506d5d9e0c64ddb7347..b7be6c40feca6b35dcd56cf5dc16f487c42aa41e 100644
--- a/PaymentServer.cabal
+++ b/PaymentServer.cabal
@@ -43,6 +43,15 @@ executable PaymentServer-exe
                      , PaymentServer
   default-language:    Haskell2010
 
+executable PaymentServer-apidocs
+  hs-source-dirs:      apidocs
+  main-is:             Main.hs
+  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wmissing-import-lists -Wunused-imports
+  build-depends:       base
+                     , servant-docs
+                     , PaymentServer
+  default-language:    Haskell2010
+
 test-suite PaymentServer-test
   type:                exitcode-stdio-1.0
   hs-source-dirs:      test
diff --git a/apidocs/Main.hs b/apidocs/Main.hs
new file mode 100644
index 0000000000000000000000000000000000000000..4b9683d537fe0bfe6ad156966cd4223ced1dd259
--- /dev/null
+++ b/apidocs/Main.hs
@@ -0,0 +1,19 @@
+module Main
+  ( main
+  ) where
+
+import PaymentServer.Server
+  ( paymentServerAPI
+  )
+import Servant.Docs
+  ( API
+  , docs
+  , markdown
+  )
+
+-- Generate the Documentation's ADT
+greetDocs :: API
+greetDocs = docs paymentServerAPI
+
+main :: IO ()
+main = print $ markdown greetDocs
diff --git a/src/PaymentServer/Server.hs b/src/PaymentServer/Server.hs
index f55b779b99f7a3395a02aca78a0f636e358f2542..f63f99a2b307e6493b2fa1773b8ad67fbe38f51f 100644
--- a/src/PaymentServer/Server.hs
+++ b/src/PaymentServer/Server.hs
@@ -4,7 +4,9 @@
 -- | This module exposes a Servant-based Network.Wai server for payment
 -- interactions.
 module PaymentServer.Server
-  ( paymentServerApp
+  ( PaymentServerAPI
+  , paymentServerAPI
+  , paymentServerApp
   ) where
 
 import Servant