diff --git a/__openerp__.py b/__openerp__.py
index a8ee51153fa6e8dc489474f0c57233c199b243e8..be152e59233eca3c811218851f37020b09b35813 100644
--- a/__openerp__.py
+++ b/__openerp__.py
@@ -39,12 +39,14 @@
     "data": [
         "data/decimal_precision_data.xml",
         "data/stock_data.xml",
+        "data/params_data.xml",
         "views/financing_view.xml",
         "views/product_view.xml",
         "views/partner_view.xml",
         "views/journal_view.xml",
         "views/pos_view.xml",
         "views/invoice_view.xml",
+        "views/ws_view.xml",
         "views/menuitems.xml",
         "security/ir.model.access.csv",
         "security/security_rules.xml",
diff --git a/data/params_data.xml b/data/params_data.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1bf47883b325abd3c1d1ca7616f10e3a72181297
--- /dev/null
+++ b/data/params_data.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+    	<record id="config_financing_ws_url" model="ir.config_parameter">
+            <field name="key">financing.ws.url</field>
+            <field name="value">http://servicioscpz.credipaz.com/wsMIL/wsMIL.asmx</field>
+        </record>
+    	<record id="config_financing_ws_user" model="ir.config_parameter">
+            <field name="key">financing.ws.user</field>
+            <field name="value">odoo</field>
+        </record>
+    	<record id="config_financing_ws_pass" model="ir.config_parameter">
+            <field name="key">financing.ws.pass</field>
+            <field name="value">OdooP4sswd</field>
+        </record>
+    	<record id="config_financing_ws_pin" model="ir.config_parameter">
+            <field name="key">financing.ws.pin</field>
+            <field name="value">203</field>
+        </record>
+    </data>
+</openerp>
diff --git a/i18n/es_AR.po b/i18n/es_AR.po
index 0e3e5c8c0132464fa06ee2bdbcaf061e18c813af..da5a554e083cf7dfb3ff1289be669da4832d76c9 100644
--- a/i18n/es_AR.po
+++ b/i18n/es_AR.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Odoo Server 8.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-23 20:22+0000\n"
-"PO-Revision-Date: 2017-08-23 17:34-0300\n"
+"POT-Creation-Date: 2017-09-06 12:37+0000\n"
+"PO-Revision-Date: 2017-09-06 09:51-0300\n"
 "Last-Translator: Santiago Said <said.santiago@gmail.com>\n"
 "Language: es_AR\n"
 "Language-Team: Spanish; Castilian <>\n"
@@ -93,7 +93,7 @@ msgid "Cannot change a customer previously defined"
 msgstr "¡No se puede cambiar de cliente!"
 
 #. module: financing
-#: code:addons/financing/models/partner.py:115
+#: code:addons/financing/models/partner.py:119
 #, python-format
 msgid "Cannot change account reference from PoS UI"
 msgstr "No se puede cambiar el número de cuenta desde el punto de venta"
@@ -147,28 +147,74 @@ msgstr ""
 "Marcar si este producto puede ser usado para sacar efectivo, por ejemplo: "
 "pérdida de plata, transferencia a un banco, etc."
 
+#. module: financing
+#: field:product.product,check_no_negative:0
+msgid "Check no negative"
+msgstr "Check no negative"
+
 #. module: financing
 #: model:ir.model,name:financing.model_res_company
 msgid "Companies"
 msgstr "Compañías"
 
+#. module: financing
+#: code:addons/financing/models/ws.py:32
+#, python-format
+msgid "Connection Error"
+msgstr "Connection Error"
+
+#. module: financing
+#: field:ws.request.detail,content:0
+msgid "Content"
+msgstr "Content"
+
 #. module: financing
 #: field:financing.config,create_uid:0 field:product.financing,create_uid:0
+#: field:ws.request,create_uid:0 field:ws.request.detail,create_uid:0
+#: field:ws.request.error,create_uid:0
 msgid "Created by"
 msgstr "Creado por"
 
 #. module: financing
 #: field:financing.config,create_date:0 field:product.financing,create_date:0
+#: field:ws.request,create_date:0 field:ws.request.detail,create_date:0
+#: field:ws.request.error,create_date:0
 msgid "Created on"
 msgstr "Creado el"
 
+#. module: financing
+#: field:res.partner,credipaz_card_additional:0
+msgid "Credipaz Card Additional"
+msgstr "Adicional de tarjeta credipaz"
+
+#. module: financing
+#: view:res.partner:financing.view_res_partner_form_inherit_customer_type
+msgid "Credipaz Info"
+msgstr "Información Credipaz"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Credipaz WS Request"
+msgstr "Credipaz WS Solicitud"
+
+#. module: financing
+#: view:account.invoice:financing.view_account_invoice_form_inherit_financing
+#: view:ws.request:financing.view_ws_request_tree
+msgid "Credipaz WS Requests"
+msgstr "Credipaz WS Solicitudes"
+
 #. module: financing
 #: field:account.journal,credipaz_card:0
 msgid "Credipaz card?"
 msgstr "Tarjeta Credipaz"
 
 #. module: financing
-#: code:addons/financing/models/invoice.py:94
+#: view:res.partner:financing.view_res_partner_form_inherit_customer_type
+msgid "Customer Account Code"
+msgstr "Código de cuenta"
+
+#. module: financing
+#: code:addons/financing/models/invoice.py:254
 #, python-format
 msgid "Customer Invoice"
 msgstr "Factura"
@@ -186,8 +232,35 @@ msgstr "No ha seleccionado Cliente"
 msgid "Customer type"
 msgstr "Condición Cliente"
 
+#. module: financing
+#: field:ws.request,date:0
+msgid "Date"
+msgstr "Fecha"
+
+#. module: financing
+#: field:ws.request.error,desc:0
+msgid "Description"
+msgstr "Descripción"
+
+#. module: financing
+#: field:ws.request,detail_ids:0
+msgid "Detail ids"
+msgstr "Detalle"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Details"
+msgstr "Detalles"
+
+#. module: financing
+#: model:ir.model,name:financing.model_ws_request_detail
+msgid "Details of WS Request"
+msgstr "Detalles de solicitud al WS"
+
 #. module: financing
 #: field:financing.config,display_name:0 field:product.financing,display_name:0
+#: field:ws.request,display_name:0 field:ws.request.detail,display_name:0
+#: field:ws.request.error,display_name:0
 msgid "Display Name"
 msgstr "Nombre a mostrar"
 
@@ -197,28 +270,33 @@ msgid "Display Prices with taxes on POS"
 msgstr "Mostrar precio con impuestos en el PoS"
 
 #. module: financing
-#: code:addons/financing/models/invoice.py:30
+#: model:ir.model,name:financing.model_ws_request_error
+msgid "Error of WS Request"
+msgstr "Error de solicitud al WS"
+
+#. module: financing
+#: code:addons/financing/models/invoice.py:190
 #, python-format
 msgid "Error!"
 msgstr "Error!"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:169
+#: code:addons/financing/static/src/js/screens.js:176
 #, python-format
 msgid "Error: Can't mix Payment Modes"
 msgstr "Error: No se pueden mezclar Métodos de Pagos"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:178
+#: code:addons/financing/static/src/js/screens.js:185
 #, python-format
 msgid "Error: Can't sell a product at $0"
 msgstr "Error: No se puede vender un producto a precio $0"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:127
+#: code:addons/financing/static/src/js/screens.js:134
 #, python-format
 msgid "Error: Card Number Required"
 msgstr "Error: Número de tarjeta requerido"
@@ -232,40 +310,55 @@ msgstr "Error: No se pueden guardar cambios"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/models.js:175
+#: code:addons/financing/static/src/js/models.js:247
 #, python-format
 msgid "Error: Fetching data from Credipaz WS"
 msgstr "No se pudo conectar con el WebService de Credipaz"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:162
+#: code:addons/financing/static/src/js/screens.js:169
 #, python-format
 msgid "Error: Not enough credit"
 msgstr "Error: No hay crédito disponible"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/models.js:405
-#: code:addons/financing/static/src/js/models.js:417
-#: code:addons/financing/static/src/js/screens.js:155
+#: code:addons/financing/static/src/js/models.js:477
+#: code:addons/financing/static/src/js/models.js:489
+#: code:addons/financing/static/src/js/screens.js:162
 #, python-format
 msgid "Error: Not enough points"
 msgstr "Error: No nay puntos suficientes"
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:146
+#: code:addons/financing/static/src/js/screens.js:153
 #, python-format
 msgid "Error: Points and Money does not match"
 msgstr "Error: Los puntos y la plata no coinciden con la Cotización"
 
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Errors"
+msgstr "Errores"
+
+#. module: financing
+#: field:ws.request,errors_ids:0
+msgid "Errors ids"
+msgstr "Errores"
+
+#. module: financing
+#: field:ws.request.detail,name:0 field:ws.request.error,name:0
+msgid "Field"
+msgstr "Campo"
+
 #. module: financing
 #. openerp-web
 #: code:addons/financing/static/src/xml/pos.xml:22
 #, python-format
 msgid "Financed:"
-msgstr "Financed:"
+msgstr "Financiado:"
 
 #. module: financing
 #: selection:account.journal,pos_payment_type:0
@@ -300,32 +393,87 @@ msgstr "Tablas de Financiación"
 msgid "Financings"
 msgstr "Financianciones"
 
+#. module: financing
+#: help:product.product,lot_unique_ok:0
+msgid "Forces set qty=1 to specify a Unique Serial Number for all moves"
+msgstr ""
+"Forzar qty=1 para especificar un unico número de serie para todos los "
+"movimientos"
+
+#. module: financing
+#: view:res.partner:financing.view_res_partner_form_inherit_customer_type
+msgid "General Data"
+msgstr "Información General"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "General Information"
+msgstr "Información General"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_search
+msgid "Group By"
+msgstr "Agrupar por"
+
 #. module: financing
 #: field:financing.config,id:0 field:product.financing,id:0
+#: field:ws.request,id:0 field:ws.request.detail,id:0
+#: field:ws.request.error,id:0
 msgid "ID"
 msgstr "ID"
 
+#. module: financing
+#: help:product.product,check_no_negative:0
+msgid ""
+"If this field is True can not move this product in negative quantity "
+"available in the internal location source"
+msgstr ""
+"Si esta campo es verdadero no se podra mover el producto en cantidad "
+"negativa en la ubicación internal"
+
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:170
+#: code:addons/financing/static/src/js/screens.js:177
 #, python-format
 msgid "If you have more than one product you must use only one Payment Mode."
 msgstr "Si hay más de un producto sólo se permite ingresar un Método de Pago."
 
 #. module: financing
-#: code:addons/financing/models/invoice.py:49
+#: code:addons/financing/models/invoice.py:209
 #, python-format
 msgid "In the configuration of pos, please set the pos.ar name."
 msgstr "En la configuración de PoS, setear referencia de punto de venta."
 
 #. module: financing
-#: code:addons/financing/models/partner.py:145
+#: view:account.invoice:financing.view_account_invoice_form_inherit_financing
+msgid "Inform to WS"
+msgstr "Informar WS"
+
+#. module: financing
+#: code:addons/financing/models/partner.py:150
 #, python-format
 msgid ""
 "Invalid account reference, maybe is a spelling mistake or the customer is "
 "not present in WS"
 msgstr "Número de cuenta inválido, no se encontró en el WebService"
 
+#. module: financing
+#: model:ir.model,name:financing.model_account_invoice
+#: view:ws.request:financing.view_ws_request_search
+msgid "Invoice"
+msgstr "Factura"
+
+#. module: financing
+#: field:ws.request,invoice_id:0
+msgid "Invoice id"
+msgstr "Factura"
+
+#. module: financing
+#: code:addons/financing/models/invoice.py:30
+#, python-format
+msgid "Invoice informed to credipaz WS."
+msgstr "Factura informada al WS"
+
 #. module: financing
 #: view:pos.config:financing.view_pos_config_form_inherit_financing
 msgid "Invoicing"
@@ -338,29 +486,40 @@ msgstr "Diario"
 
 #. module: financing
 #: field:financing.config,__last_update:0
-#: field:product.financing,__last_update:0
+#: field:product.financing,__last_update:0 field:ws.request,__last_update:0
+#: field:ws.request.detail,__last_update:0
+#: field:ws.request.error,__last_update:0
 msgid "Last Modified on"
 msgstr "Última modificación el"
 
 #. module: financing
 #: field:financing.config,write_uid:0 field:product.financing,write_uid:0
+#: field:ws.request,write_uid:0 field:ws.request.detail,write_uid:0
+#: field:ws.request.error,write_uid:0
 msgid "Last Updated by"
 msgstr "Última modificación por"
 
 #. module: financing
 #: field:financing.config,write_date:0 field:product.financing,write_date:0
+#: field:ws.request,write_date:0 field:ws.request.detail,write_date:0
+#: field:ws.request.error,write_date:0
 msgid "Last Updated on"
 msgstr "Última modificación el"
 
+#. module: financing
+#: model:ir.model,name:financing.model_stock_production_lot
+msgid "Lot/Serial"
+msgstr "Lote/Nº de serie"
+
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:147
+#: code:addons/financing/static/src/js/screens.js:154
 #, python-format
 msgid "Maybe you have forgotten to recalculate the points or the amount."
 msgstr "Quizás se olvidó de recalcular los puntos o el importe."
 
 #. module: financing
-#: code:addons/financing/models/invoice.py:48
+#: code:addons/financing/models/invoice.py:208
 #, python-format
 msgid "Missing PosArName"
 msgstr "Falta la referencia del punto de venta argentina (pos.ar)"
@@ -384,10 +543,23 @@ msgstr "¡La Tasa Mensual debe ser mayor o igual 0!"
 msgid "Non-associated"
 msgstr "No Socio"
 
+#. module: financing
+#. openerp-web
+#: code:addons/financing/static/src/js/models.js:120
+#, python-format
+msgid "Not enough quantity in this serial number !"
+msgstr "No hay suficiente cantidad en este número de serie."
+
+#. module: financing
+#: model:ir.actions.act_window,name:financing.action_ws_request
+#: model:ir.ui.menu,name:financing.menu_act_open_credipaz_requests
+msgid "Open WS Requests"
+msgstr "Credipaz WS Solicitudes"
+
 #. module: financing
 #: model:ir.model,name:financing.model_res_partner
 msgid "Partner"
-msgstr "Cliente"
+msgstr "Organizacion"
 
 #. module: financing
 #. openerp-web
@@ -396,6 +568,11 @@ msgstr "Cliente"
 msgid "Pesos"
 msgstr "Pesos"
 
+#. module: financing
+#: model:ir.model,name:financing.model_stock_picking
+msgid "Picking List"
+msgstr "Remito"
+
 #. module: financing
 #. openerp-web
 #: code:addons/financing/static/src/js/widgets.js:53
@@ -404,7 +581,7 @@ msgid "Please delete the current order to change the customer"
 msgstr "Elimine el Pedido actual si desea cambiar el Cliente."
 
 #. module: financing
-#: code:addons/financing/models/invoice.py:30
+#: code:addons/financing/models/invoice.py:190
 #, python-format
 msgid "Please provide a partner for the sale."
 msgstr "Por favor setear un cliente para la venta"
@@ -461,6 +638,11 @@ msgstr "Nombre de PdV"
 msgid "Points Rate"
 msgstr "Cotización de Puntos"
 
+#. module: financing
+#: field:account.bank.statement.line,qty_points:0
+msgid "Points Used"
+msgstr "Puntos Usados"
+
 #. module: financing
 #: field:pos.config,display_price_with_taxes:0
 msgid "Price With Taxes"
@@ -528,6 +710,51 @@ msgstr "Número de cuenta"
 msgid "Reference must be unique!"
 msgstr "Número de cuenta debe ser único."
 
+#. module: financing
+#: field:ws.request.detail,req_id:0 field:ws.request.error,req_id:0
+msgid "Req id"
+msgstr "Solicitud #"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Request Detail"
+msgstr "Detalle de Solicitud"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Request Raw Detail"
+msgstr "Detalle de Solicitud (XML)"
+
+#. module: financing
+#: view:account.invoice:financing.view_account_invoice_form_inherit_financing
+msgid "Requests"
+msgstr "Solicitudes"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Response Detail"
+msgstr "Detalle de Respuesta"
+
+#. module: financing
+#: view:ws.request:financing.view_ws_request_form
+msgid "Response Raw Detail"
+msgstr "Detalle de Respuesta (XML)"
+
+#. module: financing
+#: field:account.invoice,sent_to_ws:0
+msgid "Sent to WS?"
+msgstr "Enviada a WS?"
+
+#. module: financing
+#: field:pos.config,stock_location_transit_id:0
+msgid "Stock Location(Transit)"
+msgstr "Ubicación de tránsito"
+
+#. module: financing
+#: field:ws.request,success:0
+msgid "Success"
+msgstr "Enviado correctamente?"
+
 #. module: financing
 #: code:addons/financing/models/product.py:43 field:product.financing,tfc:0
 #, python-format
@@ -575,18 +802,27 @@ msgstr "Tasa Total"
 msgid "Total Taxed"
 msgstr "Total con impuestos"
 
+#. module: financing
+#: code:addons/financing/models/picking.py:86
+#, python-format
+msgid "Transit"
+msgstr "Transit"
+
+#. module: financing
+#: model:stock.location.route,name:financing.route_transit_to_stock
+msgid "Transit to stock"
+msgstr "Transit to stock"
+
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:163
+#: code:addons/financing/static/src/js/screens.js:170
 #, python-format
 msgid "Trying to use more credit than customer has available in credipaz card."
-msgstr ""
-"Está intentando usar más credito que el disponible en "
-"la tarjeta."
+msgstr "Está intentando usar más credito que el disponible en la tarjeta."
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:156
+#: code:addons/financing/static/src/js/screens.js:163
 #, python-format
 msgid "Trying to use more points than customer has available."
 msgstr ""
@@ -594,8 +830,8 @@ msgstr ""
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/models.js:406
-#: code:addons/financing/static/src/js/models.js:418
+#: code:addons/financing/static/src/js/models.js:478
+#: code:addons/financing/static/src/js/models.js:490
 #, python-format
 msgid "Trying to use more points that customer has available."
 msgstr ""
@@ -606,9 +842,20 @@ msgstr ""
 msgid "Type used by the PoS to compute final prices"
 msgstr "Tipo de uso interno para calcular importe en el PdV."
 
+#. module: financing
+#: code:addons/financing/models/invoice.py:32
+#, python-format
+msgid "Unable to send invoice to credipaz WS."
+msgstr "Imposible enviar documento a credipaz WS."
+
+#. module: financing
+#: field:product.product,lot_unique_ok:0
+msgid "Unique lot"
+msgstr "Lote único"
+
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/models.js:172
+#: code:addons/financing/static/src/js/models.js:244
 #, python-format
 msgid "Unknown problem while getting customer data"
 msgstr ""
@@ -620,23 +867,48 @@ msgid "Use points?"
 msgstr "Pago con puntos"
 
 #. module: financing
-#: code:addons/financing/models/partner.py:149
+#: code:addons/financing/models/partner.py:154
 #, python-format
 msgid "VAT Number required"
 msgstr "Número de documento requerido"
 
 #. module: financing
-#: code:addons/financing/models/partner.py:85
+#: code:addons/financing/models/partner.py:89
 #, python-format
 msgid "WS ERROR: Cannot match the response of the WS"
 msgstr "Error en el WebService: no se puede identificar la respuesta"
 
 #. module: financing
-#: code:addons/financing/models/partner.py:69
+#: model:ir.model,name:financing.model_ws_request
+msgid "WS Request"
+msgstr "WS Solicitud"
+
+#. module: financing
+#: field:account.invoice,request_ids:0
+msgid "WS Requests"
+msgstr "WS Respuesta"
+
+#. module: financing
+#: model:ir.model,name:financing.model_stock_warehouse
+msgid "Warehouse"
+msgstr "Almacén"
+
+#. module: financing
+#: code:addons/financing/models/partner.py:73
 #, python-format
 msgid "Webservice have not returned data."
 msgstr "El WebService no devolvió información."
 
+#. module: financing
+#: field:ws.request,xml_req:0
+msgid "XML Request"
+msgstr "WS Solicitud (XML)"
+
+#. module: financing
+#: field:ws.request,xml_res:0
+msgid "XML Response"
+msgstr "WS Respuesta(XML)"
+
 #. module: financing
 #: code:addons/financing/models/financing.py:68
 #: sql_constraint:financing.config:0
@@ -652,14 +924,14 @@ msgid "You already configured this financing for this product"
 msgstr "Ya hay una Financiación configurada de esta manera"
 
 #. module: financing
-#: code:addons/financing/models/partner.py:122
+#: code:addons/financing/models/partner.py:126
 #, python-format
 msgid "You need to provide a name or account reference for customer creation"
 msgstr "Nombre o Número de cuenta es requerido para la creación de cliente."
 
 #. module: financing
 #. openerp-web
-#: code:addons/financing/static/src/js/screens.js:128
+#: code:addons/financing/static/src/js/screens.js:135
 #, python-format
 msgid "You need to provide the customer card number."
 msgstr "Número de tarjeta del cliente requerido"
diff --git a/models/__init__.py b/models/__init__.py
index 6a77adb29a596e375b7eff2267750044ad2213c8..a1972c97ceda5468bf7eba741f3f5d62314aa7d5 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -26,3 +26,4 @@ from . import pos  # noqa
 from . import invoice  # noqa
 from . import account_bank_statement  # noqa
 from . import picking  # noqa
+from . import ws  # noqa
diff --git a/models/invoice.py b/models/invoice.py
index acf773126cc0f00e248bdfb8da7b9ac1d95ce8b1..3dfbeda34bc433468d328721241b3744c72ab3b1 100644
--- a/models/invoice.py
+++ b/models/invoice.py
@@ -6,7 +6,6 @@ from datetime import datetime
 from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
 from lxml import etree
 from suds.client import Client
-import re
 import logging
 
 _logger = logging.getLogger(__name__)
@@ -16,29 +15,21 @@ class account_invoice(models.Model):
     _inherit = 'account.invoice'
 
     sent_to_ws = fields.Boolean('Sent to WS?')
+    request_ids = fields.One2many('ws.request', 'invoice_id', string='WS Requests')
 
     @api.multi
     def send_data(self, xml):
         self.ensure_one()
-        ws_url = (self.env['ir.config_parameter'].sudo().get_param('financing.ws.url') or 'http://servicioscpz.credipaz.com/wsMIL/wsMIL.asmx') + '?WSDL'
-        ws_client = Client(ws_url)
-        try:
-            ws_response = ws_client.service.RegistrarVentaMil(sUsuario='odoo', sPassword='OdooP4sswd', sPin='203', xmlVenta=xml)
-            import pprint; pprint.pprint(xml)
-            m = re.match(r".*resultado=.(?P<resultado>\w*)", ws_response)
-            assert m, _('Cannot match Credipaz Response')
-        except Exception as e:
-            _logger.warning('<<<DATA SENT TO CREDIPAZ>>>\n%s' % ws_client.last_sent())
-            _logger.warning('<<<DATA RECEIVED FROM CREDIPAZ>>>\n%s' % ws_client.last_received())
-            raise exceptions.ValidationError(_('Problem while sending data to credipaz: %s') % e)
+        req_id = self.env['ws.request'].create({
+            'invoice_id': self.id,
+            'xml_req': xml,
+        })
+        retcode = req_id.send()
+        if not retcode:
+            self.sent_to_ws = True
+            self.message_post(body=_('Invoice informed to credipaz WS.'))
         else:
-            if m:
-                retcode = m.groupdict().get('resultado')
-                if retcode == 'OK':
-                    self.sent_to_ws = True
-                    self.message_post(body=_('Invoice informed to credipaz WS.'))
-                else:
-                    raise exceptions.ValidationError(_('Cannot send the invoice to WS'))
+            self.message_post(body=_('Unable to send invoice to credipaz WS.'))
 
     @api.multi
     def inform_ws(self):
@@ -222,7 +213,6 @@ class pos_order(models.Model):
                 'pos_ar_id': pos and pos[0] or False,
             }
             onchange_res_value.update(value)
-            import pprint; pprint.pprint(onchange_res_value)
             inv.update(onchange_res_value)
             if not inv.get('account_id', None):
                 inv['account_id'] = acc
diff --git a/models/partner.py b/models/partner.py
index 757366302941d75d4d5cce0b63fe588b724596b3..4fdd53ccf73c8ef2057f4b0f26cbc1c78f505697 100644
--- a/models/partner.py
+++ b/models/partner.py
@@ -50,20 +50,24 @@ class ResPartner(models.Model):
         """
         Returns this info: {'disponible': '0', 'error': '0', 'error_msg': '', 'fecha_consulta': '2017-06-30 18:09:21', 'puede_operar': '1', 'puntos': '0', 'socio': '0'}
         """
-        ws_url = self.env['ir.config_parameter'].sudo().get_param('financing.ws.url') or 'http://servicioscpz.credipaz.com/wsMIL/wsMIL.asmx'
+        conf_obj = self.env['ir.config_parameter'].sudo()
+        ws_url = (conf_obj.get_param('financing.ws.url') or 'http://servicioscpz.credipaz.com/wsMIL/wsMIL.asmx')
+        ws_user = conf_obj.sudo().get_param('financing.ws.user')
+        ws_pass = conf_obj.sudo().get_param('financing.ws.pass')
+        ws_pin = conf_obj.sudo().get_param('financing.ws.pin')
         body = """<?xml version="1.0" encoding="utf-8"?>
         <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         <soap:Body>
             <ConsultarDisponible xmlns="http://200.11.115.145/wsMIL/wsMIL.asmx">
-            <sUsuario>odoo</sUsuario>
-            <sPassword>OdooP4sswd</sPassword>
-            <sPin>203</sPin>
+            <sUsuario>{ws_user}</sUsuario>
+            <sPassword>{ws_pass}</sPassword>
+            <sPin>{ws_pin}</sPin>
             <sTipoConsulta>{tipo_consulta}</sTipoConsulta>
             <sValor>{valor}</sValor>
             </ConsultarDisponible>
         </soap:Body>
         </soap:Envelope>
-        """.format(tipo_consulta='1', valor=reference)  # query by account_code
+        """.format(tipo_consulta='1', valor=reference, ws_user=ws_user, ws_pass=ws_pass, ws_pin=ws_pin)  # query by account_code
         # WS Exposes 3 ways: 1=Cuenta, 2=Documento ó 3=Tarjeta
         r = requests.post(ws_url, data=body, headers={'content-type': 'text/xml'})
         res_str = unidecode(r.text)  # Service returns strange characters sometimes :s
diff --git a/models/pos.py b/models/pos.py
index 605898a8666004252752836e960443e4dadaa3c1..44c99ca5af7ddbfb741fa234535b4af1a999c9b3 100644
--- a/models/pos.py
+++ b/models/pos.py
@@ -137,7 +137,6 @@ class POSOrder(models.Model):
                 'price_unit': str(line.price_subtotal_incl),
             }
             res['products'].append(prod_data)
-        import pprint; pprint.pprint(res)
         return res
 
     @api.model
diff --git a/models/ws.py b/models/ws.py
new file mode 100644
index 0000000000000000000000000000000000000000..e008d30375ac4a7e87efe28399e144e96ec335e0
--- /dev/null
+++ b/models/ws.py
@@ -0,0 +1,126 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api, exceptions, _
+from lxml import etree
+import re
+from suds.client import Client
+import logging
+
+_logger = logging.getLogger(__name__)
+
+
+class ws_request(models.Model):
+    _name = 'ws.request'
+    _description = 'WS Request'
+
+    date = fields.Datetime(default=fields.Datetime.now)
+    invoice_id = fields.Many2one('account.invoice')
+    xml_req = fields.Text('XML Request')
+    xml_res = fields.Text('XML Response')
+    detail_ids = fields.One2many('ws.request.detail', 'req_id')
+    errors_ids = fields.One2many('ws.request.error', 'req_id')
+    success = fields.Boolean()
+
+    @api.multi
+    def send(self):
+        self.ensure_one()
+        conf_obj = self.env['ir.config_parameter'].sudo()
+        ws_url = (conf_obj.get_param('financing.ws.url') or 'http://servicioscpz.credipaz.com/wsMIL/wsMIL.asmx') + '?WSDL'
+        ws_user = conf_obj.sudo().get_param('financing.ws.user')
+        ws_pass = conf_obj.sudo().get_param('financing.ws.pass')
+        ws_pin = conf_obj.sudo().get_param('financing.ws.pin')
+        ws_client = Client(ws_url)
+        try:
+            self.xml_res = ws_client.service.RegistrarVentaMil(sUsuario=ws_user, sPassword=ws_pass, sPin=ws_pin, xmlVenta=self.xml_req)
+        except Exception as e:
+            self.write({
+                'errors_ids': [(0, 0, {'name': _('Connection Error'), 'desc': e})]
+            })
+            _logger.warning('Unable to send data to credipaz')
+            _logger.warning('<<<DATA SENT TO CREDIPAZ>>>\n%s' % ws_client.last_sent())
+            _logger.warning('<<<DATA RECEIVED FROM CREDIPAZ>>>\n%s' % ws_client.last_received())
+            retcode = 1
+        else:
+            retcode = self.parse_response()
+        return retcode
+
+    @api.multi
+    def parse_response(self):
+        self.ensure_one()
+        root = etree.fromstring(self.xml_res.encode('utf-8'))
+        err_lst = []
+        for err_obj in root.findall('./ERRORES/ERROR'):
+            match_obj = re.match(r'^(\w*):\s?(.*)', err_obj.text)
+            if match_obj:
+                name = match_obj.group(1)
+                desc = match_obj.group(2)
+            else:
+                name = '_'
+                desc = err_obj.text
+            err_lst.append({'name': name, 'desc': desc})
+        if not err_lst:
+            self.success = True
+            return 0
+        else:
+            self.write({
+                'errors_ids': [(0, 0, v) for v in err_lst]
+            })
+            return 1
+        return 0
+
+    def create(self, vals):
+        xml_as_str = vals['xml_req']
+        root = etree.fromstring(xml_as_str)
+        det_vals = []
+        # Catch element that do not require iteration
+        non_it_elements = [
+            './/Fecha/*',
+            './/Hora/*',
+            './/Lugar/Sucursal',
+            './/Lugar/Operador',
+            './/Lugar/Terminal',
+            './/Venta/TipoOperacion',
+            './/Venta/DocumentoComprador',
+            './/Venta/IdVenta',
+            './/Venta/FormaPago',
+            './/Venta/PrecioVenta',
+            './/Venta/DescuentoAplicado',
+            './/Venta/AgenteVentas',
+            './/Comprador/Nombre',
+            './/Comprador/TipoDoc',
+            './/Comprador/Documento',
+        ]
+        for el_path in non_it_elements:
+            el_obj = root.find(el_path)
+            det_vals.append({'name': el_obj.tag, 'content': el_obj.text})
+        # Iterate on productos
+        for pos, el_obj in enumerate(root.findall('.//Productos/Producto')):
+            for sub_el_obj in el_obj.findall('./'):
+                prod_tag_name = 'Prod(%s): %s' % (pos, sub_el_obj.tag)
+                det_vals.append({'name': prod_tag_name, 'content': sub_el_obj.text})
+        # Iterate on productos
+        for pos, el_obj in enumerate(root.findall('.//FormasDePago/FormaDePago')):
+            for sub_el_obj in el_obj.findall('./'):
+                pago_tag_name = 'Pago(%s): %s' % (pos, sub_el_obj.tag)
+                det_vals.append({'name': pago_tag_name, 'content': sub_el_obj.text})
+
+        vals['detail_ids'] = [(0, 0, v) for v in det_vals]
+        res = super(ws_request, self).create(vals)
+        return res
+
+
+class ws_request_detail(models.Model):
+    _name = 'ws.request.detail'
+    _description = 'Details of WS Request'
+
+    req_id = fields.Many2one('ws.request', required=True)
+    name = fields.Char('Field')
+    content = fields.Char('Content')
+
+
+class ws_request_error(models.Model):
+    _name = 'ws.request.error'
+    _description = 'Error of WS Request'
+
+    req_id = fields.Many2one('ws.request')
+    name = fields.Char('Field')
+    desc = fields.Char('Description')
diff --git a/views/invoice_view.xml b/views/invoice_view.xml
index 4962ea7d2392a5c2d8d4fcf646eab15b2e17ca92..47936916cfcf785fc9a8b07352ba42ab06bbdfe9 100644
--- a/views/invoice_view.xml
+++ b/views/invoice_view.xml
@@ -29,6 +29,16 @@
                 <xpath expr="//button[@name='invoice_cancel']" position="after">
                     <button string="Inform to WS" type="object" name="inform_ws" attrs="{'invisible': [('sent_to_ws', '=', True)]}"/>
                 </xpath>    
+                <xpath expr="//page[@string='Payments']" position="after">
+                    <page string="Credipaz WS Requests">
+                        <field name="request_ids">
+                            <tree string="Requests">
+                                <field name="date" />
+                                <field name="success" />
+                            </tree>
+                        </field>
+                    </page>
+                </xpath>
             </data>
         </field>
     </record>
diff --git a/views/ws_view.xml b/views/ws_view.xml
new file mode 100644
index 0000000000000000000000000000000000000000..971549e0f9319878309dcfc539db709bd4962771
--- /dev/null
+++ b/views/ws_view.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="view_ws_request_form" model="ir.ui.view">
+            <field name="name">ws.request.form</field>
+            <field name="model">ws.request</field>
+            <field name="arch" type="xml">
+                <form string="Credipaz WS Request">
+                    <group string="General Information">
+                        <field name="date" />
+                        <field name="success" />
+                    </group>
+                    <notebook>
+                        <page string="Response Detail">
+                            <field name="errors_ids">
+                                <tree string="Errors">
+                                    <field name="name" />
+                                    <field name="desc" />
+                                </tree>
+                            </field>
+                        </page>
+                        <page string="Response Raw Detail">
+                            <field name="xml_res" /> 
+                        </page>
+                        <page string="Request Detail">
+                            <field name="detail_ids">
+                                <tree string="Details">
+                                    <field name="name" />
+                                    <field name="content" />
+                                </tree>
+                            </field>
+                        </page>
+                        <page string="Request Raw Detail">
+                            <field name="xml_req" /> 
+                        </page>
+                    </notebook>
+                </form>
+            </field>
+        </record>  
+
+        <record id="view_ws_request_tree" model="ir.ui.view">
+            <field name="name">ws.request.tree</field>
+            <field name="model">ws.request</field>
+            <field name="arch" type="xml">
+                <tree string="Credipaz WS Requests">
+                    <field name="date" />
+                    <field name="invoice_id" />
+                    <field name="success" />
+                </tree>
+            </field>
+        </record>
+
+        <record id="view_ws_request_search" model="ir.ui.view">
+            <field name="name">view.ws.request.search</field>
+            <field name="model">ws.request</field>
+            <field name="arch" type="xml">
+                <search>
+                    <!--<field name="name" string="" operator="" filter_domain="['|',('name', 'ilike', self)]" domain=[] groups=""/>-->
+                    <!-- <filter name="Error" string="Error" domain="[(" help="" groups=""  /> -->
+                    <group expand="0" string="Group By">
+                        <filter name="groupby_invoice_ud" context="{'group_by' : 'invoice_id'}" string="Invoice"/>
+                    </group>
+                </search>
+            </field>
+        </record>
+
+        <record id="action_ws_request" model="ir.actions.act_window">
+            <field name="name">Open WS Requests</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">ws.request</field>
+            <field name="view_mode">tree,form</field>
+            <field name="view_type">form</field>
+            <!-- <field name="target">new</field> -->
+        </record>
+        
+        <menuitem action="action_ws_request" id="menu_act_open_credipaz_requests" parent="account.menu_configuration_misc" sequence="16"/>
+
+    </data>
+</openerp>