Legacy API Notice: This documentation covers the Legacy Sent API (v2). For new integrations, please refer to the latest Sent API v3 Error Catalog.
Error Catalog
This catalog lists every error message the legacy Sent API v2 returns, with its cause and remediation. The entry codes (AUTH-001, VAL-002, and so on) are catalog identifiers for lookup on this page; they do not appear in API responses. For the response structure and status-code overview, see the Error Reference; for retry and error-handling implementation patterns, see How to handle Sent API errors.
Authentication Errors (401)
AUTH-001: Invalid or Missing API Credentials
Error: "Invalid or missing API credentials"
Cause: The x-api-key header is missing, or the key does not belong to the customer in x-sender-id.
Remediation:
- Include the
x-api-keyheader on every request - Verify the key is active on the API Keys page of your dashboard and matches your sender ID
- Generate a new API key if the key was rotated or deleted
curl -H "x-api-key: your-api-key-here" \
-H "x-sender-id: your-sender-id" \
https://api.sent.dm/v2/contactsAUTH-002: Missing or Invalid Sender Identifier
Error: "Missing or invalid sender identifier"
Cause: The x-sender-id header is missing or its value is not a valid UUID.
Remediation: Include the x-sender-id header with your sender ID exactly as shown on the API Keys page of your dashboard.
Validation Errors (400)
VAL-001: Required Field Missing
Errors:
"Phone number is required":phoneNumberon message sends, number lookup, and contact lookup by phone"Custom message is required":customMessageon quick message"Contact ID is required":idon contact lookup by ID"Message ID is required":idon message lookup"Template ID is required":idon template lookup and delete"Template body is required": template definition body on template creation
Remediation: Include the named field with a non-empty value.
VAL-002: Invalid ID Format
Errors:
"Invalid contact ID format. Expected a valid GUID.""Invalid message ID format. Expected a valid GUID.""Invalid template ID format. Expected a valid GUID."
Cause: The provided ID is not a valid UUID.
Remediation: Use the UUID exactly as returned by the API (for example, 550e8400-e29b-41d4-a716-446655440000).
VAL-003: Invalid Pagination Parameters
Errors:
GET /v2/contacts:"Page must be zero or greater"and"PageSize must be greater than zero"GET /v2/templates:"Page must be greater than or equal to 0"and"PageSize must be between 1 and 1000"
Remediation: Use page >= 0 and a positive pageSize (at most 1000 for templates).
VAL-004: Template Variable Validation Failed
Errors:
"Missing required template variables: {names}""Variable '{name}' is invalid: param text cannot have new-line/tab characters or more than 4 consecutive spaces.""Variable '{name}' does not match the required pattern."
Cause: The templateVariables map on a send request omits a variable the template requires, or a value violates the format rules.
Remediation:
- Provide every variable defined in the template, with names matching exactly
- Remove new-line and tab characters and runs of more than 4 spaces from values
- For variables with a validation pattern, supply a value matching that pattern
Business Logic Errors
BUS-001: Insufficient Balance
Error: "Insufficient balance to send message."
HTTP Status: 402 Payment Required
Cause: The account balance is below the minimum required to send a message.
Remediation: Add funds to your account in the dashboard, then retry the request.
BUS-002: Template Not Found
Error: "Template not found"
HTTP Status: 404 Not Found
Cause: The templateId on a send request does not exist or does not belong to your customer account.
Remediation:
- Verify the template ID against
GET /v2/templates - Confirm the template belongs to the authenticated customer account
Not Found Errors (404)
NOT-001: Resource Not Found
Error: 404 with an empty response body
Cause: The contact, message, template, or phone number requested from a GET lookup endpoint (or a template targeted by DELETE) does not exist for the authenticated customer.
Remediation:
- Verify the ID or phone number is correct
- Confirm the resource belongs to your customer account
Rate Limit Errors (429)
RATE-001: Rate Limit Exceeded
Error: "Rate limit exceeded. Please retry after {seconds} seconds."
Cause: The per-minute limit on the send-message endpoints was exceeded.
Remediation: Wait the number of seconds in the Retry-After header, then retry. Limit values and the full 429 response are documented on Rate Limits.
RATE-002: Quick-Message Daily Limit Exceeded
Error: "Daily message limit exceeded. You have sent 5 of 5 allowed messages today. Limit resets at midnight UTC."
Cause: POST /v2/messages/quick-message allows 5 messages per customer per day.
Remediation: Wait for the reset at midnight UTC, or use POST /v2/messages/phone with your own template for higher volume.
Server Errors (500)
SRV-001: Failed to Queue Message
Error: "Failed to queue message for processing."
Cause: The send endpoint could not hand the message to the delivery pipeline.
Remediation: Retry the request; contact support if the error persists.
SRV-002: Template Creation Failed
Errors:
"Failed to create template""Template was created but could not be retrieved"
Cause: POST /v2/templates failed while persisting or reading back the template.
Remediation: List your templates to check whether the template was created, then retry if it is absent; contact support if the error persists.
Delivery Failures Are Not API Errors
Message sends are asynchronous: POST /v2/messages/phone and POST /v2/messages/contact return 202 once the message is queued, before any carrier or WhatsApp interaction. Failures that happen later (unreachable numbers, carrier rejections, WhatsApp errors) do not produce an API error response. They surface as a FAILED message status, which you can observe via GET /v2/messages/{id} or a message.failed webhook event.
Webhook delivery problems (timeouts, non-2xx responses from your endpoint) are also handled outside the v2 API surface; see webhook retries.
Error Reference
HTTP status codes and the problem-details error response format returned by the legacy Sent API v2, with example JSON error payloads for each status code.
Rate Limits
Rate limits for the legacy Sent API v2: the per-minute limit on send endpoints, the quick-message daily cap, and the headers returned on 429 responses.