Invio SMS
Enpoint
POST /api/rest/v1/sms.[json|xml]
Variabili
Richiesta
Variabile | Obbligatorio? | Tipo | Default value | Note |
---|---|---|---|---|
sender | optional | string | Mittente dell'sms. Se non specificato verrà utilizzato il mittente di default impostato nel pannello di controllo v2.smsviainternet.it | |
gateway | optional | number | 0 | E' il gateway di invio. Potrebbe comportare costi aggiuntivi. Per maggiori informazioni vai su gateways |
send_at | optional | string | now | (deprecata). Data di invio dell'sms. * vedi note |
text | mandatory | string | Testo del messaggio. Il testo verrà concatenato automaticamente (fino ad un massimo di 99 SMS o in base alle impostazioni settate nel pannello di controllo vedi Max SMS concatenati ) | |
numbers | mandatory | string | Numeri a cui inviare, separati da virgola. Vedi ** note | |
delivery_callback | optional | email - url | Se sepcificata viene usata per inviare la notifica di ricezione SMS. Altrimenti usa impostazione di default (vedi pannello di controllo -> Impostazioni -> Spedizione -> Indirizzo delivery) | |
async | optional | boolean | false | Se impostato ad un valore booleano: 1 , true oppure yes abilita l'elaborazione della spedizione in asincrono.In Questo modo si potranno spedire tanti SMS in contemporanea senza subire rallentamenti nella richiesta. In caso di richiesta asincrona la risposta avrà solo queue_id e credit |
* send_at
Per maggiori informazioni sui formati possibili: Supported Date and Time Formats.
Alcuni formati accettati:
- tomorrow
- +2 hours
- next week
- 2015-12-31 13:45:00
- 2016-07-01T22:35:17.02
- first tuesday july 2017
- last wed of april 2015
** numbers
Il formato dei numeri deve essere internazionale, esempio: +3312345678
.
- Nel caso in cui il prefisso internazionale non venga specificato il sistema utilizzerà il prefisso italiano
+39
- I numeri vanno divisi da spazio o virgola.
- Verranno eliminati i numeri non validi e i doppioni.
Esempio:
+391112223354,+3933344466655,380111222333444
IMPORTANTE: è possibile inviare fino ad un massimo di 5000 contatti.
Risposta
Variabile | Tipo | Note |
---|---|---|
queue_id | string | ID della spedizione. Serve per recuperare informazioni sulla spedizione o per gestirle. |
credit | number | Credito rimanente in millesimi di € |
sending_sms_count | number | Indica il numero totale di SMS inviati (n. sms concatenati * n. contatti validi). Nota: solo se async è disabilitato |
sending_contacts_count | number | Indica il numero di contatti/numeri validi (eliminando i doppioni o i numeri non validi). Nota: solo se async è disabilitato |
sending_cost | number | Costo della spedizione in millesimi di €. Nota: solo se async è disabilitato |
async | boolean | Indica se la spedizione è in elaborazione asincrona |
Esempio
Risposta
{
"queue_id": "15066049200263637",
"async": false,
"credit": 8215,
"sending_sms_count": 2,
"sending_contacts_count": 2,
"sending_cost": 200
}
<response>
<queue_id>15066117504253693</queue_id>
<async>0</async>
<credit>8015</credit>
<sending_sms_count>2</sending_sms_count>
<sending_contacts_count>2</sending_contacts_count>
<sending_cost>200</sending_cost>
</response>
Esempi di invio utilizzando vari linguaggi
CURL
Bash (cURL)
curl --location 'https://v2.smsviainternet.it/api/rest/v1/sms.json' \
--header 'X-Api-Token: MyToken' \
--header 'Content-Type: application/json' \
--data '{
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
}'
NodeJS + Axios
NodeJS + Axios
var axios = require('axios');
var data = JSON.stringify({
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
});
var config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://v2.smsviainternet.it/api/rest/v1/sms.json',
headers: {
'X-Api-Token': 'MyToken',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
GO Lang
GO Lang
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://v2.smsviainternet.it/api/rest/v1/sms.json"
method := "POST"
payload := strings.NewReader(`{
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("X-Api-Token", "MyToken")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Python
Python
import requests
import json
url = "https://v2.smsviainternet.it/api/rest/v1/sms.json"
payload = json.dumps({
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
})
headers = {
'X-Api-Token': 'MyToken',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
PHP
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://v2.smsviainternet.it/api/rest/v1/sms.json',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
}',
CURLOPT_HTTPHEADER => array(
'X-Api-Token: MyToken',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Ruby
Ruby
require "uri"
require "json"
require "net/http"
url = URI("https://v2.smsviainternet.it/api/rest/v1/sms.json")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Token"] = "MyToken"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"gateway": 0,
"sender": "Mittente",
"text": "Ciao",
"numbers": "+393801234567"
})
response = https.request(request)
puts response.read_body