# Promise-to-Pay Tracking for Payment Reminder Calls (2026)

> How to track promise-to-pay (PTP) in a payment reminder program: what a promise is, where to record it, how to pause reminder calls, follow up on broken promises, and measure PTP kept rate with Edesy Collect.

Source: https://edesy.in/blog/promise-to-pay-tracking-reminder-calls-2026

**Promise-to-pay (PTP) tracking means recording a customer's commitment to pay by a date, pausing reminder
calls until then, and checking afterwards whether the promise was kept.** In Edesy Collect you mark the
contact promised through the API (or the payment webhook) and the calls stop at once. Keep the promised date and
amount in your own system, follow up when it passes, and measure your PTP kept rate.

> **Pause reminders when customers promise:** [Open Edesy Collect](https://collect.edesy.in/?utm_source=edesy.in&utm_medium=blog&utm_campaign=promise-to-pay-tracking-reminder-calls-2026) and connect the payment webhook.

## Why promises need tracking

A reminder program without promise tracking makes two mistakes:

1. **It keeps calling people who've agreed to pay.** The customer said "Friday". They get another
   automated call on Tuesday. They stop trusting your calls.
2. **It forgets the promise.** Friday passes, nobody checks, and the account drifts until the next cycle.

Tracking fixes both: calls pause after a promise, and a follow-up happens on the right day.

## Where promises come from

| Source | Example | How it reaches Collect |
|---|---|---|
| Customer calls back the reminder number | "I'll pay on the 15th" | Your agent records it in your CRM, which calls the `/promised` API |
| Your collections team calls the customer | Agent agrees a date | Your CRM calls the `/promised` API |
| Payment link or app | Customer picks a date in your app | Your backend calls the API or webhook |
| Branch or field visit | Customer commits in person | Staff mark it in your system, which calls the API |

The reminder call itself is one-way TTS. Make it easy to promise: include a callback number in the message
(your pool numbers should forward to the collections team) and a payment link sent by your usual channel.

## How it works in Edesy Collect

Each contact in a reminder campaign has a payment status:

| Status | Meaning | Calls |
|---|---|---|
| Pending | Nothing recorded yet | Scheduled as per the campaign |
| Promised | Customer has committed to pay | Stopped |
| Paid | Payment received | Stopped |
| Stopped | You stopped calls for another reason (dispute, request not to call) | Stopped |

Promised is set through the API, from your CRM, loan system or a small script your team uses:

- **API:** `POST /v1/collect/contacts/:id/promised` (also `/paid` and `/stop`).
- **Payment webhook:** your server posts `{"contact_id": "...", "status": "promised"}` to
  `POST /v1/collect/webhooks/payment` with your API key. The webhook is idempotent, so sending the same
  status twice is safe. With no status it means paid. If you take payments through Razorpay, forward the
  payment event from your own Razorpay handler to this webhook.

The moment a contact is promised, paid or stopped, it stops being called. Full request
formats are in the [Collect docs](https://edesy.in/docs/collect).

## Keep the promise details in your system

Collect tracks that a promise exists and stops the calls. The details belong in your system of record:

| Field | Why |
|---|---|
| Promised amount | Partial promises are common; you need to know what "kept" means |
| Promised date | Drives the follow-up |
| Who took the promise | For coaching and the kept-rate by person |
| Channel | Callback, agent call, app, branch |
| Outcome | Kept, partly kept, broken |

When the promised date arrives, your system checks whether the payment landed. If it did, mark the contact
paid (or let the payment webhook do it). If not, start a follow-up.

## Following up on a broken promise

| Day | Action |
|---|---|
| Promised date | Check payment. If paid, mark paid. If not, wait for the day to end. |
| Promised date + 1 | Add the contact to a short follow-up reminder campaign, or have a person call |
| Promised date + 2 to 3 | If still unpaid, a person calls to understand why |
| Second broken promise | Treat as an account that needs a human conversation, not more automated calls |

Keep the tone the same as before. A broken promise is a reason for a clearer reminder, not for threats.
See [calling hours rules for collection calls](https://edesy.in/blog/calling-hours-rules-for-collection-calls-india-2026)
for the conduct side.

To put a contact back into automated reminders, add them to a new follow-up campaign. Each Collect
campaign plays one message to everyone in it, so a separate campaign gives this stage its own wording ("You told us you would pay on the 15th...") instead of reusing the pre-due-date wording.
More on stages in [payment reminder call schedule by due date](https://edesy.in/blog/payment-reminder-call-schedule-by-due-date-2026).

## Measuring promises

| Metric | Formula | What it tells you |
|---|---|---|
| PTP rate | Promises / contacts reached | How well reminders and callbacks turn into commitments |
| PTP kept rate | Promises paid in full by the date / promises that came due | How realistic the promises are |
| Partial kept rate | Promises partly paid / promises that came due | Whether customers need smaller instalments |
| Average promise length | Days between promise and promised date | Long promises are kept less often in many portfolios; check yours |
| Broken-promise repeat rate | Contacts with 2+ broken promises / contacts with a promise | Accounts needing a different approach |

Track these by team member and by schedule stage. A team member whose promises are rarely kept may be
accepting dates the customer can't meet. A stage that produces many promises but few payments may need
different wording.

## Common mistakes

- **Leaving promised contacts in the calling list.** Mark them through the API, or wire the webhook.
- **No date on the promise.** "Will pay soon" is not a promise. Ask for a date and an amount.
- **No follow-up.** A promise with no check on the date is the same as no promise.
- **Only tracking the PTP rate.** Lots of promises that aren't kept is not success.

## What it costs

Promise tracking is part of Edesy Collect. Plans (plus 18% GST): Starter Rs 1,499 a month with about 1,000
calls then Rs 0.90 per connected call; Growth Rs 3,499 with about 4,000 then Rs 0.75; Scale Rs 10,499 with
about 16,000 then Rs 0.60. One number included, extra caller IDs about Rs 500 a month, unanswered calls
free. Every promised contact is a contact you stop paying to call. See
[payment reminder call pricing](https://edesy.in/payment-reminder-calls/pricing).

## Related

- [Caller ID rotation for payment reminders](https://edesy.in/blog/caller-id-rotation-payment-reminder-calls-2026)
- [Trigger payment reminder calls from your app](https://edesy.in/blog/trigger-payment-reminder-calls-from-your-app-api-2026)
- [EMI reminder IVR calls with press-1 callback](https://edesy.in/blog/emi-payment-reminder-ivr-calls-2026), if you
  want customers to respond with a key during the call
- [EMI collection](https://edesy.in/emi-collection)

More on the product: [payment reminder calls](https://edesy.in/payment-reminder-calls).

[Set up Collect with promise tracking](https://collect.edesy.in/?utm_source=edesy.in&utm_medium=blog&utm_campaign=promise-to-pay-tracking-reminder-calls-2026).

## Frequently Asked Questions

### What is a promise to pay (PTP)?

A promise to pay is a customer's commitment to pay a specific amount by a specific date. In collections it is recorded so that reminders pause until that date, and so the team can check later whether the promise was kept.

### Why stop reminder calls after a promise?

Because calling someone who has just agreed to pay on Friday, again on Tuesday and Wednesday, is irritating and makes the promise less likely to be kept. A recorded promise should quiet the reminders until the promised date.

### How do I mark a promise in Edesy Collect?

Through the API: call POST /v1/collect/contacts/:id/promised from your system, or send status promised to the Collect payment webhook from your server. Promised contacts stop being called straight away.

### Where should the promised date be stored?

In your own system of record (loan system, CRM or a sheet) together with the amount. Edesy Collect records the contact's status as promised and stops the calls; the date and amount of the promise live with you, and you decide when to follow up.

### What should happen when a promise is broken?

Check the payment first, then follow up within a day or two of the promised date: a short reminder call or a call from a person. Don't jump to harsher language. Repeated broken promises are a sign the account needs a human conversation.

### What is a good metric for promises?

PTP kept rate: promises paid in full by the promised date, divided by all promises that came due. Track it by team member, by stage of the schedule and by promise length.
