Especificación | |||
Producto | Microsiga Protheus | Módulo | SIGAFIN |
Segmento ejecutor | Servicios | ||
Projeto1 | Proyecto de Desarrollo_MEX | IRM/EPIC1 | |
Requisito/Story/Issue1 | SERINN001-1144 | Subtarea1 | SERINN001-1158 |
Chamado/Ticket2 |
| ||
País | ( ) Brasil ( ) Argentina ( ) México ( ) Chile ( ) Paraguay ( ) Ecuador ( ) EEUU ( ) Colombia ( X ) PERU. | ||
Otros |
|
Leyenda: 1 – Innovación 2 – Mantenimiento (Los demás campos se deben completar en ambos los procesos).
Crear la función M486CERXML para generar XML del resumen diario así como realizar el envío de este XML a TSS.
Modificar FINA085A para que guarde el contenido del parámetro MV_CRSERIE en el campo FE_SERIE2 al generarse el Comprobante de Retención.
Modificar MATA486 para tratamiento de monitoreo y transmisión de comprobante de retención.
Modificar la rutina Documentos Electrónicos (MATA486) , que permita realizar la transferencia y monitoreo de los documentos fiscales:
Generar y enviar hacia TSS en formato xml bajo el estándar UBL que solicita la SUNAT.
Al ingresar a la rutina, deberá válidar que si es detonada desde el módulo de Libros Fiscales(SIGAFIS) o Compras(SIGACOM) no preguntar tipo de documento, mostrar directamente los comprobantes de Retención.
Visualizará el browse del rutina (Prototipo 1) con los Comprobantes de Retención(SFE). Dentro de las opciones de la rutina, se encontrarán(Prototipo 2):
Opción Configuración:
Esta opción Configuración (Prototipo 3) permitirá configurar la conexión de Protheus con TSS. Se abrirá un wizard (Prototipo 4) en dónde pedirán los siguientes datos:
Al dar clic en “Avanzar”, deberá detonar la siguiente funcionalidad:
Si alguno de los datos está vació, deberá enviar mensaje al usuario y no continuar con el proceso.
El idEnt que retorna el web Method, deberá ser utilizado en el siguiente paso.
Opción Transmitir.
Esta opción tiene como objetivo realizar el proceso de transmisión de un documento hacia TSS. Esta función deberá ser independiente y puede ser llamada desde un menú o dentro de otra función. Al detonar esta opción, se mostrará el grupo de preguntas MATA485E para Comprobantes de Retención(Prototipo 6). Se deberá indicar rango de documentos a transmitir. Al dar clic en ok, deberá:
RUC (A2_CGC)
Nombre(A2_NOME)
Domicilio fiscal (A2_END, A2_EST,A2_BAIRRO, A2_MUN, A2_PAIS, A2_CEP)
Tipo de documento de Indentificación(A2_TIPDOC)
Email (A2_EMAIL)
Para el caso del tipo de Identificación (A2_TIPDOC), deberá revisar que el código exista en la tabla XN- Tipos de Identificación. Así mismo, deberá validar que el Código de País (A2_PAIS) contenga su equivalente en el campo YA_CODERP y que además este código se encuentre contenido en la tabla XT – Códigos de Países.
Si alguno de los datos anteriores falta deberá agregar un registro al log de transmisión indicando el dato faltante para el documento. Ejemplo:
Documento Serie Proveedor Tienda Detalle
00000001 R001 000001 01 Información faltante registro cliente RUC(A2_CGC)
00000001 R001 000001 01 Información faltante registro cliente País(A2_PAIS)
Ejemplo:
Documento Serie Proveedor Tienda Detalle
0000000001 R001 000001 01 Serie del Comprobante vacía(FE_SERIE2)
Si el documento cumple con las validaciones anteriores, se debe generar el XML en formato UBL indicado por la SUNAT.
Si no, agregar registro en el log de transmisión con el mensaje retornado por el Web Method. Ejemplo:
Documento Serie Proveedor Tienda Detalle
00000001 R001 000001 01 El documento no cumple con Esquema
Establecido. Rechazado TSS.
Si no cumplió las validaciones mencionadas en el paso 2, no debe generarse XML y validar el siguiente registro. Si cumple con las validaciones continuar al siguiente paso.
Al finalizar de Procesar y transmitir todos los registros:
Tipo de documento Transmitido: Comprobante de Retención
Documento Serie Proveedor Tienda Detalle
00000001 R001 000001 01 Información faltante registro proveedor
RUC (A1_CGC)
00000001 R001 000001 01 Información faltante registro proveedor
(A2_PAIS)
00000003 R001 000001 01 El documento no cumple con Esquema
Establecido. Rechazado TSS.
00000002 R001 000001 01 Transmisión Éxitosa a TSS.
Documentos procesados: 3
Documentos con error : 2
Documentos transmitidos: 1
Opción Monitor
El objetivo de esta opción, es obtener el resultado de la transmisión de los documentos a TSS. La funcionalidad podrá detonarse mediante selección en el menú (se considera que esta función no sea de tipo estática, para que pueda ser llamada desde cualquier otra rutina).
Si la opción es llamada desde el menú Acciones Relacionadas:
USERTOKEN: “TOTVS”
IDENT: Id de la Entidad
IdDoc: Id del documento formado por serie + No. De documento
Modelo: Enviar S7- Comprobante Retención
<body>
< ConsultaDocResult>
<idDoc>String</idDoc>
<Status>boolean</Status>
<Ambiente>boolean</Ambiente>
<codigo>String</codigo>
<descripcion>String</descricao>
<recomendacion>String</recomendacion>
<FechaAut>Date</FechaAut>
<HrAut>String</HrAut>
<XML>Base64Binary</XML>
</ConsultaDocResult>
</body>
Status :
Si el campo Satus del retorno del web method corresponde con los siguientes códigos, deberá pintar según el color:
Si Status es 1 Recibido por TSS Color Azúl
Si Status es 4 Aguardando procesamiento Color Amarillo
Si Status es 5 Documento Rechazado Color Rojo
Si Status es 6 Documento Autorizado Color Verde
Documento: Mostar propiedad idDoc del retorno del Web Method.
Ambiente: Si el retorno del campo Ambiente es 1 colocar “Producción”, si es 2 colocar “Homologación”.
Fch. Aut. : Fecha de Autorización del Documento. Propiedad FechaAut
Hr. Aut.: Hora de Autorización del documento. Propiedad HrAut
Mensaje: Mensaje retornado. Propiedad Descripción.
Recomendación: en esta columna será informado propiedad Recomendación.
Si el documento fue autorizado, deberá obtener de la propiedad XML el documento autorizado codificado en Base64 y decodificarlo. Guardarlo en la carpeta configurada en parámetro MV_CFDDOCS + “/autorizados/” +especie con nombre de archivo formado por Propiedad idDocumento + especie + extensión xml
FE_STATUS:= Propiedad Status
FE_FECAUT:= Propiedad FechaAut
Generación del XML
Los parámetros que deberá recibir la función son los siguientes:
Buscar en SFE los registros asociados al número de documento (FE_NFISCAL=Número de documento,FE_SERIE= Serie, FE_FORNECE=Proveedor, FE_LOJA= Tienda)
Retornará XML obedeciendo a la siguiente estructura.
Elemento | TAG UBL | Descripción | Tam | Oblig | Valor | ||||||
Adicionales
| <UBLExtensions> | Contenedor de Componentes de extensión. Podrán incorporarse nuevas definiciones estructuradas cuando sean de interés conjunto para emisores y receptores, y no estén ya definidas en el esquema de la factura |
| x |
| ||||||
<ext:UBLExtension> | Deberá generarse para Información Adicional sobre la factura por conceptos de otros tributos y operaciones |
|
|
| |||||||
<ext:ExtensionContent> |
|
|
|
| |||||||
|
|
|
| Generar sin contenido de la siguiente manera: <ext:UBLExtension> <ext:ExtensionContent> </ext:ExtensionContent> </ext:UBLExtension> | |||||||
Identificación del Documento
| <cbc:UBLVersionID> | Versión UBL | 3 | X | Fijo “2.0” | ||||||
<cbc:CustomizationID> | Versión de la estructura del Documento | 3 | X | Fijo “1.0” | |||||||
<cbc:ID> | Identificador del resumen
| Max. 13 | X | FE_SERIE2 comenzando con la letra R + corelativo 8 digitos FE_NROCERT | |||||||
<cbc:IssueDate> | Fecha de Generación | 10 | X | FE_EMISSAO en formato YYYY-MM-DD
| |||||||
Firma Electrónica | <cac:Signature>
| Referencia a la Firma Digital |
|
|
| ||||||
<cbc:ID> | Identificador de la firma |
|
| Fijo “IDSignTOTVS” | |||||||
<cac:SignatoryParty> <cac:PartyIdentification> <cbc:ID> | Identificación de la parte firmante | 13 |
| SM0->M0_CGC | |||||||
<cac:SignatoryParty> <cac:PartyName> <cbc:Name> | Nombre de la parte firmante
|
|
| SM0->M0_NOME | |||||||
<cac:DigitalSignatureAttachment> <cac:ExternalReference> <cbc:URI> | Asociación con la firma codificada
|
|
| Colocar fijo “#SignatureTOTVS” | |||||||
Información del Emisor
| <cac:AgentParty> | Datos del emisor Electrónico |
| x |
| ||||||
<cac:PartyIdentification> |
| 11 | x |
| |||||||
<cbc:ID schemeID="X"> | Ruc del emisor
| 1 | x | X = Fijo ‘6’ M0_CGC | |||||||
<cac:PartyName> | Razon social |
| x |
| |||||||
<cbc:Name> | Razón Social |
|
| M0_NOME | |||||||
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | M0_NOME | |||||||
<cac:Party> | Razón social y Domicilio fiscal del Emisor |
| x |
| |||||||
<cac:PartyName> | Nombre de la Empresa |
| X |
| |||||||
<cbc:Name> | Nombre commercial | Max 100 | x | M0_NOMECOM | |||||||
<cac:PostalAddress> | Domicilio Fiscal |
| X |
| |||||||
<cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | M0_CEP homologado con ubígeos | |||||||
<cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | M0_ENDENT | |||||||
<cbc:CityName> | Provincia | Max 30 | X | M0_CIDENT | |||||||
<cbc:District> | Distrito | Max 30 | X | M0_BAIRENT | |||||||
<cac:Country> | Datos Pais |
| X |
| |||||||
<cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 | 2 | X | Fijo “PE” | |||||||
<cac:PartyLegalEntity> | Razón Social |
|
|
| |||||||
<cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | M0_NOME | |||||||
Información del Receptor | <cac:ReceiverParty> | Datos del Adquirente o Usuario
|
| x |
| ||||||
| <cac:PartyIdentification> | RUC | 11 | X |
| ||||||
| <cbc:ID schemeID="6"> | Tipo de documento de identificación. Catálogo No. 6
| 2 | X | X = ‘6’ A2_CGC | ||||||
| <cac:PartyName> |
|
|
|
| ||||||
| <cbc:Name> | Nombre del proveedor |
|
| A2_NOME | ||||||
| <cac:PostalAddress> | Domicilio Fiscal |
| X |
| ||||||
| <cbc:ID> | Código Postal. Catálogo No. 13 | 6 | X | A1_CEP homologado con ubígeos | ||||||
| <cbc:StreetName> | Dirección Completa y detallada | Max 100 | X | A1_END | ||||||
| <cbc:CityName> | Provincia | Max 30 | X | A1_MUN | ||||||
| <cbc:District> | Distrito | Max 30 | X | A1_BAIRRO | ||||||
| <cbc:CountrySubentity> | pAIS |
|
| A2_PAIS | ||||||
|
|
|
|
|
| ||||||
| <cac:Country> | Datos Pais |
| X |
| ||||||
| <cbc:IdentificationCode> | Código de Identificación del País. Catálogo No. 04 |
|
| Obtener de SYA->YA_CODERP por medio de A2_PAIS | ||||||
| <cac:PartyLegalEntity> | Razón Social |
|
|
| ||||||
| <cbc:RegistrationName> | Apellidos y nombres, denominación o razón social
| Max 100 | X | A1_NOME | ||||||
| <sac:SUNATRetentionSystemCode> | Corresponde al régimen de retención aplicable al comprobante de retención electrónico. |
|
| Fijo “01” | ||||||
| <sac:SUNATRetentionPercent> | Porcentaje de retención |
|
| FE_ALIQ | ||||||
| <cbc:Note/> |
|
|
| Generar en blanco | ||||||
| <cbc:TotalInvoiceAmount currencyID="XXX"> |
|
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") FE_VALIMP | ||||||
| <sac:SUNATTotalPaid currencyID="XXX"> | Total a pagar |
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
FE_VALBASE-FE_VALIMP | ||||||
| <sac:SUNATRetentionDocumentReference> | Datos del Comprobante Relacionado |
|
|
| ||||||
| <cbc:ID schemeID="xx"> | Documento de referencia |
|
| Dónde XX=
F1_SERIE2+F1_DOC
| ||||||
| <cbc:IssueDate> | Fecha de emsicion |
|
| F1_EMISSAO en format YYYY-MM-DD | ||||||
| <cbc:TotalInvoiceAmount currencyID="XXX"> |
|
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
F1_VALBRUT | ||||||
| <cac:Payment> | Datos del Pago |
|
|
| ||||||
| <cbc:ID> | Número de Pago |
|
| Fijo “1” | ||||||
| <cbc:PaidAmount currencyID="XXX"> | Total del Pago |
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
F1_VALBRUT | ||||||
| <cbc:PaidDate> | Fecha de Pago |
|
| F1_EMISSAO | ||||||
| <sac:SUNATRetentionInformation> | Datos de la Retención |
|
|
| ||||||
| <sac:SUNATRetentionAmount currencyID="XXX"> | Monto de la retención |
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA")
FE_VALIMP | ||||||
| <sac:SUNATRetentionDate> | Fecha de retención |
|
| FE_EMISSAO | ||||||
| <sac:SUNATNetTotalPaid currencyID="XXX"> | Total a pagar |
|
| XxX=POSICIONE("SX5",1,XFILIAL("SX5")+”XQ”+F1_MOEDA,"X5_DESCSPA") FE_VALBASE-FE_VALIMP |
Rutina | Tipo de Operación | Opción de Menú | Reglas de Negocio |
M486CERXML | Creación | N/A | Llamada desde MATA486 |
MATA486 | Modificación | Actualizaciones -> Movimientos-> Documentos electrónicos |
|
FINA087A | Modificación | SIGAFIN->Actualizaciones -> Orden de Pago |
|
Ejemplo de aplicación:
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<Retention
xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:Retention-1"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:ccts="urn:un:unece:uncefact:documentation:2"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
xmlns:sac="urn:sunat:names:specification:ubl:peru:schema:xsd:SunatAggregateComponents-1"
xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent/>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<cbc:CustomizationID>1.0</cbc:CustomizationID>
<cac:Signature>
<cbc:ID>IDFIRMA</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20382567855</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>STARSOFT</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>IDFIRMA</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cbc:ID>R001-123</cbc:ID>
<cbc:IssueDate>2016-06-21</cbc:IssueDate>
<cac:AgentParty>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20382567855</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>STARSOFT</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:ID>150136</cbc:ID>
<cbc:StreetName><![CDATA[CALLE TIAHUANACO 146]]></cbc:StreetName>
<cbc:CitySubdivisionName>URB. MARANGA</cbc:CitySubdivisionName>
<cbc:CityName>LIMA</cbc:CityName>
<cbc:CountrySubentity>LIMA</cbc:CountrySubentity>
<cbc:District>SAN MIGUEL</cbc:District>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName><![CDATA[ENTERPRISE SOLUTIONS S.A.]]></cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:AgentParty>
<cac:ReceiverParty>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20101295673</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name><![CDATA[FABRICACIONES ONUR SAC]]></cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:ID>150101</cbc:ID>
<cbc:StreetName><![CDATA[AV. ABANCAY 1023]]></cbc:StreetName>
<cbc:CitySubdivisionName>CERCADO DE LIMA</cbc:CitySubdivisionName>
<cbc:CityName>LIMA</cbc:CityName>
<cbc:CountrySubentity>LIMA</cbc:CountrySubentity>
<cbc:District>LIMA</cbc:District>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName><![CDATA[FABRICACIONES ONUR SAC]]></cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:ReceiverParty>
<sac:SUNATRetentionSystemCode>01</sac:SUNATRetentionSystemCode>
<sac:SUNATRetentionPercent>3.00</sac:SUNATRetentionPercent>
<cbc:Note/>
<cbc:TotalInvoiceAmount currencyID="PEN">35.40</cbc:TotalInvoiceAmount>
<sac:SUNATTotalPaid currencyID="PEN">1144.60</sac:SUNATTotalPaid>
<sac:SUNATRetentionDocumentReference>
<cbc:ID schemeID="01">F001-540</cbc:ID>
<cbc:IssueDate>2016-06-01</cbc:IssueDate>
<cbc:TotalInvoiceAmount currencyID="PEN">1180.00</cbc:TotalInvoiceAmount>
<cac:Payment>
<cbc:ID>1</cbc:ID>
<cbc:PaidAmount currencyID="PEN">1180.00</cbc:PaidAmount>
<cbc:PaidDate>2016-06-21</cbc:PaidDate>
</cac:Payment>
<sac:SUNATRetentionInformation>
<sac:SUNATRetentionAmount currencyID="PEN">35.40</sac:SUNATRetentionAmount>
<sac:SUNATRetentionDate>2016-06-21</sac:SUNATRetentionDate>
<sac:SUNATNetTotalPaid currencyID="PEN">1144.60</sac:SUNATNetTotalPaid>
</sac:SUNATRetentionInformation>
</sac:SUNATRetentionDocumentReference>
</Retention>
Tablas Utilizadas
Prototipo 1
Prototipo 2
Prototipo 3
Prototipo 4
Prototipo 5
Prototipo 6
Prototipo 7
Prototipo 8
Prototipo 9
Prototipo 10
Prototipo 11
Prototipo 12
Prototipo 13
Prototipo 14
Prototipo 15
Prototipo 16
Prototipo 17
Prototipo 18
Archivo o Código del Script:
SFE– Retenciones de Impuestos
Campo | FE_FECAUT |
Tipo | D |
Tamaño | 8 |
Valor Inicial |
|
Obligatorio | Sí ( ) No ( X) |
Descripción | Fecha de Autorización |
Título | Fch Aut |
Picture |
|
Help de Campo | Fecha de Autorización Digital |
Contexto | Real |
Propiedad | Modificar |
Uso | Usado |
Campo | FE_STATUS |
Tipo | C |
Tamaño | 1 |
Valor Inicial |
|
Obligatorio | Sí ( ) No ( X) |
Descripción | Estatus Transmisión Electrónica |
Título | Status Trans |
Picture | @! |
Help de Campo | Indica el estatus del documento una vez que ha sido enviado al TSS |
Contexto | Real |
Propiedad | Modificar |
Uso | usado |
Campo | FE_NUMAUT |
Tipo | C |
Tamaño | 37 |
Valor Inicial |
|
Obligatorio | Sí ( ) No ( X) |
Descripción | Número de Autorizacion |
Título | Num Aut |
Picture | @! |
Help de Campo | Número de Autorización que indica la SUNAT |
Contexto | Real |
Propiedad | Modificar |
Uso | usado |
Campo | FE_SERIE2 |
Tipo | C |
Tamaño | 4 |
Valor Inicial |
|
Obligatorio | Sí () No (X) |
Descripción | Serie 2 |
Título | Serie 2 |
Picture | @! |
Help de Campo | Serie del comprobante de Retención a 4 caracteres que deberá iniciar con la letra”R” seguida de un correlativo alfanumérico de 3 dígitos. |
Contexto | Real |
Propiedad | Modificar |
Uso | usado |
Validación | NaoVazio() |
Nombre: MATA486F
X1_ORDEM | 01 |
X1_PERGUNT | ¿Serie de De Comprobante Ret? |
X1_TIPO | C |
X1_TAMANHO | 4 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 |
|
X1_CNT01 |
|
X1_HELP | Informe el número de Serie a 4 caracteres del comprobante de Retención |
X1_ORDEM | 02 |
X1_PERGUNT | ¿De Comprobante de Retención? |
X1_TIPO | C |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR02 |
X1_DEF01 |
|
X1_CNT01 |
|
X1_HELP | Informe el número de Comprobante de Retención Inicial |
X1_VALID |
X1_ORDEM | 03 |
X1_PERGUNT | ¿A Comprobante de Retención? |
X1_TIPO | C |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR03 |
X1_DEF01 |
|
X1_CNT01 |
|
X1_HELP | Informe el número de Comprobante de Retención final |
X1_VALID | !Empty(MV_PAR03) |
SIGAFIN -> Actualizaciones -> Cuentas por Pagar->Documentos Electrónicos
Este documento es un material de especificación de los requisitos de innovación. Se trata de un contenido sumamente técnico. |
---|