OTP and login codes
Codes with a short expiry and idempotent retries — the classic use.
Apps and websites
SMS gateway
Install the ChatVendor app on an Android phone, pair it, and call one REST endpoint from your CRM, Laravel app or bot. Your SIM does the sending — no per-message carrier contract.
To send a one-time code from your app you normally need a contract with an SMS aggregator, a registered sender name, a monthly minimum and a week of paperwork. For a small business or a side project that is a wall.
Meanwhile a phone with an unlimited SMS plan sits in the office. It can send thousands of messages a month — it just cannot be called from code.
The Android app pairs with your workspace by scanning a one-time code. From then on, POST /api/v1/messages queues a message, the phone picks it up over the internet and sends it through its SIM. Statuses come back — queued, sent, delivered — with a timeline for every message.
Several phones can be paired for capacity and failover, with routing by device, least-busy or round-robin. Rate limits protect every SIM from a loop in your code.
Install the app, scan the code from the dashboard. The phone gets its own credentials — your API key never touches it.
Keys have scopes (messages:send, messages:read…) and an environment: live or test.
One POST with to and message. Use an Idempotency-Key so retries are safe.
Pair several phones. Route by device, least-busy or round-robin, with automatic failover.
Layered rate limits down to per-SIM so a bug cannot flood a physical card.
Set expires_in on an OTP and a stale code is dropped instead of arriving late.
Send to a list with scheduling and per-message callbacks.
Every state change with timestamps; delivery reports from the carrier when available.
PHP SDK, WordPress plugin and OpenAPI 3.1 for any other language.
Codes with a short expiry and idempotent retries — the classic use.
Apps and websites
"Your order is ready", "courier is on the way" — triggered from your CRM.
Shops, delivery
Appointment reminders the day before, sent from the clinic's own number.
Clinics, salons
Any Android 8+ phone with a SIM card. Dual-SIM phones report both cards and you choose which one sends.
That depends on your carrier tariff and the limits you set; hundreds to a few thousand per day is typical. Pair more phones for more capacity.
The app only holds device credentials, not your API key. You can revoke a device from the dashboard at any time.
Incoming messages on the paired phone are forwarded to your webhook as message.received (where the OS allows it).
The Free plan includes one phone and a daily limit; paid plans add phones and volume. You pay your carrier for the SMS itself.
Create a free account, pair a phone, send a test message with a cv_test_ key.