DIDfarm
  • Numbers
  • Trunks
  • Messaging
  • Connect
  • Pricing
  • Coverage
  • Help
🇬🇧 EN 🇳🇱 NL 🇩🇪 DE 🇫🇷 FR 🇪🇸 ES 🇧🇷 PT 🇸🇦 AR 🇨🇳 ZH 🇯🇵 JA 🇮🇳 HI
Sign in Get a Number
← Help Center
On this page
Overview Prerequisites Step 1 — Enable SMS Step 2 — Send from Portal Step 3 — View Inbox Step 4 — Send via API Step 5 — Receive via Webhook Step 6 — Delivery Status Pricing Supported Countries Troubleshooting FAQ

How to Send & Receive SMS with DIDfarm

Messaging · 8 min read SMS API Portal
What this guide covers: Enabling SMS on your DIDfarm phone numbers, sending and receiving messages through the customer portal, and integrating SMS into your application via the REST API. DIDfarm supports 2-way SMS in 40+ countries through our multi-carrier infrastructure.

Overview

DIDfarm SMS lets you send and receive text messages on any SMS-enabled phone number in your account. Messages can be managed through two channels:

  • Portal — send and receive messages directly in the DIDfarm dashboard under the SMS tab. No code required.
  • REST API — integrate SMS into your application for automated messaging, notifications, and customer engagement.

Inbound SMS is free. Outbound messages are charged per segment from your wallet balance.

How it works

  1. Purchase a number with SMS capability (or enable SMS on an existing number)
  2. Send outbound SMS from the portal or API
  3. Receive inbound SMS in your portal inbox or via webhook
  4. Track delivery status in real-time

Prerequisites

  • A DIDfarm account with wallet balance (sign up or top up)
  • An active phone number in a country that supports SMS (see supported countries)
  • For API usage: your API key from the API Keys tab in the portal
Which numbers support SMS? Numbers with SMS capability show an SMS badge in the order flow and in your My Numbers dashboard. Not all number types in all countries support SMS — mobile numbers generally have the best SMS support.

Step 1 — Enable SMS on a Number

Option A: During checkout

When ordering new numbers, SMS-capable numbers show an "SMS" checkbox in Step 2 of the order flow. Check the box to enable SMS — the add-on cost is shown next to each number.

Option B: On an existing number

  1. Go to My Numbers in the portal
  2. Click Configure on the number you want to SMS-enable
  3. Find the SMS capability toggle in the settings panel
  4. Toggle it on — you'll see the monthly price and a confirmation prompt
  5. Confirm — the SMS add-on fee is charged from your wallet
SMS must be enabled per number. Each number needs SMS activated individually. The monthly SMS add-on fee varies by country (typically €0.75/mo). You can disable SMS at any time from the same toggle.
SettingValue
SMS add-on cost€0.75/mo per number (varies by country)
Outbound SMS cost€0.008 per message segment
Inbound SMSFree
Message segment160 characters (GSM-7) or 70 characters (Unicode)
BillingCharged from wallet balance

Step 2 — Send SMS from the Portal

1 Go to the SMS tab in your portal dashboard
2 Click the Compose button
3 Select the From number (your SMS-enabled DID)
4 Enter the To number in E.164 format (e.g. +31612345678)
5 Type your message (up to 1,600 characters) and click Send SMS

The message appears in your SMS inbox immediately with a delivery status indicator. Status updates from queued → sent → delivered in real-time.

Step 3 — View Your SMS Inbox

All inbound and outbound messages appear in the SMS tab of your portal. You can:

  • Filter by number — select a specific DID to see only its messages
  • Filter by direction — show only inbound or outbound
  • View stats — messages today, this month, and 30-day delivery rate
Inbound messages arrive instantly. When someone sends an SMS to your DIDfarm number, it appears in your portal inbox within seconds. No polling required — the page updates automatically.

Step 4 — Send SMS via API

Send SMS programmatically using the DIDfarm REST API. Authenticate with your API key in the Authorization header.

POST /api/v1/portal/sms/send
{
  "from_number_id": 42,
  "to": "+31612345678",
  "body": "Hello from DIDfarm!"
}
CURL EXAMPLE
curl -X POST https://didfarm.com/api/v1/portal/sms/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number_id": 42,
    "to": "+31612345678",
    "body": "Your order #1234 has shipped!"
  }'
RESPONSE
{
  "success": true,
  "message": {
    "id": 156,
    "direction": "outbound",
    "from": "+31201234567",
    "to": "+31612345678",
    "body": "Your order #1234 has shipped!",
    "status": "queued",
    "segments": 1,
    "carrier": "didfarm",
    "created_at": "2026-04-03T10:15:30.000000Z"
  }
}
ParameterTypeDescription
from_number_idintegerID of your SMS-enabled number (from GET /api/v1/portal/sms/numbers)
tostringDestination number in E.164 format (e.g. +31612345678)
bodystringMessage text, max 1,600 characters

Step 5 — Receive SMS via Webhook

To receive inbound SMS in your application, configure a webhook URL. DIDfarm will send an HTTP POST to your endpoint for each incoming message.

INBOUND WEBHOOK PAYLOAD
{
  "event": "sms.received",
  "data": {
    "id": 157,
    "from": "+31612345678",
    "to": "+31201234567",
    "body": "Thanks, got the tracking!",
    "segments": 1,
    "received_at": "2026-04-03T10:16:45.000000Z"
  }
}
Webhook setup coming soon. Webhook configuration for inbound SMS is on our roadmap. In the meantime, you can poll the GET /api/v1/portal/sms endpoint to check for new messages, or use the portal inbox.

Step 6 — Track Delivery Status

Every outbound message goes through these status transitions:

StatusMeaning
queuedMessage accepted and queued for delivery
sendingBeing transmitted to the carrier network
sentAccepted by the carrier for delivery
deliveredConfirmed delivered to the recipient's handset
failedDelivery failed (invalid number, carrier rejection, etc.)

Check delivery status via the portal SMS tab or by calling:

GET /api/v1/portal/sms?direction=outbound
curl https://didfarm.com/api/v1/portal/sms?direction=outbound \
  -H "Authorization: Bearer YOUR_API_KEY"

Pricing

ChargeAmountNotes
SMS monthly add-on€0.75/number/moVaries by country. Charged from wallet.
Outbound SMS€0.008/segment1 segment = 160 chars (GSM-7) or 70 chars (Unicode)
Inbound SMSFreeNo charge for receiving messages

View full per-country SMS pricing on the SMS product page.

Supported Countries

SMS is available in 40+ countries. The most popular include:

CountryLocalMobileToll-Free
United StatesYesYesYes
United KingdomYesYesYes
GermanyYesYes—
NetherlandsYesYesYes
FranceYesYes—
CanadaYesYesYes
AustraliaYesYes—

For the complete list, see the SMS pricing table. Countries marked with an SMS badge in the order flow support SMS messaging.

Troubleshooting

IssueCauseFix
"SMS not available for this number type"The number's country/type combination doesn't support SMSTry a mobile number instead, or check supported countries
"Number must be active to enable SMS"Number is still provisioning or pending regulatory verificationWait for the number to become Active before enabling SMS
"Insufficient wallet balance"Wallet balance is below the SMS add-on monthly feeTop up your wallet
Outbound SMS stuck in "queued"Carrier processing delayWait up to 60 seconds. If still queued, check the number's messaging profile is assigned
Inbound SMS not appearingMessaging profile webhook not configuredContact support — we'll verify the carrier webhook setup
"Failed to send SMS"Invalid destination number or carrier rejectionVerify the To number is valid E.164 format and the destination country accepts SMS

FAQ

Can I send SMS to any country?

You can send outbound SMS to most countries worldwide. However, your sending number must be in a country that supports SMS. Some destinations may have higher delivery rates with local numbers.

What is a message segment?

A standard SMS segment is 160 characters using GSM-7 encoding (Latin alphabet). Messages using Unicode characters (emoji, Chinese, Arabic, etc.) are limited to 70 characters per segment. Longer messages are automatically split into multiple segments and reassembled on the recipient's phone.

Can I use SMS with the API only (no portal)?

Yes. The portal and API use the same underlying messaging system. You can send via API and view history in the portal, or use the API exclusively.

Is there a rate limit?

Default rate limit is 10 messages per second per account. Contact us for higher throughput if you need bulk messaging.

Do you support MMS (picture messages)?

MMS is on our roadmap and will be available on US and Canadian numbers first. Currently, only text SMS is supported.

Ready to start messaging?

Get an SMS-enabled number in under 60 seconds.

Order numbers →
© 2026 DIDfarm · didfarm.com
About Blog Partners Coverage API Docs Status Privacy Terms Cookies Help

We use essential cookies to make DIDfarm work. With your consent, we also use analytics cookies to improve our service. Cookie Policy