If you run payday, installment, or short-term loans through TurnKey Lender, you've probably already tried the platform's built-in texting. You turn on SMS notifications, a borrower's payment comes due, the dashboard shows the reminder as sent, and the borrower calls three days later asking why nobody told them. The message didn't fail. It got filtered, and the reason is the SMS provider sitting behind TurnKey Lender's own settings screen, not anything wrong with your loan servicing setup.
The wiring is fixable. Here's what's actually happening, and how to route reminders through a channel that doesn't put your vertical on a block list before the message even leaves the building.
Why TurnKey Lender's built-in SMS stalls for lenders
TurnKey Lender's native texting runs through a BulkSMS.com integration: you go to Settings, click Integrations, click "Send SMS messages" in the SMS Service block, and enter a BulkSMS account's credentials. It's the same setup used for two-factor authentication codes to staff and borrowers. That's a fine, fast integration for a retailer or a SaaS company sending shipping notices. It is not built for lending.
BulkSMS, like Twilio, MessageBird, and every other aggregator sending U.S. traffic, routes through the A2P 10DLC carrier system: register a brand, register a campaign by industry and use case, get the campaign approved, then have every outbound message checked against that approved profile. Payday and short-term lending campaigns don't clear that gate. T-Mobile's own A2P messaging guidelines list "Payday Loans" and "Non-Direct Lenders" under High-Risk Financial Services, alongside debt collection and debt consolidation.
A stalled reminder like this usually means the message cleared TurnKey Lender and BulkSMS just fine, then got quietly dropped or throttled at the carrier layer. Aggregators generally don't get a failure signal back when a carrier filters a message, so the dashboard has no way to show you that it happened.
What changes when the message is P2P instead of A2P
Android Texter sends outbound SMS from a real Android phone on a real carrier line, the same way a person sends a text to a friend. There's no brand to register, no campaign to submit, no industry classification to declare. The carrier sees person-to-person traffic because it is person-to-person traffic, so the SHAFT-C and high-risk-financial-services content filtering that blocks payday loan campaigns at the aggregator layer doesn't apply to it.
What doesn't change: the Telephone Consumer Protection Act. TCPA governs who you can text and what you can say to them, and that's entirely on the operator, same as it would be with BulkSMS, Twilio, or anything else. Android Texter opens the channel. It doesn't touch your consent obligations, and nothing about routing through a personal handset reduces your TCPA exposure. More on exactly what that means below.
Connecting TurnKey Lender to Android Texter
TurnKey Lender doesn't have a native Android Texter connector, so the bridge is a webhook in one direction and an API call in the other. Here's the setup:
1. Get an Android Texter API key. From the dashboard, go to /dashboard/settings/api-keys and generate a key (prefixed atx_). This gets sent as the X-API-Key header on every request. The full endpoint reference, including request and response schemas, is in the interactive Swagger UI at androidtexter.com/api/swagger.
2. Turn on TurnKey Lender's outbound webhook. In TurnKey Lender, webhooks live under Settings, API, Webhooks, where you can pick which system events trigger a call out, including loan status changes and successful payments. Point it at a small relay endpoint of your own, since TurnKey Lender's webhook needs an HTTPS URL to post the event payload to.
3. Have the relay call Android Texter's send endpoint. The relay's only job is to pull the borrower's phone number and due date or payment amount out of the TurnKey Lender payload and forward a POST to /api/v1/messages/send with the phone number and message text. If you'd rather not write and host that relay yourself, wire it through Zapier, Make, or n8n instead. All three connect to Android Texter's webhook and API without custom code, and Android Texter has setup guides for each if you want the exact steps.
4. Schedule around due dates, not around when you happen to be at your desk. The send endpoint accepts a scheduled_at RFC 3339 timestamp, so a reminder for a borrower in a different time zone goes out at 10am their time, not yours. Recurring due-date reminders and renewal-offer sends both work this way.
5. Route replies back to a human. Register a message.received webhook and forward "PAID," "CALL ME," or a payment question into whatever queue your collections or servicing team already works from, or just read replies in the Android Texter unified inbox alongside everything else. Borrowers who text back are borrowers who are trying to resolve something, and a reply that sits unread for two days is a missed save.
If your loan book is big enough that reminders sent from a single number start looking like a burst to the carrier, Android Texter's multi-device pairing lets you pair several phones to one account and split sends across them, or pin specific loan segments to a specific device.
What to actually put in the message
Keep payment reminders informational: due date, amount, a link or number to pay, nothing promotional. That distinction matters for consent, not just tone (see below). A workable template:
"[Lender name]: Your payment of $[amount] on loan #[id] is due [date]. Pay online at [link] or call [number]. Reply STOP to opt out."
Renewal or rollover offers are a different message type and should be sent separately with their own consent basis, since they're closer to marketing than servicing.
Android Texter treats STOP, UNSUBSCRIBE, CANCEL, END, and QUIT as automatic suppression triggers, so a borrower who opts out of texts stops receiving them across every send, not just the one they replied to.
TCPA still governs the message, not the channel
None of the above reduces your TCPA exposure, and nothing here should be read as legal advice. Two things are worth knowing precisely, because they're often stated wrong.
First, the consent bar for a payment reminder is lower than the bar for marketing. The FCC's rules distinguish informational or servicing messages, which need "prior express consent," from telemarketing messages sent with an autodialer, which need the stricter "prior express written consent." A due-date reminder to an existing borrower is informational. A renewal pitch that's trying to sell a new loan is closer to marketing and should be treated that way. Document which bucket each message type falls into and where the consent for it was collected, typically the loan application itself for servicing texts.
Second, the penalties are real regardless of which bucket a message lands in. The TCPA sets statutory damages at $500 per violation, rising to $1,500 if a court finds the violation willful or knowing, and each message is its own violation. The FCC's consumer guide confirms opt-outs must be honored in any reasonable manner the consumer uses, not just a formal STOP reply, and within a reasonable time.
Android Texter doesn't advise on TCPA compliance and doesn't represent that any specific message you send is compliant. Get consent, keep a record of it, and honor every opt-out the moment it comes in.
Frequently Asked Questions
Does this replace TurnKey Lender's BulkSMS integration entirely?
You can leave BulkSMS configured for two-factor authentication codes to staff, where A2P filtering isn't an issue, and route only the borrower-facing payment reminders and renewal messages through Android Texter. The two aren't mutually exclusive inside the same TurnKey Lender instance.
Do I need to register for 10DLC if I switch to this setup?
No. Android Texter routes through a real Android handset as person-to-person SMS, which sits outside the A2P 10DLC registration and campaign-approval process entirely. There's no brand or campaign to file.
Will a payment reminder text count as telemarketing under the TCPA?
Not if it's purely informational, such as a due date, amount, and payment link, with no promotional content. Renewal offers or upsells are closer to marketing and carry the stricter written-consent standard. Keep the two message types separate and documented.
What happens when a borrower texts STOP?
Android Texter suppresses further sends to that number automatically. The same applies to UNSUBSCRIBE, CANCEL, END, and QUIT. Build the suppression check into your relay logic too, so a webhook-triggered reminder never fires to a number that already opted out.
Can I send reminders to a whole batch of loans due the same day?
Yes, the API supports broadcasting to up to 500 phone numbers in a single call, and scheduled sends let you queue a batch for a specific timestamp so due-date reminders land at a sensible hour in each borrower's time zone.
Getting started
If TurnKey Lender's dashboard keeps telling you a reminder sent while your delivery numbers say otherwise, a better BulkSMS plan won't help. The messages need a channel that isn't filtered by vertical. Android Texter's REST API and webhook bridge plug into the same event TurnKey Lender already fires on loan status changes and payments, so the switch is a relay function, not a rebuild of your servicing workflow.
