Webhooks
Suscripción y gestión de webhooks
Obtener Configuración de Webhook
POST /webhook/get
Registrar Webhook
POST /webhook/add
Cambiar Estado de Webhook
POST /webhook/status
Eliminar Webhook
POST /webhook/delete
The Webhook object
Returned by the webhooks endpoints.
Attributes
successboolean
—
resultobject
—
statusinteger
—
codestring
Código de respuesta
The Webhook object
{ "success": true, "result": {}, "status": 200, "code": "webhook_01" }
Obtener Configuración de Webhook
POST https://api.smsmasivos.com.mx/webhook/get
Devuelve la URL y estado actual del webhook configurado en la cuenta
curl https://api.smsmasivos.com.mx/webhook/get
const Webhook = await sms.webhooks.create()
Webhook = sms.webhooks.create()Webhook, err := client.Webhooks.Create(ctx, nil)
Response
{ "success": true, "result": { "url": "https://example.com/webhook", "status": "1" }, "status": 200, "code": "webhook_01" }
{ "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" }
Registrar Webhook
POST https://api.smsmasivos.com.mx/webhook/add
Registra una nueva URL de webhook para recibir notificaciones de eventos (envíos, DLR, respuestas).
Parameters
urlstringrequired
URL del webhook (debe ser HTTPS válida)
statusenumrequired
Estado del webhook: '0'=deshabilitado, '1'=habilitado
01curl -X POST https://api.smsmasivos.com.mx/webhook/add \
-H "Content-Type: application/json" \
-H "apikey: TU_API_KEY" \
-d '{"url": "https://miapp.com/webhooks/sms-masivos", "status": "1"}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/webhook/add');
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([
'url' => 'https://miapp.com/webhooks/sms-masivos',
'status' => '1'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.post(
'https://api.smsmasivos.com.mx/webhook/add',
headers={'Content-Type': 'application/json', 'apikey': 'TU_API_KEY'},
json={'url': 'https://miapp.com/webhooks/sms-masivos', 'status': '1'}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/webhook/add', {
method: 'POST',
headers: {'Content-Type': 'application/json', 'apikey': process.env.SMSMASIVOS_API_KEY},
body: JSON.stringify({url: 'https://miapp.com/webhooks/sms-masivos', status: '1'})
});
const data = await response.json();
console.log(data);
require 'net/http'; require 'json'
uri = URI('https://api.smsmasivos.com.mx/webhook/add')
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 = {url: 'https://miapp.com/webhooks/sms-masivos', status: '1'}.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 { url = "https://miapp.com/webhooks/sms-masivos", status = "1" };
var response = await client.PostAsJsonAsync("https://api.smsmasivos.com.mx/webhook/add", payload);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();
String json = "{\"url\":\"https://miapp.com/webhooks/sms-masivos\",\"status\":\"1\"}";
Request request = new Request.Builder()
.url("https://api.smsmasivos.com.mx/webhook/add")
.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": "url_added_success", "status": 200, "code": "add_webhook_01" }
{ "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" }
Cambiar Estado de Webhook
POST https://api.smsmasivos.com.mx/webhook/status
Activa o desactiva el webhook configurado
Parameters
statusstringrequired
Webhook status: '0'=disabled, '1'=enabled
curl https://api.smsmasivos.com.mx/webhook/status \ -d status=value
const Webhook = await sms.webhooks.create({ status: 'value', })
Webhook = sms.webhooks.create( status="value", )
Webhook, err := client.Webhooks.Create(ctx, &sms.WebhookParams{ Status: sms.String("value"), })
Response
{ "success": true, "message": "url_added_success", "status": 200, "code": "add_webhook_01" }
{ "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" }
Eliminar Webhook
POST https://api.smsmasivos.com.mx/webhook/delete
Elimina la URL y estado del webhook configurado
curl https://api.smsmasivos.com.mx/webhook/delete
const Webhook = await sms.webhooks.create()
Webhook = sms.webhooks.create()Webhook, err := client.Webhooks.Create(ctx, nil)
Response
{ "success": true, "message": "url_added_success", "status": 200, "code": "add_webhook_01" }
{ "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" }