Last modified: Jun 5, 2024

Send sms notifications

Endpoint for sending an sms to one or more recipient with known contact details.

On this page:


POST /orders/sms


This API requires authentication and the request must also include one of the following:

  • Maskinporten scope altinn:serviceowner/notifications.create (for external system callers)
  • Platform Access Token (for Altinn Apps and internal Altinn systems)

See Authentication and Authorization for more information.




Request body

The request body must contain the order request formatted as an SmsNotificationOrderRequestExt and serialized as JSON.

Required order request properties


Type: string

The contents of the SMS.


Type: List of RecipientExt

A list containing one or more recipient objects, each recipient containing either a mobile number, a national identity number or an organization number.

Optional order request properties


Type: string

Default: Altinn The string to use as the sender of the SMS.


Type: DateTime

Default: Current time

The date and time (with time zone specification) when the notification should be sent to recipient.


Type: string

An internal reference for notification creator to lookup or identify the notification in the future. Could be a case number or another id. It is recommended, but not required, that the sender’s reference is unique within the organization’s notification orders.


Type: string

The id of the Altinn resource the notification should be related to as the id appears in the Altinn Resource Registry. For an Altinn app the format of the resource is is app_{org}_{app} e.g. app_ttd_apps-test.


Response codes

  • 202 Accepted: The request was accepted and a notification order has been successfully generated.
  • 400 Bad Request: The request was invalid. Refer to problem details in response body for further information.
  • 401 Unauthorized: Indicates a missing, invalid or expired authorization header.
  • 403 Forbidden: Indicates missing or invalid scope or Platform Access Token.


  • application/json

Response body

The response body is formatted as an NotificationOrderRequestResponseExt.cs and serialized as JSON.

Find a short description of each property below.


Type: GUID

The generated id for the notification order.


Type: RecipientLookupResultExt

The result object describing the result of the recipient lookup containing the properties below.

  • status: the result of the initial lookup
  • isReserved: a list containing national identity numbers for recipients that are reserved
  • missingContact: a list containing national identity numbers and organization numbers for recipients where contact details for selected notification channel were not identified
SuccessThe recipient lookup was successful for all recipients.
PartialSuccessThe recipient lookup was successful for some recipients.
FailedThe recipient lookup failed for all recipients.

* Property is only included if order request requires recipient lookup

Response headers


Type: URL

The self link for the generated notification order



In the example we have included place holders for both the Platform Access and Altinn token.

You only need one of them, reference the Authentication section for which one applies to your use case.

curl --location '' \
--header 'Content-Type: application/json' \
--header 'PlatformAccessToken: [INSERT PLATFORM ACCESS TOKEN]' \
--header 'Authorization: Bearer [INSERT ALTINN TOKEN]' \
--data-raw '{
    "sendersReference": "ref-2024-01-01",
	"body": "A text message to be sent immediately from an org.",


202 Accepted

In cases where reservation check or address lookup of recipients is required for an order, the initial result of the lookup will be included in the response. This includes a list containing national identity number for all reserved persons and a list containing national identity number or organization number for the recipients we could not find contact details for.


-- header 'Location:'


    "orderId": "f1a1cc30-197f-4f34-8304-006ce4945fd1",
    "recipientLookup": {
        "status": "PartialSuccess",
        "isReserved": ["11876995923"],
        "missingContact": []

400 Bad Request

Response contains a problem details object with the error message in the detail property.

    "type": "",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "00-9ac2962c93d79629aa5c3744e4259663-344b49720aa49b0a-00",
    "errors": {
        "Subject": [
            "'Body' must not be empty."