Cómo comenzamos a registrar cajas registradoras para nuestros clientes

Según las enmiendas a 54-, desde julio de este año, casi todas las empresas comerciales están obligadas a utilizar cajas en línea que transmiten datos a través de Internet al servicio de impuestos. Para adquirir dicho aparato, tendrá que comprar una caja registradora y una unidad fiscal, firmar un acuerdo y pagar los servicios de un operador de datos fiscales, registrarse en dos oficinas personales del Servicio de Impuestos Federales y OFD, ingresar los detalles en el cajero y recibir un informe de registro en papel. Bueno, también necesitará una firma digital electrónica, de lo contrario tendrá que acudir al Servicio de Impuestos Federales y hacer cola personalmente.



Decidimos salvar a nuestros clientes de todo este horror haciendo un servicio que registra todo automáticamente casi con un solo clic. Hablaremos de esto ahora.

¿Por qué lo necesitamos?


Ya te diste cuenta de que registrar una taquilla es una tediosa búsqueda de varias etapas, pero este no es el único problema. En cada etapa, el zoológico está esperando interfaces, cuyas formas deberán completarse manualmente con los datos de registro para cada taquilla, así como un conjunto completo de errores relevantes (saludos separados a los requisitos de impuestos para usar los navegadores IE, Yandex.Browser o Sputnik). Cientos de oportunidades para cometer un error, arruinar el procedimiento y comenzar de nuevo. Y si configura 5-10 cajas registradoras, la posibilidad de un error al ingresar los mismos detalles aumenta a veces. Sin mencionar la pérdida de tiempo improductiva y descubrir por qué la oficina de impuestos personales se niega a aceptar el token, que fue "tragado" perfectamente ayer.



Y cuando sentimos la peor parte de la tragedia anterior, decidimos retomar el desarrollo.

Pasos de registro


Varias partes participan en el registro de una caja registradora a la vez. Este es el servicio de impuestos (FTS), OFD: el operador de datos fiscales a través del cual las cajas registradoras interactúan con la autoridad tributaria, un centro de certificación que emite firmas electrónicas y, por regla general, un pequeño empresario desconcertado perdido en trastornos burocráticos. Queríamos intervenir en su relación, tanto como para enfrentarnos a todas las dificultades.

Condicionalmente, el procedimiento se divide en dos etapas:

Registro en la caja: los datos de un dispositivo en particular se envían al Servicio de Impuestos Federales, y el número de registro aparece en respuesta.

Fiscalización: activación del cajero utilizando el número de registro del vehículo asignado por el Servicio de Impuestos Federales.

En primer lugar, fuimos a nuestros socios para trabajar en la primera etapa con ellos.

API para el Servicio de Impuestos Federales


No fuimos los primeros en pensar en la automatización del registro. Muchos dijeron que estaban haciendo algo en esta área, que el desarrollo estaba en marcha, pero nadie tenía una interfaz externa lista para usar. La API proporcionó uno de los operadores de datos fiscales, casi listo para interactuar con el impuesto.

En ese momento, solo se enviaron alrededor de 80 aplicaciones de prueba utilizando el protocolo. Creíamos que pronto la interfaz funcionaría a plena capacidad, y comenzamos la implementación y las pruebas en los "stubs".

Al ir al producto, nos dimos cuenta de que nuestras pruebas y la aplicación real son diferentes, como el día y la noche. Los "talones" que recibimos de la OFD incluyeron solo simulacros de éxito y reprodujeron un guión exitoso. De hecho, lograr ese "éxito" no fue fácil.

Los resultados incluyeron: solicitudes del lado de socios que no fueron procesadas durante varios días, falta de comentarios del Servicio Federal de Impuestos y OFD, errores de firma y nuestro "error desconocido" favorito. El protocolo FTS resultó estar pobremente documentado y, a menudo, respondió con fallas no especificadas, por lo que no está claro qué los causó. Aún no existe una especificación clara. Entonces, la primera vez que probamos el protocolo y, junto con la OFD, tomamos decisiones sobre cómo responder a ciertas respuestas del Servicio Federal de Impuestos en casos específicos.

API de cajero


Si bien parte del equipo estudió el comportamiento de los sistemas del Servicio Federal de Impuestos en la práctica, el trabajo no se detuvo. Paralelamente, organizamos negociaciones con los fabricantes de cajas registradoras, los invitamos a intercambiar datos de nosotros a su plataforma, de la plataforma a la caja registradora y en el orden inverso para establecer la fiscalización automática de las cajas registradoras.

Seleccionamos un par de soluciones universales de una pieza. Las cajas registradoras Evotor con pantallas táctiles y DreamCas son para aquellos clientes que están acostumbrados a los viejos botones y consideran que la funcionalidad adicional es redundante. Los modelos son diferentes: con y sin escáner.


Si la OFD tenía su propia API lista, entonces para los contratistas de la caja registradora tenía que desarrollarse desde cero. De lo contrario, es imposible hacer que todos los datos de registro lleguen a la caja registradora automáticamente, sin entrada manual.

Los colegas lograron establecer una interacción a través de su plataforma y pronto estuvieron listos: una API para abrir la cuenta personal de un cliente y un protocolo patentado para administrar una caja registradora.



Nuestros proveedores fueron los primeros en configurar el envío automático de información de registro a la taquilla. Y pronto, la API hará que sea tan fácil cancelar el registro y volver a registrar las cajas registradoras.

Ahora, cuando estamos negociando con otros proveedores de efectivo, es precisamente el soporte de esta interfaz lo que se convierte en uno de los requisitos clave.

Anatomía del registro automático


Después de que aprendimos cómo trabajar con el Servicio de Impuestos Federales e implementamos API con proveedores para transferir datos de registro al cajero, llegó el momento de conectar todo esto en un solo sistema y establecer un procedimiento de registro.

Esta es la tarea de elegir la arquitectura correcta, que nos permitiría controlar el registro asíncrono de las cajas registradoras en la OFD, tanto con el Servicio de Impuestos Federales como con el vendedor. Dado que responden a las solicitudes con retraso, el proceso lleva mucho tiempo y tiene una gran cantidad de integraciones con sistemas externos. Debido a esto, tuvimos que escribir dos aplicaciones en Java.

El servicio de trabajo se comunica directamente con CRF y los sistemas de fabricantes de cajas registradoras. Por ejemplo, enviamos datos de clientes a la OFD y esperamos recibir un número de registro en respuesta.

El servicio de trabajo sondea el estado del trabajo a intervalos específicos. Él pregunta de nuevo y pregunta de nuevo hasta que el resultado regrese. Se guarda el número de registro, Job transfiere la solicitud a la siguiente etapa y comienza la fiscalización.

Si al principio monitoreamos cuidadosamente el paso de las aplicaciones y estudiamos manualmente cada error que dio el sistema, ahora el proceso está automatizado.

Determinamos de inmediato la causa del error. Y en caso de problemas masivos, se han establecido sistemas de monitoreo que registran anomalías que indican fallas importantes en el Servicio de Impuestos Federales o OFD. Sin embargo, el cliente se entera de los problemas en el único caso: si, en respuesta a una solicitud, recibimos un rechazo específico, una negativa razonada para registrarse.

La segunda aplicación, CashReg, es un sistema de procesamiento donde se mantiene un modelo de estado, presentado en forma relacional.

Fue desarrollado en base a las API proporcionadas por los proveedores y el CRF, e incluyó todas las transiciones posibles para cada clase que participa en el proceso de registro. El modelo de estado evita errores internos y elimina las desviaciones del algoritmo de procesamiento de aplicaciones estándar.

Entonces, si la aplicación ha estado en el mismo estado durante demasiado tiempo, por ejemplo, no recibe el número de registro durante varias horas, o el CRF responde con una etapa o estado incorrecto de la aplicación, CashReg informará un error.

Por supuesto, se necesitaba un administrador para administrar el procedimiento. Un grupo de apoyo de decisión comercial trabaja con él, sirviendo y acompañando las cajas registradoras durante el registro. Ahora solo dos empleados están involucrados en esto, pero su interfaz de trabajo no es complicada y el proceso de preparación de caja, gracias al rechazo de la entrada manual de datos, es simple. Por lo tanto, podemos escalar rápida y fácilmente el departamento.

Los tres componentes del sistema de registro no implican altas cargas, ya que se implementan en entornos virtuales.

¿Cómo se procesa la solicitud?


Todo esto fue necesario para que el cliente, dejando una solicitud en su cuenta personal, unos días después pusiera la caja activa lista para trabajar detrás del mostrador.


Desde el punto de vista de la cocina doméstica, la magia del auto registro parece un poco más complicada. Al dejar la aplicación en su cuenta personal, el cliente nos da su consentimiento legal para emitir una firma electrónica y realizar todo el procedimiento en su nombre.


La información sobre la empresa, los datos de registro de una tienda en particular y el firmante (por ejemplo, para el director general) se extraen de las bases bancarias. Se actualizan en SPARK, pasan por la puntuación e ingresan al sistema maestro en la taquilla.


Luego se forma una aplicación en CASHREG. Se muestra como una nueva tarea en el panel de administración de un empleado del grupo de soporte de soluciones comerciales. Él ve qué caja registradora e impulso fiscal necesita el cliente. El empleado encuentra el dispositivo necesario en el almacén, selecciona la unidad fiscal, codifica sus códigos de barras con sus números de serie y confirma la solicitud. Por lo tanto, se le asignan dispositivos específicos, que se entregarán al cliente. En este punto, la OFD recibe una solicitud: "Formule una solicitud para el registro de tal y tal caja, para tal y tal empresa".

El archivo enviado por la OFD en respuesta se autentica mediante firma electrónica y, utilizando la API OFD, se envía a las autoridades fiscales. Allí, a la caja se le asigna un número de registro.

Ahora el paquete completo de documentos en la caja llega al fabricante de la caja registradora (sí, también están involucrados aquí). Al mismo tiempo, aparece una tarea en el panel de administración: fiscalizar al mismo cajero. Esto significa que el empleado simplemente incluye al cajero. El sistema del proveedor "ve" que el dispositivo está en contacto y carga automáticamente todos los datos de registro necesarios en su memoria. Se excluyen los errores con la entrada manual, los mismos detalles van al Servicio de Impuestos Federales y al cajero.

El cajero imprime un informe de registro, algo para lo cual se inició todo. Los datos fiscales del informe: fecha de impresión, firma, signo fiscal, sirven como confirmación de que la caja está lista para trabajar. Estos detalles se envían nuevamente a la OFD.

Inmediatamente después de que la OFD genera un informe de registro, lo firmamos para el cliente y la taquilla se va con el servicio de mensajería.



OFD aún no ha preparado una tarjeta de registro, pero no puede esperar. Estará disponible en forma electrónica en la cuenta personal del cliente en dos o tres días.

Conclusión


Para implementar este proyecto, unos veinte empleados de todo el banco y muchos más especialistas de nuestros socios, DFD y vendedores en efectivo se distrajeron de sus tareas habituales, pero sus esfuerzos no fueron en vano.

El tiempo promedio para obtener un número de registro, con la excepción de los casos más negativos, es de tres horas. En general, todo el procedimiento dura de 5 a 6 horas. El 90% de los registros tienen éxito. Por el momento, ya se han procesado unas 1000 solicitudes.

En general, como comprende, en nuestra empresa nos encantan estos casos, que pueden simplificar enormemente la vida de una gran cantidad de personas. Al resolver estos problemas, siente que está haciendo algo realmente útil.

PD: si está interesado, puede leer cómo nosotros mismos lavamos nuestro cajero automático . Además, junto con los protocolos de intercambio de datos.

Source: https://habr.com/ru/post/es420033/


All Articles