diff --git a/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py b/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
index 59351f00344f2e8df1712d08e7b35a7e6a09a0b9..5400d7b447d8b6c3a4dc002e0d41c20d711a263d 100644
--- a/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
+++ b/l10n_mx_ir_attachment_facturae/models/base_cfdi_mixin.py
@@ -1,10 +1,14 @@
 # -*- coding: utf-8 -*-
 
+import logging
+
 from datetime import datetime
 from pytz import timezone, UTC
 
 from openerp import api, fields, models
 
+_logger = logging.getLogger(__name__)
+
 
 def _sanitize(text):
     # Chars not allowed on CFDI
@@ -67,6 +71,10 @@ class BaseCfdi(models.AbstractModel):
         'ir.attachment.facturae.mx', 'CFDI', copy=False,
         help='CFDI realed to the selected record.',
     )
+    cfdi_folio_fiscal = fields.Char(
+        'CFD-I Folio Fiscal', related='cfdi_id.uuid',
+        help='Folio used in the electronic invoice',
+    )
     cfdi_state = fields.Selection(related='cfdi_id.state')
     cfdi_relation_type = fields.Many2one(
         'cfdi.relation.type', 'CFDI Relation type', copy=False,
@@ -93,5 +101,8 @@ class BaseCfdi(models.AbstractModel):
     def cancel_cfdi(self):
         """Cancels the cfdi related with current record and delete relation"""
         if self.cfdi_id and self.cfdi_id.state in ['signed', 'done']:
-            self.cfdi_id.action_cancel()
-            self.cfdi_id = False
+            cancelacion = self.cfdi_id.action_cancel()
+            if cancelacion:
+                self.cfdi_id = False
+                return cancelacion
+            return cancelacion