Diferencia entre revisiones de «Integración Directa - Web Service SOAP»
Línea 90: | Línea 90: | ||
|<!---Campo---> style="color: blue; text-align:center" | <tem:usuario> | |<!---Campo---> style="color: blue; text-align:center" | <tem:usuario> | ||
|<!---Descripción---> Usuario de Integración Emitido por el Sistema | |<!---Descripción---> Usuario de Integración Emitido por el Sistema | ||
|<!---Tipo|Longitud---> | |<!---Tipo|Longitud---> style="text-align:center;"| | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center" | <tem:clave> | |<!---Campo---> style="color: blue; text-align:center" | <tem:clave> | ||
|<!---Descripción---> Contraseña de Integración Emitido por el Sistema | |<!---Descripción---> Contraseña de Integración Emitido por el Sistema | ||
|<!---Tipo|Longitud---> | |<!---Tipo|Longitud---> style="text-align:center;"| | ||
|} | |} | ||
Línea 122: | Línea 122: | ||
|<!---Descripción---> Dirección del domicilio fiscal | |<!---Descripción---> Dirección del domicilio fiscal | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:lugarExpedicion> | |<!---Campo---> style="color: blue; text-align:center"| <per:lugarExpedicion> | ||
|<!---Descripción---> Código asignado por SUNAT para el establecimiento anexo declarado en el RUC | |<!---Descripción---> Código asignado por SUNAT para el establecimiento anexo declarado en el RUC | ||
|<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>4 | |<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>4 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> F, B, NC, ND | |<!---Obligatorio---> style="text-align:center;"| F, B, NC, ND | ||
|<!---Opcional---> | |<!---Opcional---> style="text-align:center;"| | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:ruc> | |<!---Campo---> style="color: blue; text-align:center"| <per:ruc> | ||
|<!---Descripción---> RUC del emisor | |<!---Descripción---> RUC del emisor | ||
|<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>11 | |<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>11 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:serialCaja> | |<!---Campo---> style="color: blue; text-align:center"| <per:serialCaja> | ||
|<!---Descripción---> Serial numérico del equipo o aplicación en caso de que el emisor utilice un medio diferente al WS | |<!---Descripción---> Serial numérico del equipo o aplicación en caso de que el emisor utilice un medio diferente al WS | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...15 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...15 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|} | |} | ||
Línea 174: | Línea 174: | ||
|<!---Descripción---> Departamento de la dirección del cliente | |<!---Descripción---> Departamento de la dirección del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:direccion> | |<!---Campo---> style="color: blue; text-align:center"| <per:direccion> | ||
|<!---Descripción---> Dirección del cliente | |<!---Descripción---> Dirección del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:distrito> | |<!---Campo---> style="color: blue; text-align:center"| <per:distrito> | ||
|<!---Descripción---> Distrito de la dirección del cliente | |<!---Descripción---> Distrito de la dirección del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:email> | |<!---Campo---> style="color: blue; text-align:center"| <per:email> | ||
|<!---Descripción---> Email del cliente. Debe ser una dirección válida para el envío correcto del documento electrónico | |<!---Descripción---> Email del cliente. Debe ser una dirección válida para el envío correcto del documento electrónico | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:notificar> | |<!---Campo---> style="color: blue; text-align:center"| <per:notificar> | ||
|<!---Descripción---> Flag de notificación para envío de correo electrónico | |<!---Descripción---> Flag de notificación para envío de correo electrónico | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>2 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>2 | ||
|<!---Formato---> '''SI''' para notificar<br/>'''NO''' en caso contrario | |<!---Formato---> style="text-align:center"| '''SI''' para notificar<br/>'''NO''' en caso contrario | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:numDocumento> | |<!---Campo---> style="color: blue; text-align:center"| <per:numDocumento> | ||
|<!---Descripción---> Número de documento del cliente | |<!---Descripción---> Número de documento del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...13 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...13 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> F, NC, ND | |<!---Obligatorio---> style="text-align:center;"| F, NC, ND | ||
|<!---Opcional---> B* | |<!---Opcional---> style="text-align:center;"| B* | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:pais> | |<!---Campo---> style="color: blue; text-align:center"| <per:pais> | ||
|<!---Descripción---> País al que hace referencia la dirección | |<!---Descripción---> País al que hace referencia la dirección | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:provincia> | |<!---Campo---> style="color: blue; text-align:center"| <per:provincia> | ||
|<!---Descripción---> Provincia de la dirección del cliente | |<!---Descripción---> Provincia de la dirección del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:razonSocial> | |<!---Campo---> style="color: blue; text-align:center"| <per:razonSocial> | ||
|<!---Descripción---> Nombres y Apellidos o Razón social del cliente | |<!---Descripción---> Nombres y Apellidos o Razón social del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...100 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> F, NC, ND | |<!---Obligatorio---> style="text-align:center;"| F, NC, ND | ||
|<!---Opcional---> B* | |<!---Opcional---> style="text-align:center;"| B* | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:telefono> | |<!---Campo---> style="color: blue; text-align:center"| <per:telefono> | ||
|<!---Descripción---> Teléfono del cliente | |<!---Descripción---> Teléfono del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...50 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...50 | ||
|<!---Formato---> | |<!---Formato---> style="text-align:center"| | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:tipoDocumento> | |<!---Campo---> style="color: blue; text-align:center"| <per:tipoDocumento> | ||
|<!---Descripción---> Tipo de documento del cliente | |<!---Descripción---> Tipo de documento del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...13 | |<!---Tipo|Longitud---> style="text-align:center;"| AN<nowiki>|</nowiki>...13 | ||
|<!---Formato---> Catálogo N° 06 | |<!---Formato---> style="text-align:center"| Catálogo N° 06 | ||
|<!---Obligatorio---> F, NC, ND | |<!---Obligatorio---> style="text-align:center;"| F, NC, ND | ||
|<!---Opcional---> B* | |<!---Opcional---> style="text-align:center;"| B* | ||
|- | |- | ||
|<!---Campo---> style="color: blue; text-align:center"| <per:ubigeo> | |<!---Campo---> style="color: blue; text-align:center"| <per:ubigeo> | ||
|<!---Descripción---> Ubigeo de la dirección del cliente | |<!---Descripción---> Ubigeo de la dirección del cliente | ||
|<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>6 | |<!---Tipo|Longitud---> style="text-align:center;"| N<nowiki>|</nowiki>6 | ||
|<!---Formato---> Catálogo N° 13 | |<!---Formato---> style="text-align:center"| Catálogo N° 13 | ||
|<!---Obligatorio---> | |<!---Obligatorio---> style="text-align:center;"| | ||
|<!---Opcional---> F, B, NC, ND | |<!---Opcional---> style="text-align:center;"| F, B, NC, ND | ||
|} | |} | ||
* : En el caso de Boletas, debe viajar esta información de forma obligatoria cuando el monto total supera los S/ 700. | |||
==Método == | ==Método == | ||
==Método == | ==Método == | ||
==Método == | ==Método == |
Revisión del 18:34 7 may 2021
Proceso
Como requerimiento inicial, es necesario a través de la integración directa, rellenar el objeto del método Enviar con los datos del comprobante de pago a emitir, para luego -si la respuesta es satisfactoria-, descargar y obtener los archivos PDF, XML y CDR del comprobante emitido; caso contrario, recibir el código de error correspondiente.
Consideraciones
- El Analista de Integraciones asignado a su cuenta le enviará las credenciales de acceso del ambiente de Pruebas en un correo de bienvenida. Si olvidó o desea restaurar sus credenciales de acceso al servicio, puede restablecerlas desde el Portal de Emisión, en la sección Catálogos-->Cajas Registradoras-->Obtener usuario de integración. Haga clic y el sistema habilitará una ventana, en la cual deberá ingresar un correo electrónico válido, al que se enviarán el usuario y contraseña que usará para Integraciones
- Su desarrollo deberá incluir el manejo de funciones asíncronas, manejo de excepciones así como las validaciones pertinentes a cada campo de datos, atendiendo a las longitudes, tipos y formatos de cada uno
- Los catálogos de validaciones de SUNAT se encuentran disponibles para su descarga pública, en el portal del ente tributario CPE SUNAT
- El manejo del envío de documentos de venta (facturas, boletas, notas asociadas) se realiza por medio de un objeto; esto implica el llenado directamente sobre el request del método Enviar.
- El manejo del envío de las guías de remisión electrónicas se realiza también mediante un objeto, llenando directamente sobre el request del método GuiaRemision
- La emisión de Comprobantes de Retención, Comprobantes de Percepción, se realizará el envío de un archivo TXT codificado en base64, según los anexos descritos disponibles en esta wiki
- Para el consumo de los métodos, los nodos aparecen publicados en forma alfabética
Paso a Paso
Enviar un documento electrónico
- Rellenar objeto de los métodos Enviar o GuiaRemision
Para enviar un documento de venta, es necesario que su sistema de facturación consuma el servicio web de The Factory HKA, para lo cual deberá invocar al método Enviar y llenar los campos correspondientes a los datos de cada documento de venta a emitir, con el fin de generar los archivos XML con la firma digital y realizar la transmisión hacia OSE/SUNAT, con el fin de obtener su validación y aprobación. Para el caso de las Guías de Remisión Electrónicas, deberá hacer el mismo procedimiento, invocando el método GuiaRemision
- Generar un archivo TXT para el método RetencionPercepcion
Para enviar un comprobante (de retención o percepción) es necesario que su sistema envía un archivo TXT con un layout específico (y posteriormente codificado en base64), descrito en el artículo Layout de Comprobantes de Retención/Percepción
Conexión para la emisión
Según sea el caso, se debe invocar el método Enviar, RetencionPercepcion o GuiaRemision, todos disponibles en el servicio web de The Factory HKA. Al método se deben enviar los datos correspondientes al documento generado en el paso 1 en el caso de enviar un comprobante de retención/Percepción; o llenar el objeto del request para documentos de venta o guías de remisión. Estos métodos abren el canal de comunicación hacia el servicio de The Factory HKA, quien, a su vez, encapsula toda la lógica del proceso y hace posible la generación del documento electrónico firmado en formato XML, así como la transmisión a OSE/SUNAT. Finalmente, la respuesta especificará el proceso de validación por parte de The Factory HKA, a través de un código de éxito o error, devolviendo igualmente el UUID del documento (Universally Unique IDentifier / tipo-serie-correlativo). Documentos incluidos en el método Enviar:
- Factura
- Boleta de venta
- Nota de crédito
- Nota de débito
Documentos incluidos en el método RetencionPercepcion:
- Comprobante de Retención
- Comprobante de Percepción
Documentos incluidos en el método GuiaRemision:
- Guía de Remisión
Conexión para descarga de documentos
Si la respuesta de validación fue exitosa, su sistema de facturación puede obtener y mostrar los documentos emitidos en formato PDF y XML, a través del método DescargaArchivo. De igual forma, se puede utilizar el mismo método para descargar el CDR, que le permitirá obtener la respuesta que emite OSE/SUNAT con el estatus de aprobación del documento.
Conexión para Comunicación de Baja y Reversión
En caso de que necesite anular un determinado documento emitido, puede invocar el servicio web de The Factory HKA para comunicar la baja o revertir el documento observado, a través de los métodos ComunicacionBaja y Reversión. Es importante tener en cuenta que el plazo para realizar la comunicación de baja es de 7 días calendario y para realizarla es requisito que los documentos hayan sido aceptados por OSE/SUNAT.
Comprantes incluidos para el método ComunicacionBaja:
- Factura
- Boleta de venta
- Nota de crédito
- Nota de débito
Comprobantes incluidos para el método Reversión:
- Retención
- Percepción
NOTA: No existe la anulación de una Guía de Remisión Electrónica emitida desde los SEE- Del Contribuyente. En este caso, deberá realizar una nueva guía de remisión y relacionar la anterior.
Métodos del servicio web de The Factory HKA
Se han implementado diferentes métodos que le permitirán realizar el proceso de facturación electrónica de manera rápida y eficaz. En la especificación de cada uno de ellos se indica la funcionalidad del método, el parámetro que se debe ingresar, y la estructura y ejemplos de las respuestas que puede obtener al ejecutar estos métodos.
Método Enviar
Descripción | Método para enviar documentos (factura, boleta de venta, nota de crédito y nota de débito) a OSE/SUNAT |
---|---|
Respuesta Exitosa | Código de aceptación | Mensaje de aceptación | Serie - correlativo del documento y XML timbrado |
Credenciales
Ubicación en Objeto: | tem:Enviar/ |
---|---|
Cantidad de Campos: | 3 |
Descripción General: | Contiene los datos de acceso para validar la identidad del usuario a enviar la información del documento |
Campo | Descripción | Tipo|Longitud |
---|---|---|
<tem:ruc> | RUC del emisor | N|11 |
<tem:usuario> | Usuario de Integración Emitido por el Sistema | |
<tem:clave> | Contraseña de Integración Emitido por el Sistema |
Emisor
Ubicación en Objeto: | tem:Enviar/tem:documentoElectronico/per:emisor/ |
---|---|
Cantidad de Campos: | 4 |
Descripción General: | Contiene información base del emisor del documento electrónico. El resto de los campos solicitados en el XML se toman de lo que esté registrado en el Portal de Emisión |
Campo | Descripción | Tipo|Longitud | Formato | Obligatorio | Opcional |
---|---|---|---|---|---|
<per:domicilioFiscal> | Dirección del domicilio fiscal | AN|...100 | F, B, NC, ND | ||
<per:lugarExpedicion> | Código asignado por SUNAT para el establecimiento anexo declarado en el RUC | N|4 | F, B, NC, ND | ||
<per:ruc> | RUC del emisor | N|11 | F, B, NC, ND | ||
<per:serialCaja> | Serial numérico del equipo o aplicación en caso de que el emisor utilice un medio diferente al WS | AN|...15 | F, B, NC, ND |
Receptor
Ubicación en Objeto: | tem:Enviar/tem:documentoElectronico/per:receptor |
---|---|
Cantidad de Campos: | 12 |
Descripción General: | Contiene información del cliente |
Campo | Descripción | Tipo|Longitud | Formato | Obligatorio | Opcional |
---|---|---|---|---|---|
<per:departamento> | Departamento de la dirección del cliente | AN|...100 | F, B, NC, ND | ||
<per:direccion> | Dirección del cliente | AN|...100 | F, B, NC, ND | ||
<per:distrito> | Distrito de la dirección del cliente | AN|...100 | F, B, NC, ND | ||
<per:email> | Email del cliente. Debe ser una dirección válida para el envío correcto del documento electrónico | AN|...100 | F, B, NC, ND | ||
<per:notificar> | Flag de notificación para envío de correo electrónico | AN|2 | SI para notificar NO en caso contrario |
F, B, NC, ND | |
<per:numDocumento> | Número de documento del cliente | AN|...13 | F, NC, ND | B* | |
<per:pais> | País al que hace referencia la dirección | AN|...100 | F, B, NC, ND | ||
<per:provincia> | Provincia de la dirección del cliente | AN|...100 | F, B, NC, ND | ||
<per:razonSocial> | Nombres y Apellidos o Razón social del cliente | AN|...100 | F, NC, ND | B* | |
<per:telefono> | Teléfono del cliente | AN|...50 | F, B, NC, ND | ||
<per:tipoDocumento> | Tipo de documento del cliente | AN|...13 | Catálogo N° 06 | F, NC, ND | B* |
<per:ubigeo> | Ubigeo de la dirección del cliente | N|6 | Catálogo N° 13 | F, B, NC, ND |
- : En el caso de Boletas, debe viajar esta información de forma obligatoria cuando el monto total supera los S/ 700.