meta { name: 05 In-app respond pending type: http seq: 5 } post { url: {{baseUrl}}/api/v1/checkin/inapp/{{invoiceId}}/pending body: none auth: bearer } auth:bearer { token: {{token}} } tests { test("200 OK", function () { expect(res.getStatus()).to.equal(200); }); test("status = in_relance", function () { expect(res.getBody().data.status).to.equal("in_relance"); }); } docs { POST /api/v1/checkin/inapp/:invoiceId/pending — auth requise Réponse "Non — toujours en attente, lance les relances" depuis l'app (modale check-in OU bouton "Relancer maintenant" sur la fiche). Effets : - CheckinTask (si elle existe) : status='answered', answer='still_pending' - `scheduleRelancesForInvoice()` : crée les RelanceTask scheduled selon le plan, enqueue dans BullMQ. Si certaines étapes sont déjà passées (catch-up), la 1re part à `now+1min`. - Invoice.status passe immédiatement en `in_relance` (l'user voit la facture sortir de l'attente sans attendre le 1er envoi mail) - ActivityEvent kind=relance_sent (label "Relances activées pour …") Réponse : la facture sérialisée (status='in_relance' désormais). Précondition : `invoiceId` doit appartenir à l'org (404 sinon). }