ÍNDICE
- Configuración general
- Tipos de Web Services
- Nacional
- Configuraciones
- TAGS que forman parte del archivo XML
- Exportacion
- Configuraciones
- TAGS que forman parte del archivo XML
- Pendiente
- pendiente
- Nacional C.A.E.A.
- Información General.
- Nacional
- Referencia
01. Configuración general
Solución
Configuraciones iniciales, realice los siguientes pasos:
1. Realice la instalación del TSS por medio del instalador disponible en la sección Descargas del Portal del Cliente.
2. Detenga el servicio de TSS, configure y habilite los Jobs de procesamiento para los servicios que deben inicializarse en el archivo appserver.ini de TSS con las siguientes instrucciones:
3. Inicie el servicio de TSS.
4. Verifique el funcionamiento de los Web Services en TSS.
5. En Protheus ingrese a la rutina Configuración general de TSS en el menú Miscelánea del módulo Facturación.
6. Para generar las credenciales de TSS ingrese a TSSINTERFACE.
7. Haga clic en el menú Configuraciones.
8. Seleccione la opción Credenciales, informe una Identificación y haga clic en Confirmar.
9. Para copiar las credenciales marque el registro en el browse y seleccione la opción Exportar.
10. Copie el "Client ID" y el "Client Secret" de la ventana mostrada.
11. En la rutina de Protheus, Configuraciones generales del TSS, marque el registro en el browse, pegue el "Client ID", "Client Secret" y haga clic en Grabar.
12. Salga de la rutina Configuraciones generales de TSS y de TSSINTERFACE, ingrese a la rutina Facturas Electrónicas del módulo Facturación e informe los parámetros iniciales.
13. Ejecute el Wizard de Configuración.
14. Informe el URL del Servidor de TSS.
15. Seleccione el Certificado Digital e informe la contraseña.
16. Haga clic en Avanzar y espere la validación del certificado.
17. Finalice el asistente de configuración.
02. Tipos de Web Services
a - Nacional
El Web Service del tipo Nacional es responsable por la transmisión de Facturas, Notas de Crédito Cliente y Notas de Débito Cliente que utilizan las series A y B.
Configuraciones específicas del tipo nacional:
I - Configuraciones
- Por medio de la rutina Punto de Venta (SIGAFIS >> Actualizaciones | Archivos), configurar los puntos de venta para la emisión de los comprobantes de factura electrónica.
- Por medio de la rutina Contr. Formularios (SIGAFIS >> Actualizaciones | Archivos), configurar las series y punto de venta para la emisión de los comprobantes del régimen nacional, el campo Cód .RG1415 (FP_RG1415).
- Para Facturas Serie A cód - 001 o 201.
- Para Facturas Serie B cód - 006 o 206.
- Para NCC Serie A cód - 003 o 203.
- Para NCC Serie B cód - 008 o 208.
- Para NDC Serie A cód - 002 o 202.
- Para NDC Serie B cód - 007 o 207.
- Por medio de la rutina Clientes (SIGAFIS >> Actualizaciones | Archivos), dar de alta un cliente para facturación.
- Por medio de la rutina Productos (SIGAFIS >> Actualizaciones | Archivos) configurar un producto.
- Por medio de la rutina Unidades de medida (SIGAFIS >> Actualizaciones | Archivos) configurar la unidad de medida informada en el producto, informar el campo AH_CODUMFEX.
- Por medio de la rutina Impuestos variables (SIGAFAT >> Actualizaciones | Archivos) configurar el impuesto IVA e informar el código AFIP que le corresponde en el campo FB_CODAFIP con el valor ‘5’.
- Por medio de la rutina Tipos de Entrada y Salida (Actualizaciones | Archivos), configurar una TES de entrada y una de salida. Cada una de las TES debe estar configurada para el cálculo de impuestos deseado.
- Por medio de la rutina Facturación (Actualizaciones | Facturación), registrar una factura de venta para el cliente, producto y TES configurada.
Para transmitir:
- Ingresar a la rutina Facturas electrónicas (Actualizaciones | Facturación) y realizar el siguiente procedimiento:
- Informar los parámetros de la rutina para la selección de los comprobantes por serie, punto de venta y tipo de factura (1-Nacional).
- ¿Tipo de e-Fact?: Selecciona qué tipos de Documentos se transmitirán, si serán documentos de entrada o de salida.
- ¿Filtra?: Selecciona qué documentos se transmitirán por su estatus actual, 1-No transmitida, 2-Autorizada, 3-Rechazada, 4-Cont. Manual, 5-Sin filtro.
- ¿Serie de la e-Fact?: Informamos la serie de documentos que se transmitirán, que fue vinculada al control de formularios.
- ¿Tipo de Factura electrónica?: Definimos qué modelo de Web Service se utilizará para transmitir estos documentos.
- ¿Punto de venta?: Informamos el punto de venta que fue vinculado a la serie en la rutina de control de formularios.
- En el menú Otras acciones hacer clic en la opción Transmisión, e informar la serie y rango de documentos por transmitir.
- En el menú Otras acciones hacer clic en la opción Monitor, e Informar la serie y rango de documentos por consultar.
- Confirmar que la factura esté autorizada.
- Ingresar a la rutina Facturas electrónicas (Actualizaciones | Facturación) y realizar el siguiente procedimiento:
II - TAGS que forman parte del archivo XML
El archivo xml estará compuesto por diferentes tags, y estas tags se alimentarán de acuerdo con las informaciones que se obtendrán a partir de los documentos transmitidos, a continuación se muestra la lista completa de estas tags y sus características.
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Concepto | Int(2) | Concepto del Comprobante. Valores permitidos: 1 Productos 2 Servicios 3 Productos y Servicios | S | Para Pedidos se obtiene por medio del campos C5_TPVENT, si fuera otro tipo de documento como Facturas, por ejemplo, se obtiene por el campo F2_TPVENT. |
DocTipo | Int (2) | Código de documento de identificación del comprador | S | Se realiza una búsqueda en la tabla SX5, utilizando como parámetro los campos A1/A2_AFIP, este campo trae el resultado obtenido en esa búsqueda. |
DocNro | Long (11) | Nro. De identificación del comprador | S | Se obtiene por el campo A2_CGC |
CbteDesde | Long (8) | Nro. De comprobante desde Rango 1- 99999999 | S | Se obtiene por el campo F1/F2_DOC |
CbteHasta | Long (8) | Nro. De comprobante registrado hasta Rango 1- 99999999 | S | Se obtiene por el campo F1/F2_DOC |
CbteFch | String (8) | Fecha del comprobante (yyyymmdd). Para concepto igual a 1, la fecha de emisión del comprobante puede ser hasta 5 días anteriores o posteriores con respecto a la fecha de generación: La misma no podrá exceder el mes de presentación. Si se indica Concepto igual a 2 ó 3 puede ser hasta 10 días anteriores o posteriores a la fecha de generación. Si no se envía la fecha del comprobante se asignará la fecha de proceso. Para comprobantes del tipo MiPyMEs (FCE) del tipo Factura, la fecha de emisión del comprobante debe ser desde 5 días anteriores y hasta 1 día posterior con respecto a la fecha de generación. Para notas de débito y crédito es hasta 5 días anteriores y tiene que ser posterior o igual a la fecha del comprobante asociado. | N | Se obtiene por el campo F1/F2_EMISSAO |
ImpTotal | Double (13+2) | Importe total del comprobante, Debe ser igual a Importe neto no gravado + Importe exento + Importe neto gravado + todos los campos de IVA al XX% + Importe de tributos. | S | Se obtiene por el campo F1/F2_VALBRUT |
ImpTotConc | Double (13+2) | Importe neto no gravado. Debe ser menor o igual a Importe total y no puede ser menor a cero. No puede ser mayor al Importe total de la operación ni menor que cero (0). Para comprobantes tipo C debe ser igual a cero (0). Para comprobantes tipo Bienes Usados – Emisor Monotributista este campo corresponde al importe subtotal. | S | Se obtiene por medio del cálculo F3_EXENTAS + el valor de deducción del IVA que se obtiene si el campo D1/D2_DESGR fuera mayor que cero |
ImpNeto | Double (13+2) | Importe neto gravado. Debe ser menor o igual a Importe total y no puede ser menor que cero. Para comprobantes tipo C este campo corresponde al Importe del Sub Total. | S | Se obtiene por medio del cálculo F1/F2_BASIMP - el valor de deducción del IVA que se obtiene si el campo D1/D2_DESGR fuera mayor que cero |
ImpOpEx | Double (13+2) | Importe exento. Debe ser menor o igual a Importe total y no puede ser menor a cero. Para comprobantes tipo C debe ser igual a cero (0). Para comprobantes tipo Bienes Usados – Emisor Monotributista no debe informarse o debe ser igual a cero (0). | S | Se obtiene por el cálculo F1/F2_VALMERC - F1/F2_BASIMP - el valor de deducción del IVA + F1/F2_DESPESA, específicamente cuando se trata de un documento de entrada, se sustraerá del campo F1_VALMERC el valor del campo F1_DESCONT |
ImpIVA | Double (13+2) | Suma de los importes del array de IVA. Para comprobantes tipo C debe ser igual a cero (0). Para comprobantes tipo Bienes Usados – Emisor Monotributista no debe informarse o debe ser igual a cero (0). | S | Se obtiene por medio de la acumulación de los valores en el campo F1/F2_VALIMP referentes al IVA. |
ImpTrib | Double (13+2) | Suma de los importes del array de tributos | S | Se obtiene por medio de la acumulación de los valores en el campo F1/F2_VALIMP referentes a los Ingresos brutos. |
FchServDesde | String (8) | Fecha de inicio del abono para el servicio a facturar. Dato obligatorio para concepto 2 o 3 (Servicios / Productos y Servicios). Formato yyyymmdd | N | Se obtiene por medio del campo F1/F2_FECDSE |
FchServHasta | String (8) | Fecha de final del abono para el servicio por facturar. Dato obligatorio para concepto 2 o 3 (Servicios / Productos y Servicios). Formato yyyymmdd. FchServHasta no puede ser menor que FchServDesde | N | Se obtiene por medio del campo F1/F2_FECHSE |
FchVtoPago | String (8) | Fecha de vencimiento del pago servicio por facturar. Dato obligatorio para concepto 2 o 3 (Servicios / Productos y Servicios) o Facturas del tipo MiPyMEs (FCE). Formato yyyymmdd. Debe ser igual o posterior a la fecha del comprobante. | N | Se obtiene por medio del campo E1_VENCREA si fuera una Factura de entrada y el valor del campo F2_RG1415 fuera menor o mayor/igual a 200, para otros documentos se obtiene por el campo F1/F2_EMISSAO |
MonId | Double (4+6) | Cotización de la moneda informada. Para PES, pesos argentinos esta debe ser 1 | S | Se obtiene por el resultado de la búsqueda realizada en la tabla SYF, en el campo YF_COD_GI, utilizando el campo F2_MOEDA como parámetro |
MonCotiz | Double (4+6) | Código de moneda del comprobante. Consultar método FEParamGetTiposMonedas para valores posibles | S | Se obtiene por medio del campo F1/F2_TXMOEDA si la moneda fuera diferente de "01", para moneda "01" la tasa será 1 |
CbtesAsoc | Array | Array para informar los comprobantes asociados | N | Arrays son estructuras que no tienen valores individualizados, es decir, estos son sesiones que traen otras tags, estas sí, tienen valores específicos que se detallarán más abajo |
Tributos | Array | Array para informar los tributos asociados a un comprobante. | N | |
IVA | Array | Array para informar las alícuotas y sus importes asociados a un comprobante. Para comprobantes tipo C y Bienes Usados – Emisor Monotributista no debe informar el array. | N | |
Opcionales | Array | Array de campos auxiliares. Reservado usos futuros. Adicionales por R.G. | N | |
Compradores | Comprador | Array para informar los múltiples compradores. | N | |
PeriodoAsoc | Periodo | Estructura compuesta por la fecha desde y la fecha hasta del período que se quiere identificar | N |
CbtesAsoc: Detalle de los comprobantes relacionados con el comprobante que se solicita autorizar (array).
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Tipo | Int (3) | Código de tipo de comprobante. Consultar método FEParamGetTiposCbte. | S | Se obtiene por medio de la validación de los campos D1/D2_SERIE + F1/F2_ESPECIE:
|
PtoVta | Int (5) | Punto de venta del comprobante asociado | S | Se obtiene por medio del campo D1/D2_DOC retirando el número del documento |
Nro | Long (8) | Número de comprobante asociado | S | Se obtiene por medio del campo D1/D2_DOC retirando el número del punto de venta |
Cuit | String(11) | Cuit emisor del comprobante asociado | N | Se obtiene por medio del campo M0_CGC |
CbteFch | String(8) | Fecha del comprobante asociado | N | Se obtiene por medio del campo D1/D2_EMISSAO |
Tributos: Detalle de tributos relacionados con el comprobante que se solicita autorizar (array).
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Id | Int (2) | Código tributo según método FEParamGetTiposTributos | S | Se obtiene por medio del campo FB_CODAFIP |
Desc | String (80) | Descripción del tributo | N | Se obtiene por medio del campo FB_DESCR |
BaseImp | Double (13+2) | Base imponible para la determinación del tributo | S | Se obtiene por medio del cálculo realizado del campo D1/D2_BASIMP * (D1/D2_DESGR/100) |
Alic | Double (3+2) | Alícuota | S | Se obtiene por medio del campo D1/D2_ALQIMP |
Importe | Double (13+2) | Importe del tributo | S | Se obtiene por medio del campo D1/D2_VALIMP |
IVA: Detalle de alícuotas relacionadas con el comprobante que se solicita autorizar (array).
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Id | Int (2) | Código de tipo de iva. Consultar método FEParamGetTiposIva | S | Se obtiene por medio del campo FB_CODAFIP |
BaseImp | Double (13+2) | Base imponible para la determinación de la alícuota. | S | Se obtiene por medio del cálculo realizado del campo D1/D2_BASIMP * (D1/D2_DESGR/100) |
Importe | Double (13+2) | Importe | S | Se obtiene por medio del campo D1/D2_VALIMP |
Comprador: Detalle compradores vinculados al comprobante que se solicita autorizar (array).
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
DocTipo | Int (2) | Tipo de documento del comprador | S | Se realiza una búsqueda en la tabla SX5, utilizando como parámetro los campos A1/A2_AFIP, este campo trae el resultado obtenido en esta búsqueda. |
DocNro | String (80) | Número de documento del comprador | S | Se obtiene por medio del campo A1/A2_CGC |
Porcentaje | Double (2+2) | Porcentaje de titularidad que tiene el comprador | S | Se obtiene por medio de la búsqueda realizada en la tabla AI0, en el campo AI0_PERCCO, utilizando los campos F2_CLIENTE+F2_LOJA |
Periodo: Estructura que permite que un rango de fechas sea compatible.
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
FchDesde | String(8) | Fecha correspondiente al inicio del periodo de los comprobantes que se quiere identificar | S | Se obtiene por medio del campo F1/F2_FEFIDDE |
FchHasta | String(8) | Fecha correspondiente al final del periodo de los comprobantes que se quiere identificar | S | Se obtiene por medio del campo F1/F2_FEFIHTA |
b – Exportación
El Web Service del tipo Exportación es responsable por la transmisión de Facturas, Notas de Crédito Cliente y Notas de Débito Cliente que utilizan las series A y B.
Configuraciones específicas del tipo Exportación:
I - Configuraciones
- Por medio de la rutina Punto de Venta(SIGAFIS >> Actualizaciones | Archivos), configurar los puntos de venta para la emisión de los comprobantes de factura electrónica.
- Por medio de la rutina Formularios(SIGAFIS >> Actualizaciones | Archivos), configurar las series y punto de venta para la emisión de los comprobantes del régimen Exportación, el campo Cód .RG1415 (FP_RG1415).
- Para Facturas Serie A cód - 001 o 201.
- Para Facturas Serie B cód - 006 o 206.
- Para NCC Serie A cód - 003 o 203.
- Para NCC Serie B cód - 008 o 208.
- Para NDC Serie A cód - 002 o 202.
- Para NDC Serie B cód - 007 o 207.
- Por medio de la rutina Clientes(SIGAFIS >> Actualizaciones | Archivos), dar de alta un cliente para facturación.
- Por medio de la rutina Productos(SIGAFIS >> Actualizaciones | Archivos) configurar un producto.
- Por medio de la rutina Unidades de medida(SIGAFIS >> Actualizaciones | Archivos) configurar la unidad de medida informada en el producto, informar el campo AH_CODUMFEX.
- Por medio de la rutina Impuestos variables(SIGAFAT >> Actualizaciones | Archivos) configurar el impuesto IVA e informar el código AFIP que le corresponde en el campo FB_CODAFIP con el valor ‘5’.
- Por medio de la rutina Tipos de Entrada y Salida(Actualizaciones | Archivos), configurar una TES de entrada y una de salida. Cada una de las TES debe estar configurada para el cálculo de impuestos deseado.
- Por medio de la rutina Facturación(Actualizaciones | Facturación), registrar una factura de venta para el cliente, producto y TES configurada.
Para transmitir:
- Ingresar a la rutina Facturas electrónicas(Actualizaciones | Facturación) y realizar el siguiente procedimiento:
- Informar los parámetros de la rutina para la selección de los comprobantes por serie, punto de venta y tipo de factura (2-Exportación).
- ¿Tipo de e-Fact?: Selecciona qué tipos de Documentos se transmitirán, si serán documentos de entrada o de salida.
- ¿Filtra?: Selecciona qué documentos se transmitirán por su estatus actual, 1-No transmitida, 2-Autorizada, 3-Rechazada, 4-Cont. Manual, 5-Sin filtro.
- ¿Serie de la e-Fact?: Informamos la serie de documentos que se transmitirán, que fue vinculada al control de formularios.
- ¿Tipo de Factura electrónica?: Definimos qué modelo de Web Service se utilizará para transmitir estos documentos.
- ¿Punto de venta?: Informamos el punto de venta que fue vinculado a la serie en la rutina de control de formularios.
- En el menú Otras acciones hacer clic en la opción Transmisión, e informar la serie y rango de documentos por transmitir.
- En el menú Otras acciones hacer clic en la opción Monitor, e Informar la serie y rango de documentos por consultar.
- Confirmar que la factura esté autorizada.
II - TAGS que forman parte del archivo XML
El archivo xml estará compuesto por diferentes tags, y estas tags se alimentarán de acuerdo con las informaciones que se obtendrán a partir de los documentos transmitidos, a continuación se muestra la lista completa de estas tags y sus características.
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Cbte_Tipo | Short(N2) | Tipo de comprobante. Consultar método FEXGetPARAM_Cbte_Tipo Valores permitidos 19,20,21 | S | Se obtiene del campo F1/F2_ESPECIE |
Fecha_cbte | String | Fecha de comprobante (yyyymmdd) | N | Se obtiene por el campo F1/F2_EMISSAO |
Punto_vta | Int (N5) | Punto de venta | S | Se obtiene por el campo FI/ F2_PV |
Cbte_nro | Long (N8) | Número del comprobante que se solicita autorización. Valores permitidos: desde 00000001 hasta 99999999 | S | Se obtiene por el campo F1/F2_DOC |
Permiso_existente | String (C1) | Indica si se posee documento aduanero de exportación. Valores: S,N | S | Se obtiene del campo A1/A2_CGC |
Dst_cmp | Double | País de destino del comprobante. Consultar método FEXGetPARAM_DST_pais para código de países. | S | Se obtiene del campo C5_PAISENT |
Cliente | String (C200) | Apellido y nombre del comprador | S | Se obtiene del campo A1/A2_NOME |
Cuit_pais_cliente | Long (N11) | CUIT del país destino/Contribuyente. Consultar método FEXGetPARAM_DST_CUIT para valores de cuit de países. | N | Se obtiene del campo A1/A2_CGC |
Domicilio_cliente | String (C300) | Domicilio comercial cliente. | S | Se obtiene del campo A1/A2_END |
Moneda_ID | String(C4) | Código de moneda. Consultar método FEXGetPARAM_MON para valores permitidos. | S | Se obtiene del campo F1/F2_TXMOEDA |
Moneda_Ctz | Decimal(N4,6) | Cotización moneda. Consultar método FEXGetPARAM_Ctz. | S | Se obtiene del campo F1/F2_TXMOEDA |
Obs_comerciales | String(c4000) | Observaciones comerciales | N | Se obtiene del campo A1A2/_ENDENT |
Imp_total | Decimal(n13,2) | Importe total | S | Se obtiene del campo F1/F2_VALBRUT |
Obs | String(c1000) | Observaciones | N | |
Forma_pago | String(C50) | Forma de pago. | N | Se obtiene del campo F1/F2_PERMISSO |
Incoterms | String(C3) | Incoterms | N | Se obtiene del campo C5_INCOTER |
Incoterms_Ds | String(C20) | Información adicional Incoterms | N | |
Idioma_cbte | String(C1) | Código de idioma. Consultar método FEXGetPARAM_Idiomas para valores permitidos. | S | Se obtiene por el campo F1/F2_IDIOMA |
Fecha_pago | String(C8) | Fecha de comprobante (yyyymmdd | N | Se obtiene del campo E1/E2_VENCREA |
Permisos: detalle de los permisos de embarque y destinos de las mercaderías:
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Id_permisos | String (C16) | Código de despacho – Permiso de Embarque | N | Se obtiene del campo F1/F2_PERMISS |
Dst_merc | Int(N3) | País de destino de la mercadería. | N | Se obtiene del campo F1/F2_PAISENT |
Cmps_asoc: detalle de los comprobantes relacionados con el comprobante que se solicita autorizar.
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Cbte_tipo | Short(N3) | Código de tipo de comprobante. | N | Se obtiene del campo A1_TIPO |
Cbte_punto_vta | Int(N5) | Punto de venta | N | Se obtiene del campo F1/F2_PV |
Cbte_nro | Long(N8) | Número de comprobante | N | Se obtiene del campo F1/F2_DOC |
Items: el detalle de los ítems del comprobante está compuesto por los siguientes campos:
Campo | Tipo | Detalle | Obligatorio | Cómo se obtiene |
Pro_codigo | String (C50) | Código de producto | N | Se obtiene del campo D1/D2_COD |
Pro_ds | String (C4000) | Descripción de producto | S | Se obtiene del campo D1/D2_DESC |
Pro_qty | Decimal (N12,6) | Cantidad | N | Se obtiene por el campo D1/D2_QUANT |
Pro_precio_uni | Decimal (N12,6) | Precio unitario | N | Se obtiene por el campo D1/D2_VUNIT |
Pro_total_item | Decimal (N13,2) | Importe total ítem | S | Se obtiene por el campo D1/D2_TOTAL |
E. Nacional C.A.E.A
El regimen C.A.E.A o el Código de Autorización Electrónico Anticipado, es uno de los regímenes de facturación admitidos por la AFIP que complementa al Código de Autorización Electrónico (CAE), se le conoce como C.A.E.A porque permite la autorización para emitir los comprobantes que otorgada por la AFIP de forma anticipada, mediante la utilización de una clave fiscal. Este código tiene validez solamente para los comprobantes electrónicos que se emitan quincenalmente dentro del mes calendario. Conoce mas información sobre el C.A.E.A dando click Aqui.
03. Referencia
Manual de desarollo AFIP: https://www.afip.gob.ar/ws/documentacion/ws-factura-electronica.asp
- documento_de_referencia
- base_conocimiento
- base_de_conocimiento
- totvs_backoffice
- linea_protheus
- protheus_backoffice
- backoffice
- mercado_internacional
- protheus
- version_12_1_17
- version_12_1_23
- version_12_1_25
- version_12_1_27
- version_12_1_33
- version_12_1_2210
- argentina
- arg
- factura_electronica
- afip
- nfaexml001
- argnfe
- sigafat
- tss
- web_services
- xml
- tags_xml
- rg1415
- controle_formularios
- facturas
- notas_credito
- notas_debito
- control_formularios
- notas_fiscais