diff --git a/smash/web/algorithm/luhn_algorithm.py b/smash/web/algorithm/luhn_algorithm.py
index c752bc333716c2b7e4081bae0875cdd2911ee02d..ae550c43d6e370c68107e95bafc3b7686f8395d5 100644
--- a/smash/web/algorithm/luhn_algorithm.py
+++ b/smash/web/algorithm/luhn_algorithm.py
@@ -1,12 +1,14 @@
+def digits_of(n):
+    return [int(d) for d in str(n)]
+
+
 class LuhnAlgorithm(object):
+
     def __init__(self):
         pass
 
     @staticmethod
     def luhn_checksum(card_number):
-        def digits_of(n):
-            return [int(d) for d in str(n)]
-
         digits = digits_of(card_number)
         odd_digits = digits[-1::-2]
         even_digits = digits[-2::-2]
@@ -19,3 +21,7 @@ class LuhnAlgorithm(object):
     @staticmethod
     def is_luhn_valid(card_number):
         return LuhnAlgorithm.luhn_checksum(card_number) == 0
+
+    @staticmethod
+    def calculate_luhn_checksum(card_number):
+        return (10 - LuhnAlgorithm.luhn_checksum(card_number + '0')) % 10