Skip to content

essabu/essabu-einvoice-sdk-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Essabu E-Invoice SDK for Java

Version Java Spring Boot License

SDK Java officiel pour integrer l'API de facturation electronique d'Essabu dans vos applications Java, Kotlin ou Spring Boot. Gerez la normalisation, la soumission aux systemes gouvernementaux, la verification et la conformite des factures electroniques dans 6 pays africains.

Pays supportes

Pays Systeme Code SDK
Benin MECeF GovernmentSystem.BENIN_MECEF
RDC VSD GovernmentSystem.DRC_VSD
Rwanda EBM GovernmentSystem.RWANDA_EBM
Senegal ASYCUDA GovernmentSystem.SENEGAL_ASYCUDA
Cote d'Ivoire FDT GovernmentSystem.IVORY_COAST_FDT
Cameroun CUD GovernmentSystem.CAMEROON_CUD

Installation

Maven

<dependency>
    <groupId>com.essabu</groupId>
    <artifactId>essabu-einvoice-sdk-java</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

Gradle

implementation 'com.essabu:essabu-einvoice-sdk-java:1.0.0-SNAPSHOT'

Les packages sont disponibles sur GitHub Packages.

Demarrage rapide

# application.yml
essabu:
  einvoice:
    base-url: https://einvoice.essabu.com
    api-key: ${EINVOICE_API_KEY}
    tenant-id: ${EINVOICE_TENANT_ID}
@Service
public class MyService {
    private final EssabuEInvoiceClient einvoice;

    public MyService(EssabuEInvoiceClient einvoice) {
        this.einvoice = einvoice;
    }

    public void exemple() {
        // Normaliser une facture
        NormalizedInvoiceResponse normalized = einvoice.invoices().normalize(
            NormalizeInvoiceRequest.builder()
                .companyId(companyId)
                .originalInvoiceId(invoiceId)
                .invoiceNumber("FAC-2026-0001")
                .nif("A123456789")
                .issuerName("Mon Entreprise")
                .recipientName("Mon Client")
                .issueDate(LocalDate.now())
                .totalAmount(new BigDecimal("118000"))
                .taxAmount(new BigDecimal("18000"))
                .currency("CDF")
                .governmentSystem(GovernmentSystem.DRC_VSD)
                .items(List.of(/* lignes */))
                .build()
        );

        // Soumettre au gouvernement
        einvoice.submissions().submit(
            SubmitToGovernmentRequest.builder()
                .normalizedInvoiceId(normalized.getId())
                .build()
        );
    }
}

Modules disponibles (5)

Groupe Modules Accesseur
Facture Normalisation, Soumission einvoice.invoices(), einvoice.submissions()
Verification Verification, Conformite, Statistiques einvoice.verification(), einvoice.compliance(), einvoice.statistics()

Gestion d'erreurs

try {
    einvoice.submissions().submit(request);
} catch (EInvoiceNotFoundException e) {
    // 404 - Facture normalisee non trouvee
} catch (EInvoiceValidationException e) {
    // 400/422 - Donnees invalides (NIF, format, montants)
} catch (EInvoiceUnauthorizedException e) {
    // 401/403 - Authentification ou autorisation echouee
} catch (EInvoiceServerException e) {
    // 5xx - Erreur serveur ou gouvernement injoignable
}

Documentation complete

Document Description
Guide de demarrage Installation, configuration et premier appel API
Configuration Toutes les proprietes disponibles et profils Spring
Authentification Cles API, multi-tenant, scopes et permissions
Gestion des erreurs Hierarchie des exceptions et bonnes pratiques
Pagination PageRequest, PageResponse et parcours pagine
Exemples : Normalisation Normalisation pour differents pays
Exemples : Soumission Soumission et suivi de statut
Exemples : Verification Verification, conformite et statistiques

Pre-requis

  • Java 21+
  • Spring Boot 3.4+ (optionnel, pour l'auto-configuration)
  • Jackson 2.18+

Contribution

Les contributions sont les bienvenues. Pour contribuer :

  1. Forkez le repository
  2. Creez une branche pour votre fonctionnalite (git checkout -b feat/ma-fonctionnalite)
  3. Commitez vos changements (git commit -m "feat: description")
  4. Poussez la branche (git push origin feat/ma-fonctionnalite)
  5. Ouvrez une Pull Request

Merci de suivre les Conventional Commits pour les messages de commit.

Licence

Proprietary - Essabu SaaS Platform

About

SDK Java pour integrer l'API E-Invoice Essabu - normalisation, soumission gouvernementale, verification

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages