Requiero un programa que haga el envio de la facturación electrónica del ministerio de hacienda de Costa Rica, quisiera hacerlo invocando el programa con una serie de parámetros que yo le pase en desde mi aplicación, cada factura debe ir en XML, y el mismo debe ser enviado a un servidor del ministerio de hacienda. Yo generaría el XML requerido desde mi aplicación. Por lo que requiero que el proyecto a desarrollar envie los datos al servidor de hacienda.
Los datos generales para lograr esa conexión son los siguientes:
La recepción de los xml es por medio de api restful, este expondrá los recursos disponibles al contribuyente para que pueda enviar y consultar el estado de los comprobantes electrónicos.
Información para la conexión:
El api se encuentra publicado en la url segura
https://api.comprobanteselectronicos.go.cr/recepcion/v1/.
Todos los mensajes serán de tipo JSON.
El mapa de caracteres es UTF8, para los mensajes recibidos.
Una vez recibido el resultado del envio, requiero que el programa me indique el resultado del mismo, así como eventuales mensajes de error.
Seguridad:
Todos los recursos del api se encuentran protegidos, es requerido iniciar sesión en el api para poder consumirlos.
El API utiliza un modelo de seguridad con Open ID Connect (OIDC-
http://openid.net/connect/) el cual funciona como una capa de identidad sobre el protocolo Oauth2.0, el oidc utiliza json web tokens (jwt) para almacenar la información de los tokens.
Desde la aplicación cliente se debe consumir el Identity Provider (IdP) que se encuentra en el URI
https://idp.comprobanteselectronicos.go.cr/auth, este IdP permite crear nuevos Tokens (JWT) o refrescar los existentes ya que estos tienen un tiempo de expiración de 5 minutos.
Cuando se tiene el Token generado por el IdP, este se envía en el contenido del Header “Authorization” con el prefijo "bearer”.
Para los efectos prácticos el OIDC es una extensión del estándar de OAuth2.0 (RFC 6749), para esta implementación
se utiliza de la misma forma que un OAuth2.0 con el Grant Type llamado “Resource Owner Password Credential”. Para utilizarlo va a requerir de un Username, Password y Access Token URL, el IdP le genera un Token el cuál el contribuyente en su aplicación debe enviar para consumir el API de Recepción de Documentos. Este Token que se generó tiene un tiempo de expiración que es parte del estándar de OAuth2.0, la aplicación del contribuyente debe encargarse de renovar este Token cuando expira para mantener la continuidad del servicio y cerrar la sesión al terminar.
El estándar de OAuth2.0 solicitará usuario y contraseña para generar el Access Token, y yo ya los tengo.
Necesito al final se nos entregue el código fuente para poder integrarlo correctamente con la aplicación existente.
Plazo de Entrega: No definido