EBMS Stock (Commerçants) — Chaque mouvement, déclaré
Achats en entrée, ventes en sortie, retours, pertes, vols, inventaires — chaque mouvement de stock est typé selon la spécification OBR et déclaré automatiquement, sans jamais bloquer vos opérations.
Vos opérations, la conformité en arrière-plan
Validez vos réceptions, livraisons et retours comme d'habitude : l'application choisit le type de mouvement OBR, construit la déclaration et l'envoie par la file EBMS asynchrone. Les mouvements sans document Odoo (pertes, vols, péremption…) ont leur registre dédié — et l'inventaire physique déclare ses écarts tout seul.
Typage automatique
Livraisons SN, réceptions EN, retours clients ER, retours fournisseurs SAU (le code « SR » des anciens connecteurs est rejeté par l'OBR — vérifié en production).
La facture d'abord
La sortie SN d'une vente attend que la facture soit acceptée par l'OBR, puis part automatiquement avec sa référence — chaque sortie reste traçable.
Registre d'ajustements
Pertes SP, vols SV, péremption SD, casse SC, inventaire EAJ/SAJ, autres EAU/SAU — chacun avec son motif obligatoire.
Inventaire physique intégré
Choisissez le type OBR directement sur la ligne de comptage ; appliquer l'inventaire déclare chaque écart automatiquement.
Prix de la ligne, devise du document
Le coût déclaré vient de chaque ligne de commande, dans la devise de la commande (BIF / USD / EUR) — jamais un prix global plaqué sur tout.
Transferts internes protégés
Les mouvements entre vos propres emplacements ne sont JAMAIS transmis — règle de conformité appliquée à chaque chemin du code.
Chaque mouvement de stock, déclaré à l'OBR avec son motif
Chaque article porte sa carte d'identité fiscale
L'onglet OBR eBMS de la fiche article réunit le code tarifaire, le coût EBMS déclaré, le nombre d'articles par colis, la description du colis et l'indicateur « déclarer la production » — tout ce que la déclaration de mouvement exige, saisi une seule fois et repris automatiquement à chaque envoi.
- ✔Coût EBMS — remplace le coût standard dans chaque mouvement déclaré
- ✔Code tarifaire OBR — la rubrique douanière portée sur chaque entrée
Le code interne de l'article devient son identifiant OBR
La liste des articles est votre point de départ : chaque produit y porte sa référence interne — reprise telle quelle comme code article dans chaque déclaration de mouvement — ainsi que son prix et son coût. Un article sans référence reçoit un code PROD- automatique, pour qu'aucun mouvement ne parte sans identifiant.
- ✔Référence interne — reprise telle quelle comme code article de la déclaration
- ✔Code PROD- automatique — attribué aux articles sans référence, aucun mouvement anonyme
Pertes, péremption, casse — chacune tracée et datée
La liste Ajustements EBMS aligne chaque déclaration hors document : perte (SP), périmé/obsolète (SD), casse (SC), ajustement d'inventaire — entrée (EAJ) — avec sa quantité, son coût unitaire, son motif et son état coloré. Vert pour Envoyé, orange pour En file, rouge pour Échec : toute la conformité hors flux d'un coup d'œil.
- ✔Code OBR par ligne — SP, SD, SC, EAJ… le type de mouvement lu directement
- ✔État coloré — vert Envoyé, orange En file, rouge Échec
Un ajustement OBR déclaré en quatre champs
Sur le formulaire d'ajustement : l'article, la quantité, le type OBR (Perte SP, Périmé/Obsolète SD, Ajustement d'inventaire — Entrée EAJ) et un motif obligatoire — envoyé comme item_movement_description. Le coût unitaire se remplit depuis le coût EBMS de la fiche, puis « Déclarer à l'OBR » pousse la ligne dans la file.
- ✔Motif obligatoire — exigé par l'OBR pour tout mouvement non standard
- ✔Coût pré-rempli — depuis le coût EBMS de la fiche article
Chaque transfert porte son statut de déclaration
Sur le bon de transfert, un statut de stock EBMS indique où en est le mouvement : Envoyé, En file, ou En attente de facture quand une sortie de vente attend que sa facture soit d'abord déclarée. Le stock déclaré à l'OBR suit ainsi ce que vous avez réellement reçu et expédié.
- ✔En attente de facture — la sortie de vente attend sa facture déclarée
- ✔Envoyé ou En file — l'état OBR du mouvement, lu sur le transfert
Chaque mouvement déclaré, typé et valorisé
Le rapport des mouvements de stock déclarés lit directement les charges utiles envoyées à l'OBR : type de mouvement (EN, SN, EAJ…), sens entrée ou sortie, code article, désignation, quantité et valeur en FBu. Chaque ligne remonte à son envoi dans la file d'un seul clic — la source, jamais un recalcul.
- ✔Sens entrée / sortie — les entrées comptent en positif, les sorties en négatif
- ✔Source = la file — construit sur les charges AddStockMovement réellement envoyées
La charge utile exacte reçue par l'OBR
Chaque envoi add_stock_movement conserve sa charge utile complète : item_movement_type (EN, SN, EAJ…), code article, désignation, quantité, coût unitaire en FBu et date à l'heure de Bujumbura. À côté figurent l'état, le nombre de tentatives et la réponse OBR — la file réessaie seule en cas d'échec.
- ✔Charge utile intégrale — le JSON exact transmis, conservé pour audit
- ✔Renvoi automatique — chaque échec est retenté par la file
Confrontez le solde EBMS à votre stock réel
Le grand livre des déclarations calcule, par article, l'ouverture, les entrées, les sorties et le solde « Ce que l'EBMS détient », puis le confronte au stock physique Odoo. L'écart et son pourcentage donnent un verdict coloré — équilibré, petit écart ou écart important — avant, pas pendant, un contrôle.
- ✔Solde EBMS vs stock réel — la comparaison exacte qu'un inspecteur OBR refait
- ✔Statut d'écart — équilibré ⤠2 %, petit ⤠10 %, sinon important
Test ou production, tout se règle sur un écran
La page Réglages EBMS gouverne tout : le contrôle de transmission (Actif, envoi en temps réel, ou En pause, accumulation dans la file), les bascules de déclaration de production (auto-déclaration EAU/SAU), la connexion OBR en Test ou Production, et les identifiants de test — serveur https://ebms.obr.gov.bi:9443, utilisateur 4001234567.
- ✔Actif ou En pause — coupez la transmission, tout s'accumule sans perte
- ✔Test / Production — deux jeux d'identifiants, bascule en un clic
Les importations, séparées du reste des mouvements
Le stock importé — déclaré à l'OBR en entrée normale (EN) par le canal importateurs — se lit à part dans le rapport des mouvements, marqué « Importé ». Un mois d'importations se réconcilie d'un filtre, sans le démêler du stock local.
- ✔Marqué « Importé » — les entrées passées par l'endpoint importateurs
- ✔Réconciliation mensuelle — les importations isolées d'un clic
Toutes les fonctionnalités, d'un coup d'œil
On installe tout pour vous — inclus dans votre achat
Ailleurs, une intégration OBR sur mesure coûte 3 000 à 10 000 $ chez un consultant. Ici, c'est fait par nous et inclus dans votre achat unique — rien de plus à payer.
Inclus avec chaque application EBMS
Grâce au moteur gratuit EBMS Base, chaque application hérite des mêmes garanties de fiabilité.
Aucun doublon, aucun trou
Numérotation atomique, vérification getInvoice avant tout renvoi douteux, convergence « existe déjà » — votre série FN reste continue des deux côtés.
3 rôles de sécurité
Utilisateur, Manager, Administrateur — qui envoie, qui gère la file, qui touche aux identifiants. Configurés une fois dans la Base.
Multi-devises
BIF, USD ou EUR — chaque déclaration part dans la devise du document source, exactement comme l'exige la spécification.
Pause & Reprise
Coupez la transmission quand vous voulez : tout s'accumule en sécurité, puis « Reprendre & Vider » envoie tout chronologiquement.
Test & Production
Deux jeux d'identifiants séparés. Validez tout sur le serveur de test OBR, basculez en production en un clic.
Crons auto-réparateurs
Un gardien réactive les tâches désactivées, libère les envois bloqués et alerte les managers par e-mail.
La famille OBR eBMS complète pour Odoo
Chaque application partage le moteur gratuit EBMS Base — une seule configuration OBR, une seule file de transmission, un seul jeu de rôles de sécurité. Achetez n'importe quelle combinaison, configurez une fois. Documentation complète en 5 langues sur docs.aminitechsolutions.com/ebms.
Nos autres services Odoo
Questions fréquentes
Faut-il EBMS Base ?
Oui — la Base (gratuite) fournit le client API, la file et la configuration contribuable. Deux minutes d'installation.
Je suis fabricant, pas commerçant.
L'application compagne EBMS Stock — Fabricants déclare vos produits finis vendables (EAU), avec des lignes révisables et un rapport Produit vs Déclaré, par ordre de fabrication. Les matières premières restent exclues par défaut — l'OBR suit les biens vendables.
J'importe des marchandises.
EBMS Importers ajoute le flux dédié aux importateurs : référence DMC, rubrique tarifaire, colisage — obligatoire depuis le 13/08/2025.
Comment corriger un mouvement déclaré ?
L'OBR n'a pas d'annulation de stock : on déclare l'ajustement inverse (EAJ ↔ SAJ, EAU ↔ SAU) avec un motif référençant l'original — la pratique attendue des inspecteurs.
Des limites ? Un abonnement ?
Non. Achat unique, mouvements illimités, mises à jour gratuites à chaque évolution OBR.
Parlons-en dès aujourd'hui
Prêt à être 100 % conforme OBR ?
Achat unique, documents illimités, 90 jours de support et mises à jour gratuites à chaque évolution de la spécification OBR.
EBMS Stock (Traders) — Every movement, declared
Purchases in, sales out, returns, losses, theft, stocktakes — every stock movement is typed per the OBR specification and declared automatically, without ever blocking your operations.
Automatic typing
SN deliveries, EN receipts, ER customer returns, SAU supplier returns (the legacy "SR" code is rejected by the OBR — verified in production).
Invoice first
A sale's SN exit waits for the accepted invoice, then releases itself carrying its reference.
Adjustments register
Loss SP, theft SV, expiry SD, breakage SC, inventory EAJ/SAJ, other EAU/SAU — each with a mandatory reason.
Physical inventory built in
Pick the OBR type right on the counting line; applying the count declares every difference automatically.
Line price, document currency
The declared cost comes from each order line, in the order's currency (BIF / USD / EUR).
Internal transfers protected
Moves between your own locations are NEVER transmitted — a compliance rule enforced everywhere.
Every feature, at a glance
We set it all up — included with your purchase
A custom OBR integration usually costs $3,000–$10,000 with a consultant. Here it is done by us and included in your one-time purchase — nothing extra to pay.
Included with every EBMS app
Powered by the free EBMS Base, every app above inherits the same reliability guarantees.
No duplicates, no holes
Atomic numbering, getInvoice verification before any doubtful resend, “already exists” convergence — your FN series stays continuous on both sides.
3 security roles
User, Manager, Administrator — who sends, who manages the queue, who touches credentials. Configured once in the Base.
Multi-currency
BIF, USD or EUR — every declaration is sent in the source document's currency, exactly as the specification requires.
Pause & Resume
Stop transmission whenever you need: everything accumulates safely, then Resume & Flush sends it all chronologically.
Test & Production
Two separate credential sets. Validate on the OBR test server, switch to production in one click.
Self-healing crons
A watchdog re-activates disabled jobs, recovers stuck entries and e-mails managers on critical failures.
Frequently asked questions
Does it need EBMS Base?
Yes — the free Base provides the API client, the queue and the taxpayer configuration.
I manufacture rather than trade.
The companion app EBMS Stock — Manufacturer declares your sellable finished goods (EAU), with reviewable lines and a Produced-vs-Declared report, per manufacturing order. Raw materials stay excluded by default — the OBR tracks sellable goods.
How do I correct a declared movement?
The OBR has no stock cancellation: declare the opposite adjustment with a reason referencing the original.
Any limits or subscription?
No. One-time purchase, unlimited movements, free updates on OBR spec changes.
Ready to be 100 % OBR compliant?
One-time purchase, unlimited documents, 90 days of support and free updates on every OBR specification change.
Gestion de stock conforme OBR Burundi · OBR eBMS stock connector for Odoo · AddStockMovement
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Purchase (purchase) • Discuss (mail) • Invoicing (account) |
| Community Apps Dependencies | Show |
| Lines of code | 2384 |
| Technical Name |
aminitech_ebms_stock |
| License | OPL-1 |
| Website | https://www.aminitechsolutions.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module