Guía de implementación

Probalo contra los webservices de ARCA

El mismo recorrido que describe el manual: autenticación, número de comprobante, CAE. Abajo tenés el XML mínimo y los PDF para profundizar.

Request · Auth + cabecera
<FECAESolicitar xmlns="http://ar.gov.afip.dif.FEV1/">
  <Auth>
    <Token>…</Token>
    <Sign>…</Sign>
    <Cuit>20123456789</Cuit>
  </Auth>
  <FeCAEReq> … </FeCAEReq>
</FECAESolicitar>
✓ Resultado A
CAE 71234567890123 vence en CAEFchVto (yyyyMMdd)

Introducción

ARCA (ex AFIP) expone facturación electrónica por SOAP/XML, no por REST JSON. Esta página ordena el flujo de los manuales oficiales para que puedas implementarlo en tu backend.

Primeros pasos

  1. Homologá el CUIT Certificado + WSN wsfe + punto de venta. PDFs WSASS / WSAA en PDFs.
  2. Implementá WSAA TRA → CMS → loginCms → cacheá el TA.
  3. Implementá WSFEv1 FECompUltimoAutorizado y luego FECAESolicitar.
  4. Validá en HOMO Un comprobante con Resultado=A y CAE válido.

URLs

ServicioHomologaciónProducción
WSAA https://wsaahomo.afip.gov.ar/ws/services/LoginCms https://wsaa.afip.gov.ar/ws/services/LoginCms
WSFEv1 https://wswhomo.afip.gov.ar/wsfev1/service.asmx https://servicios1.afip.gov.ar/wsfev1/service.asmx

Namespace: http://ar.gov.afip.dif.FEV1/ · WSDL con ?WSDL.

SOAP loginCms WSAA

PDF: WSAAmanualDev.pdf · Especificación 1.2.2

TRA

XML a firmarservice=wsfe
<loginTicketRequest version="1.0">
  <header>
    <uniqueId>…</uniqueId>
    <generationTime>…</generationTime>
    <expirationTime>…</expirationTime>
  </header>
  <service>wsfe</service>
</loginTicketRequest>

Firmar CMS (SHA1+RSA) → Base64 → loginCms → guardar token + sign (~12 h).

SOAP FECompUltimoAutorizado WSFEv1
Bodyejemplo
<FECompUltimoAutorizado xmlns="http://ar.gov.afip.dif.FEV1/">
  <Auth>…</Auth>
  <PtoVta>1</PtoVta>
  <CbteTipo>6</CbteTipo>
</FECompUltimoAutorizado>

Siguiente número = último + 1. CbteTipo habitual: 1=A · 6=B · 11=C.

SOAP FECAESolicitar CAE

PDF: wsfev1-RG-4291.pdf (V.4.8)

Detalle mínimoFactura B
<FECAEDetRequest>
  <Concepto>1</Concepto>
  <DocTipo>99</DocTipo>
  <DocNro>0</DocNro>
  <CbteDesde>43</CbteDesde>
  <CbteHasta>43</CbteHasta>
  <CbteFch>20260923</CbteFch>
  <ImpTotal>121.00</ImpTotal>
  <ImpNeto>100.00</ImpNeto>
  <ImpIVA>21.00</ImpIVA>
  <MonId>PES</MonId>
  <MonCotiz>1</MonCotiz>
  <CondicionIVAReceptorId>5</CondicionIVAReceptorId>
  <Iva>…</Iva>
</FECAEDetRequest>
RG 5616: falta CondicionIVAReceptorId → rechazo frecuente. Catálogo: FEParamGetCondicionIvaReceptor.

Campos que más fallan

CampoNota
AuthTA vigente + CUIT del cert
CbteFchyyyyMMdd
AlicIvaNo en tipo C; Ids vía FEParamGetTiposIva
ImportesDeben cuadrar

Errores frecuentes

SíntomaRevisar
Cert / AC de confianzaHomo vs prod
No autorizado al servicioAsociación WSN wsfe
TA ya válidoNo pedir login de nuevo
600 / 601Token, sign o CUIT

PDFs de esta página