Skicka SMS
Skapa en SMS-batch med mottagare, avsändare, text, schemaläggning och leveransrapport.
Ett eller flera SMS skickas genom att skapa en batch.
Endpoint
| Metod | Sökväg | Content-Type |
|---|---|---|
POST |
/v2/batches |
application/json |
Quickstart
curl -X POST "https://api.ip1sms.com/v2/batches" \
-H "Authorization: Bearer $IP1_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sender": "DittForetag",
"recipients": ["$RECIPIENT"],
"body": "Ditt meddelande"
}'
Telefonnummer anges som MSISDN: landskod och nummer utan +, mellanslag eller inledande 00.
Fält i anropet
| Fält | Krävs | Typ | Villkor |
|---|---|---|---|
sender |
Ja | string |
Numerisk avsändare enligt E.164, högst 15 siffror, eller alfanumerisk avsändare med 3–11 tecken (A–Z, a–z, 0–9). |
recipients |
Ja | string[] eller objekt |
MSISDN, högst 15 siffror och endast siffror. Objektformen används för mallvariabler. |
body |
Ja | string |
Får inte vara tom och får vara högst 2 000 tecken. |
type |
Nej | string |
sms (standard) eller flash. |
datacoding |
Nej | string |
gsm för GSM 7-bit eller ucs för Unicode. Publicerad standard är ucs. |
priority |
Nej | integer |
1 (standard) eller 2. Hög prioritet kan medföra ett pristillägg. |
deliveryWindows |
Nej | object[] |
Ett eller flera tidsfönster med opens och closes i ISO 8601. Fönster får inte överlappa. |
deliveryReportUrl |
Nej | string |
Absolut HTTPS-URL som tar emot statusuppdateringar med POST. |
reference |
Nej | string |
Egen referens, 1–40 tecken. |
tags |
Nej | string[] |
Taggar för kategorisering och filtrering av batcher. |
Kontrollera aktuell prislista innan du använder priority: 2; den tidigare dokumentationens fasta pristillägg kan förändras.
Mallar per mottagare
Byt mottagarlistan mot ett objekt när samma meddelande ska få olika variabelvärden:
{
"sender": "DittForetag",
"recipients": {
"46700000001": { "firstName": "Anna" },
"46700000002": {},
"default": { "firstName": "kund" }
},
"body": "Hej {firstName}, din bokning är bekräftad."
}
Nyckeln på första nivån är mottagarens MSISDN. Nycklarna under mottagaren matchas mot platshållare i body. default används när mottagaren saknar ett värde.
Schemaläggning
{
"deliveryWindows": [
{
"opens": "2026-10-05T08:00:00Z",
"closes": "2026-10-05T10:00:00Z"
}
]
}
Om opens är null används aktuell tid. Om closes är null sätts det enligt den publicerade dokumentationen till 72 timmar efter öppning. Utelämnas fältet skapar systemet ett standardfönster.
Exempel med JavaScript
Kör detta på en server, inte i webbläsaren:
const response = await fetch('https://api.ip1sms.com/v2/batches', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.IP1_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
sender: 'DittForetag',
recipients: [process.env.TEST_RECIPIENT],
body: 'Test från iP.1 SMS API',
reference: crypto.randomUUID(),
}),
});
if (!response.ok) {
throw new Error(`SMS-anrop misslyckades: ${response.status} ${await response.text()}`);
}
const batch = await response.json();
console.log(batch.id);
Batchsvaret
Ett lyckat anrop returnerar batchdokumentet. Centrala fält:
| Fält | Typ | Beskrivning |
|---|---|---|
id |
string |
Batchens unika ID. |
sender |
string |
Registrerad avsändare. |
body |
string |
Ursprunglig text före mallning. |
owner |
string |
Kontot som äger batchen. |
direction |
string |
MT för utgående eller MO för inkommande. |
type |
string |
sms eller flash. |
datacoding |
string |
gsm eller ucs. |
templated |
boolean |
Om mottagarmallar användes. |
priceSummary |
object |
Total, valuta och genomsnittlig kostnad. |
messageSummary |
object |
Antal meddelanden och segment per statuskod. |
deliveryWindows |
object[] |
Batchens sändningsfönster. |
status |
integer |
Sammanvägd batchstatus. |
deliveryReportUrl |
string | null |
Callback för leveransrapporter. |
reference |
string | null |
Egen referens. |
tags |
string[] |
Batchens taggar. |
Vanliga HTTP-fel
| Kod | Betydelse | Kontrollera |
|---|---|---|
400 |
Bad Request | JSON, obligatoriska fält och fältformat. |
401 |
Unauthorized | Bearer-token saknas eller är ogiltig. |
403 |
Forbidden | Nyckeln saknar behörighet eller avsändaren är inte tillåten. |
404 |
Not Found | Resurs eller sökväg finns inte. |
405 |
Method Not Allowed | Fel HTTP-metod. |
409 |
Conflict | Resursen står i konflikt med befintligt läge. |
500 |
Internal Server Error | Tillfälligt serverfel; logga korrelationsdata och försök kontrollerat igen. |
503 |
Service Unavailable | Tillfällig otillgänglighet; använd backoff. |
Felresponsens body innehåller normalt en mer detaljerad beskrivning. Logga inte Bearer-token eller fullständiga mottagarnummer när du felsöker.
