Delivery reports
Wire2Air calls your server with the status of each message you sent, identified by its outbox ID.
A delivery report tells you what happened to a message after Wire2Air accepted it: delivered to the handset, failed, and so on.
https://your-server.example/wire2air/delivery-reportParameters
| Parameter | In | Description |
|---|---|---|
| smsoutboxid stringrequired in query | query | The reference number of the message you sent. |
| statuscode stringrequired in query | query | The message's status. |
GET /wire2air/delivery-report?smsoutboxid=85582790&statuscode=STATUS HTTP/1.1
Host: your-server.example
Status codes
Until then, store every report as received (outbox ID, status code, time) so you can interpret it later.
Examples
<?php
$outboxId = $_GET['smsoutboxid'] ?? '';
$status = $_GET['statuscode'] ?? '';
// Record the status against the message you sent.
error_log(sprintf('Delivery report for %s: %s', $outboxId, $status));
http_response_code(200);
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qs, urlparse
class DeliveryReport(BaseHTTPRequestHandler):
def do_GET(self):
params = parse_qs(urlparse(self.path).query)
outbox_id = params.get("smsoutboxid", [""])[0]
status = params.get("statuscode", [""])[0]
print(f"Delivery report for {outbox_id}: {status}")
self.send_response(200)
self.end_headers()
HTTPServer(("", 8080), DeliveryReport).serve_forever()
import { createServer } from "node:http";
createServer((req, res) => {
const params = new URL(req.url, "http://localhost").searchParams;
console.log(`Delivery report for ${params.get("smsoutboxid")}: ${params.get("statuscode")}`);
res.writeHead(200).end();
}).listen(8080);
// ASP.NET Core minimal API (.NET 6+, project SDK Microsoft.NET.Sdk.Web).
var app = WebApplication.CreateBuilder(args).Build();
app.MapGet("/wire2air/delivery-report", (HttpRequest request) =>
{
var outboxId = request.Query["smsoutboxid"].ToString();
var status = request.Query["statuscode"].ToString();
app.Logger.LogInformation("Delivery report for {OutboxId}: {Status}", outboxId, status);
return Results.Ok();
});
app.Run();

