Skip to content
← Processus

Relancer les prélèvements rejetés

Chaque prélèvement rejeté est rapproché de sa facture, écarté s'il est payé, représenté ou déjà relancé, puis reçoit un brouillon de relance adapté au motif.

GoCardless→Pennylane→Slack→Gmail
Démarre
Quand vous le demandez
Étapes
7
Contrôles et conditions
2
Une personne décide
1

Relance les prélèvements rejetés de ce mois-ci.

Demande dans le chat après les prélèvements

Voir en démo

Claude exécute la suite en autonomie

  1. 1

    Lister les prélèvements rejetés encore ouverts

    GoCardless

    GoCardless

    Chaque rejet de la période revient avec son motif et son statut de représentation, moins ce que le journal a déjà clos et ce que le prestataire va représenter.

  2. 2

    Confirmer que la facture est toujours duecontrôle

    Pennylane

    Pennylane

    Le rejet est rapproché de sa facture, et une facture réglée par virement, un avoir ou deux correspondances aussi probables l'arrêtent là.

    GoCardless

    GoCardless

  3. 3

    Classer chaque rejet par motif, signaler les contestations

    Slack

    Slack

    Provision insuffisante et mandat inactif reçoivent chacun leur demande, tandis que contestations et rejets répétés partent sur le canal facturation au lieu d'un mail.

  4. 4

    Écarter ce qui a déjà été relancécontrôle

    Gmail

    Gmail

    Un brouillon ou un message envoyé dont l'objet porte la même référence de facture clôt le paiement comme déjà relancé.

  5. 5

    Rédiger une relance par rejet

    Gmail

    Gmail

    Chaque relance indique le montant, la facture, la date du prélèvement et une prochaine étape, et attend dans la boîte mail en brouillon.

  6. 6

    Consigner chaque paiement sous son identifiant

    Chaque paiement examiné reçoit une ligne identifiée par son identifiant, pour que l'exécution suivante ne relance jamais deux fois le même incident.

  7. Relire et envoyer chaque brouillon. Une personne prend le relais.relais

    Une personne relit les brouillons, la plus grosse créance d'abord, et envoie, modifie ou supprime chacun.

Un prélèvement est rejeté et le prestataire de paiement dit pourquoi, dans un code motif que personne hors de la finance ne lit. Quelqu'un ouvre alors l'outil comptable pour retrouver la facture, vérifie si le client a déjà payé par virement, cherche la relance qu'un collègue a peut-être envoyée la semaine passée, et écrit un mail qui dit à peu près la même chose chaque mois. Un oubli, et la créance vieillit. Une relance trop rapide, et l'on demande au client de corriger un paiement que le prestataire allait représenter de lui-même.

Les deux moitiés existent déjà. Votre prestataire de prélèvement connaît chaque paiement rejeté, son motif, son mandat et s'il sera représenté. Votre outil comptable sait si la facture correspondante est encore ouverte. Le travail est la jonction, menée de la même façon à chaque fois, avec une boîte mail qui garde les brouillons et un journal qui se souvient de ce qui a été fait.

What you get

Chaque prélèvement rejeté encore dû a un brouillon de relance qui attend dans la boîte mail, rédigé selon le motif du rejet, tandis que les représentations, les factures réglées, les contestations et tout ce qui a déjà été relancé sont consignés et laissés de côté.

Au regard de quoi chaque prélèvement rejeté est vérifié

L'exécution récupère les paiements rejetés dans GoCardless en un seul appel, déjà rattachés au client, au montant, au motif et au statut de représentation. Elle remonte d'un cycle de facturation complet, parce que le prestataire filtre sur la date de création du paiement et non sur celle du rejet, puis ne garde que les rejets de la période. Tout ce que le prestataire va encore représenter est consigné et lui est laissé.

Chaque rejet restant est rapproché de sa facture dans Pennylane, d'abord par l'identifiant de paiement inscrit sur le document, puis par le client, le montant et une échéance proche de la date du prélèvement. Une facture réglée depuis par virement met fin à la relance. Un document portant l'identifiant de paiement qui s'avère être un avoir y met fin aussi : la créance était déjà annulée. Avant toute rédaction, Gmail est fouillé à la recherche d'un brouillon ou d'un message envoyé portant la même référence de facture.

Ce qui rend fiable une relance de facture impayée

La relance suit le motif, pas le calendrier. Une provision insuffisante laisse le mandat valide, donc le mail donne la date de nouvelle présentation ou des coordonnées de virement. Un mandat annulé ou expiré échouera de la même façon une seconde fois, donc la demande porte sur un nouveau mandat, jamais sur « nous allons réessayer ». Un prélèvement contesté ne reçoit aucun mail : il est signalé sur votre canal facturation dans Slack pour qu'une personne s'en charge, tout comme un client dont les prélèvements échouent au-delà de votre seuil. Un motif encore jamais vu n'est pas rangé au hasard dans un groupe : il est listé pour que quelqu'un le traite et le classe.

L'ambiguïté arrête l'exécution, pas le client. Deux factures ouvertes qui correspondent toutes deux à un paiement rejeté, et aucune n'est relancée : le paiement attend une personne. Un paiement confirmé sur le même mandat depuis le rejet n'est pas pris pour une preuve de règlement sur un abonnement, où il s'agit le plus souvent du cycle suivant : seul le statut payé de la facture fait foi dans ce cas.

Un paiement rejeté est un seul incident. Chaque paiement examiné reçoit une ligne dans un journal identifiée par son identifiant de paiement, y compris ceux qui se sont arrêtés en route, et l'exécution suivante lit ce journal avant toute chose : une contestation est signalée une fois, une créance est relancée une fois. Les escalades sont consignées au moment où elles sont signalées, pas à la fin, pour qu'une exécution interrompue à mi-chemin ne signale jamais la même deux fois. Rien ne quitte la boîte mail tout seul : chaque relance est un brouillon, classé de la plus grosse créance à la plus petite, qu'une personne envoie.

Exemples de mails de relance de facture impayée

Voici des exemples des brouillons que rédige le processus, un par groupe de motifs, les champs entre crochets remplis à partir du paiement et de la facture. L'objet garde le même modèle à chaque exécution, parce que la vérification des doublons le recherche.

Provision insuffisante, plus de représentation prévue

Objet : Prélèvement rejeté — facture [FAC-0142]

Bonjour,

Le prélèvement de [480,00 €] pour la facture [FAC-0142], présenté le
[3 octobre], a été rejeté par votre banque.

Nous le présenterons à nouveau le [17 octobre]. Si vous préférez régler
par virement d'ici là, voici nos coordonnées bancaires : [IBAN,
référence FAC-0142].

Mandat inactif

Objet : Prélèvement rejeté — facture [FAC-0157]

Bonjour,

Le prélèvement de [1 200,00 €] pour la facture [FAC-0157], présenté le
[3 octobre], n'a pas pu être encaissé : le mandat enregistré n'est plus
actif.

Une nouvelle présentation échouerait de la même façon, il nous faut donc
un nouveau mandat. Vous pouvez le mettre en place ici : [votre lien de
signature de mandat].

Rejet avec renvoi vers le payeur

Objet : Prélèvement rejeté — facture [FAC-0163]

Bonjour,

Votre banque a refusé le prélèvement de [310,00 €] pour la facture
[FAC-0163], présenté le [3 octobre], et nous a invités à vous contacter.

Nous le présenterons à nouveau le [17 octobre]. Si quelque chose a
changé de votre côté, ou si vous préférez régler par virement, voici nos
coordonnées bancaires : [IBAN, référence FAC-0163].

Il n'y a pas d'exemple pour une contestation, car le processus n'envoie jamais de mail dans ce cas.

The prompt

The real prompt behind the steps above, detailed enough that an agent with the same tools can run it as written. The Run buttons copy the full version, which also carries the steps for connecting those tools.

# Chase failed direct debits

You have access to your direct-debit provider, your accounting tool,
a mailbox, a team chat and a table you can read and write. Run this
for **[the failed direct debits of the window you are chasing, e.g.
this month]**.


## 1. List the failed debits not yet closed

- Pull the failed payments in one call, with the page size set
  explicitly to its maximum (500). Each row already carries the
  customer's name and email, the amount, the charge date, the failure
  time, the cause and reason code, whether a retry is scheduled, and
  the mandate's state. The payment → mandate → customer chain is
  resolved for you: there is no per-row lookup to do.
- **The date filter is on when the payment was created, not when it
  failed.** A payment created before your window that failed inside
  it will not come back. Set the filter one full billing cycle
  earlier than the window you care about, then keep only the rows
  whose failure time falls inside it. If a page still comes back
  full, narrow the window instead of assuming you have everything.
- Read **[your reminder log]** (step 6) once, here, before anything
  else runs, and index it by payment id. **A payment whose logged
  outcome is final (settled, escalated, needs a person, already
  chased, drafted) is dropped now**, before step 3 can post anything
  about it. Runs overlap by a full cycle on purpose, so without this
  the same dispute would be posted to your billing channel on every
  run. Only *retry pending* rows are evaluated again.
- **A retry is scheduled → draft nothing.** While the provider says
  it will retry, it re-presents the payment on its own, and a
  reminder now asks the customer to fix something that may fix
  itself within days. Log it as *retry pending* and move on.
- **Carry over what an earlier run left pending.** For every *retry
  pending* row in the log, re-read the payment by its id: its
  creation date may now sit outside the new window, so this is the
  only way a retry that failed too gets picked up. Confirmed or paid
  out → *settled*. Failed again → read its latest failure reason, and
  whether yet another retry is scheduled.

## 2. Confirm the invoice is still owed

Resolve the invoice through a fallback chain, strongest key first:

- **Find by external reference**, with the payment id as the
  reference. The search is filtered server-side, so an old or
  archived document still turns up, and a miss comes back as "not
  found" rather than an empty list. This key only exists if your
  billing flow writes the payment id onto its documents: test it on
  one known payment before trusting a miss.
- **A hit is not always the invoice.** The document carrying the
  payment id is often a credit note raised against the failed
  payment. Credit notes carry negative amounts: one means the debt
  was already cancelled, and the payment ends as *settled
  (credited)*. Only a sales invoice with a positive amount goes on.
- **On a miss:** resolve the payment to its party, whose metadata may
  carry your own customer reference (depending on how the mandate was
  created, it may not). Find the customer in the accounting tool by
  that reference, or list customers to resolve the id from the name.
- Then list invoices, **always bounded with a page limit**: without
  one the whole invoice history comes back and can overflow the
  response. Start small and widen. Match sales invoices only, on the
  customer, the amount and a due date close to the charge date.
  **Two open invoices match → pick neither**: log the payment as
  *needs a person* rather than chase the wrong document.

Two checks then end the payment as *settled*:

- The matched invoice already shows as paid: a bank transfer came in
  after the debit failed. This is the check to trust.
- A confirmed or paid-out payment of the same amount on the same
  mandate since the failed charge date. **On a subscription, that row
  is usually just the next cycle**, and reading it as a re-collection
  drops a real debt without a warning. Count it only when the payment
  shows no subscription or instalment schedule and, when your billing
  flow writes one, its reference points at the same invoice.
  Otherwise rely on the invoice's paid status alone.

## 3. Sort each failure by cause, post the disputes

Map the cause and reason code into groups once, then treat each group
the same way every run:

- **Low funds, no retry left.** The mandate still works. A
  refer-to-payer refusal belongs here too: the bank declined and sent
  the payer to ask why, which is usually low funds, not a dispute. The
  reminder states the amount and the invoice and gives one next step:
  the date you will collect again, or your transfer details.
- **Dead mandate**: cancelled, expired, or the bank account closed.
  Collecting again fails the same way, so the ask is a new mandate
  through **[your mandate setup link]**, never "we will try again".
- **Dispute**: only a payer disputing the authorization, or a
  chargeback-type cause. A chasing email escalates it. Post the
  customer, amount, invoice reference and cause to **[your billing
  channel]** and stop: a person handles it. Logged as *escalated*.
- **Anything unmapped**: invalid bank details, a transferred account,
  a cause you have never seen. Guessing a group sends the wrong ask,
  so it becomes *needs a person* and is listed in the report.
- **Repeat failures.** List the mandate's failed payments since the
  start of **[your lookback window]**, page size 500, and count them.
  Count payments, not events: the events feed has no date filter. At
  **[your repeat-failure threshold]** the payment gets the same channel
  post as a dispute instead of a polite email, logged as *escalated*.
- Right after posting, write the *escalated* rows to the log in one
  batch keyed on the payment id, instead of waiting for step 6. A run
  that stops between the post and the end-of-run log would otherwise
  post the same payment again next time.

Order what remains by amount, then by days since the failure, so the
reviewer reads the largest, oldest debts first.

## 4. Skip what was already chased

One incident is one payment id, and it gets one reminder at most. The
log already dropped what it closed; what is left are the duplicates
it cannot see:

- Search the mailbox for `in:drafts subject:"[invoice reference]"`:
  a draft from an earlier run that stopped before logging it. Search
  rather than list drafts, since a list returns only the most recent
  page.
- Search for `in:sent subject:"[invoice reference]"`: a reminder
  someone wrote by hand, outside this process.

Either match ends the payment as *already chased*. Both checks work
only because the subject line in step 5 always carries the invoice
reference. Don't reword it run to run.

## 5. Draft one reminder per failure

- Save each reminder as a **draft** in the mailbox. Nothing in this
  process sends: report every one as *draft*, never *sent*.
- **To**: the invoice recipient on the accounting side when it
  differs from the payer's email on the debit. Whoever receives
  invoices is usually the one who can fix a payment. **Subject**: a
  fixed pattern carrying the invoice reference, e.g. *Payment failed —
  invoice [invoice reference]*. **Body**: amount, invoice reference,
  charge date, and the one next step from step 3. Firm and courteous;
  no late-payment penalty unless your terms state one. Let the
  mailbox append its own signature rather than writing a sign-off.
- A new draft can be missing from a mailbox tab that is already open
  for a while. Tell the reviewer to reload or search the drafts
  folder rather than assume it failed.

## 6. Log every payment against its id

- One batch write at the end of the run, keyed on the payment id, so
  a re-run merges onto the same rows instead of appending duplicates.
  One row per payment this run evaluated, **including the ones that
  exited early**: payment id, invoice reference, cause group, outcome
  (*retry pending*, *settled*, *settled (credited)*, *escalated*,
  *needs a person*, *already chased*, *drafted*), the draft id when
  there is one, and the run date read at run time rather than typed.
- Payments dropped in step 1 because their outcome was already final
  stay out of the batch, so a *drafted* row is never overwritten by a
  weaker outcome on a later run.

## 7. Read and send each draft

A person opens the drafts, largest first, and sends, edits or deletes
each one. Nothing leaves the mailbox until they do.

## Rules

- The accounting side is read-only here: never collect again, create
  a credit note, or finalize or send an invoice.
- Never send an email: every reminder is a draft a person sends.
- Never email a customer about a disputed debit.

## Output

A short report: failures found in the window, then how many were
skipped as already handled, retry pending, settled (paid, credited or
collected again), escalated to your billing channel (disputes, repeat
failures), already chased, or left for a person (ambiguous invoice
match, unmapped cause), and how many drafts wait in the mailbox,
listed largest first with customer, amount and cause.

Pourquoi le faire tourner avec Tulina

Un prompt aide une personne. Un processus fait avancer une équipe.

Collé dans une conversation, le prompt ci-dessus marche une fois, pour celui qui l'a collé. Dans Tulina, « Relancer les prélèvements rejetés » devient un processus que l'équipe partage, qui garde son historique, qui tourne seul, et qui reste dans le même périmètre de sécurité que les outils qu'il appelle.

  • Toute l'équipe travaille sur le même

    PersonnelÉquipeOrganisation

    Un processus se range à l'endroit qui lui correspond : à vous, à votre équipe ou à toute l'organisation. Celui qui l'exécute peut l'améliorer, et tout le monde repart de la meilleure version au lieu de réexpliquer le travail à chaque fois.

  • Chaque modification est une version

    v1v2v3

    Chaque changement crée une nouvelle version et garde la précédente ; une mauvaise modification se défait en restaurant une version antérieure. Chaque exécution enregistre la version qu'elle a suivie, et ce qu'elle a appris revient dans le processus.

  • Il tourne sans vous

    planifiéwebhookà la demande

    Un agent hébergé exécute le processus sur l'infrastructure de Tulina, à heure fixe ou quand un événement arrive, et continue quand vous fermez la conversation. Rien à héberger. Chaque exécution est suivie jusqu'à son résultat.

  • Dans le même périmètre de sécurité

    coffrerôlesjournal

    Les identifiants restent dans le coffre, jamais dans le prompt. Les rôles décident qui peut lancer quoi, chaque appel est journalisé, et une étape qu'une personne doit valider attend cette personne.

Questions sur la relance des factures impayées

Le montant, la référence de la facture, la date du prélèvement et une seule prochaine étape, rien d'autre à discuter. Ici, la prochaine étape dépend du motif du rejet : une date de nouvelle présentation ou des coordonnées de virement quand la provision manquait, un lien pour signer un nouveau mandat quand l'ancien est inactif. L'objet porte toujours la référence de la facture.

Elle fait tout jusqu'à l'envoi. Chaque prélèvement rejeté est confronté à sa facture, écarté s'il a été réglé par virement, annulé par un avoir, s'il va être représenté ou s'il a déjà été relancé, et les autres reçoivent un brouillon de relance dans la boîte mail. Une personne relit et envoie chaque brouillon, et les contestations vont à une personne sans aucun mail.

Pas tant que le prestataire annonce une nouvelle présentation : il représente le paiement de lui-même, et une relance demanderait au client de corriger ce qui peut se régler seul en quelques jours. Pas quand la facture a été payée autrement depuis. Et pas en cas de contestation, qu'un mail de relance ne ferait qu'envenimer.

Un paiement rejeté est un seul incident, identifié par son identifiant de paiement dans un journal que l'exécution suivante lit en premier. Avant de rédiger, la boîte mail est aussi fouillée à la recherche d'un brouillon ou d'un message envoyé dont l'objet porte la même référence de facture, ce qui attrape une relance écrite à la main.

Des processus qui partagent des outils avec celui-ci. Les outils partagés sont allumés.

Découvrez Tulina en 30 minutes.

Réserver une démo