Rapprochement bancaire
Solder une opération bancaire contre ses factures, et défaire ce règlement. LE CORPS PORTE LE JEU COMPLET VOULU et un corps partiel n'est pas une mise à jour partielle : le jeu que vous envoyez est celui qui se retrouve confirmé, si bien qu'une affectation qui en est absente est retirée et qu'une affectation présente à un montant différent est reconfirmée au nouveau montant. C'est TOUT OU RIEN - si un seul membre est refusé, aucun n'est appliqué - et la réponse est l'opération recalculée, de sorte que ?include=allocations,bank_accounting_entry vous permet de relire le jeu confirmé et ses lignes équilibrées dans le même aller-retour plutôt que de vous fier au 200. DEUX JETONS FONT DEUX MÉTIERS DIFFÉRENTS : Idempotency-Key protège d'une requête DUPLIQUÉE, expected_version d'une requête PÉRIMÉE, et la confirmation exige les deux. Une version qui n'est plus la version courante donne un 409 stale_version, porteur de l'instantané courant pour que vous réaffichiez sans second appel ; une projection qui a déjà quitté les livres donne un 422 entry_already_exported, et aucun réessai à aucune version n'y changera rien - le remède est une écriture de reclassement. Le DELETE annule : chaque affectation s'annule indépendamment, si bien que nommer allocation_ids laisse les autres intactes, et omettre la clé retire toutes les affectations confirmées.
Confirm a bank operation's reconciliation
Settles the operation against the invoices you name - writing one `Invoice::Payment` per allocation and recomputing the accounting entry from the confirmed set.
Unconfirm a bank operation's reconciliation
Takes confirmed allocations back off the operation - destroying their payments and restoring the accounting entry's suspense line - and returns the recomputed operation.