Riferimento API
Base URL: https://api.depalmalabs.it. Autenticazione con Authorization: Bearer <chiave>. Scarica la specifica completa in OpenAPI 3.1 o la collection Postman.
post/v1/messages
Invia un messaggio
Testo (solo entro 24 ore dall'ultimo messaggio del destinatario), template approvato o media (link https). Header opzionale `Idempotency-Key`: la stessa chiave con lo stesso corpo restituisce il messaggio già creato (200, header `Idempotent-Replayed: true`). Risposta 202: esito presso Meta non confermato (timeout): non riprovare alla cieca, lo stato arriverà via webhook.
Idempotency-Key(header)
Esempio: template
{
"customer_id": "cus_xxxxxxxx",
"to": "+393331234567",
"type": "template",
"template": {
"name": "promemoria_appuntamento",
"language": "it",
"variables": [
"Maria",
"domani alle 10:00"
]
}
}Esempio: testo
{
"customer_id": "cus_xxxxxxxx",
"to": "+393331234567",
"type": "text",
"text": {
"body": "Grazie, a domani!"
}
}Esempio: documento
{
"customer_id": "cus_xxxxxxxx",
"to": "+393331234567",
"type": "document",
"media": {
"link": "https://esempio.it/fattura-123.pdf",
"filename": "Fattura 123.pdf",
"caption": "La tua fattura"
}
}| Risposta | Significato |
|---|---|
| 200 | Replay idempotente |
| 201 | Messaggio accettato |
| 202 | Esito non confermato da Meta |
| 401 | Chiave mancante o non valida |
| 402 | Pagamento Meta mancante sul WABA del cliente |
| 403 | Cliente sospeso, marketing in pausa o account sospeso |
| 404 | Cliente non trovato |
| 409 | Cliente non attivo / Idempotency-Key riusata |
| 422 | Dati non validi o rifiutati da Meta (codice in error.details.meta_code) |
| 429 | Limite di velocità o limite giornaliero |
| 503 | Invii temporaneamente sospesi dalla piattaforma |
get/v1/messages/{id}
Stato di un messaggio
id(path, obbligatorio) — Id della piattaforma (msg_…) o wamid di Meta
| Risposta | Significato |
|---|---|
| 200 | Messaggio |
| 404 | Non trovato |
get/v1/customers
Elenco clienti
| Risposta | Significato |
|---|---|
| 200 | Elenco |
post/v1/customers
Crea un cliente
Esempio: cliente
{
"name": "Centro Estetico Luna",
"external_ref": "CLI-042"
}| Risposta | Significato |
|---|---|
| 201 | Creato |
| 422 | Dati non validi |
get/v1/customers/{id}
Dettaglio cliente
id(path, obbligatorio) — Id cliente (cus_…)
| Risposta | Significato |
|---|---|
| 200 | Cliente |
| 404 | Non trovato |
post/v1/customers/{id}/onboarding-link
Link di onboarding per il cliente finale
Solo chiavi live e account approvato. Il link vale 14 giorni e sostituisce il precedente.
id(path, obbligatorio) — Id cliente (cus_…)
| Risposta | Significato |
|---|---|
| 201 | Link |
| 402 | Riepiloghi scaduti da oltre 15 giorni |
| 403 | Chiave sandbox o account non approvato |
get/v1/customers/{id}/templates
Template del cliente
id(path, obbligatorio) — Id cliente (cus_…)
| Risposta | Significato |
|---|---|
| 200 | Elenco |
post/v1/customers/{id}/templates
Crea un template
Inviato a Meta per l'approvazione. Regole: corpo senza variabile all'inizio o alla fine, variabili numerate da {{1}}, esempi in example.body_text. Con chiave sandbox il template è solo locale e risulta subito APPROVED.
id(path, obbligatorio) — Id cliente (cus_…)
Esempio: promemoria
{
"name": "promemoria_appuntamento",
"language": "it",
"category": "UTILITY",
"components": [
{
"type": "BODY",
"text": "Ciao {{1}}, ti ricordiamo l'appuntamento di {{2}}. A presto!",
"example": {
"body_text": [
[
"Maria",
"domani alle 10:00"
]
]
}
}
]
}| Risposta | Significato |
|---|---|
| 201 | Creato |
| 409 | Nome e lingua già usati |
| 422 | Template non valido |
delete/v1/customers/{id}/templates
Cancella un template per nome
id(path, obbligatorio) — Id cliente (cus_…)name(query, obbligatorio)language(query)
| Risposta | Significato |
|---|---|
| 200 | Cancellato |
| 404 | Non trovato |
put/v1/customers/{id}/webhook
Imposta il webhook del cliente
URL https pubblico (porte 443 o 8443). `url: null` disattiva. Il secret di firma è restituito alla prima configurazione o con `rotate_secret: true`.
id(path, obbligatorio) — Id cliente (cus_…)
Esempio: url
{
"url": "https://tuo-gestionale.it/whatsapp/webhook"
}| Risposta | Significato |
|---|---|
| 200 | Configurato |
| 422 | URL non valido |
get/v1/usage
Consumi del mese
Solo messaggi che Meta segna come a pagamento. Fee De Palma Labs più stima del costo Meta (pagato direttamente dal cliente finale).
month(query) — YYYY-MM (default mese corrente, fuso Europe/Rome)
| Risposta | Significato |
|---|---|
| 200 | Consumi |
| 422 | Mese non valido |