Webhook del cliente (CRUD)

GET lee la config. POST crea/actualiza (UPSERT). DELETE elimina el webhook. Aplica a TODA la cuenta del cliente, no a un celular especifico. Eventos disponibles: messages.received, message.status, session.status, all.

GET | POST | DELETE /api/webhook.php Sin auth

Parametros

Nombre Tipo Requerido Descripcion
url string No URL publica HTTPS (POST)
secret string No Secret para firma HMAC-SHA256 (header X-MultiMensajes-Signature)
eventos array No messages.received | message.status | session.status | all
activo boolean No true/false

Ejemplos de codigo

Listos para copiar y pegar. Cubre los 8 lenguajes mas usados.

<?php
// PHP + cURL
$ch = curl_init('https://api.multimensajes.com/api/admin-webhook.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'url' => 'https://ejemplo.com/imagen.jpg',
    'secret' => 'mi-secret-123',
    'eventos' => 'messages.received,message.status',
    'activo' => 'valor_ejemplo',
]);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
import requests

response = requests.post(
    'https://api.multimensajes.com/api/admin-webhook.php',
    data={
    'url': 'url': 'https://ejemplo.com/imagen.jpg',
    'secret': 'secret': 'mi-secret-123',
    'eventos': 'eventos': 'messages.received,message.status',
    'activo': 'activo': 'valor_ejemplo'
    },
    timeout=30
)
data = response.json()
print(data)
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

const params = new URLSearchParams();
params.append('url', 'https://ejemplo.com/imagen.jpg');
params.append('secret', 'mi-secret-123');
params.append('eventos', 'messages.received,message.status');
params.append('activo', 'valor_ejemplo');

const response = await fetch('https://api.multimensajes.com/api/admin-webhook.php', {
    method: 'POST',
    body: params
});
const data = await response.json();
console.log(data);
curl -X POST 'https://api.multimensajes.com/api/admin-webhook.php' \
  -d 'url=https%3A%2F%2Fejemplo.com%2Fimagen.jpg' \
  -d 'secret=mi-secret-123' \
  -d 'eventos=messages.received%2Cmessage.status' \
  -d 'activo=valor_ejemplo'
package main

import (
    "fmt"
    "net/url"
    "net/http"
    "io/ioutil"
)

func main() {
    form := url.Values{}
    form.Add("url", "https://ejemplo.com/imagen.jpg")
    form.Add("secret", "mi-secret-123")
    form.Add("eventos", "messages.received,message.status")
    form.Add("activo", "valor_ejemplo")

    resp, _ := http.PostForm("https://api.multimensajes.com/api/admin-webhook.php", form)
    defer resp.Body.Close()
    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class WhatsAppAPI {
    public static void main(String[] args) throws Exception {
        URL url = new URL("https://api.multimensajes.com/api/admin-webhook.php");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("POST");
        con.setDoOutput(true);
        StringBuilder params = new StringBuilder();
        params.append("url=https%3A%2F%2Fejemplo.com%2Fimagen.jpg\&");
        params.append("
        params.append("secret=mi-secret-123\&");
        params.append("
        params.append("eventos=messages.received%2Cmessage.status\&");
        params.append("
        params.append("activo=valor_ejemplo\&");
        params.append("
        con.getOutputStream().write(params.toString().getBytes());
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) System.out.println(line);
    }
}
require 'net/http'
require 'uri'
require 'json'

uri = URI('https://api.multimensajes.com/api/admin-webhook.php')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

req = Net::HTTP::Post.new(uri.path)
req.set_form_data(
  'url' => 'https://ejemplo.com/imagen.jpg',
  'secret' => 'mi-secret-123',
  'eventos' => 'messages.received,message.status',
  'activo' => 'valor_ejemplo'
)

response = http.request(req)
puts JSON.parse(response.body)
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Collections.Generic;

class Program {
    static async Task Main() {
        var client = new HttpClient();
        var form = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("url", "https://ejemplo.com/imagen.jpg"),
            new KeyValuePair<string, string>("secret", "mi-secret-123"),
            new KeyValuePair<string, string>("eventos", "messages.received,message.status"),
            new KeyValuePair<string, string>("activo", "valor_ejemplo")
        });
        var response = await client.PostAsync("https://api.multimensajes.com/api/admin-webhook.php", form);
        var content = await response.Content.ReadAsStringAsync();
        Console.WriteLine(content);
    }
}

Pruebalo tu mismo

Copia este comando y pegalo en tu terminal (necesitas curl):

curl -X POST 'https://api.multimensajes.com/api/admin-webhook.php' \
  -d 'url=https%3A%2F%2Fejemplo.com%2Fimagen.jpg' \
  -d 'secret=mi-secret-123' \
  -d 'eventos=messages.received%2Cmessage.status' \
  -d 'activo=valor_ejemplo'

Endpoints relacionados