Invio dei messaggi
Tutti i messaggi vengono inviati attraverso un unico endpoint. Il campo type determina il tipo di messaggio inviato e i campi rimanenti variano di conseguenza.
Endpoint:
POST https://api.wappfy.io/api/instances/{instanceId}/messages/send
Header:
| Header | Valore |
|---|
X-Api-Key | La tua chiave API |
Content-Type | application/json |
Messaggio di testo
Invia un messaggio di testo semplice.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "text",
"text": "Hello from Wappfy!"
}'
Risposta:
{
"data": {
"message_id": "BAE5F2C4D3B2A1",
"status": "sent"
}
}
Messaggio con immagine
Invia un’immagine con una didascalia opzionale.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "image",
"media_url": "https://example.com/photo.jpg",
"caption": "Check out this photo!"
}'
Messaggio video
Invia un file video con una didascalia opzionale.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "video",
"media_url": "https://example.com/clip.mp4",
"caption": "Watch this!"
}'
Messaggio audio
Invia un file audio. I messaggi audio vengono visualizzati come messaggi vocali in WhatsApp.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "audio",
"media_url": "https://example.com/voice-note.ogg"
}'
Per la massima compatibilita, utilizza file .ogg codificati con il codec Opus per i messaggi vocali.
Messaggio documento
Invia un file come allegato documento.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "document",
"media_url": "https://example.com/report.pdf",
"filename": "Q1-Report.pdf",
"caption": "Here is the quarterly report"
}'
Messaggio di posizione
Invia un segnaposto di posizione geografica.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "location",
"latitude": -23.5505,
"longitude": -46.6333,
"name": "Sao Paulo",
"address": "Sao Paulo, SP, Brazil"
}'
Messaggio sondaggio
Crea un sondaggio interattivo. I destinatari possono votare le opzioni direttamente in WhatsApp.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "poll",
"poll_name": "What day works best for the meeting?",
"poll_options": ["Monday", "Wednesday", "Friday"],
"poll_allow_multiple": false
}'
Messaggio contatto / vCard
Condividi una scheda contatto.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "contact",
"contact_name": "Maria Silva",
"contact_phone": "+5511988887777"
}'
Inoltrare un messaggio
Inoltra un messaggio esistente a un’altra chat.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "forward",
"forward_message_id": "BAE5F2C4D3B2A1",
"forward_chat_id": "[email protected]"
}'
Reazione
Reagisci a un messaggio con un emoji.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "reaction",
"reaction_message_id": "BAE5F2C4D3B2A1",
"reaction": "\ud83d\udc4d"
}'
Per rimuovere una reazione, invia una stringa vuota come valore di reaction.
Funzionalita avanzate
Rispondere a un messaggio
Cita un messaggio precedente includendo quoted_message_id. Funziona con qualsiasi tipo di messaggio.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "text",
"text": "Yes, I agree with this!",
"quoted_message_id": "BAE5F2C4D3B2A1"
}'
Modificare un messaggio inviato
Modifica un messaggio inviato in precedenza fornendo edit_message_id.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "text",
"text": "Updated message content",
"edit_message_id": "BAE5F2C4D3B2A1"
}'
Puoi modificare solo i messaggi che hai inviato tu. La modifica ha un limite temporale imposto da WhatsApp (circa 15 minuti dopo l’invio).
Menzioni
Menziona contatti specifici in un messaggio di gruppo. I contatti menzionati riceveranno una notifica.
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/messages/send \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "[email protected]",
"type": "text",
"text": "Hey @Maria and @Carlos, please review this.",
"mentions": [
"[email protected]",
"[email protected]"
]
}'
| Formato | Descrizione | Esempio |
|---|
{phone}@s.whatsapp.net | Chat individuale | [email protected] |
{id}@g.us | Chat di gruppo | [email protected] |
Numeri di telefono brasiliani
Wappfy gestisce automaticamente il problema della nona cifra brasiliana. Se un messaggio fallisce con un errore “no LID found”, il sistema riprova automaticamente con il formato alternativo (aggiungendo o rimuovendo la nona cifra).Ad esempio, se 5511999998888 fallisce, riprova con 551199998888, e viceversa. Questo avviene in modo trasparente — non devi gestirlo manualmente.
Riferimento dei tipi di messaggio
| Tipo | Campi obbligatori | Campi opzionali |
|---|
text | text | quoted_message_id, edit_message_id, mentions |
image | media_url | caption, quoted_message_id |
video | media_url | caption, quoted_message_id |
audio | media_url | quoted_message_id |
document | media_url | filename, caption, quoted_message_id |
location | latitude, longitude | name, address, quoted_message_id |
poll | poll_name, poll_options | poll_allow_multiple |
contact | contact_name, contact_phone | quoted_message_id |
forward | forward_message_id, forward_chat_id | — |
reaction | reaction_message_id, reaction | — |
Gestione degli errori
| Codice di stato | Descrizione |
|---|
400 | Payload del messaggio non valido (es. campi obbligatori mancanti per il tipo specificato). |
404 | Istanza non trovata o non connessa. |
422 | Validazione del messaggio fallita (es. formato del numero di telefono non valido). |
429 | Limite di frequenza superato. Consulta Limiti di frequenza. |
502 | Il provider WhatsApp ha restituito un errore. Controlla il messaggio di errore per i dettagli. |