¡Guau! Crea tu integración de WhatsApp. Empieza gratis. Regístrate ahora
WhatsApp API

Un descuento de un día en un estado de WhatsApp hasta medianoche

Quien ve el estado de la tienda puede abrir un descuento que solo vale desde ese estado y caduca a medianoche. Cuando empieza esa ventana de un día, tu backend publica la imagen del producto a través de Whapi.Cloud. Este caso de uso muestra a los integradores cómo implementar ese flujo con la WhatsApp API.

Tu backend guarda la URL oculta Una publicación de media en el número de la tienda
Un teléfono de tienda con un estado de WhatsApp: imagen de producto y descuento de un día que termina a medianoche.
Burbuja decorativa
Caso de uso

Cuándo usar este flujo

El descuento termina a medianoche

Usa este flujo cuando la oferta dura un día y tu backend caduca el enlace a medianoche.

El enlace solo vale desde el estado

Usa este flujo cuando el enlace solo funciona desde este estado y un chat reenviado no debe canjear la oferta.

El estado es una imagen de producto

Usa este flujo cuando el estado lleva una imagen de producto, no una cuenta atrás hasta el inicio de un drop.

Estado de WhatsApp en un teléfono con la imagen del producto y un descuento que se puede abrir antes de medianoche.
Experiencia del cliente

Quien lo ve abre el descuento desde el estado

Antes de automatizar, el enlace del descuento se reenvía a los chats y se abre sin el estado, y el equipo olvida caducarlo a medianoche.

Cuando el flujo corre, quien ve el estado puede abrir un descuento que solo vale desde ese estado y termina a medianoche. Los integradores construyen este resultado con la WhatsApp API.

Flujo

Del inicio de la ventana a una publicación

1

Empieza la ventana del descuento

Tu backend abre la ventana de un día, arma la URL solo para el estado y hace que ese enlace caduque a medianoche.

2

Publica la imagen del producto

POST /stories/send/media

createStoryMedia publica esa imagen en el estado del número de la tienda. La URL oculta y el corte de medianoche siguen en tu backend.

Requisitos

Antes de ejecutar el flujo

Conecta el número de WhatsApp de la tienda que publica el estado y autentica cada solicitud con el token de ese número. La ventana, la URL oculta y la caducidad a medianoche quedan en tu backend.

Opcional: profundiza en este flujo

Implementación de la API

Publica la imagen del producto

Tu backend ya tiene la imagen del producto y el enlace que solo vale desde este estado. Este paso publica esa imagen en el número de la tienda cuando empieza la ventana de un día.

Obtén tu token de API gratis después de registrarte en whapi.cloud y usa ese token en el código en lugar de Your_Token de los ejemplos.

Publica la imagen del producto

Publica la imagen en el estado de la tienda para que quien lo vea abra el descuento que tu backend acepta solo desde ese estado hasta medianoche.

curl --request POST \
     --url https://gate.whapi.cloud/stories/send/media \
     --header 'accept: application/json' \
     --header 'authorization: Bearer Your_Token' \
     --header 'content-type: application/json' \
     --data '
{
  "media": "https://example.com/product.jpg"
}
'
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/stories/send/media",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"media\":\"https://example.com/product.jpg\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer Your_Token",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests

url = "https://gate.whapi.cloud/stories/send/media"

payload = {
  "media": "https://example.com/product.jpg"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer Your_Token",
    "content-type": "application/json",
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const url = 'https://gate.whapi.cloud/stories/send/media';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer Your_Token',
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    media: 'https://example.com/product.jpg',
  }),
});

console.log(await response.text());
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"media\":\"https://example.com/product.jpg\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/stories/send/media")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer Your_Token")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/stories/send/media");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddHeader("content-type", "application/json");
request.AddStringBody("{\"media\":\"https://example.com/product.jpg\"}", DataFormat.Json);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"media":"https://example.com/product.jpg"}`)
	req, _ := http.NewRequest("POST", "https://gate.whapi.cloud/stories/send/media", body)
	req.Header.Set("accept", "application/json")
	req.Header.Set("authorization", "Bearer Your_Token")
	req.Header.Set("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
Cuando algo falla

Trata los fallos en cada paso

La ventana del descuento puede empezar y el estado no publicarse, así que nadie ve el enlace. Resuelve ese corte antes de dar la oferta por activa.

¿La ventana empezó y el estado no se publicó?

El canal puede no estar autorizado, el medio rechazado o el archivo demasiado grande. Reintenta la publicación o avisa al equipo, y no des la oferta por activa. Los clientes suelen decir que nuestro soporte responde. No dudes en pedir ayuda.

Contacta con soporte si algo salió mal

Diagnóstico por paso de API

Estado Qué significa Qué hacer
400 Wrong request parameters
401 Need channel authorization for posting stories
402 Trial version limit exceeded
403 It is forbidden to send to this group/recipient
404 Media with specified id not found
413 Request media too large
415 Unsupported media type
429 Too many requests
500 Internal Error
FAQ

Preguntas de quien opera

Tu backend arma la URL oculta y la acepta solo desde este estado. Whapi.Cloud publica la imagen del producto. No comprueba desde dónde se abrió el enlace.
Tu backend caduca el enlace del descuento a medianoche. Un estado sigue disponible hasta 24 horas después de publicarse. Este flujo no borra el estado a medianoche.
La ventana puede empezar y la publicación fallar porque el canal no está autorizado, el medio se rechazó o el archivo es demasiado grande. Reintenta la publicación o avisa al equipo, y no des la oferta por activa.
Este flujo publica una imagen de producto para un descuento que termina a medianoche. Una cuenta atrás que dice cuándo empieza un drop es otro flujo.
Quien ya tiene el número de la tienda puede ver un estado de ese número, incluida una imagen de producto, sin un chat aparte para cada contacto.
Funciones compatibles de WhatsApp

Todo lo que necesitas para crear automatizaciones en WhatsApp

Whapi.Cloud te da acceso a un conjunto completo de funciones de WhatsApp — mensajería, multimedia, grupos, canales, webhooks y más. Crea bots, automatizaciones e integraciones sin limitaciones de funciones.

Elegido por desarrolladores

Confiado por más de 3.300 desarrolladores y equipos SaaS

Desarrolladores de todo el mundo confían en Whapi.Cloud para crear automatizaciones, bots, integraciones con CRM, herramientas de mensajería masiva y flujos avanzados de WhatsApp. Nuestra infraestructura procesa millones de solicitudes API con alta estabilidad, y este número crece cada mes.

Icono de característica

5,5K+

canales API activos

Icono de característica

21M+

solicitudes API al mes

“Todo es simple, intuitivo y fácil de usar. La documentación es clara y toda la información está justo donde la necesito. Excelente trabajo.”

Roberto K. / Desarrollador Web

“Conectamos WhatsApp a nuestros flujos en n8n en solo unos minutos. Sin código, sin complicaciones — todo funcionó a la primera.”

Martin P. / Desarrollador

“Whapi.Cloud se convirtió en una parte clave de nuestra comunicación con clientes. Automatizamos actualizaciones de productos, notificaciones de pedidos y mensajes de soporte — sin plantillas ni aprobaciones de Meta.”

Oscar T. / CTO

Burbuja decorativa