Build Factura Electrónica with CAE (ARCA WSFEv1)
Skill: Convert a sale into an authorised factura electrónica and obtain its CAE
Region: Argentina
Category: E-Invoicing — facturación electrónica
Does: Takes ordinary sale data and produces the request to the ARCA (ex-AFIP) web service WSFEv1 (FECAESolicitar), which authorises the factura electrónica and returns the CAE (Código de Autorización Electrónico) and its fecha de vencimiento — the legal proof the comprobante was authorised.
System: ARCA (ex-AFIP) WSFEv1 (Web Service de Facturación Electrónica), RG 4291
WSFEv1 is a SOAP web service: you first obtain a Ticket de Acceso (TA) from WSAA using a certificado digital, then call
FECAESolicitar. The CAE returned (with its vencimiento) must be printed/embedded on the comprobante. Confirm the active WSFEv1 spec, the códigos de tipo de comprobante and the homologación vs producción endpoints before use.
When this applies
- Any responsable inscripto (and many monotributistas) issuing comprobantes electrónicos: Factura A (to other responsables inscriptos, IVA discriminado), Factura B (to consumidores finales / exentos, IVA incluido) and Factura C (monotributo / exento, sin IVA).
- Also notas de crédito/débito A/B/C, which share the same web service with their own códigos de tipo de comprobante.
- Each punto de venta keeps its own correlative numbering per tipo de comprobante; the CAE must be requested before delivering the comprobante.
Input data required
| Input | WSFEv1 field |
|---|---|
| Emisor CUIT, punto de venta, tipo de comprobante (A=1, B=6, C=11) | Auth/Cuit, PtoVta, CbteTipo |
| Número de comprobante (correlativo) | CbteDesde / CbteHasta |
| Fecha del comprobante (AAAAMMDD) | CbteFch |
| Receptor: tipo y número de documento (CUIT/CUIL/DNI) | DocTipo, DocNro |
| Condición frente al IVA del receptor | CondicionIVAReceptorId |
| Importe neto gravado, exento, no gravado | ImpNeto, ImpOpEx, ImpTotConc |
| Alícuotas de IVA y sus importes (21% = Id 5, 10.5% = Id 4) | Iva/AlicIva (Id, BaseImp, Importe) |
| Importe total y total de IVA | ImpTotal, ImpIVA |
| Concepto (1 productos, 2 servicios, 3 ambos) | Concepto |
For Concepto 2/3 (servicios), FchServDesde, FchServHasta and FchVtoPago are also required.
Request structure (FECAESolicitar)
FECAESolicitar
└── FeCAEReq
├── FeCabReq (CantReg, PtoVta, CbteTipo)
└── FeDetReq/FECAEDetRequest
├── Concepto, DocTipo, DocNro
├── CbteDesde, CbteHasta, CbteFch
├── ImpTotal, ImpTotConc, ImpNeto, ImpOpEx, ImpIVA, ImpTrib
├── CondicionIVAReceptorId
├── MonId (PES), MonCotiz (1)
└── Iva/AlicIva (Id, BaseImp, Importe) ...
Response FECAEResponse/FeDetResp/FECAEDetResponse returns Resultado (A=aprobado / R=rechazado), CAE and CAEFchVto.
Calculation rules
ImpNeto= suma de importes netos gravados;ImpIVA= suma de losImportede cadaAlicIva(BaseImp × alícuota).ImpTotal=ImpTotConc(no gravado) +ImpNeto+ImpOpEx(exento) +ImpIVA+ImpTrib(otros tributos).- IVA alícuota Id: 3 = 0%, 4 = 10.5%, 5 = 21%, 6 = 27%, 8 = 5%, 9 = 2.5%.
- En Factura A el IVA se discrimina (
AlicIvaobligatorio); en Factura CImpIVA= 0 y no se informan alícuotas gravadas. - El número solicitado debe ser el último autorizado + 1 para ese PtoVta y CbteTipo (consultar con
FECompUltimoAutorizado).
Worked example (Factura A, IVA 21%, request + response)
<FECAESolicitar xmlns="http://ar.gov.afip.dif.FEV1/">
<Auth><Token>...</Token><Sign>...</Sign><Cuit>20304050607</Cuit></Auth>
<FeCAEReq>
<FeCabReq><CantReg>1</CantReg><PtoVta>3</PtoVta><CbteTipo>1</CbteTipo></FeCabReq>
<FeDetReq>
<FECAEDetRequest>
<Concepto>1</Concepto>
<DocTipo>80</DocTipo><DocNro>30712345678</DocNro>
<CbteDesde>145</CbteDesde><CbteHasta>145</CbteHasta><CbteFch>20260604</CbteFch>
<ImpTotal>121000.00</ImpTotal>
<ImpTotConc>0.00</ImpTotConc>
<ImpNeto>100000.00</ImpNeto>
<ImpOpEx>0.00</ImpOpEx>
<ImpIVA>21000.00</ImpIVA>
<ImpTrib>0.00</ImpTrib>
<CondicionIVAReceptorId>1</CondicionIVAReceptorId>
<MonId>PES</MonId><MonCotiz>1</MonCotiz>
<Iva>
<AlicIva><Id>5</Id><BaseImp>100000.00</BaseImp><Importe>21000.00</Importe></AlicIva>
</Iva>
</FECAEDetRequest>
</FeDetReq>
</FeCAEReq>
</FECAESolicitar>
<!-- Respuesta -->
<FECAEDetResponse>
<Concepto>1</Concepto><DocTipo>80</DocTipo><DocNro>30712345678</DocNro>
<CbteDesde>145</CbteDesde><CbteHasta>145</CbteHasta>
<Resultado>A</Resultado>
<CAE>74123456789012</CAE>
<CAEFchVto>20260614</CAEFchVto>
</FECAEDetResponse>
The CAE 74123456789012 and its vencimiento 2026-06-14 must be printed on the Factura A (with the código de barras / QR del comprobante).
Validation checklist
- Ticket de Acceso (TA) válido obtenido de WSAA con certificado digital antes de llamar a WSFEv1
-
CbteTipocorrecto (A=1 / B=6 / C=11, o las notas de crédito/débito correspondientes) yPtoVtahabilitado -
CbteDesde= último autorizado + 1 para ese PtoVta y CbteTipo (FECompUltimoAutorizado) -
CondicionIVAReceptorIdinformado y coherente con el tipo de comprobante -
ImpTotal= ImpTotConc + ImpNeto + ImpOpEx + ImpIVA + ImpTrib;ImpIVA= suma deAlicIva/Importe - En Factura A el IVA está discriminado por alícuota (Id 5 = 21%, Id 4 = 10.5%)
- Respuesta con
Resultado = A; CAE y CAEFchVto guardados e impresos en el comprobante - Uso del entorno correcto (homologación vs producción)
Last updated: 2026-06-04 — confirm the active schema version, field codes, and ARCA/AFIP requirements against the current specifications before use.