---
title: Receipt Wrangler
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, document-management, receipts, scanner, ocr, typescript, nodejs]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=document-management, https://github.com/Receipt-Wrangler/receipt-wrangler, https://www.receiptwrangler.io/]
---

# Receipt Wrangler 🧾

> **Gestionnaire de reçus/tickets de caisse** spécialisé : uploadez vos tickets scannés, Receipt Wrangler les OCR, extrait les métadonnées (montant, date, vendeur, catégorie), et permet la validation collaborative en équipe.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.receiptwrangler.io/ |
| **GitHub** | https://github.com/Receipt-Wrangler/receipt-wrangler |
| **License** | AGPL-3.0 |
| **Langage** | TypeScript / Node.js (NestJS + Angular) |
| **Étoiles** | ⭐19 |
| **Dernière MAJ** | 2026-05-01 |
| **Catégorie** | [[cat-document-management]] |

## Description

Receipt Wrangler est un **gestionnaire de reçus** (tickets de caisse, factures) pensé pour les **équipes** (comptabilité, RH, associations) qui doivent **valider et catégoriser** les dépenses avant remboursement ou export comptable. Contrairement à Paperless (généraliste) ou Firefly III (budgeting), Receipt Wrangler est **ultra-spécialisé** sur le workflow de gestion des notes de frais : upload, OCR, validation par un manager, export CSV/PDF vers un logiciel comptable.

L'**OCR** est basé sur Tesseract 5 (auto-hébergé) ou un service cloud optionnel (Google Vision, AWS Textract) pour une meilleure qualité sur les tickets froissés/sombres. Le **parser** extrait automatiquement : montant TTC/HT, TVA, date, vendeur, numéro de ticket, devise. Les **règles de catégorisation automatique** (regex sur vendeur → catégorie) accélèrent le classement. L'**API REST** complète permet l'intégration avec des outils tiers (Slack pour notifications, ERP pour export).

L'**UI Angular** est dense et orientée « workflow » : tableau de bord des reçus en attente, vue détaillée avec preview du scan, commentaires/mentions pour collaboration, historique d'audit complet, export groupé. Le **multi-utilisateurs** est natif (auth, groupes, permissions par groupe), ce qui distingue Receipt Wrangler des apps mono-utilisateur. Idéal pour les **TPE, associations, labos, services comptables** qui gèrent 50-500 reçus/mois.

## Installation

### Via Docker Compose (recommandé)

```yaml
# docker-compose.yml
services:
  api:
    image: ghcr.io/receipt-wrangler/api:latest
    container_name: receipt-wrangler-api
    restart: unless-stopped
    ports:
      - "8085:3000"
    environment:
      - DATABASE_URL=postgres://receipt:***@db:5432/receipt
      - JWT_SECRET=***      - UPLOAD_DIR=/data/uploads
      - OCR_ENGINE=tesseract
      - OCR_LANG=fra+eng
      - TESSERACT_PATH=/usr/bin/tesseract
      - APP_URL=https://receipts.example.com
    volumes:
      - receipt-data:/data
    depends_on:
      - db

  frontend:
    image: ghcr.io/receipt-wrangler/frontend:latest
    container_name: receipt-wrangler-frontend
    restart: unless-stopped
    ports:
      - "8086:80"
    environment:
      - API_URL=http://api:3000

  db:
    image: postgres:16-alpine
    container_name: receipt-db
    restart: unless-stopped
    environment:
      - POSTGRES_DB=receipt
      - POSTGRES_USER=receipt
      - POSTGRES_PASSWORD=***    volumes:
      - receipt-db:/var/lib/postgresql/data

volumes:
  receipt-data:
  receipt-db:
```

> **Note** : pour l'OCR Tesseract, s'assurer que le binaire `/usr/bin/tesseract` et les modèles `fra.traineddata`/`eng.traineddata` sont présents dans l'image API (image custom requise si pas embarqués).

### Installation manuelle

1. **Pré-requis** : Node.js 18+, Angular CLI 16+, PostgreSQL 14+, Tesseract 5 + langues, ImageMagick.
2. **API** : `git clone https://github.com/Receipt-Wrangler/receipt-wrangler-api && cd receipt-wrangler-api && npm install && npm run build && npm start` (port 3000).
3. **Frontend** : `git clone https://github.com/Receipt-Wrangler/receipt-wrangler-frontend && cd receipt-wrangler-frontend && npm install && npm run build` (sert le bundle statique via Nginx).
4. **DB** : créer la base `receipt`, configurer `DATABASE_URL` dans `.env`.
5. **Premier admin** : créé via `npm run seed` ou via l'UI au premier lancement.

## Configuration

- **Premier admin** : créé via la commande seed ou via l'UI (mode invitation).
- **Groupes** : créer des groupes (ex: « Équipe Marketing », « Compta ») avec rôles distincts (lecteur, validateur, admin).
- **Catégories** : définir les catégories de dépenses (Transport, Repas, Hébergement, Fournitures, etc.) avec regex d'auto-catégorisation.
- **Validation** : configurer le workflow de validation (ex: « tout reçu > 50€ doit être validé par un manager »).
- **Export** : configurer les formats d'export (CSV, PDF groupé, format ERP).
- **OCR** : choisir le moteur (Tesseract local ou cloud), définir les langues.
- **Notifications** : configurer SMTP pour emails (notifications de validation) et webhooks Slack optionnels.
- **HTTPS** : obligatoire via reverse proxy.
- **Backups** : `pg_dump` + rsync du dossier `uploads/`.

## Alternatives

### Open Source
- [[app-paperless-ngx]] — GED complète (peut gérer des reçus)
- [[app-mayan-edms]] — EDMS enterprise
- [[app-papermerge]] — GED moderne
- [[app-docspell]] — EDMS Scala avec ML auto
- [[app-papra]] — GED TypeScript minimaliste
- **Firefly III** — budgeting/finance (gère les dépenses mais pas l'OCR de reçus)
- **Actual Budget** — budgeting local-first
- **GnuCash** — comptabilité double-partie (desktop)
- **Invoice Ninja** — facturation + dépenses (PHP)

### Propriétaires
- **Expensify** — référence freemium, OCR excellent, export comptable
- **Rydoo** — gestion notes de frais enterprise
- **Spendesk** — cartes + reçus entreprise
- **Lettuce** — gestion reçus simple
- **Dext** (anciennement Receipt Bank) — référence comptable
- **QuickBooks** — comptabilité + reçus
- **Pennylane** — comptabilité + reçus (FR)
- **Sage** — comptabilité enterprise

## Sécurité

- **HTTPS obligatoire** + HSTS via reverse proxy.
- **JWT** : `JWT_SECRET` long et aléatoire.
- **2FA** : TOTP natif dans les paramètres utilisateur (depuis v2+).
- **SSO OIDC/SAML** : intégrable via `passport-openidconnect` (config manuelle).
- **RBAC** : permissions par groupe, très granulaires.
- **Audit log** : toutes les actions loggées (upload, validation, export).
- **Chiffrement at-rest** : monter les volumes sur stockage chiffré.
- **Quotas** : limiter la taille d'upload par user pour éviter les abus.
- **CVE** : Node.js/Angular à jour, suivre les releases GitHub.
- **Backups testés** : tester la restauration (DB + scans).
- **Conformité RGPD** : les reçus contiennent des données personnelles (nom, montant) — attention à la conservation.

## Ressources
- Site officiel : https://www.receiptwrangler.io/
- Documentation : https://docs.receiptwrangler.io/
- GitHub : https://github.com/Receipt-Wrangler/receipt-wrangler
- Discord communautaire : https://discord.gg/receipt-wrangler
- selfh.st : https://selfh.st/apps/?tag=document-management

## Pages Liées
- [[cat-document-management]] — catégorie parente
- [[app-paperless-ngx]] — GED plus généraliste
- [[app-docspell]] — EDMS auto-classé
- [[app-papermerge]] — concurrent moderne
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité
