El API FACTUN es una interfaz que permite la creación de documentos electrónicos (facturas, tiquetes, notas de crédito y débito) en su cuenta de servicios de la plataforma FACTUN a través de un REST API. Esto es muy útil cuando usted ya cuenta con sistemas propios en su negocio y desea que FACTUN se encargue de la facturación electrónica mientras usted conserva sus sistemas informáticos.
Usted puede realizar las siguientes acciones a través del API FACTUN:
También el API FACTUN puede ayudarle en la recepción de documentos electrónicos:
API FACTUN también puede encargarse de tareas como la notificación automática a sus clientes por correo electrónico de los documentos electrónicos generados.
Si usted ya posee una cuenta en la plataforma de FACTUN, solamente debe solicitar a nuestro soporte una activación API, nuestro soporte le proveerá las credenciales necesarias para usar nuestro API FACTUN.
Si usted no posee una cuenta en la plataforma de FACTUN, deberá registrarse en la plataforma primeramente para luego solicitar activación API a su cuenta.
La plataforma de Factun, cuenta con dos instancias o ambientes, cada una de estas plataformas es totalmente independiente, lo cual significa que usted se registra por aparte en cada ambiente y sus acciones son totalmente específicas para el ambiente en que este trabajando.
Este ambiente está destinado a pruebas de integración y demostraciones de la plataforma FACTUN. Es muy útil cuando usted de sus primeros pasos con el API FACTUN y quiera familiarizarse con la plataforma sin ningún formalismo.
Usted debe registrarse en este ambiente de la misma manera que lo haría en producción, la diferencia es que las credenciales que usted especifica deben ser las credenciales de prueba que el ente gubernamental le ha provisto.
Los enlaces al ambiente de pruebas son:
Ambiente real para los servicios de Factun. Debe siempre especificar las credenciales de producción provistas por el ente gubernamental.
Los enlaces al ambiente de producción son:
Una vez que usted ya se encuentra en la plataforma de FACTUN, nuestro soporte podrá proveerle los siguientes datos:
El API FACTUN utiliza Basic Authentication sobre HTTPS como método de autenticación. A parte de Basic Authencation, usted debe agregar un header llamado "FactunToken" que contenga el token que se le ha provisto.
Una companía es un emisor de documentos, usted puede crear en Factun muchas compañias (tener varios emisores) y asociar una o mas sucursales a esa compañía (emisor). Cuando usted realiza una acción, como por ejemplo, crear un documento, usted siempre estará dentro de un contexto especifico: en una sucursal de una compañía determinada.
El contexto se respeta en toda acción del API. El FactunToken determina el contexto.
A continuación se ilustra como se observa una autenticación de ejemplo mediante la aplicación POSTMAN:
Usted puede recibir las siguientes respuestas de error al intentar una autenticación incorrecta:
Deberá revisar que el header para basic authenticacion está correctamente presente en la llamada HTTP.
Deberá revisar que el header para el token esta correctamente presente en la llamada HTTP.
Su combinación de usuario y contraseña no es válida.
API FACTUN puede utilizar claves y consecutivos generados por un sistema externo o puede usar directamente los consecutivos establecidos para la sucursal en la configuración de Factun (recuerde que el token permite determinar cuál sucursal se usa).
Si usted delega en Factun la responsabilidad de generar consecutivos recuerde que usará los consecutivos de la sucursal.
Si usted utiliza la plataforma Web de Factun esta también usará los mismos consecutivos.
Debe contactar con Factun si desea establecer diferente codificación de terminal, si piensa utilizar el API y WEB al mismo tiempo. Si todos sus documentos se realizarán únicamente a través de API, no debe preocuparse.
Como cualquier otro API, se utiliza versionamiento. Siempre debe incluir la version en el URL despues del prefijo /api/, por ejemplo: https://dev.api.factun.com/api/V2/Documento/{clave}
Si existe algún error con el versionamiento, se informará con el HTTP CODE 400 (Bad Request) y con un objeto JSON para informar el error, por ejemplo:
{ "Error": { "Code": "ApiVersionUnspecified", "Message": "An API version is required, but was not specified." } }
Si se invoca un método que no existe, o se utiliza un HTTP METHOD incorrecto o algún error similar, usualmente se informara con un 405 (Method Nor Allowed), por ejemplo:
{ "Error": { "Code": "UnsupportedApiVersion", "Message": "The requested resource with API version '2' does not support HTTP method 'PUT'.", "InnerError": { "Message": "No route providing a controller name with API version '2' was found to match HTTP method 'PUT' and request URI 'http://localhost:58354/api/V2/Documento/Notificar'." } } }