Reportes

Reportes de envíos SMS

Generar Reporte de Envíos
POST /reports/generate
Detalle de Reporte
POST /reports/details

The Reporte object

Returned by the reportes endpoints.

Attributes
successboolean
messagestring
Mensaje de estado
statusinteger
codestring
Código de respuesta
reportarray<object>
The Reporte object
{
  "success": true,
  "message": "report_generated",
  "status": 200,
  "code": "report_04",
  "report": []
}

Generar Reporte de Envíos

POST https://api.smsmasivos.com.mx/reports/generate

Genera un reporte de envíos SMS con filtros por fecha, referencia, o número. Rate-limited a 3 solicitudes simultáneas.

Parameters
date_fromstringoptional
Fecha de inicio (YYYY-MM-DD)
date_tostringoptional
Fecha de fin (YYYY-MM-DD)
referencestringoptional
Filtrar por referencia de mensaje
numberstringoptional
Filtrar por número de destinatario
statusstringoptional
Filtrar por estatus de entrega (0-12)
curl -X POST https://api.smsmasivos.com.mx/reports/generate \
  -H "Content-Type: application/json" \
  -H "apikey: TU_API_KEY" \
  -d '{
    "date_from": "2026-07-01",
    "date_to": "2026-07-15"
  }'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/reports/generate');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'apikey: ' . getenv('SMSMASIVOS_API_KEY')
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'date_from' => '2026-07-01',
    'date_to' => '2026-07-15'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests

response = requests.post(
    'https://api.smsmasivos.com.mx/reports/generate',
    headers={
        'Content-Type': 'application/json',
        'apikey': 'TU_API_KEY'
    },
    json={
        'date_from': '2026-07-01',
        'date_to': '2026-07-15'
    }
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/reports/generate', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'apikey': process.env.SMSMASIVOS_API_KEY
  },
  body: JSON.stringify({
    date_from: '2026-07-01',
    date_to: '2026-07-15'
  })
});
const data = await response.json();
console.log(data);
const axios = require('axios');

const { data } = await axios.post(
  'https://api.smsmasivos.com.mx/reports/generate',
  {
    date_from: '2026-07-01',
    date_to: '2026-07-15'
  },
  {
    headers: {
      'Content-Type': 'application/json',
      'apikey': process.env.SMSMASIVOS_API_KEY
    }
  }
);
console.log(data);
require 'net/http'
require 'json'

uri = URI('https://api.smsmasivos.com.mx/reports/generate')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.path, {
  'Content-Type' => 'application/json',
  'apikey' => ENV['SMSMASIVOS_API_KEY']
})
request.body = {
  date_from: '2026-07-01',
  date_to: '2026-07-15'
}.to_json

response = http.request(request)
puts JSON.parse(response.body)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("apikey", "TU_API_KEY");

var payload = new
{
    date_from = "2026-07-01",
    date_to = "2026-07-15"
};

var response = await client.PostAsJsonAsync(
    "https://api.smsmasivos.com.mx/reports/generate",
    payload
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();

String json = "{"
    + "\"date_from\":\"2026-07-01\","
    + "\"date_to\":\"2026-07-15\""
    + "}";

Request request = new Request.Builder()
    .url("https://api.smsmasivos.com.mx/reports/generate")
    .post(RequestBody.create(json, MediaType.parse("application/json")))
    .addHeader("apikey", "TU_API_KEY")
    .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());
Response
{
  "success": true,
  "message": "report_generated",
  "status": 200,
  "code": "report_04",
  "report": [
    {
      "name": "Campaña Black Friday",
      "created_date": "2026-07-15 09:00:00",
      "reference": "abc123def456ghi789jkl",
      "number": "525512345678",
      "message": "Aprovecha nuestras ofertas de Black Friday!",
      "sent_date": "2026-07-15 09:00:01",
      "status": "Entregado",
      "operator": "Telcel",
      "type": "SMS"
    }
  ]
}
{
  "success": false,
  "message": "API Key inválida o no existe.",
  "status": 401,
  "code": "<string>"
}
{
  "success": false,
  "message": "API Key inválida o no existe.",
  "status": 401,
  "code": "auth_05"
}
{
  "success": false,
  "message": "La dirección IP no está autorizada para acceder.",
  "status": 403,
  "code": "auth_04"
}
{
  "success": false,
  "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).",
  "status": 429,
  "code": "rate_01"
}
{
  "success": false,
  "message": "Error interno del servidor. Contacta a soporte con el request_id.",
  "status": 500,
  "code": "server_01",
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Detalle de Reporte

POST https://api.smsmasivos.com.mx/reports/details

Obtiene el desglose detallado de un reporte de campaña específico

Parameters
campaign_idintegerrequired
Campaign ID
sandboxintegeroptional
1=sandbox mode
curl https://api.smsmasivos.com.mx/reports/details \
  -d campaign_id=100 \
  -d sandbox=100
const Reporte = await sms.reportes.create({
  campaign_id: 100,
  sandbox: 100,
})
Reporte = sms.reportes.create(
    campaign_id=100,
    sandbox=100,
)
Reporte, err := client.Reportes.Create(ctx, &sms.ReporteParams{
    CampaignId: sms.Int(100),
    Sandbox: sms.Int(100),
})
Response
{
  "success": true,
  "message": "report_generated",
  "status": 200,
  "code": "details_01",
  "details": {
    "effectiveness": 95.5,
    "totals": 1000,
    "delivered": 955,
    "failed": 30,
    "pending": 10,
    "not_charged": 5
  }
}
{
  "success": false,
  "message": "API Key inválida o no existe.",
  "status": 401,
  "code": "<string>"
}
{
  "success": false,
  "message": "API Key inválida o no existe.",
  "status": 401,
  "code": "auth_05"
}
{
  "success": false,
  "message": "La dirección IP no está autorizada para acceder.",
  "status": 403,
  "code": "auth_04"
}
{
  "success": false,
  "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).",
  "status": 429,
  "code": "rate_01"
}
{
  "success": false,
  "message": "Error interno del servidor. Contacta a soporte con el request_id.",
  "status": 500,
  "code": "server_01",
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}