Imprimir
Categoría: Factura Electrónica - AFIP Argentina
Visto: 3982

En comparación con la obtención del ticket de sesión, generar el CAE es fácil.

Lista completa de errores que puede informar la AFIP

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ar="http://ar.gov.afip.dif.facturaelectronica/">
<soapenv:Header/>
<soapenv:Body>
  <ar:FEAutRequest>
    <ar:argAuth>
      <ar:Token>(token)</ar:Token>
        <ar:Sign>(Sign)</ar:Sign>
    <ar:cuit>(CUIT)</ar:cuit>
    </ar:argAuth>
    <ar:Fer>
      <ar:Fecr>
        <ar:id>(nro_solicitud)</ar:id>
    <ar:cantidadreg>(cantidad_comprob)</ar:cantidadreg>
    <ar:presta_serv>1</ar:presta_serv>
      </ar:Fecr>
      <ar:Fedr>
       <ar:FEDetalleRequest>
         <ar:tipo_doc>(tipo_doc)</ar:tipo_doc>
         <ar:nro_doc>(nro_doc)</ar:nro_doc>
         <ar:tipo_cbte>(compro_tipo_afip)</ar:tipo_cbte>
         <ar:punto_vta>(punto)</ar:punto_vta>
         <ar:cbt_desde>(compro_nro_afip_desde)</ar:cbt_desde>
         <ar:cbt_hasta>(compro_nro_afip_hasta)</ar:cbt_hasta>
         <ar:imp_total>string(total, '########0.00')</ar:imp_total>
         <ar:imp_tot_conc>string(concep_no_grava, '########0.00')</ar:imp_tot_conc>
         <ar:imp_neto>string(grava, '########0.00')</ar:imp_neto>
         <ar:impto_liq>string(impuestos, '########0.00')</ar:impto_liq>
         <ar:impto_liq_rni>string(impuestos_rni, '########0.00')</ar:impto_liq_rni>
         <ar:imp_op_ex>string(exen, '########0.00')</ar:imp_op_ex>
         <ar:fecha_cbte>string(fecha, 'yyyymmdd')</ar:fecha_cbte>
         <ar:fecha_serv_desde>string(factu_desde, 'yyyymmdd'</ar:fecha_serv_desde>
         <ar:fecha_serv_hasta>string(factu_hasta, 'yyyymmdd')</ar:fecha_serv_hasta>
         <ar:fecha_venc_pago>string(vto(), 'yyyymmdd')</ar:fecha_venc_pago>
       </ar:FEDetalleRequest>
      </ar:Fedr>
    </ar:Fer>
  </ar:FEAutRequest>
</soapenv:Body>
</soapenv:Envelope>

Archivos de ejemplo:
ejemploFEAutRequestEnvio0.xml
ejemploFEAutRequestEnvio1.xml
ejemploFEAutRequestEnvio2.xml
ejemploFEAutRequestEnvio3.xml

<soap:Envelope>
  <soap:Body>
    <FEAutRequestResponse>
      <FEAutRequestResult>
        <RError>
          <percode>1000</percode>
          <perrmsg>
FEAutRequest@SRV_RA: Usuario no autorizado a realizar esta operacion. ValidacionDeToken: No apareció CUIT en lista de relaciones: 20305949125
          </perrmsg>
        </RError>
      </FEAutRequestResult>
    </FEAutRequestResponse>
  </soap:Body>
</soap:Envelope>

Agregue los caracteres char(10) y char(13) para que se lea mejor el XML, en el siguiente link encontrara el archivo original: ejemploFEAutRequestRespuesta2.xml.

<soap:Envelope>
  <soap:Body>
    <FEAutRequestResponse>
      <FEAutRequestResult>
        <FecResp>
          <id>1</id>
          <cuit>20305949125</cuit>
          <fecha_cae>20071107</fecha_cae>
          <cantidadreg>1</cantidadreg>
          <resultado>A</resultado>
          <motivo>00</motivo>
          <reproceso>N</reproceso>
          <presta_serv>1</presta_serv>
        </FecResp>
        <FedResp>
       <FEDetalleResponse>
            <tipo_doc>80</tipo_doc>
            <nro_doc>20044720591</nro_doc>
            <tipo_cbte>1</tipo_cbte>
            <punto_vta>33</punto_vta>
            <cbt_desde>1</cbt_desde>
            <cbt_hasta>1</cbt_hasta>
            <imp_total>112.5</imp_total>
            <imp_tot_conc>0</imp_tot_conc>
            <imp_neto>100</imp_neto>
            <impto_liq>10.5</impto_liq>
            <impto_liq_rni>0</impto_liq_rni>
            <imp_op_ex>0</imp_op_ex>
            <resultado>A</resultado>
            <cae>57456448947494</cae>
            <fecha_cbte>20071107</fecha_cbte>
            <fecha_vto>20071117</fecha_vto>
            <motivo>00</motivo>
            <fecha_serv_desde>20070101</fecha_serv_desde>
            <fecha_serv_hasta>20070131</fecha_serv_hasta>
            <fecha_venc_pago>20071210</fecha_venc_pago>
          </FEDetalleResponse>
        </FedResp>
    <RError>
          <percode>0</percode>
          <perrmsg/>
        </RError>
      </FEAutRequestResult>
    </FEAutRequestResponse>
  </soap:Body>
</soap:Envelope>

Agregue los caracteres char(10) y char(13) para que se lea mejor el XML, en el siguiente link encontrara el archivo original: ejemploFEAutRequestRespuesta0.xml.

Otros ejemplos:
ejemploFEAutRequestRespuesta1.xml Comprobante aprobado con Observaciones.
ejemploFEAutRequestRespuesta3.xml Varios comprobantes aprobados.
ejemploFEAutRequestRespuesta4.xml Comprobantes rechazados con múltiples errores.

Creo que lo correcto hubiera sido preguntar a la AFIP cuál es el número del ultimo comprobante con CAE para cada CUIT y punto de venta, y hacer que el sistema continúe a partir de ese comprobante. En el caso que existan comprobantes menores a ese numero sin CAE, nuestro sistema tendría que pedirlos a la AFIP.