Skip to main content

Invio SMS

Enpoint

POST /api/rest/v1/sms.[json|xml]

Variabili

Richiesta

VariabileObbligatorio?TipoDefault valueNote
senderoptionalstringMittente dell'sms.
Se non specificato verrà utilizzato il mittente di default impostato nel pannello di controllo v2.smsviainternet.it
gatewayoptionalnumber0E' il gateway di invio.
Potrebbe comportare costi aggiuntivi.
Per maggiori informazioni vai su gateways
send_atoptionalstringnow(deprecata). Data di invio dell'sms. * vedi note
textmandatorystringTesto 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 )
numbersmandatorystringNumeri a cui inviare, separati da virgola. Vedi ** note
delivery_callbackoptionalemail - urlSe sepcificata viene usata per inviare la notifica di ricezione SMS.
Altrimenti usa impostazione di default (vedi pannello di controllo -> Impostazioni -> Spedizione -> Indirizzo delivery)
asyncoptionalbooleanfalseSe 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

VariabileTipoNote
queue_idstringID della spedizione. Serve per recuperare informazioni sulla spedizione o per gestirle.
creditnumberCredito rimanente in millesimi di €
sending_sms_countnumberIndica il numero totale di SMS inviati (n. sms concatenati * n. contatti validi).
Nota: solo se async è disabilitato
sending_contacts_countnumberIndica il numero di contatti/numeri validi (eliminando i doppioni o i numeri non validi).
Nota: solo se async è disabilitato
sending_costnumberCosto della spedizione in millesimi di €.
Nota: solo se async è disabilitato
asyncbooleanIndica 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