Transmettre un fichier
L'API transmettre un fichier permet aux utilisateurs de l'OD de transmettre à celui-ci un fichier facture ne provenant pas d'une PDP ou du PPF (par exemple reçu par email) afin de générer les déclarations de e-reporting correspondantes
Le fichier doit être à un des trois formats standards de la facturation électronique: Factur-X, CII ou UBL
Pré-requis
- Posséder un compte OD
- Avoir créé une connexion PDP ou PPF
- Avoir reçu un fichier facture à un des trois formats standards
Requête
Pour transmettre un fichier on fait une requête POST sur le chemin d'accès suivant
/v1/achats/factures
On doit passer:
- L'identifiant utilisateur de l'OD dans l'en-tête X-OD-User-ID
- Un objet JSON contenant le fichier dans le corps de la requête
Par exemple:
- cURL
- Typescript
Requête de transmission d'un fichier facture
curl \
-X POST \
-H 'X-OD-User-ID: ${userId}' \
-H 'Content-Type: application/json; charset=utf-8' \
-d @facture.json \
http://<host>:<port>/v1/achats/factures
Requête de transmission d'un fichier facture
const url = 'http://<host>:<port>/v1/achats/factures'
const data: string = fs.readFileSync('facture.json');
const response: AxiosResponse = await axios.post(url, data, {
headers: {
'X-OD-User-ID': userId,
'Content-Type': 'application/json; charset=utf-8',
}
});
...
// récupération de l'URI de la nouvelle ressource
const uri: string = response.headers['location'];
Fichier facture.json
{
"nomFichier": "FAC-APPLE-20240228-123456.pdf",
"contentType": "application/pdf",
"base64": "PHN2ZyBoZWlnaHQ9IjI2IiB4bWxucz0iaHR0cDov..."
}
Fichier
| Propriété | Valeur |
|---|---|
| nomFichier | Nom du fichier |
| contentType | Type MIME du contenu |
| base64 | Contenu du fichier encodé en Base64 |
Réponse
Si tout s'est bien passé, la réponse de l'OD est 201 CREATED avec l'en-tête Location contenant l'emplacement de la ressource:
Réponse type de l'OD pour une création de facture
HTTP/1.1 201 Created
X-Powered-By: Express
X-RateLimit-Limit: 12000
X-RateLimit-Remaining: 11998
X-RateLimit-Reset: 60
Content-Type: application/json; charset=utf-8
Content-Length: 45
ETag: W/"2d-SVoQrUQ9lw1spmQdDLKIlsOgr98"
Date: Thu, 11 Jan 2024 13:45:47 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Location: v1/achats/26ad3a21-615e-40ea-a05a-2ac8e8a2f373
Erreurs
Si une erreur s'est produite, les codes et messages suivants peuvent être retournés:
| Code | Message |
|---|---|
| 400 Bad Request | Requête invalide - Voir messages d'erreur ci-dessous |
| 401 Unauthorized | Informations d'authentification invalides |
| 403 Forbidden | Droits insuffisants pour effectuer cette action |
| 409 Conflict | Une facture avec ce numéro existe déjà |
Impact
- Le fichier facture transmis est maintenant enregistré en tant que pièce jointe d'un nouvel achat dans l'OD
- Une déclaration de transaction a été ajoutée automatiquement aux données de e-reporting en attente de transmission
- A tout moment il est possible de:
- Retrouver cet achat parmi d'autres via l'API parcourir les achats
- Consulter cet achat via l'API consulter un achat