RECE.API
API REST para emitir comprobantes electrónicos ante AFIP/ARCA desde cualquier sistema. Se encarga de la autenticación WSAA, la firma del certificado y el armado del SOAP; tu aplicación envía JSON y recibe el CAE.
Qué resuelve
Integrar los web services de AFIP directamente implica firmar un loginTicketRequest en PKCS#7,
manejar la vigencia de los tickets de acceso, construir envelopes SOAP a mano y traducir los códigos de
rechazo. RECE.API hace todo eso por vos y expone una superficie HTTP+JSON.
Servicios de AFIP cubiertos
| Servicio | Para qué sirve | Documentación |
|---|---|---|
WSFEV1 |
Facturación electrónica del mercado interno: facturas A, B, C, M, notas de crédito y débito, y Factura de Crédito MiPyME. | Comprobantes WSFE |
WSFEXV1 |
Comprobantes de exportación (factura E) con país de destino, moneda extranjera e items detallados. | Exportación WSFEX |
WSFEV1 (CAEA) |
Código de Autorización Electrónico Anticipado, para operar cuando el servicio de AFIP no está disponible. | CAEA |
WSREMCARNE |
Remito electrónico cárnico: generación, autorización, emisión y recepción. | Remito cárnico |
WSAA |
Autenticación ante AFIP. La API lo gestiona sola y cachea los tickets; también podés pedirlos vos. | Login WSAA |
El certificado digital debe estar habilitado en AFIP para cada servicio que vayas a usar. Un certificado autorizado para wsfe no sirve para wsfex hasta que lo autorices también para ese servicio.
URL base
Todos los ejemplos de esta documentación usan una URL de referencia. Reemplazala por la de tu instalación:
https://api.tudominio.com
La raíz del servicio sirve la interfaz de Swagger, y el documento OpenAPI está en
/swagger/v1/swagger.json. Es la referencia viva del contrato: si algo de esta documentación
no coincide con el Swagger de tu instalación, mandá el Swagger.
Cómo funciona una emisión
Cuando llamás a /api/facturacion/emitir, esto es lo que ocurre por debajo:
Tu sistema
│ POST /api/facturacion/emitir (JSON + token)
▼
RECE.API
│ 1. Valida el request
│ 2. Busca el certificado del CUIT y el ambiente
│ 3. Obtiene el ticket WSAA (o usa el cacheado)
│ 4. Arma el envelope SOAP FECAESolicitar
▼
AFIP
│ CAE + fecha de vencimiento
▼
RECE.API → { "success": true, "cae": "7...", ... }
El ticket de AFIP se cachea en memoria y en disco por combinación de ambiente, servicio y CUIT, y se renueva unos minutos antes de vencer. No necesitás gestionarlo desde tu lado.
Ambientes
No hay un ambiente global: se elige en cada request, mandando el campo ambiente
en el body o ?ambiente= en la query.
| Valor | Uso | WSAA de AFIP |
|---|---|---|
homologacion | Pruebas. Los comprobantes no tienen validez fiscal. | wsaahomo.afip.gov.ar |
produccion | Comprobantes con validez fiscal. | wsaa.afip.gov.ar |
ambiente
Cualquier valor que no sea exactamente produccion resuelve a homologación. Un "prod" o un "produccón" apunta silenciosamente al ambiente de pruebas y devuelve un CAE que parece válido pero no lo es. Validá ese campo antes de enviarlo.
Convenciones de la API
- JSON en camelCase. Los nombres de campo se serializan con la convención por defecto de ASP.NET Core:
importeTotal,numeroComprobante. - Los errores de negocio viajan en el cuerpo. Un rechazo de AFIP llega como
200o400consuccess: falsey el detalle enerrores[]. No alcanza con mirar el código HTTP. - Importes con punto decimal. Se envían como número JSON, no como string:
1210.00, nunca"1210,00". - Fechas en
yyyy-MM-dden el request. La API las convierte al formatoyyyyMMddque espera AFIP. - Rutas case-insensitive.
/api/facturaciony/api/Facturacionson equivalentes.
Por dónde seguir
Si nunca usaste la API, andá a Primeros pasos: en cinco pasos emitís un comprobante de prueba en homologación. Si ya tenés el token y buscás un endpoint puntual, la tabla de referencia los lista todos.