Generar un API en Oracle PL/SQL para integrar un sistema de facturación ya existente (desarrollado en Oracle) con el sistema de Facturación Electrónica del Ministerio de Hacienda de Costa Rica.
La solución debe implementar las siguientes funciones:
Almacenar y obtener el certificado o llave criptográfica
Solicitud de Token
Solicitud de refrescar token
Creación de Clave para los XML de Factura Electrónica
Creación de Clave para Tiquete Electrónico
Creación de Clave para Nota de Crédito
Creación de Clave para Nota de Débito
Creación de clave para Mensaje Aceptación (Aceptación total, Parcialmente y Rechazo)
Creación de xml Factura Electrónica
Creación de xml Tiquete Electrónico
Creación de xml Nota de Crédito
Creación de xml Nota de Débito
Firmado del xml Factura Electrónica
Firmado del xml Tiquete Electrónico
Firmado del xml Nota de Crédito
Firmado del xml Nota de Débito
Firmado del xml Mensaje de Aceptación
Recepción del xml de Facturas/Tiquetes Electrónicos (para ser almacenados en tablas en Oracle)
Envío a Hacienda del xml de Factura Electrónica, Notas de Crédito, Notas de Débito
Envío a Hacienda del xml de Tiquete Electrónico
Envío a Hacienda del xml de Mensaje Aceptación (Aceptación total, Parcialmente y Rechazo)
Consulta de estado de los comprobantes
El API debe ser desarrollado preferentemente en PL/SQL o bien ser integrado de alguna manera a llamados desde PL/SQL. El API podría también ser desarrollado en Java, toda vez que se cumpla que es posible utilizarlo desde PL/SQL de Oracle.
Dado que el sistema de facturación ya existente es multicompañia, la solución debe considerar que la llave criptográfica para firmar los XMLs, así como los usuarios y los passwords, y demás información del emisor / receptor de la factura debe ser parametrizable.
La información de la factura para generar el XML ya se encuentra en tablas en una base de datos Oracle. La información de las facturas recibidas en XML debe ser almacenada en tablas en una base de datos de Oracle. Los archivos XML de las facturas recibidas deben ser almacenados en tablas en Oracle. Estas tablas deben proveerse / proponerse como parte de la solución.
Deberá proveerse documentación y código fuente del API desarrollado, y la propiedad del API se mantiene con el contratante.