Import
Endpoints pour l'import de déclarations depuis des fichiers CSV/Excel.
POST /imports/csv
Importe des déclarations depuis un fichier CSV.
Request
bash
POST /api/v1/imports/csv
Authorization: Bearer <token>
Content-Type: multipart/form-dataBody
| Champ | Type | Description |
|---|---|---|
| file | File | Fichier CSV à importer |
Exemple avec curl
bash
curl -X POST https://api.gbfiscalai.srv1164291.hstgr.cloud/api/v1/imports/csv \
-H "Authorization: Bearer <token>" \
-F "file=@declarations.csv"Response 200
json
{
"total_rows": 100,
"imported": 95,
"errors": 5,
"high_risk_count": 12,
"alerts_created": 8,
"error_details": [
{
"row": 15,
"error": "Missing required field: hs_code"
},
{
"row": 42,
"error": "Invalid country code: XYZ"
}
]
}POST /imports/excel
Importe des déclarations depuis un fichier Excel.
Request
bash
POST /api/v1/imports/excel
Authorization: Bearer <token>
Content-Type: multipart/form-dataBody
| Champ | Type | Description |
|---|---|---|
| file | File | Fichier Excel (.xlsx, .xls) |
Exemple
bash
curl -X POST https://api.gbfiscalai.srv1164291.hstgr.cloud/api/v1/imports/excel \
-H "Authorization: Bearer <token>" \
-F "file=@declarations.xlsx"Response 200
Même format que l'import CSV.
Format du Fichier
Colonnes Requises
| Colonne | Type | Exemple |
|---|---|---|
| reference | string | DEC-2026-00100 |
| hs_code | string | 8703.23 |
| description | string | Toyota Hilux |
| origin_country | string | JP |
| declared_value | number | 45000 |
Colonnes Optionnelles
| Colonne | Type | Exemple |
|---|---|---|
| importer_tax_id | string | GW-IMP-001 |
| declared_weight | number | 2100 |
| quantity | number | 1 |
Exemple CSV
csv
reference,importer_tax_id,hs_code,description,origin_country,declared_value,declared_weight,quantity
DEC-2026-00100,GW-IMP-001,8703.23,Toyota Hilux 2023,JP,45000,2100,1
DEC-2026-00101,GW-IMP-002,8517.12,iPhone 15 Pro Max,CN,150,0.2,500
DEC-2026-00102,GW-IMP-003,2204.21,Vin rouge Bordeaux AOC,FR,8500,750,500Codes Pays ISO
Utilisez les codes ISO 3166-1 alpha-2:
| Code | Pays |
|---|---|
| GW | Guinée-Bissau |
| CN | Chine |
| JP | Japon |
| FR | France |
| PT | Portugal |
| US | États-Unis |
| DE | Allemagne |
| SN | Sénégal |
Limites
| Limite | Valeur |
|---|---|
| Taille max fichier | 10 MB |
| Lignes max | 10 000 |
| Imports simultanés | 1 par utilisateur |
Gestion des Erreurs
Erreurs de Validation
json
{
"error_details": [
{
"row": 5,
"error": "Missing required field: reference"
}
]
}Codes d'Erreur Courants
| Erreur | Cause |
|---|---|
| Missing required field | Champ obligatoire absent |
| Invalid value type | Type de donnée incorrect |
| Invalid country code | Code pays non reconnu |
| Duplicate reference | Référence déjà existante |
| Value out of range | Valeur hors limites |
Processus d'Import
1. Upload du fichier
↓
2. Validation du format
↓
3. Parsing des lignes
↓
4. Validation des données
↓
5. Calcul des scores de risque
↓
6. Création des déclarations
↓
7. Génération des alertes (si risque > 75%)
↓
8. Mise à jour des scores importateurs
↓
9. Retour du rapport d'importSchéma ImportResult
typescript
interface ImportResult {
total_rows: number;
imported: number;
errors: number;
high_risk_count: number;
alerts_created: number;
error_details: Array<{
row: number;
error: string;
}>;
}