To send your first payment-reminder call, create a number pool with at least one number, create a reminder campaign, save the reminder message, upload a debtor (use your own phone first), and press Start. The call goes out at the next calling-window open, which is right away if you are inside 09:00 to 20:00 IST.
Before you begin#
- An approved KYC on your Edesy account
- An active Collect plan, or enough wallet balance to fund calls
- At least one Indian number on your account, or buy one from the Number Pools page
In the portal#
- Open Number Pools, create a pool (for example "Collections pool", rotation "Round robin"), then Buy a number or Add a number you own. See Number Pools and Rotation.
- Open Reminder Campaigns and click New campaign. Enter a name, a fallback caller ID in E.164 (
+91...), pick your pool, and keep the default caps (2 a day, 6 in total, 180 minutes apart). Click Create. - On the campaign page, type the message under Voice message, optionally a voice ID, and click Save & render. See Reminder Message and Voice.
- Under Upload debtors, paste one line per debtor:
phone,name,due_date,amount, for example+919800000000,Test Debtor,2026-11-15,5000. Click Add contacts. See Upload Debtors. - Click Start. Watch the contacts table: attempts go up and the payment column stays
pendinguntil you click Paid or Stop.
With the API#
Create an API key in your Edesy workspace and send it as Authorization: Bearer sk_.... The steps below assume you already created a pool (POOL_ID).
# 1. Create a reminder campaign
curl -X POST https://voice-api.edesy.in/v1/collect/campaigns \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "November EMI reminders",
"from_number": "+91XXXXXXXXXX",
"audio_type": "tts",
"number_pool_id": "POOL_ID",
"max_attempts_day": 2,
"max_attempts_total": 6,
"min_gap_minutes": 180
}'
# 2. Save and render the message (use the campaign id from step 1)
curl -X POST https://voice-api.edesy.in/v1/collect/campaigns/CAMPAIGN_ID/message \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"text": "Hello, this is a reminder that your payment is due. Please pay at the earliest to avoid late charges."}'
# 3. Upload debtors
curl -X POST https://voice-api.edesy.in/v1/collect/campaigns/CAMPAIGN_ID/contacts \
-H "Authorization: Bearer sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"contacts": [{"phone_number": "+91XXXXXXXXXX", "name": "Test Debtor", "due_date": "2026-11-15", "amount_due": 5000}]}'
# 4. Start
curl -X POST https://voice-api.edesy.in/v1/collect/campaigns/CAMPAIGN_ID/start \
-H "Authorization: Bearer sk_your_api_key"
Full request and response details are in the API reference.
If the start fails#
| Error | Fix |
|---|---|
403 KYC_NOT_APPROVED |
Finish KYC on the KYC page and wait for approval |
campaign has no contacts |
Upload at least one debtor first |
campaign has no TTS text configured |
Save a message first |
| Balance error | Top up the wallet or check that your plan's first payment went through |
caller-ID number not owned by this workspace |
Use a number that belongs to your workspace |