PHPackages                             factpulse/sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. factpulse/sdk

ActiveLibrary[HTTP &amp; Networking](/categories/http)

factpulse/sdk
=============

REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - \*\*Formats\*\*: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - \*\*Profiles\*\* (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - \*\*UBL\*\*: Always EN16931 compliant - \*\*Standards\*\*: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - \*\*Simplified Format\*\*: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - \*\*XML Validation\*\*: Schematron (45 to 210+ rules depending on profile) - \*\*PDF Validation\*\*: PDF/A-3, Factur-X XMP metadata - \*\*VeraPDF\*\*: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ Electronic Signature - \*\*Standards\*\*: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - \*\*eIDAS Levels\*\*: SES (self-signed), AdES (commercial CA), QES (QTSP) - \*\*Validation\*\*: Cryptographic integrity and certificate verification ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - \*\*CDAR Messages\*\*: Acknowledgements, invoice statuses - \*\*PPF Statuses\*\*: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - \*\*Tax Declarations\*\*: International B2B, B2C - \*\*Flow Types\*\*: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - \*\*Flow Service\*\*: Submit and search flows to PDPs - \*\*Directory Service\*\*: Company search (SIREN/SIRET) - \*\*Multi-client\*\*: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - \*\*Public Sector Invoicing\*\*: Complete API for Chorus Pro ### ⏳ Async Tasks - \*\*Celery\*\*: Asynchronous generation, validation and signing - \*\*Polling\*\*: Status tracking via `/tasks/{task\_id}/status` - \*\*Webhooks\*\*: Automatic notifications when tasks complete ## 🔒 Authentication All requests require a \*\*JWT token\*\* in the Authorization header: ``` Authorization: Bearer YOUR\_JWT\_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) \*\*URL:\*\* `https://factpulse.fr/api/token/` This method is \*\*recommended\*\* for integration in your applications and CI/CD workflows. \*\*Prerequisites:\*\* Having set a password on your account \*\*For users registered via email/password:\*\* - You already have a password, use it directly \*\*For users registered via OAuth (Google/GitHub):\*\* - You must first set a password at: https://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API \*\*Request example:\*\* ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H "Content-Type: application/json" \\ -d '{ "username": "your\_email@example.com", "password": "your\_password" }' ``` \*\*Optional `client\_uid` parameter:\*\* To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client\_uid`: ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H "Content-Type: application/json" \\ -d '{ "username": "your\_email@example.com", "password": "your\_password", "client\_uid": "550e8400-e29b-41d4-a716-446655440000" }' ``` The `client\_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client \*\*Response:\*\* ```json { "access": "eyJ0eXAiOiJKV1QiLCJhbGc...", // Access token (validity: 30 min) "refresh": "eyJ0eXAiOiJKV1QiLCJhbGc..." // Refresh token (validity: 7 days) } ``` \*\*Advantages:\*\* - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) \*\*URL:\*\* https://factpulse.fr/api/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. \*\*How it works:\*\* - Log in to the dashboard - Use the "Generate Test Token" or "Generate Production Token" buttons - Works for \*\*all\*\* users (OAuth and email/password), without requiring a password \*\*Token types:\*\* - \*\*Test Token\*\*: 24h validity, 1000 calls/day quota (free) - \*\*Production Token\*\*: 7 days validity, quota based on your plan \*\*Advantages:\*\* - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface \*\*Disadvantages:\*\* - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://factpulse.fr/documentation-api/

v4.3.0(4mo ago)061unlicensePHPPHP ^8.1CI failing

Since Nov 13Pushed 4mo agoCompare

[ Source](https://github.com/factpulse/sdk-php)[ Packagist](https://packagist.org/packages/factpulse/sdk)[ Docs](https://openapi-generator.tech)[ RSS](/packages/factpulse-sdk/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (8)Versions (89)Used By (0)

FactPulse SDK PHP
=================

[](#factpulse-sdk-php)

Official PHP client for the FactPulse API - French electronic invoicing.

Features
--------

[](#features)

- **Factur-X**: Generation and validation of electronic invoices (MINIMUM, BASIC, EN16931, EXTENDED profiles)
- **Chorus Pro**: Integration with the French public invoicing platform
- **AFNOR PDP/PA**: Submission of flows compliant with XP Z12-013 standard
- **Electronic signature**: PDF signing (PAdES-B-B, PAdES-B-T, PAdES-B-LT)
- **Thin HTTP wrapper**: Generic `post()` and `get()` methods with automatic JWT auth and polling

Installation
------------

[](#installation)

```
composer require factpulse/sdk
```

Quick Start
-----------

[](#quick-start)

```
