# Mark Paid, Promised or Stopped

> Stop Edesy Collect reminder calls for one debtor by marking them paid, promised or stopped in the portal or through the API.

Source: https://edesy.in/docs/collect/payments/mark-paid-promised-stopped

Every debtor in a Collect campaign has a payment status. It starts as pending, and Collect keeps calling only while it is pending. Marking a debtor paid, promised or stopped cancels their next scheduled call straight away. You can do it from the portal, with one API call per debtor, or from your payment system with the payment webhook.

## Payment statuses

| Status | Use it when | More calls |
|---|---|---|
| `pending` | Default after upload | Yes, on the schedule |
| `paid` | The debtor has paid | No |
| `promised` | The debtor has promised to pay | No |
| `stopped` | You want no more calls for any other reason (dispute, wrong number, request to stop) | No |

## In the portal

On the campaign page, each debtor row has **Paid** and **Stop** buttons. The payment column updates when the table refreshes. To mark a debtor promised, use the API.

## With the API

```bash
curl -X POST https://voice-api.edesy.in/v1/collect/contacts/CONTACT_ID/paid     -H "Authorization: Bearer sk_your_api_key"
curl -X POST https://voice-api.edesy.in/v1/collect/contacts/CONTACT_ID/promised -H "Authorization: Bearer sk_your_api_key"
curl -X POST https://voice-api.edesy.in/v1/collect/contacts/CONTACT_ID/stop     -H "Authorization: Bearer sk_your_api_key"
```

```json
{ "status": "ok", "payment_status": "paid" }
```

`CONTACT_ID` is the debtor's `id` from `GET /v1/campaigns/:id/contacts`. A contact that is not in your workspace returns `404`.

## From your payment system

To mark debtors automatically when they pay, send `POST /v1/collect/webhooks/payment` from your backend. See [Payment Webhook and Razorpay](https://edesy.in/docs/collect/payments/payment-webhook-razorpay).

## FAQ

**Does marking a debtor paid stop a call that is already ringing?**
No. It cancels the next scheduled attempt. A call already in progress finishes.

**Can I undo a status?**
Send `{"contact_id": "...", "status": "pending"}` to the payment webhook to set the status back to pending. Their next attempt is not rescheduled automatically, so upload them again if you want reminders to resume.

**Is a promised payment followed up automatically?**
No. Promised stops calls. If the debtor misses the promise, upload them again in a new campaign.
