Skip to content

Conexion con api factus (Factura electronica dian) Haltech

License

Notifications You must be signed in to change notification settings

juacosoft/FactusDian-SDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6010c1b · Jan 30, 2025

History

16 Commits
Jan 24, 2025
Jan 29, 2025
Jan 24, 2025
Jan 23, 2025
Jan 30, 2025
Jan 30, 2025
Jan 23, 2025
Jan 24, 2025
Jan 24, 2025
Jan 24, 2025
Jan 24, 2025
Jan 23, 2025
Jan 24, 2025

Repository files navigation

FactusDian-SDK

Introducción

Introducción

FactusDian SDK es una biblioteca Android diseñada para interactuar con la API de Haltech Factus. Este SDK permite gestionar autenticaciones, facturas, notas crédito, productos y otras operaciones relacionadas con la facturación electrónica en Colombia.

Nota: este SDK Factus está en desarrollo, y algunas funcionalidades podrían estar incompletas.

Importante: Este SDK actúa únicamente como intermediario para la comunicación entre dispositivos Android y la API de Factus. No me hago responsable de los resultados, problemas o implicaciones derivadas del uso del SDK. Además, es necesario solicitar acceso a la API de Haltech Factus antes de poder utilizar este SDK.

Documentación oficial de la API: developers.factus.com.co


Requisitos

  • Android 7.0 (API 24) o superior
  • Java 8 o superior
  • Kotlin 1.9.24
  • Android Gradle Plugin 8.3.0

Instalación

Usando JitPack

  1. Agrega el repositorio de JitPack a tu archivo settings.gradle:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven("https://jitpack.io")
    }
}
  1. Agrega la dependencia en tu archivo build.gradle del módulo:
implementation("com.github.juacosoft:FactusDian-SDK:<version>")

Reemplaza <version> con la versión deseada publicada en JitPack.


Inicialización del SDK

Se recomienda inicializar el SDK en la clase Application de tu proyecto para garantizar que esté listo para su uso en toda la aplicación.

Ejemplo:

import android.app.Application
import com.martinezdev.factusdian.sdk.FactusSDK

class MyApp : Application() {

    override fun onCreate() {
        super.onCreate()

        FactusSDK.initialize(
            baseUrl = "https://api.factus.com.co",
            clientId = "your-client-id",
            clientSecret = "your-client-secret",
            isDebugMode = true
        )

        // Verificar en la consola
        // Deberías ver: "Factus SDK initialized"
    }
}

Uso del SDK

1. Autenticación

Obtén un token de autenticación:

suspend fun login() {
    val result = FactusSDK.getAuthToken("usuario", "contraseña")
    result.onSuccess { authResponse ->
        println("Token: ${authResponse.token}")
    }.onFailure { exception ->
        println("Error: ${exception.message}")
    }
}

2. Facturas

Obtener facturas:

suspend fun fetchInvoices() {
    val token = "your-token"
    val result = FactusSDK.getInvoices(token, "Bearer", page = 1)
    result.onSuccess { invoicesResponse ->
        println("Facturas: ${invoicesResponse.data}")
    }.onFailure { exception ->
        println("Error: ${exception.message}")
    }
}

3. Municipios

Obtener municipios:

suspend fun fetchMunicipalities() {
    val token = "your-token"
    val result = FactusSDK.getMunicipalities(token, "Bearer")
    result.onSuccess { municipalities ->
        println("Municipios: ${municipalities.data}")
    }.onFailure { exception ->
        println("Error: ${exception.message}")
    }
}

Funcionalidades soportadas

Autenticación

  • getAuthToken: Obtener un token de autenticación.
  • refreshToken: Refrescar el token de autenticación.

Facturas

  • getInvoices: Obtener facturas.
  • createInvoice: Crear una nueva factura.
  • downloadFactPDF: Descargar una factura en formato PDF.

Datos transversales

  • getMunicipalities: Obtener municipios.
  • getNumeringRanges: Obtener rangos de numeración.
  • getTributesProducts: Obtener tributos de productos.
  • getMeasureUnits: Obtener unidades de medida.

Notas crédito

  • getCreditNotes: Obtener notas crédito.
  • getCreditNotePDF: Descargar una nota crédito en formato PDF.
  • createCreditNote: Crear una nueva nota crédito.

Contribuciones

Si deseas contribuir a este proyecto, envíame un correo o contáctame directamente.

Joaquín Martínez Marulanda


Licencia

Licencia Este proyecto está protegido bajo licencia Apache 2.0. Consulta el archivo LICENSE para más información.