{"id":422,"date":"2023-11-23T11:17:20","date_gmt":"2023-11-23T10:17:20","guid":{"rendered":"http:\/\/localhost\/wordpress\/?page_id=422"},"modified":"2025-11-20T09:25:54","modified_gmt":"2025-11-20T09:25:54","slug":"sending-sms","status":"publish","type":"page","link":"https:\/\/ip1sms.com\/en\/developer\/sending-sms\/","title":{"rendered":"Send SMS"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column p-5 is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div data-bs-spy=\"scroll\" data-bs-target=\"#developer-sub-menu\" data-bs-root-margin=\"0px 0px -40%\" data-bs-smooth-scroll=\"true\" tabindex=\"0\">\n\n\n\n<h1 class=\"wp-block-heading\" id=\"h-skicka-sms\">Skicka SMS<\/h1>\n\n\n\n<h2 class=\"wp-block-heading my-5\" id=\"h-quick-start\">Quick start<\/h2>\n\n\n\n<p>Anv\u00e4nd exemplet nedan och byt ut &#8221;API_NYCKEL&#8221; mot en bearer token som du skapar i anv\u00e4ndarportalen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncurl -X POST &quot;https:\/\/api.ip1sms.com\/v2\/batches&quot; \\\n-H &quot;Authorization: Bearer API_NYCKEL&quot; \\\n-H &quot;Content-Type: application\/json&quot; \\\n-d &#039;{\n    &quot;sender&quot;: &quot;iP1&quot;,\n    &quot;recipients&quot;: &#x5B;\n        &quot;MOTTAGARNUMMER&quot;\n    ],\n    &quot;body&quot;: &quot;Ett fint meddelande skickat fr\u00e5n iP.1 SMS API&quot;\n}&#039;\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity my-5\"\/>\n\n\n\n<h2 class=\"wp-block-heading my-5\" id=\"h-anrop\">Anrop<\/h2>\n\n\n\n<p>Endpoint: \/v2\/batches<\/p>\n\n\n\n<p>Metod: <code>POST<\/code><\/p>\n\n\n\n<p>Content-Type: <code>application\/json<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-exempel-pa-anropsdata\">Exempel p\u00e5 anropsdata<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n{\n    &quot;sender&quot;: &quot;iP1&quot;,\n    &quot;recipients&quot;:&#x5B;\n        &quot;456189040623&quot;,\n        &quot;175368927054&quot;,\n        &quot;392094880589&quot;,\n        &quot;568798567631&quot;\n    ],\n    &quot;body&quot;: &quot;A very nice message&quot;,\n}\n<\/pre><\/div>\n\n\n<p>Exemplet ovan inneh\u00e5ller anropsdatan med de obligatoriska f\u00e4lten <code>sender<\/code>, <code>recipients<\/code> och <code>body<\/code>, som kr\u00e4vs f\u00f6r att skicka ett SMS-meddelande. Se under rubriken <a href=\"#h-falt-for-anropsdata\">F\u00e4lt f\u00f6r anropsdata<\/a> f\u00f6r en lista av samtliga f\u00e4lt och dess beskrivningar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-falt-for-anropsdata\">F\u00e4lt f\u00f6r anropsdata<\/h3>\n\n\n\n<div class=\"responsive-table\">\n  <table class=\"table table-dark table-striped developer-table\">\n    <thead>\n      <tr>\n        <th>F\u00e4ltnamn<\/th>\n        <th>Obligatoriskt<\/th>\n        <th>Typ<\/th>\n        <th>Beskrivning och Villkor<\/th>\n        <th>Exempel<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td><strong>sender<\/strong><\/td>\n        <td>Ja<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Ett Anrop kommer att avsl\u00e5s om <code>sender<\/code>:\n          <ul class=\"developer-field-list\">\n            <li>Best\u00e5r av ett nummer som \u00e4r l\u00e4ngre \u00e4n 15 siffror<\/li>\n            <li>\n              Best\u00e5r av en alfanumerisk avs\u00e4ndare med mindre \u00e4n 3 tecken eller\n              st\u00f6rre \u00e4n 11 tecken (Aa-Zz, 0 \u2013 9, 3 \u2013 11 tecken)\n            <\/li>\n            <li>\n              Inte matchar regex <code>[0-9A-Za-z]{1,11}<\/code> eller om den\n              inte f\u00f6ljer standarden E164\n            <\/li>\n          <\/ul>\n          Ett meddelande kanske inte n\u00e5r mottagaren om:\n          <ul>\n            <li>\n              Operat\u00f6ren d\u00e4r mottagare st\u00e5r registrerad inte st\u00f6der avs\u00e4ndaren.\n            <\/li>\n          <\/ul>\n        <\/td>\n        <td>\n          <pre><code>\n\"sender\": \"46101606060\"\n      <\/code><\/pre>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>recipients<\/strong><\/td>\n        <td>Ja<\/td>\n        <td><code>Array<\/code><\/td>\n        <td>\n          Ett Anrop kommer att avsl\u00e5s om <code>recipients<\/code>:\n          <ul>\n            <li>\u00c4r l\u00e4ngre \u00e4n 15 siffror<\/li>\n            <li>Inneh\u00e5ller andra tecken \u00e4n siffror<\/li>\n          <\/ul>\n          Telefonnumer m\u00e5ste skrivas i formatet MSISDN. Varje telefonnummer\n          analyseras och valideras d\u00e4r resultatet visas som en status f\u00f6r\n          meddelandet. Om detta steg misslyckas skickas inte meddelandet.\n        <\/td>\n        <td>\n          <pre><code>\n\"recipients\":[\n  \"456189040623\",\n  \"175368927054\",\n  \"392094880589\",\n  \"568798567631\"\n],\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>recipients \u2013 templating<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>Nestat Objekt<\/code><\/td>\n        <td>\n          F\u00f6r att anv\u00e4nda mallsystemet m\u00e5ste du konvertera din tidigare\n          mottagar-array till en dictionary av dictionaries. \u00d6vreniv\u00e5-nyckeln \u00e4r\n          mottagarens MSISDN (telefonnummer). Andraniv\u00e5-nyckeln efters\u00f6ks sedan\n          i texten och ers\u00e4tts med andraniv\u00e5-v\u00e4rdet.\n        <\/td>\n        <td>\n          <pre><code>\n\"recipients\":{\n  \"456189040623\": {\n      \"sign\": \"sent by Bob\"\n  },\n  \"175368927054\": {},\n  \"392094880589\": {},\n  \"568798567631\": {},\n  \"default\":{\n      \"sign\": \" sent by iP.1\"\n  }\n}\n      <\/code><\/pre>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>body<\/strong><\/td>\n        <td>Ja<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Ett anrop kommer att misslyckas om <code>body<\/code>:\n          <ul>\n            <li>\u00c4r <code>null<\/code>, tomt eller enbart best\u00e5r av blanksteg<\/li>\n            <li>\u00c4r l\u00e4ngre \u00e4n 2000 tecken<\/li>\n          <\/ul>\n        <\/td>\n        <td>\n          <pre><code>\n\"body\": \"A very nice message\"\n<\/code>\n<\/pre>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>type<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Det finns tv\u00e5 typer: <code>sms<\/code> och <code>flash<\/code>.\n          <ul>\n            <li><code>sms<\/code> \u00e4r ett vanligt SMS.<\/li>\n            <li>\n              <code>flash<\/code> \u00e4r ett meddelande som visas en g\u00e5ng p\u00e5 enheten\n              och sedan raderas.\n            <\/li>\n          <\/ul>\n          Standard-typen \u00e4r <code>sms<\/code>.\n        <\/td>\n        <td>\n          <pre><code>\n\"type\": \"sms\"\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>datacoding<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Det finns tv\u00e5 typer tillg\u00e4ngliga:\n          <ul>\n            <li>\n              <code>gsm<\/code>: 7-bitars teckenupps\u00e4ttning (160 tecken\/SMS),\n              begr\u00e4nsat antal tecken.\n            <\/li>\n            <li>\n              <code>ucs<\/code>: 2-byte teckenupps\u00e4ttning (70 tecken\/SMS),\n              till\u00e5ter alla tecken (t.ex. emoji).\n            <\/li>\n          <\/ul>\n          Om <code>gsm<\/code> \u00e4r satt, kommer meddelanden som kr\u00e4ver\n          <code>ucs<\/code> (ut\u00f6kade tecken) att nekas. Standard \u00e4r\n          <code>ucs<\/code>.\n        <\/td>\n        <td>\n          <pre><code>\n\"datacoding\": \"GSM\"\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>priority<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>Integer<\/code><\/td>\n        <td>\n          Anv\u00e4nds f\u00f6r meddelanden som beh\u00f6ver levereras snabbt. Till\u00e5tna v\u00e4rden\n          \u00e4r <code>1<\/code> (standard, l\u00e4gsta) och <code>2<\/code> (h\u00f6gsta).\n          <br \/><br \/>\n          Att s\u00e4tta prioritet <code>2<\/code> \u00f6kar priset per SMS (10 \u00f6re f\u00f6r\n          svenskt konto, \u20ac 0.01 f\u00f6r internationellt konto).\n        <\/td>\n        <td>\n          <pre><code>\n\"priority\": 1\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>deliveryWindows<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>Array<\/code><\/td>\n        <td>\n          M\u00f6jlighet att schemal\u00e4gga utskick under specifika tidsf\u00f6nster (t.ex.\n          vardagar 10:00-10:15). Du kan ha flera f\u00f6nster.\n          <br \/><br \/>\n          <b>Parsing-regler:<\/b>\n          <ul>\n            <li>\n              <code>null<\/code> i f\u00e4ltet <code>opens<\/code> ers\u00e4tts med\n              aktuellt datum och tid.\n            <\/li>\n            <li>\n              Om <code>closes<\/code> \u00e4r <code>null<\/code> s\u00e4tts det till 3\n              dagar (72 timmar) efter <code>opens<\/code>.\n            <\/li>\n          <\/ul>\n          Anropet avsl\u00e5s om tidsf\u00f6nster \u00f6verlappar. Om inget f\u00f6nster anges\n          skapas ett automatiskt enligt reglerna ovan.\n        <\/td>\n        <td>\n          <pre><code>\n\"deliveryWindows\": [\n    {\n        \"opens\": \"2025-11-12T17:00:19Z\",\n        \"closes\": \"2025-11-18T17:00:19Z\"\n    },\n    {\n        \"opens\": \"2025-11-20T17:00:19Z\",\n        \"closes\": \"2025-11-26T17:00:19Z\"\n    }\n],\n      <\/code><\/pre>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>deliveryReportUrl<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Om en URL anges skickas statusuppdateringar (leveransrapporter) dit\n          via <code>POST<\/code>. Rapporterna \u00e4r separerade f\u00f6r varje mottagare\n          och status.\n        <\/td>\n        <td>\n          <pre><code>\n\"deliveryReportUrl\": \"https:\/\/ip1.net\"\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>reference<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>String<\/code><\/td>\n        <td>\n          Till\u00e5ter anv\u00e4ndaren att s\u00e4tta ett eget ID eller referens.\n          <br \/><br \/>\n          <b>Restriktioner:<\/b>\n          <ul>\n            <li>F\u00e5r best\u00e5 av max 40 tecken.<\/li>\n            <li>F\u00e5r inte best\u00e5 av en tom string eller blanksteg.<\/li>\n          <\/ul>\n          <code>null<\/code> \u00e4r standardv\u00e4rde.\n        <\/td>\n        <td>\n          <pre><code>\n\"reference\": \"custom-id-123\"\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n      <tr>\n        <td><strong>tags<\/strong><\/td>\n        <td>Nej<\/td>\n        <td><code>string<\/code><\/td>\n        <td>\n          En array av taggar som anv\u00e4nds f\u00f6r att kategorisera eller sortera\n          batcher. G\u00f6r det m\u00f6jligt att filtrera vid listning av batcher.\n        <\/td>\n        <td>\n          <pre><code>\n\"tags\": [\"marketing\", \"auth\", \"admin\"],\n      <\/pre><\/code>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity my-5\"\/>\n\n\n\n<h2 class=\"wp-block-heading my-5\" id=\"h-respons\">Respons<\/h2>\n\n\n\n<p>Responsen p\u00e5 ett anrop best\u00e5r av en JSON med f\u00e4lt som beskriver batchens inneh\u00e5ll.<\/p>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-exempel-pa-responsdata\">Exempel p\u00e5 responsdata<\/h3>\n\n\n\n<p>Nedan hittar du ett exempel p\u00e5 svar vid lyckad request mot batches endpoint. Se under rubriken <a href=\"#falt-for-responsdata\">F\u00e4lt f\u00f6r responsdata<\/a> f\u00f6r en detaljerad beskrivning av samtliga f\u00e4lt i responsen.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n{\n    &quot;id&quot;: &quot;5bc86b6e85c7209830f96936&quot;,\n    &quot;sender&quot;: &quot;46101606060&quot;,\n    &quot;body&quot;: &quot;Hi my name is {name}&quot;,\n    &quot;owner&quot;: &quot;ip1-XXXXX&quot;,\n    &quot;direction&quot;: &quot;MT&quot;,\n    &quot;type&quot;: &quot;flash&quot;,\n    &quot;datacoding&quot;: &quot;GSM&quot;,\n    &quot;priority&quot;: 1,\n    &quot;templated&quot;: true,\n    &quot;priceSummary&quot;: {\n        &quot;total&quot;: 0.125,\n        &quot;currency&quot;: &quot;EUR&quot;,\n        &quot;average&quot;: 0.0416\n    },\n    &quot;messageSummary&quot;: {\n        &quot;101&quot;: {\n          &quot;messages&quot;: 43,\n          &quot;sms&quot;: 86\n        },\n        &quot;102&quot;: {\n          &quot;messages&quot;: 3,\n          &quot;sms&quot;: 6\n        },\n        &quot;201&quot;: {\n          &quot;messages&quot;: 142,\n          &quot;sms&quot;: 284\n        }\n    },\n    &quot;deliveryWindows&quot;: &#x5B;\n        {\n            &quot;opens&quot;: &quot;ISO-8601 string&quot;,\n            &quot;closes&quot;: &quot;ISO-8601 string&quot;\n        },\n        {\n            &quot;opens&quot;: &quot;ISO-8601 string&quot;,\n            &quot;closes&quot;: &quot;ISO-8601 string&quot;\n        }\n    ],\n    &quot;status&quot;: 112,\n    &quot;deliveryReportUrl&quot;: &quot;https:\/\/api.example.com\/sms\/deliveryreport&quot;,\n    &quot;reference&quot;: &quot;A client reference&quot;,\n    &quot;tags&quot;: &#x5B;&quot;marketing&quot;, &quot;auth&quot;, &quot;etc&quot;],\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"falt-for-responsdata\">F\u00e4lt f\u00f6r responsdata<\/h3>\n\n\n\n<div class=\"responsive-table\">\n<table class=\"table table-dark table-striped developer-table\">\n  <thead>\n    <tr>\n      <th>F\u00e4ltnamn<\/th>\n      <th>Typ<\/th>\n      <th>Beskrivning<\/th>\n      <th>Exempel<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>id<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Batchens ID.\n      <\/td>\n      <td><pre><code>\n\"id\": \"5bc86b6e85c7209830f96936\"\n      <\/code><\/pre><\/td>\n    <\/tr>\n    <tr>\n      <td><strong>sender<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Avs\u00e4ndaren som anv\u00e4nds f\u00f6r ett eller flera meddelanden.\n      <\/td>\n      <td><pre><code>\n\"sender\": \"46101606060\"\n      <\/code><\/pre><\/td>\n    <\/tr>\n    <tr>\n      <td><strong>body<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Den ursprungliga bodyn, allts\u00e5 meddelandetexten, som skickas, f\u00f6re mallar har till\u00e4mpats, enligt den ursprungliga requesten.\n      <\/td>\n      <td><pre><code>\n\"body\": \"A very nice message\"\n<\/code>\n<\/pre>\n<\/td>\n    <\/tr>\n    <tr>\n      <td>owner<\/td>\n      <td><code>String<\/code><\/td>\n      <td>Kontonumret f\u00f6r SMS-kontot som st\u00e5r som \u00e4gare batchen<\/td>\n      <td><pre><code>\n\"owner\": \"ip1-xxxxx\"\n      <\/code><\/pre><\/td>\n    <\/tr>\n    <tr>\n      <td><strong>direction<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Talar om ifall meddelandet <strong>skickades<\/strong> eller <strong>togs emot<\/strong> av v\u00e5rt system.\n        <ul>\n          <li><code>MT<\/code> En akronym f\u00f6r Mobile Terminated, ett meddelande som skickades till en mobil enhet.<\/li>\n          <li><code>MO<\/code> En akronym f\u00f6r Mobile Originated, ett meddelande som skickades fr\u00e5n en mobil enhet.<\/li>\n        <\/ul>\n      <\/td>\n      <td><pre><code>\n \"direction\": \"MT\"\n      <\/code><\/pre><\/td>\n    <\/tr>\n    <tr>\n      <td><strong>type<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Beskriver meddelandets typ.\n        <ul>\n          <li><code>sms<\/code> \u00e4r ett vanligt SMS.<\/li>\n          <li>\n            <code>flash<\/code> \u00e4r ett meddelande som visas en g\u00e5ng p\u00e5 enheten\n            och sedan raderas.\n          <\/li>\n        <\/ul>\n      <\/td>\n      <td>\n      <pre><code>\n\"type\": \"sms\"\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>datacoding<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Talar om vilken teckenupps\u00e4ttning som anv\u00e4nds f\u00f6r batchen.\n        <ul>\n          <li>\n            <code>gsm<\/code>: 7-bitars teckenupps\u00e4ttning (160 tecken\/SMS),\n            begr\u00e4nsat antal tecken.\n          <\/li>\n          <li>\n            <code>ucs<\/code>: 2-byte teckenupps\u00e4ttning (70 tecken\/SMS),\n            till\u00e5ter alla tecken (t.ex. emoji).\n          <\/li>\n        <\/ul>\n      <\/td>\n      <td>\n      <pre><code>\n\"datacoding\": \"GSM\"\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>priority<\/strong><\/td>\n      <td><code>Integer<\/code><\/td>\n      <td>\n        Beskriver vilken prioritet som anv\u00e4nds f\u00f6r batchen.\n      <\/td>\n      <td>\n      <pre><code>\n\"priority\": 1\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>templated<\/strong><\/td>\n      <td><code>boolean<\/code><\/td>\n      <td>Talar om ifall batchens body (Meddelandetxt) inneh\u00e5ller templating.<\/td>\n      <td>\n        <pre>\n          <code>\n\"templated\": true\n          <\/code>\n        <\/pre>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>priceSummary<\/strong><\/td>\n      <td><code>array<\/code><\/td>\n      <td>Ger en summering av batchens kostnad samt vilken valuta som debiterat kontot.<\/td>\n      <td>\n        <pre>\n          <code>\n\"priceSummary\": {\n    \"total\": 0.125,\n    \"currency\": \"EUR\",\n    \"average\": 0.0416\n}\n          <\/code>\n        <\/pre>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>messageSummary<\/strong><\/td>\n      <td><code>array<\/code><\/td>\n      <td>Ger en summering av antalet meddelande i batchen uppdelat i statusgrupper.<\/td>\n      <td>\n        <pre>\n          <code>\n\"messageSummary\": {\n    \"101\": {\n      \"messages\": 43,\n      \"sms\": 86\n    },\n    \"102\": {\n      \"messages\": 3,\n      \"sms\": 6\n    },\n    \"201\": {\n      \"messages\": 142,\n      \"sms\": 284\n    }\n}\n          <\/code>\n        <\/pre>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>deliveryWindows<\/strong><\/td>\n      <td><code>Array<\/code><\/td>\n      <td>\n        Visar batchens tidsf\u00f6nster\n      <\/td>\n      <td><pre><code>\n\"deliveryWindows\": [\n    {\n        \"opens\": \"2025-11-12T17:00:19Z\",\n        \"closes\": \"2025-11-18T17:00:19Z\"\n    },\n    {\n        \"opens\": \"2025-11-20T17:00:19Z\",\n        \"closes\": \"2025-11-26T17:00:19Z\"\n    }\n],\n      <\/code><\/pre><\/td>\n    <\/tr>\n\n    <tr>\n      <td><strong>status<\/strong><\/td>\n      <td>Integer<\/td>\n      <td>Aktuell status f\u00f6r batchen. H\u00e4rleds fr\u00e5n riktningen och den senaste statusen f\u00f6r batchens meddelanden. Tillg\u00e4ngliga statusar \u00e4r f\u00f6ljande:\n        <table class=\"table table-dark table-striped\">\n          <thead>\n            <tr>\n            <th>Namn<\/th>\n            <th>statuskod<\/th>\n            <th>Kommentar<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <tr>\n              <td>Planned<\/td>\n              <td>101<\/td>\n              <td>Batchen \u00e4r schemalagd att skickas i framtiden.<\/td>\n            <\/tr>\n            <tr>\n              <td>Ongoing<\/td>\n              <td>111<\/td>\n              <td>Batchen h\u00e5ller p\u00e5 att bearbetas och skickas ut<\/td>\n            <\/tr>\n            <tr>\n              <td>Sent<\/td>\n              <td>112<\/td>\n              <td>Batchen har skickats ut<\/td>\n            <\/tr>\n            <tr>\n              <td>Incoming<\/td>\n              <td>201<\/td>\n              <td>Batchen inneh\u00e5ller inkommande meddelanden<\/td>\n            <\/tr>\n            <tr>\n              <td>Canceled<\/td>\n              <td>203<\/td>\n              <td>Batchen har avbrutits och kommer inte att skickas<\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n      <\/td>\n      <td>\n      <pre><code>\n\"status\": 112\n      <\/pre><\/code>\n    <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>deliveryReportUrl<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Visar eventuella callback-url f\u00f6r mottagande av leveransrapporter till extern mjukvara.\n      <\/td>\n      <td>\n      <pre><code>\n\"deliveryReportUrl\": \"https:\/\/ip1.net\"\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>reference<\/strong><\/td>\n      <td><code>String<\/code><\/td>\n      <td>\n        Visar batchens referens om s\u00e5dan finns.\n      <\/td>\n      <td>\n      <pre><code>\n\"reference\": \"custom-id-123\"\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n    <tr>\n      <td><strong>tags<\/strong><\/td>\n      <td><code>string<\/code><\/td>\n      <td>\n        visar eventuella taggar i batchen.\n      <\/td>\n      <td>\n      <pre><code>\n\"tags\": [\"marketing\", \"auth\", \"admin\"],\n      <\/pre><\/code>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity my-5\"\/>\n\n\n\n<h2 class=\"wp-block-heading my-5\" id=\"h-kodexempel\">Kodexempel<\/h2>\n\n\n\n<p>Nedan hittar du ett enkelt kodexempel med autentisering och funktionalitet f\u00f6r att skicka ett SMS.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-skicka-ett-sms-i-c\">Skicka ett SMS i C#<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nusing (var client = new HttpClient())\n{\n    client.BaseAddress = new Uri(&quot;https:\/\/api.ip1sms.com\/v2\/&quot;);\n    client.DefaultRequestHeaders.Accept.Clear();\n    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(&quot;application\/json&quot;));\n    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(&quot;Bearer&quot;, &quot;API Key&quot;);\n\n    var sms = new OutgoingSMS()\n    {\n        Sender = &quot;iP1&quot;,\n        Recipients = new List&lt;string&gt;() { &quot;46712345678&quot; },\n        Body = &quot;Test message rest v2&quot;,\n    };\n\n    HttpResponseMessage response = await client.PostAsJsonAsync(&quot;batches&quot;, sms);\n\n    if (response.IsSuccessStatusCode)\n    {\n        Console.WriteLine(&quot;Sent&quot;);\n    }\n    else\n    {\n        Console.WriteLine(&quot;Failed, &quot; + response.StatusCode + &quot;: &quot; + await response.Content.ReadAsStringAsync());\n    }\n}\n    \npublic class OutgoingSMS\n{\n    public string Sender { get; set; }\n    public List&lt;string&gt; Recipients { get; set; }\n    public string Body { get; set; }\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-skicka-ett-sms-i-php\">Skicka ett SMS i PHP<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n$conf = array(\n    &#039;password&#039; =&gt; &#039;API key&#039;,\n    &#039;apiUrl&#039; =&gt; &#039;api.ip1sms.com\/v2\/&#039;,\n    &#039;method&#039; =&gt; &#039;POST&#039;,\n    &#039;endpoint&#039; =&gt; &#039;batches&#039;,\n);\n\n$message = array(\n    &quot;sender&quot; =&gt; &quot;iP1&quot;,\n    &quot;recipients&quot; =&gt; &#x5B;&quot;46712345678&quot;],\n    &quot;body&quot; =&gt; &quot;Test message rest v2&quot;,\n);\n\n$jsonEncodedMessage = json_encode($message);\n\/\/ Set up request options\n$options = array(\n    &#039;http&#039; =&gt; array(\n        &#039;header&#039;  =&gt; array(\n            &#039;Content-Type: application\/json&#039;,\n            &#039;Authorization: Bearer &#039;.$conf&#x5B;&#039;password&#039;],\n            &#039;Content-Length: &#039; . strlen($jsonEncodedMessage)\n        ),\n        &#039;method&#039;  =&gt; $conf&#x5B;&#039;method&#039;],\n        &#039;content&#039; =&gt; $jsonEncodedMessage,\n    )\n);\n\n$url = &quot;https:\/\/&quot; . $conf&#x5B;&#039;apiUrl&#039;] . $conf&#x5B;&#039;endpoint&#039;];\n$context  = stream_context_create($options);\n\/\/ Send the request\n$response = file_get_contents($url, false, $context);\n\/\/ Print the response\necho $response;\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-skicka-ett-sms-i-visual-basic\">Skicka ett SMS i Visual Basic<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: vb; title: ; notranslate\" title=\"\">\nImports System.Net.Http\nImports System.Net.Http.Headers\nImports System.Net.Http.Json\n\nModule Module1\n    Sub Main()\n        Dim client As New HttpClient()\n\n        client.BaseAddress = New Uri(&quot;https:\/\/api.ip1sms.com\/v2\/&quot;)\n        client.DefaultRequestHeaders.Accept.Clear()\n        client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue(&quot;application\/json&quot;))\n        client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue(&quot;Bearer&quot;, &quot;API Key&quot;)\n\n        Dim sms As New OutgoingSMS()\n        sms.Sender = &quot;iP1&quot;\n        sms.Recipients = New List(Of String)() From {&quot;46712345678&quot;}\n        sms.Body = &quot;Test message rest v2&quot;\n\n        Dim response As HttpResponseMessage = client.PostAsJsonAsync(&quot;batches&quot;, sms).Result\n\n        If response.IsSuccessStatusCode Then\n            Console.WriteLine(&quot;Sent&quot;)\n        Else\n            Console.WriteLine(&quot;Failed, &quot; &amp; response.StatusCode.ToString() &amp; &quot;: &quot; &amp; response.Content.ReadAsStringAsync().Result)\n        End If\n    End Sub\nEnd Module\n\nPublic Class OutgoingSMS\n    Public Property Sender As String\n    Public Property Recipients As List(Of String)\n    Public Property Body As String\nEnd Class\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity my-5\"\/>\n\n\n\n<h2 class=\"wp-block-heading my-5\" id=\"h-felsokning\">Fels\u00f6kning<\/h2>\n\n\n\n<p>I detta avsnitt hittar du HTTP-felstatuskoder och vanligt f\u00f6rekommande fel f\u00f6r enskilda anropsf\u00e4lt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-vanliga-felstatuskoder\">Vanliga felstatuskoder<\/h3>\n\n\n\n<div class=\"responsive-table\">\n<table class=\"table table-dark table-striped developer-table\">\n    <thead>\n        <tr>\n            <th>Kod<\/th>\n            <th>Namn<\/th>\n            <th>Betydelse<\/th>\n            <th>Klass<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr>\n            <td>400<\/td>\n            <td>Bad Request<\/td>\n            <td>Servern kan inte f\u00f6rst\u00e5 f\u00f6rfr\u00e5gan, ofta p\u00e5 grund av ogiltig syntax (t.ex. felaktigt formaterad JSON-data).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>401<\/td>\n            <td>Unauthorized<\/td>\n            <td>Klienten m\u00e5ste autentisera sig f\u00f6r att f\u00e5 \u00e5tkomst till resursen (t.ex. saknas en API-nyckel eller inloggningstoken).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>403<\/td>\n            <td>Forbidden<\/td>\n            <td>Klienten har autentiserat sig, men saknar beh\u00f6righet att utf\u00f6ra \u00e5tg\u00e4rden (t.ex. en vanlig anv\u00e4ndare f\u00f6rs\u00f6ker radera andras data).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>404<\/td>\n            <td>Not Found<\/td>\n            <td>Servern har inte hittat resursen som efterfr\u00e5gades (t.ex. en specifik resurs med ett ID som inte finns).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>405<\/td>\n            <td>Method Not Allowed<\/td>\n            <td>HTTP-metoden som anv\u00e4nds \u00e4r inte till\u00e5ten f\u00f6r resursen (t.ex. f\u00f6rs\u00f6ker POST:a till en resurs som endast accepterar GET).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>409<\/td>\n            <td>Conflict<\/td>\n            <td>Beg\u00e4ran kunde inte slutf\u00f6ras p\u00e5 grund av en konflikt med resursens nuvarande tillst\u00e5nd (t.ex. f\u00f6rs\u00f6ker skapa en resurs som redan existerar).<\/td>\n            <td>Klientfel<\/td>\n        <\/tr>\n        <tr>\n            <td>500<\/td>\n            <td>Internal Server Error<\/td>\n            <td>Ett generiskt felmeddelande som indikerar att ett ov\u00e4ntat tillst\u00e5nd p\u00e5 servern hindrade den fr\u00e5n att uppfylla beg\u00e4ran.<\/td>\n            <td>Serverfel<\/td>\n        <\/tr>\n        <tr>\n            <td>503<\/td>\n            <td>Service Unavailable<\/td>\n            <td>Servern \u00e4r f\u00f6r n\u00e4rvarande inte tillg\u00e4nglig (t.ex. \u00f6verbelastad eller nere f\u00f6r underh\u00e5ll).<\/td>\n            <td>Serverfel<\/td>\n        <\/tr>\n    <\/tbody>\n<\/table>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading my-5\" id=\"h-felsokning-specifika-falt\">Fels\u00f6kning specifika f\u00e4lt<\/h3>\n\n\n\n<p>Varje felaktigt anrop som triggar en felstatuskod inneh\u00e5ller en detaljerad beskrivning i respons-bodyn. Du kan extrahera denna text programmatiskt f\u00f6r att f\u00e5 en mer tydlig bild av vad som gick fel. Om du inte kan avl\u00e4sa felet i response-bodyn s\u00e5 kan du utg\u00e5 fr\u00e5n listan nedan f\u00f6r att fels\u00f6ka ditt misslyckade anrop.<\/p>\n\n\n\n<h4 class=\"wp-block-heading my-5\" id=\"h-sender\"><code>sender<\/code><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>S\u00e4kerst\u00e4ll att till\u00e4ggstj\u00e4nsten \"Valfri avs\u00e4ndare\" finns aktiverad p\u00e5 kontot. Du kan aktivera \"Valfri avs\u00e4ndare\" i webshopen eller via n\u00e5gon av v\u00e5ra webbtj\u00e4nster.<\/li>\n\n\n\n<li>S\u00e4kerst\u00e4ll att avs\u00e4ndaren finns registrerad p\u00e5 kontot i anv\u00e4ndarportalen.<\/li>\n\n\n\n<li>Om avs\u00e4ndaren best\u00e5r av ett nummer, s\u00e4kerst\u00e4ll att numret inte \u00e4r l\u00e4ngre \u00e4n 15 siffror.<\/li>\n\n\n\n<li>Om en alfanumerisk avs\u00e4ndare anv\u00e4nds, s\u00e4kerst\u00e4ll att den best\u00e5r av 3 - 11 tecken, Aa - Zz, 0 - 9.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading my-5\" id=\"h-body\"><code>body<\/code><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>S\u00e4kerst\u00e4ll att meddelandetexten inte \u00f6verstiger 2000 tecken.<\/li>\n\n\n\n<li>Kontrollera texten inneh\u00e5ll f\u00f6r att utesluta att den inneh\u00e5ller ol\u00e4mpligt eller reglerat inneh\u00e5ll vilket kan trigga sp\u00e4rrtj\u00e4nster hos vissa operat\u00f6rer.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading my-5\" id=\"h-recipients\"><code>recipients<\/code><\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Se till att numret du f\u00f6rs\u00f6ker skicka till \u00e4r i formatet MSISDN (4612345678), allts\u00e5 ett nummer med landskod, utan + eller dubbla nollor framf\u00f6r.<\/li>\n<\/ol>\n\n\n\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Service\",\n  \"serviceType\": \"SMS Messaging API\",\n  \"name\": \"iP.1 SMS API - Skicka SMS (Programmatiskt utskick)\",\n  \"description\": \"Huvudendpoint f\u00f6r att initiera ett SMS-utskick via REST API. Denna \u00e5tg\u00e4rd initierar en fakturerbar transaktion.\",\n  \"provider\": {\n    \"@type\": \"Organization\",\n    \"name\": \"iP.1 Networks AB\",\n    \"url\": \"https:\/\/ip1sms.com\/\"\n  },\n  \"hasOfferCatalog\": { \n    \"@type\": \"OfferCatalog\",\n    \"name\": \"Priser och paket f\u00f6r SMS-tj\u00e4nster\",\n    \"url\": \"https:\/\/shop.ip1.net\/products\/sms-services\" \n  },\n  \n  \"url\": \"https:\/\/ip1sms.com\/utvecklare\/skicka-sms\/\",\n  \"serviceOutput\": { \n    \"@type\": \"CreativeWork\",\n    \"about\": \"SMS-utskick via API\",\n    \"description\": \"En bekr\u00e4ftelse p\u00e5 att ett meddelandebatch har skapats och initierats.\"\n  },\n  \"potentialAction\": {\n    \"@type\": \"CommunicateAction\",\n    \"target\": {\n      \"@type\": \"EntryPoint\",\n      \"urlTemplate\": \"https:\/\/api.ip1sms.com\/v2\/batches\", \n      \"httpMethod\": \"POST\" \/\/ Detta f\u00e4lt accepteras ofta under EntryPoint.\n    },\n    \"name\": \"Skicka SMS Batch\"\n  }\n}\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<nav id=\"developer-sub-menu\" class=\"navbar sticky-top\">\n    <nav class=\"nav bg-light flex-column\">\n        <a class=\"nav-link font-weight-bold\" href=\"h-quick-start\">Quick start<\/a>\n        <a class=\"nav-link font-weight-bold\" href=\"#h-anrop\">Anrop<\/a>\n        <nav class=\"nav\">\n            <a class=\"nav-link text-muted\" href=\"#h-exempel-pa-anropsdata\">Exempel p\u00e5 arnopsdata<\/a>\n            <a class=\"nav-link text-muted\" href=\"#h-falt-for-anropsdata\">F\u00e4lt f\u00f6r anropsdata<\/a>\n        <\/nav>\n    <\/nav>\n    <nav class=\"nav bg-light\">\n        <a class=\"nav-link font-weight-bold\" href=\"#h-respons\">Respons<\/a>\n        <nav class=\"nav\">\n            <a class=\"nav-link text-muted\" href=\"#h-exempel-pa-responsdata\">Exempel p\u00e5 responsdata<\/a>\n            <a class=\"nav-link text-muted\" href=\"#falt-for-responsdata\">F\u00e4lt f\u00f6r responsdata<\/a>\n        <\/nav>\n    <\/nav>\n    <nav class=\"nav bg-light\">\n        <a class=\"nav-link font-weight-bold\" href=\"#h-kodexempel\">Kodexempel<\/a>\n        <nav class=\"nav\">\n            <a class=\"nav-link text-muted\" href=\"#h-skicka-ett-sms-i-c\">Skicka ett SMS i C#<\/a>\n            <a class=\"nav-link text-muted\" href=\"#h-skicka-ett-sms-i-php\">Skicka ett SMS i PHP<\/a>\n            <a class=\"nav-link text-muted\" href=\"#h-skicka-ett-sms-i-visual-basic\">Skicka ett SMS i PHP<\/a>\n        <\/nav>\n    <\/nav>\n    <nav class=\"nav bg-light\">\n        <a class=\"nav-link font-weight-bold\" href=\"#h-felsokning\">Fels\u00f6kning<\/a>\n        <nav class=\"nav\">\n            <a class=\"nav-link text-muted\" href=\"#h-vanliga-felstatuskoder\">Vanliga felstatuskoder<\/a>\n            <a class=\"nav-link text-muted\" href=\"#h-felsokning-specifika-falt\">Fels\u00f6kning specifika f\u00e4lt<\/a>\n            <nav class=\"nav flex-column\">\n                <a class=\"nav-link text-muted d-block\" href=\"#h-sender\">sender<\/a>\n                <a class=\"nav-link text-muted d-block\" href=\"#h-body\">body<\/a>\n                <a class=\"nav-link text-muted d-block\" href=\"#h-recipients\">recipients<\/a>\n            <\/nav>\n        <\/nav>\n    <\/nav>\n<\/nav>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Skicka SMS Quick start Anv\u00e4nd exemplet nedan och byt ut &#8221;API_NYCKEL&#8221; mot en bearer token som du skapar i anv\u00e4ndarportalen. Anrop Endpoint: \/v2\/batches Metod: POST Content-Type: application\/json Exempel p\u00e5 anropsdata Exemplet ovan inneh\u00e5ller anropsdatan med de obligatoriska f\u00e4lten sender, recipients och body, som kr\u00e4vs f\u00f6r att skicka ett SMS-meddelande. Se under rubriken F\u00e4lt f\u00f6r anropsdata [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":382,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"developer.php","meta":{"footnotes":""},"categories":[4],"tags":[26],"class_list":["post-422","page","type-page","status-publish","hentry","category-api-dokumention","tag-sms"],"_links":{"self":[{"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/pages\/422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/comments?post=422"}],"version-history":[{"count":0,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/pages\/422\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/pages\/382"}],"wp:attachment":[{"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/media?parent=422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/categories?post=422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ip1sms.com\/en\/wp-json\/wp\/v2\/tags?post=422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}