KudiSMS Logo

Email

Send transactional and campaign emails from an approved sender.

Send Transactional Email

POST/transactional

Attachments are optional. Use POST only — GET does not support attachments.

FieldExampleDescription
token*xxxxxxxxYour API key.
senderEmail*xxxxxxxxxxYour approved sender email.
senderName*xxxxxxxxxxYour approved sender name.
senderFrom*xxxxxxxxxxxxxSender of the transaction.
transactionName*xxxxxxxxxxxxxName for this transaction message.
recipient*xxxxxxxxxxxxxxRecipient's email address.
subject*xxxxxxxxxxxxxxEmail subject.
message*xxxxxxxxxxxThe transactional message.
attachments[N][filename]invoice.pdfFilename with extension (optional, up to 5 files).
attachments[N][content]BASE64_STRINGBase64-encoded file content — not a raw file upload.

Attachment rules

  • Each file needs a filename (with extension) and Base64-encoded content.
  • Maximum 5 files, 5MB per file, 8MB total.
  • Allowed types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, CSV, TXT, JPG, PNG, GIF, ZIP.
Form-data example
attachments[0][filename] = invoice.pdf
attachments[0][content]  = BASE64_STRING
attachments[1][filename] = receipt.xlsx
attachments[1][content]  = BASE64_STRING

Send Campaign Email

POST/campaign
FieldExampleDescription
token*xxxxxxxxYour API key.
senderEmail*xxxxxxxxxxxYour approved sender email.
senderName*xxxxxxxxYour approved sender name.
senderFrom*xxxxxxxxxxxSender of the campaign.
campaignName*xxxxxxxxxName for this campaign message.
recipient*xxxxxxxxxxxRecipient's email address.
subject*xxxxxxxxxEmail subject.
templateCodexxxxxxxxxxYour saved template code.
htmlxxxxxHTML or plain text (optional — either templateCode or html). Only supported with POST & JSON method.

Email Webhooks (inbound)

POSThttps://your-server.com/webhooks/kudisms

KudiSMS sends POST webhooks to your configured callback URL when an email status changes (delivery, bounce, open, click, etc.).

  • Set your callback URL in the KudiSMS dashboard.
  • Match webhooks to sends using api_reference (same UUID from the send API response).
  • Webhooks include type: "email" to distinguish from SMS/voice.
  • Respond with HTTP 200 to acknowledge.

Status & code

StatusCodeDescription
DELIVERED000Email delivered successfully
SENT001Email accepted by the provider
BOUNCED100Email could not be delivered
QUEUED101Delivery queued or temporarily delayed
HELD102Email held for review
UNKNOWN150Unrecognized status
Example payload
{
  "type": "email",
  "status": "DELIVERED",
  "api_reference": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "vendor": "Kudisms",
  "data": {
    "code": "000",
    "cost": "3.00",
    "recipient": "customer@example.com",
    "time": "2026-06-19 10:15:30",
    "description": "Recipient has received the email successfully",
    "views": 0,
    "clicks": 0
  }
}

Updated at, Sunday, July 19, 2026