Skip to content

Dettes, incidents et clôtures

Glossaire

Dettes

Les dettes sont les sommes dûes par un client : Un montant que le club auraît du percevoir mais qui - pour une raison ou une autre - ne l'a pas été, ne l'est pas encore.

Une dette, liée à un incident, peut empêcher un client de réserver, passer au contrôle d'accès, ou même de reprendre un nouvel abonnement.

WARNING

Il est donc important de vérifier qu'un client ne soit pas endetté avant de lui permettre d'acheter un abonnement en ligne, sans quoi la vente pourrait ne pas se ventiler

Clôtures

Les clôtures comptables font passer un client au statut "ancien client" (old_client). Ses abonnements, carnets et badges seront désactivés. Et, vous pourrez clôturer sa balance comptable qui sera alors être rééquilibrée.

Identifier la dette

GET /:clientToken/financial_summary?contactId=/:clientToken/contacts/:id

Cet endpoint renvoie l’état financier, avec un filtre ?contactId=contactIRI on peut récupérer l’état financier d’un contact donné. En réponse, on reçoit le nombre d’incidents et le total de la dette


GET /:clientToken/financial?contactId=/:clientToken/contacts/:id

On récupère la liste des sous-entités financières reliées au contact

  • Les paiements (à utiliser)
  • Les factures

Sur ces dernières, le financialState peut être incident s’il y a incident de paiement. On peut également regarder si le financialState est in_progress alors que la lateDueDate est passée, auquel cas la facture est « en retard de paiement »


GET /:clientToken/invoices/{id}/financial

Cet endpoint renvoie l’état financier d’une facture Notamment utile dans le cas où l’on souhaiterait ajouter un paiement dessus, qui serait refusé si elle est en incident. On y retrouve le financialState en état incident. Et le totalIncidentAmount qui vaut le montant en euros en incident à régler.

D'autant plus important, on y retrouve ses breakdowns (la répartition de ses paiements), qui peuvent eux-même être rattachés à un incident en cours ($.breakdowns[i].payment.currentIncident). S’il l'un de ces incidents est en état open on peut récupérer son amount à régler, et conserver son id (/{clientToken}/incidents/{id})


GET /:clientToken/incidents?contact=/:clientToken/contacts/:id

Cet endpoint permets de récupérer tous les incidents liés à un contact. Prenez garde au state de ces incidents. Dès lors que l'un d'entre eux est à l'état open c'est qu'un incident est en cours sur ce client.

Régler la dette via un paiement en ligne

Si le club permets le paiement en ligne, il est tout à fait possible de régler la dette en créant un payableObject avec un targetId (ou targetIds) relatif à l’incident (comme vous le feriez pour une vente, cf. documentation dédiée) :

POST /clientToken/payable_objects

json
{
    "contactId": "/:clientToken/contacts/:id",
    "amount": 100, // Le montant de l'incident
    "currency": "EUR",
    "clubId": "/:clientToken/clubs/:id",
    "clubCode": "clubCode",
    "checkout": "/:clientToken/checkouts/:id",
    "useWebWallet": false,
    "payableObjects": {
        "incidents": ["/clientToken/incidents/:id"],
    },
    "cancelUrl": "https://www.example.com/cancel",
    "validUrl": "https://www.example.com/valid",
    "useAvailableAmount": false
}

Clôtures comptables

Un membre clôturé revient au club ou se rend sur l'espace membre du club pour régulariser sa situation. Il est possible de déclôturer le client directement depuis sa fiche membre OU de lancer des actions automatisées de déclôture depuis l'espace membre, en fonction de la politique du club.

Notez néanmoins qu'il s'agît d'un process souvent complexe, pour lequel le club souhaite généralement être maître de la relation clientelle. Nous vous invitons donc vivement à "simplement" tester si un contact a le statut old_client et si c'est le cas, l'inviter à contacter son club afin de régler sa situation.

Un contact clôturé peut avoir été clôturé comptablement alors qu'il devait encore de l'argent au club (était endetté). Au moment de la déclôture il est tout à faire possible (et souhaité) d'inviter l'usager à régler sa dette passée.

GET /:clientToken/contact/:id

Cet endpoint vous renvoie la représentation d'un contact, dans cette dernière existe la propriété closure. Si elle est renseignée c'est que le client a fait l'objet d'une clôture. La valeur est l'IRI de la clôture : /:clientToken/closures/:id

GET /:clientToken/closures/:id

Cet endpoint vous permets de récupérer les informations d'une clôture, entre autres :

PropriétéDéfinition
consequenceSummary.addAlert(true|false)S'il faut afficher une alerte ou non
consequenceSummary.contactDebtLe montant de la dette s'il en est
consequenceSummary.lockSaleSi la clôture empêche le client de faire des achats
consequenceSummary.subscriptionsLes souscriptions impactées par la clôture
consequenceSummary.feeAmountLe montant à ajouter à la dette (s'il en est) comme frais de dossier pour régler la déclôture

Deux possibilités :

  • Si contactDebt est positif : Le contact est endetté : Voir sections précédentes pour régler ces dettes
  • Sinon vous pouvez passer directement à la déclôture ci-après

Déclôturer le contact

POST /:clientToken/closures/:id/cancel

Cet endpoint attends un payload avec à minima :

json
{
    "contactSelfUnclosing": true // Pour indiquer que le contact annule de lui-même la clôture
}