Exemplo n.º 1
0
def autenticar(cert, privatekey, url):
    tra = wsaa.create_tra("wsbfe")
    cms = wsaa.sign_tra(str(tra), str(cert), str(privatekey))
    xml = wsaa.call_wsaa(str(cms), url)
    ta = SimpleXMLElement(xml)
    token = str(ta.credentials.token)
    sign = str(ta.credentials.sign)
    return token, sign
Exemplo n.º 2
0
def autenticar(cert, privatekey, url):
    "Obtener el TA"
    TA = "TA-wsfe.xml"
    ttl = 60 * 60 * 5
    if not os.path.exists(TA) or os.path.getmtime(TA) + (ttl) < time.time():
        import wsaa
        tra = wsaa.create_tra(service="wsfe", ttl=ttl)
        cms = wsaa.sign_tra(str(tra), str(cert), str(privatekey))
        ta_string = wsaa.call_wsaa(cms, wsaa_url, trace=DEBUG)
        open(TA, "w").write(ta_string)
    ta_string = open(TA).read()
    ta = SimpleXMLElement(ta_string)
    token = str(ta.credentials.token)
    sign = str(ta.credentials.sign)
    return token, sign
Exemplo n.º 3
0
def main():
    # cliente soap del web service
    client = SoapClient(WSFEURL, 
        action = SOAP_ACTION, 
        namespace = SOAP_NS,
        trace = True)

    # obteniendo el TA
    ta_string = open(TA).read()
    ta = SimpleXMLElement(ta_string)
    token = str(ta.credentials.token)
    sign = str(ta.credentials.sign)
    # fin TA

    CUIT = sys.argv[1]
    punto_vta = 2
    tipo_cbte = 1 # 1: A 6: B
    
    dummy(client)
    
    qty = recuperar_qty(client, token, sign, CUIT)
    last_id = ultnro(client, token, sign, CUIT)
    last_cbte = recuperar_last_cmp(client, token, sign, CUIT, punto_vta, tipo_cbte)
    #import pdb; pdb.set_trace()
    dic = aut(client, token, sign,
        CUIT, id=last_id +1, cbt_desde=last_cbte +1, cbt_hasta=last_cbte +1,
        tipo_doc=80, nro_doc=23111111113, 
        punto_vta=punto_vta, tipo_cbte=tipo_cbte,
        imp_total=0.01, imp_neto=0.01, impto_liq=0.00)
    
    cae = dic['cae']
    
    print "QTY: %s" % qty
    print "Last CBTE: %s" % last_cbte
    print "Last Id: %s" % last_id
    print "CAE: %s" % cae
Exemplo n.º 4
0
def main():
    "Función principal de pruebas (obtener CAE)"
    import os, time
    import sys, codecs, locale
    if sys.stdout.encoding is None:
        sys.stdout = codecs.getwriter("latin1")(sys.stdout, "replace")

    url = len(sys.argv) > 2 and sys.argv[2].startswith(
        "http") and sys.argv[2] or WSBFEURL

    # cliente soap del web service
    client = SoapClient(url,
                        action=SOAP_ACTION,
                        namespace=SOAP_NS,
                        trace="--trace" in sys.argv)

    # obteniendo el TA
    TA = "TA.xml"
    if not os.path.exists(TA) or os.path.getmtime(TA) + (60 * 60 *
                                                         5) < time.time():
        import wsaa
        tra = wsaa.create_tra(service="wsbfe")
        cms = wsaa.sign_tra(tra, "reingart.crt", "reingart.key")
        ta_string = wsaa.call_wsaa(cms)
        open("TA.xml", "w").write(ta_string)
    ta_string = open(TA).read()
    ta = SimpleXMLElement(ta_string)
    token = str(ta.credentials.token)
    sign = str(ta.credentials.sign)
    # fin TA

    CUIT = len(sys.argv) > 1 and sys.argv[1] or "20267565393"

    if "--dummy" in sys.argv:
        print dummy(client)

    # Recuperar parámetros:
    if "--params" in sys.argv:

        print "=== Monedas ==="
        monedas = get_param_mon(client, token, sign, CUIT)
        for m in monedas:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % m
        monedas = dict([(m['id'], m['ds']) for m in monedas])

        print "=== NCM ==="
        productos = get_param_ncm(client, token, sign, CUIT)
        for p in productos:
            print "||%(codigo)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % p
        productos = dict([(m['codigo'], m['ds']) for m in productos])

        print "=== Tipos de Comprobante ==="
        cbtes = get_param_tipo_cbte(client, token, sign, CUIT)
        for c in cbtes:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % c
        cbtes = dict([(c['id'], c['ds']) for c in cbtes])

        print "=== Tipos de IVA ==="
        ivas = get_param_tipo_iva(client, token, sign, CUIT)
        for i in ivas:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % i
        ivas = dict([(i['id'], i['ds']) for i in ivas])

        print "=== Unidades de Medida ==="
        umedidas = get_param_umed(client, token, sign, CUIT)
        for u in umedidas:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % u
        umeds = dict([(u['id'], u['ds']) for u in umedidas])

        ##zonas = get_param_zonas(client, token, sign, CUIT)
        ##print dict([(z['id'],z['ds']) for z in zonas])

    else:

        monedas = {
            'DOL': u'D\xf3lar Estadounidense',
            'PES': u'Pesos Argentinos',
            '010': u'Pesos Mejicanos',
            '011': u'Pesos Uruguayos',
            '012': u'Real',
            '014': u'Coronas Danesas',
            '015': u'Coronas Noruegas',
            '016': u'Coronas Suecas',
            '019': u'Yens',
            '018': u'D\xf3lar Canadiense',
            '033': u'Peso Chileno',
            '056': u'Forint (Hungr\xeda)',
            '031': u'Peso Boliviano',
            '036': u'Sucre Ecuatoriano',
            '051': u'D\xf3lar de Hong Kong',
            '034': u'Rand Sudafricano',
            '053': u'D\xf3lar de Jamaica',
            '057': u'Baht (Tailandia)',
            '043': u'Balboas Paname\xf1as',
            '042': u'Peso Dominicano',
            '052': u'D\xf3lar de Singapur',
            '032': u'Peso Colombiano',
            '035': u'Nuevo Sol Peruano',
            '061': u'Zloty Polaco',
            '060': u'Euro',
            '063': u'Lempira Hondure\xf1a',
            '062': u'Rupia Hind\xfa',
            '064': u'Yuan (Rep. Pop. China)',
            '025': u'Dinar Yugoslavo',
            '002': u'D\xf3lar Libre EEUU',
            '027': u'Dracma Griego',
            '026': u'D\xf3lar Australiano',
            '007': u'Florines Holandeses',
            '023': u'Bol\xedvar Venezolano',
            '047': u'Riyal Saudita',
            '046': u'Libra Egipcia',
            '045': u'Dirham Marroqu\xed',
            '044': u'C\xf3rdoba Nicarag\xfcense',
            '029': u'G\xfcaran\xed',
            '028': u'Flor\xedn (Antillas Holandesas)',
            '054': u'D\xf3lar de Taiwan',
            '040': u'Lei Rumano',
            '024': u'Corona Checa',
            '030': u'Shekel (Israel)',
            '021': u'Libra Esterlina',
            '055': u'Quetzal Guatemalteco',
            '059': u'Dinar Kuwaiti'
        }
        comprobantes = {
            1: u'Factura A',
            2: u'Nota de D\xe9bito A',
            3: u'Nota de Cr\xe9dito A',
            4: u'Recibo A',
            6: u'Factura B',
            7: u'Nota de D\xe9bito B',
            8: u'Nota de Cr\xe9dito B',
            9: u'Recibo B',
            11: u'Factura C',
            12: u'Nota de D\xe9bito C',
            13: u'Nota de Cr\xe9dito C',
            15: u'Recibo C',
            51: u'Factura M',
            52: u'Nota de D\xe9bito M',
            53: u'Nota de Cr\xe9dito M',
            54: u'Recibo M'
        }
        ivas = {
            1: u'No gravado',
            2: u'Exento',
            3: u'0%',
            4: u'10.5%',
            5: u'21%',
            6: u'27%'
        }
        umeds = {
            1: u'kilogramos',
            2: u'metros',
            3: u'metros cuadrados',
            4: u'metros c\xfabicos',
            5: u'litros',
            6: u'1000 kWh',
            7: u'unidades',
            8: u'pares',
            9: u'docenas',
            10: u'quilates',
            11: u'millares',
            14: u'gramos',
            15: u'milimetros',
            16: u'mm c\xfabicos',
            17: u'kil\xf3metros',
            18: u'hectolitros',
            20: u'cent\xedmetros',
            25: u'jgo. pqt. mazo naipes',
            27: u'cm c\xfabicos',
            29: u'toneladas',
            30: u'dam c\xfabicos',
            31: u'hm c\xfabicos',
            32: u'km c\xfabicos',
            33: u'microgramos',
            34: u'nanogramos',
            35: u'picogramos',
            41: u'miligramos',
            47: u'mililitros',
            48: u'curie',
            49: u'milicurie',
            50: u'microcurie',
            51: u'uiacthor',
            52: u'muiacthor',
            53: u'kg base',
            54: u'gruesa',
            61: u'kg bruto',
            62: u'uiactant',
            63: u'muiactant',
            64: u'uiactig',
            65: u'muiactig',
            66: u'kg activo',
            67: u'gramo activo',
            68: u'gramo base',
            96: u'packs',
            97: u'hormas',
            98: u'bonificaci\xf2n',
            99: u'otras unidades'
        }

    # ncm=7308.10.00, 7308.20.00

    if "--prueba" in sys.argv:

        # recupero ultimo comprobante y id
        tipo_cbte = 1
        punto_vta = 5
        cbte_nro, cbte_fecha, events = get_last_cmp(client, token, sign, CUIT,
                                                    tipo_cbte, punto_vta)
        id, events = get_last_id(client, token, sign, CUIT)

        #cbte_nro = 1
        #id = 1002 # 99000000000098

        # creo una factura de prueba
        f = FacturaBF()
        f.punto_vta = punto_vta
        f.cbte_nro = cbte_nro + 1
        f.imp_moneda_id = 'PES'
        f.fecha_cbte = date('Ymd')
        it = ItemBF(ncm='7308.10.00',
                    sec='',
                    ds=u'prueba Anafe económico',
                    qty=2.0,
                    precio=100.0,
                    bonif=0.0,
                    iva_id=5)
        f.add_item(it)
        it = ItemBF(ncm='7308.20.00',
                    sec='',
                    ds='prueba 2',
                    qty=4.0,
                    precio=50.0,
                    bonif=10.0,
                    iva_id=5)
        f.add_item(it)
        print f.to_dict()

        try:
            # autorizar...
            auth, events = authorize(client,
                                     token,
                                     sign,
                                     CUIT,
                                     id=id + 1,
                                     factura=f.to_dict())
            cae = auth['cae']
            print "auth", auth
            print "events", events
            auth, events = get_cmp(client, token, sign, CUIT, f.tipo_cbte,
                                   f.punto_vta, f.cbte_nro)
            print "get_cmp: auth", auth
            print "get_cmp: events", events
        except:
            raise
            ##l= client.xml_request.splitlines()
            ##print l[4][1150:1200]
            ##import pdb; pdb.set_trace()

    sys.exit(0)
Exemplo n.º 5
0
def main():
    "Función principal de pruebas (obtener CAE)"
    import os, time

    url = len(sys.argv) > 2 and sys.argv[2].startswith(
        "http") and sys.argv[2] or WSFEXURL

    # cliente soap del web service
    client = SoapClient(url,
                        action=SOAP_ACTION,
                        namespace=SOAP_NS,
                        trace="--trace" in sys.argv)

    # obteniendo el TA
    TA = "TA.xml"
    if not os.path.exists(TA) or os.path.getmtime(TA) + (60 * 60 *
                                                         5) < time.time():
        import wsaa
        tra = wsaa.create_tra(service="wsfex")
        cms = wsaa.sign_tra(tra, "reingart.crt", "reingart.key")
        ta_string = wsaa.call_wsaa(cms)
        open("TA.xml", "w").write(ta_string)
    ta_string = open(TA).read()
    ta = SimpleXMLElement(ta_string)
    token = str(ta.credentials.token)
    sign = str(ta.credentials.sign)
    # fin TA

    CUIT = len(sys.argv) > 1 and sys.argv[1] or "20267565393"

    if "--dummy" in sys.argv:
        print dummy(client)

    # Recuperar parámetros:
    if "--params" in sys.argv:
        import codecs, locale
        sys.stdout = codecs.getwriter('latin1')(sys.stdout)

        print "=== Monedas ==="
        monedas = get_param_mon(client, token, sign, CUIT)
        for m in monedas:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % m
        monedas = dict([(m['id'], m['ds']) for m in monedas])

        print "=== Tipos Comprobante ==="
        cbtes = get_param_tipo_cbte(client, token, sign, CUIT)
        for c in cbtes:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % c
        comprobantes = dict([(c['id'], c['ds']) for c in cbtes])

        print u"=== Tipos Exportación ==="
        tipos = get_param_tipo_expo(client, token, sign, CUIT)
        for t in tipos:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % t
        tipos_expo = dict([(t['id'], t['ds']) for t in tipos])

        print "=== Idiomas ==="
        tipos = get_param_idiomas(client, token, sign, CUIT)
        for t in tipos:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % t
        idiomas = dict([(t['id'], t['ds']) for t in tipos])

        print "=== Unidades de medida ==="
        umedidas = get_param_umed(client, token, sign, CUIT)
        for u in umedidas:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % u
        umeds = dict([(u['id'], u['ds']) for u in umedidas])

        print "=== INCOTERMs ==="
        incoterms = get_param_incoterms(client, token, sign, CUIT)
        for i in incoterms:
            print "||%(id)s||%(ds)s||%(vig_desde)s||%(vig_hasta)s||" % i
        incoterms = dict([(t['id'], t['ds']) for t in incoterms])

        print "=== Pais Destino ==="
        pais = get_param_dst_pais(client, token, sign, CUIT)
        for p in pais:
            print "||%(codigo)s||%(ds)s||" % p
        paises = dict([(p['codigo'], p['ds']) for p in pais])

        print "=== CUIT Pais Destino ==="
        pais = get_param_dst_cuit(client, token, sign, CUIT)
        for p in pais:
            print "||%(cuit)s||%(ds)s||" % p
        cuits = dict([(p['cuit'], p['ds']) for p in pais])

        ctz = get_param_ctz(client, token, sign, CUIT, 'DOL')
        print ctz

        print get_param_pto_venta(client, token, sign, CUIT)

    else:
        monedas = {
            'DOL': u'D\xf3lar Estadounidense',
            'PES': u'Pesos Argentinos',
            '010': u'Pesos Mejicanos',
            '011': u'Pesos Uruguayos',
            '012': u'Real',
            '014': u'Coronas Danesas',
            '015': u'Coronas Noruegas',
            '016': u'Coronas Suecas',
            '019': u'Yens',
            '018': u'D\xf3lar Canadiense',
            '033': u'Peso Chileno',
            '056': u'Forint (Hungr\xeda)',
            '031': u'Peso Boliviano',
            '036': u'Sucre Ecuatoriano',
            '051': u'D\xf3lar de Hong Kong',
            '034': u'Rand Sudafricano',
            '053': u'D\xf3lar de Jamaica',
            '057': u'Baht (Tailandia)',
            '043': u'Balboas Paname\xf1as',
            '042': u'Peso Dominicano',
            '052': u'D\xf3lar de Singapur',
            '032': u'Peso Colombiano',
            '035': u'Nuevo Sol Peruano',
            '061': u'Zloty Polaco',
            '060': u'Euro',
            '063': u'Lempira Hondure\xf1a',
            '062': u'Rupia Hind\xfa',
            '064': u'Yuan (Rep. Pop. China)',
            '009': u'Franco Suizo',
            '025': u'Dinar Yugoslavo',
            '002': u'D\xf3lar Libre EEUU',
            '027': u'Dracma Griego',
            '026': u'D\xf3lar Australiano',
            '007': u'Florines Holandeses',
            '023': u'Bol\xedvar Venezolano',
            '047': u'Riyal Saudita',
            '046': u'Libra Egipcia',
            '045': u'Dirham Marroqu\xed',
            '044': u'C\xf3rdoba Nicarag\xfcense',
            '029': u'G\xfcaran\xed',
            '028': u'Flor\xedn (Antillas Holandesas)',
            '054': u'D\xf3lar de Taiwan',
            '040': u'Lei Rumano',
            '024': u'Corona Checa',
            '030': u'Shekel (Israel)',
            '021': u'Libra Esterlina',
            '055': u'Quetzal Guatemalteco',
            '059': u'Dinar Kuwaiti'
        }
        comprobantes = {
            19: u'Facturas de Exportaci\xf3n\n',
            20: u'Nota de D\xe9bito por Operaciones con el Exterior\n',
            21: u'Nota de Cr\xe9dito por Operaciones con el Exterior\n'
        }
        tipos_expo = {
            1: u'Exportaci\xf3n definitiva de Bienes',
            2: u'Servicios',
            4: u'Otros'
        }
        idiomas = {1: u'Espa\xf1ol', 2: u'Ingl\xe9s', 3: u'Portugu\xe9s'}
        umeds = {
            0: u' ',
            1: u'kilogramos',
            2: u'metros',
            3: u'metros cuadrados',
            4: u'metros c\xfabicos',
            5: u'litros',
            6: u'1000 kWh',
            7: u'unidades',
            8: u'pares',
            9: u'docenas',
            10: u'quilates',
            11: u'millares',
            14: u'gramos',
            15: u'milimetros',
            16: u'mm c\xfabicos',
            17: u'kil\xf3metros',
            18: u'hectolitros',
            20: u'cent\xedmetros',
            25: u'jgo. pqt. mazo naipes',
            27: u'cm c\xfabicos',
            29: u'toneladas',
            30: u'dam c\xfabicos',
            31: u'hm c\xfabicos',
            32: u'km c\xfabicos',
            33: u'microgramos',
            34: u'nanogramos',
            35: u'picogramos',
            41: u'miligramos',
            47: u'mililitros',
            48: u'curie',
            49: u'milicurie',
            50: u'microcurie',
            51: u'uiacthor',
            52: u'muiacthor',
            53: u'kg base',
            54: u'gruesa',
            61: u'kg bruto',
            62: u'uiactant',
            63: u'muiactant',
            64: u'uiactig',
            65: u'muiactig',
            66: u'kg activo',
            67: u'gramo activo',
            68: u'gramo base',
            96: u'packs',
            97: u'hormas',
            98: u'bonificaci\xf3n',
            99: u'otras unidades'
        }
        incoterms = {
            'DAF': u'DAF',
            'DDP': u'DDP',
            'CIF': u'CIF',
            'FCA': u'FCA',
            'FAS': u'FAS',
            'DES': u'DES',
            'CPT': u'CPT',
            'EXW': u'EXW',
            'CIP': u'CIP',
            'DDU': u'DDU',
            'FOB': u'FOB',
            'DEQ': u'DEQ',
            'CFR': u'CFR'
        }

    if "--prueba" in sys.argv:

        # recupero ultimo comprobante y id
        tipo_cbte = 19
        punto_vta = 1
        cbte_nro, cbte_fecha, events = get_last_cmp(client, token, sign, CUIT,
                                                    tipo_cbte, punto_vta)
        id, events = get_last_id(client, token, sign, CUIT)

        print "last_cmp", cbte_nro, cbte_fecha
        print "last_id", id

        cbte_nro += 1
        id += 1

        if False:  # prueba a mano
            f = {
                'Id':
                id,
                'Fecha_cbte':
                date('Ymd'),
                'Tipo_cbte':
                tipo_cbte,
                'Punto_vta':
                punto_vta,
                'Cbte_nro':
                cbte_nro,
                'Tipo_expo':
                1,
                'Permiso_existente':
                'N',
                'Dst_cmp':
                225,
                'Cliente':
                'Jose Yorugua',
                'Cuit_pais_cliente':
                50000000016,
                'Domicilio_cliente':
                'Montevideo, UY',
                'Id_impositivo':
                'RUC 123123',
                'Moneda_Id':
                'DOL',
                'Moneda_ctz':
                3.85,
                'Obs_comerciales':
                'Observaciones comerciales',
                'Imp_total':
                60.00,
                'Obs':
                'Observaciones',
                'Forma_pago':
                'Taka taka',
                'Incoterms':
                'FOB',
                'Idioma_cbte':
                2,
                'Items': [{
                    'Item': {
                        'Pro_codigo': "kbd",
                        'Pro_ds': "Keyboard (uruguayan layout)",
                        'Pro_qty': 1,
                        'Pro_umed': 7,
                        'Pro_precio_uni': 50.000049,
                        'Pro_total_item': 50.000049
                    }
                }, {
                    'Item': {
                        'Pro_codigo': "mice",
                        'Pro_ds': "Optical Mouse",
                        'Pro_qty': 1,
                        'Pro_umed': 7,
                        'Pro_precio_uni': 10.50,
                        'Pro_total_item': 10.50
                    }
                }]
            }
        else:
            # creo una factura de prueba
            f = FacturaEX()
            f.punto_vta = punto_vta
            f.cbte_nro = cbte_nro
            f.fecha_cbte = date('Ymd')
            f.tipo_expo = 1
            f.permiso_existente = 'S'
            f.dst_cmp = 203
            f.cliente = 'Joao Da Silva'
            f.cuit_pais_cliente = 50000000016
            f.domicilio_cliente = 'Rua 76 km 34.5 Alagoas'
            f.id_impositivo = 'PJ54482221-l'
            f.moneda_id = '012'
            f.moneda_ctz = 0.5
            f.obs_comerciales = 'Observaciones comerciales'
            f.obs = 'Sin observaciones'
            f.forma_pago = '30 dias'
            f.incoterms = 'FOB'
            f.idioma_cbte = 1
            # agrego los items
            it = ItemFEX(codigo='PRO1',
                         ds=u'Producto Tipo 1 Exportacion MERCOSUR ISO 9001',
                         qty=1,
                         precio=125)
            f.add_item(it)
            it = ItemFEX(codigo='PRO2',
                         ds=u'Producto Tipo 2 Exportacion MERCOSUR ISO 9001',
                         qty=1,
                         precio=125)
            f.add_item(it)
            permiso = PermisoFEX(id_permiso="99999AAXX999999A", dst_merc=225)
            f.add_permiso(permiso)
            permiso = PermisoFEX(id_permiso="99999AAXX999999B", dst_merc=225)
            f.add_permiso(permiso)
            if f.tipo_cbte != 19:
                cmp_asoc = CmpAsocFEX(tipo=19, punto_vta=2, cbte_nro=1)
                f.add_cmp_asoc(cmp_asoc)
                cmp_asoc = CmpAsocFEX(tipo=19, punto_vta=2, cbte_nro=2)
                f.add_cmp_asoc(cmp_asoc)
            f = f.to_dict()
            print f

        try:
            auth, events = authorize(client,
                                     token,
                                     sign,
                                     CUIT,
                                     id=id,
                                     factura=f)
        except FEXError, fex:
            print "FEX_error:", fex.msg
            print client.xml_response
            sys.exit(1)
        cae = auth['cae']
        print "auth", auth
        print "events", events
        try:
            auth, events = get_cmp(client, token, sign, CUIT, tipo_cbte,
                                   punto_vta, cbte_nro)
        except:
            print client.xml_response
            sys.exit(1)
        print "get_cmp: auth", auth
        print "get_cmp: events", events
Exemplo n.º 6
0
    try:
    
        if "--version" in sys.argv:
            print "Versión: ", __version__

        CERT='reingart.crt'
        PRIVATEKEY='reingart.key'
        # obteniendo el TA
        TA = "wsddf-ta.xml"
        if not os.path.exists(TA) or os.path.getmtime(TA)+(60*60*5)<time.time():
            tra = wsaa.create_tra(service="wDigDepFiel")
            cms = wsaa.sign_tra(tra,CERT,PRIVATEKEY)
            ta_string = wsaa.call_wsaa(cms)
            open(TA,"w").write(ta_string)
        ta_string=open(TA).read()
        ta = SimpleXMLElement(ta_string)
        token = str(ta.credentials.token)
        sign = str(ta.credentials.sign)
        # fin TA
    
        # cliente soap del web service
        client = SoapClient(WSDDFURL, 
            action = SOAP_ACTION, 
            namespace = SOAP_NS, exceptions = True,
            trace = True, ns = 'ar', soap_ns='soap')
        
        if '--dummy' in sys.argv:
            ret = dummy(client)
            print '\n'.join(["%s: %s" % it for it in ret.items()])    

        # ejemplos aviso recep acept (prueba):