fastify-xrcs
getMessageStatus
Fetch the delivery status of a sent message by its Twilio message SID.
getMessageStatus
Fetches the current delivery status of a message previously sent via sendMessage, sendCard, or sendCarousel. Returns status, error details, and timestamps.
Signature
fastify.xrcs.getMessageStatus(messageSid: string): Promise<MessageStatus>
Params
| Name | Type | Required | Description |
|---|---|---|---|
messageSid | string | Yes | The Twilio message SID returned by send operations (e.g. "SMabc123...") |
Returns
{
sid: string,
to: string,
status: string, // "queued" | "sent" | "delivered" | "failed" | "undelivered"
errorCode: number | null,
errorMessage: string | null,
dateCreated: Date,
dateSent: Date | null
}
Throws
[xRCS] Twilio credentials required— no credentials at registration[xRCS] 'messageSid' must be a non-empty string— missing or invalid SID[xRCS] Failed to get message status '{messageSid}': {message}— Twilio API error
Examples
Poll delivery status in a route
fastify.get("/messages/:sid/status", async (request) => {
return fastify.xrcs.getMessageStatus(request.params.sid);
});
Send and track until delivered
async function sendAndTrack(to, card) {
const result = await fastify.xrcs.sendCard(to, card);
// Poll up to 5 times for delivery confirmation
for (let i = 0; i < 5; i++) {
await new Promise((r) => setTimeout(r, 2000));
const status = await fastify.xrcs.getMessageStatus(result.sid);
if (status.status === "delivered") return status;
if (status.status === "failed" || status.status === "undelivered") {
throw new Error(`Message failed: ${status.errorMessage}`);
}
}
}
See Also
- sendMessage(to, contentSid, vars?) — the SID to track comes from here
- sendCard(to, card, friendlyName?) — convenience sender
AI Context
package: "@xenterprises/fastify-xrcs"
method: fastify.xrcs.getMessageStatus(messageSid)
use-when: Fetch delivery status for a sent RCS message
returns: { messageSid, status, to, dateCreated, dateSent }
requires: Twilio credentials
