D3 SMS
Utforsk D3 SMS
D3 SMS · API V1

Meldingsstatuser og feilkoder

Følg hver SMS med D3s egne statuskoder. Her finner du beskrivelser av meldingsstatuser og feil på API-forespørsler.

Hent meldingsstatus

POST https://d3.no/sms/api/v1/status.php

Send username, password og enten messageId for én melding eller clientRef for alle mottakere i utsendingen. Bruk ett av oppslagsfeltene, ikke begge. Svaret inneholder bare meldinger sendt via API-et i ditt arbeidsområde.

curl --request POST 'https://d3.no/sms/api/v1/status.php' \
  --data-urlencode 'username=DITT_API_BRUKERNAVN' \
  --data-urlencode 'password=DIN_API_NOKKEL' \
  --data-urlencode 'clientRef=paaminnelse-2026-001'
{
  "success": true,
  "messages": [{
    "messageId": "d3m_0123456789abcdef0123456789abcdef",
    "clientRef": "paaminnelse-2026-001",
    "recipient": "47XXXXXXXX",
    "sender": "D3SMS",
    "status": "delivered",
    "statusCode": 40,
    "statusText": "Levert",
    "segments": 1,
    "cost_ore": 79,
    "createdAt": "2026-10-10T10:00:00Z",
    "updatedAt": "2026-10-10T10:00:03Z"
  }]
}

Tidspunkter oppgis i UTC. cost_ore er det reserverte beløpet for meldingen; eventuell tilbakeføring fremgår av saldobevegelsene. Meldingsinnholdet returneres ikke i statusoppslaget. Etter personvernsletting kan recipient være null; meldings-ID, referanse, status og økonomi beholdes.

Meldingsstatuser

statusCode er D3s tallkode. status er et maskinlesbart navn, og statusText er en enkel norsk tekst som kan vises til brukeren.

KodeStatusBetydning
10queued
I kø
Registrert i kø. Beløpet er reservert.
20sending
Sender
Sending til SMS-leverandøren pågår.
30accepted
Sendt
SMS-leverandøren har tatt imot meldingen. Levering er ennå ikke bekreftet.
40delivered
Levert
Levering til mottakeren er bekreftet.
50rejected
Avvist
Meldingen er avvist. Se meldingshistorikken før du vurderer en ny utsending.
60undelivered
Ikke levert
Leveringsrapporten sier at meldingen ikke ble levert.
70unknown
Uavklart
Sendeforsøkets utfall er ukjent. Meldingen kan ha blitt sendt; ikke send den på nytt automatisk.

Vis gjerne bare «Levert» til sluttbrukeren når status er 40. D3 beholder tekniske leverandøropplysninger internt. API-et returnerer D3-koder, ikke leverandørens statusnumre.

Oppdater status automatisk

Start oppslag tidligst fem sekunder etter sending. Spør høyst én gang hvert femte sekund per utsending, og øk ventetiden hvis status ikke endrer seg. Bruk clientRef for å hente alle mottakerne i én forespørsel.

Du kan avslutte polling for statuser 40, 50 og 60. Status 70 skal tas til manuell avklaring. Ved nettverksfeil og serverfeil skal klienten vente lenger før neste oppslag; HTTP 429 har en Retry-After-header. Denne versjonen tilbyr ikke webhooks til kundens system.

Feil på forespørselen

Et mislykket API-kall gir en HTTP-feilstatus og dette JSON-formatet. error.code er en D3-feilkode, atskilt fra meldingens statusCode.

{
  "success": false,
  "error": {
    "code": 4021,
    "name": "insufficient_balance",
    "message": "Saldoen dekker ikke utsendingen."
  }
}
Kode / HTTPNavnHva du gjør
4001 / 400invalid_requestKontroller parametere, telefonnummer og tekst.
4001 / 403https_requiredBruk HTTPS.
4001 / 405method_not_allowedBruk POST. Tillatt metode oppgis i Allow-headeren.
4001 / 413request_too_largeForespørselskroppen kan være høyst 64 KiB.
4001 / 415unsupported_media_typeBruk application/json eller application/x-www-form-urlencoded.
4011 / 401authentication_failedKontroller brukernavn og nøkkel. Nøkkelen kan være byttet eller deaktivert.
4021 / 402insufficient_balanceFyll på arbeidsområdets saldo.
4031 / 403pro_requiredAPI-et krever en aktiv, betalt Pro-periode.
4032 / 403access_blockedKontroller arbeidsområdet og administratoren som API-nøkkelen tilhører.
4033 / 403sender_unavailableBruk D3SMS eller et godkjent og aktivt eget avsendernavn.
4041 / 404not_foundIngen API-melding i arbeidsområdet samsvarer med referansen.
4091 / 409reference_conflictReferansen er brukt med annet innhold. Kontroller utsendingen; bare en ny tilsiktet melding skal få en ny referanse.
4092 / 409sending_pausedSending er satt på pause. Forsøk senere med samme referanse og innhold.
4291 / 429rate_limitedVent minst antallet sekunder i Retry-After.
5001 / 500service_unavailableAvklar om forespørselen er registrert med statusoppslag. Behold samme clientRef ved nytt forsøk.

Ikke baser integrasjonen på den nøyaktige ordlyden i message. Bruk HTTP-status og kode. Uventede svar eller timeouts er ikke bevis på at en utsending mislyktes.