No exactamente. Al procesar un único comprobante, los dos resultados posibles y esperados para la propiedad f1respuestaresultado son:
'A' (Aceptado): El comprobante fue autorizado correctamente por ARCA (ex AFIP).
'R' (Rechazado): El comprobante no fue autorizado debido a uno o más errores de validación.
Existe un tercer valor, 'P' (Parcial), pero este resultado solo es posible cuando se envían múltiples comprobantes en un mismo lote (batch). En tu escenario de un solo comprobante, no aplica.
2. Si fue "Aceptado", ¿es porque no hubo errores y se devolvió CAE?Sí, es correcto. Un resultado Aceptado (f1respuestaresultado = 'A') garantiza que el comprobante fue autorizado y que ARCA (ex AFIP) ha emitido un Código de Autorización Electrónico (CAE). Este valor lo podrás recuperar de la propiedad:
f1respuestacae
Sin embargo, un comprobante aceptado podría tener observaciones. Las observaciones son advertencias o aclaraciones devueltas por ARCA que no impiden la autorización del comprobante. Debes revisar si existen para mostrarlas o registrarlas según corresponda. Las puedes encontrar en la propiedad:
f1respuestaobs (en formato código:descripción).
Un resultado Rechazado (f1respuestaresultado = 'R') se debe a errores de validación en los datos enviados, no a observaciones. Esto corresponde a un error de Nivel 3 (Errores de validación de datos de ARCA/AFIP), según el mapa conceptual de errores. Significa que la conexión fue exitosa, pero los datos del comprobante no pasaron las reglas de negocio del servidor.
Para identificar el motivo del rechazo, debes consultar las siguientes propiedades:
f1respuestaerrcode: Contiene el código numérico del error devuelto por ARCA.
f1respuestaerrmsg: Contiene la descripción textual del error correspondiente a ese código.
En resumen, la lógica correcta tras invocar f1caesolicitar para un solo comprobante es:
Verificar el valor de f1respuestaresultado.
Si es 'A', obtener el CAE de f1respuestacae y revisar f1respuestaobs por si existen advertencias.
Si es 'R', no se generó CAE. Debes leer f1respuestaerrcode y f1respuestaerrmsg para identificar y corregir el problema en los datos enviados.