LOX24 API Specification (PT) (2.20)

Download OpenAPI specification:

Introdução

Nestas páginas você encontrará nossa documentação para transmissão de mensagens usando o Gateway SMS LOX24. A documentação ajuda você a integrar nossa API SMS em suas próprias aplicações e, portanto, a enviar e receber mensagens SMS. Você pode encontrar nossa API SMS em https://api.lox24.eu. Você acessa as funções individuais de acordo com uma /função. Por exemplo, https://api.lox24.eu/me para consultar sua conta de cliente e https://api.lox24.eu/sms para enviar um SMS. Todos os endpoints requerem autenticação por cabeçalho HTTP.

Destaques

  • Use HTTPS, para mensagens totalmente criptografadas com SSL
  • Envie SMS concatenados, aparecendo como um único SMS no aparelho
  • Envie mensagens com texto no conjunto de caracteres GSM 03.38 ou Unicode
  • Transmita qualquer ID de remetente com até 15 dígitos ou 11 caracteres
  • Envie um SMS em massa para toda a sua lista de contatos com apenas uma solicitação
  • Receba respostas às suas mensagens enviadas via HTTP, HTTPS ou SMTP
  • Receba ou verifique o status de entrega das mensagens de saída
  • Receba mensagens de entrada do seu número de entrada (opcional)

Tipo de Conteúdo da Requisição

O Content-Type para requisições POST e PUT pode ser definido como application/json ou multipart/form-data (em endpoints com uploads de arquivos).

Cabeçalhos de resposta

Cada resposta da API inclui um identificador de solicitação exclusivo no cabeçalho X-LOX24-REQUEST-ID. Este identificador alfanumérico de 32 caracteres é gerado para cada solicitação e pode ser usado para fins de suporte ao relatar problemas ou rastrear chamadas específicas da API.

Propriedades de data e hora

A maioria dos objetos de requisições/respostas de data e hora são timestamps unix (inteiro).

Bloqueio de IP

Se mais de três requisições forem recebidas de um endereço IP com dados de autenticação incorretos dentro de um minuto, todas as requisições subsequentes deste IP receberão uma resposta com o status 429 (Muitas Requisições) dentro dos próximos dez minutos.

Autenticação

Todos os endpoints exigem que você esteja autenticado. Para se autenticar, você precisará criar um token de API a partir da sua conta web (http://account.lox24eu "Configurações" e "Configurações de API"). Uma vez que você tenha sua Chave de API, você pode passá-la como um cabeçalho HTTP assim:

curl -X GET https://api.lox24.eu/me \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'
curl -X POST https://api.lox24.eu/groups/7116/phones \
  -H 'Content-Type: application/json' \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -d '{
    "phone": "+4917663804817",
    "a": "o2"
}'

Método de autenticação legado

Também continuamos a suportar a versão antiga de autenticação com dois cabeçalhos 'X-LOX24-CLIENT-ID' e 'X-LOX24-AUTH-TOKEN'

curl -X GET https://api.lox24.eu/me \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567'

Importante!

Nunca compartilhe suas chaves secretas. Mantenha-as protegidas e seguras. Se uma chave for publicada involuntariamente, você pode desativá-la ou excluí-la a qualquer momento em sua conta web (https://account.lox24.eu) nas "Configurações" e "Configurações de API".

token

After logging in to your web account, you can create, deactivate or delete one or more API keys in the "Settings" under "API Settings" (please select a v2 Key).

Security Scheme Type: API Key
Header parameter name: X-LOX24-AUTH-TOKEN

user

User is an assistance interface, e.g. to query the account balance or the credit line. This can be helpful to determine if there is still enough credit to send further SMS.

User's profile information

With this interface, you can check your account balance. If you use a pre-paid Account, you get your available balance (excluded VAT). If you have a post-paid account, you get your remaining sms credit limit. The query response also contains information about your available SMS services and your groups.

Authorizations:
token

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/me \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": 1,
  • "currency": "EUR",
  • "balance_changed_at": 0,
  • "is_text_deleted": true,
  • "balance_amount": 0,
  • "services": [
    ],
  • "groups": {
    }
}

sms

The sms endpoint is used to send individual SMS. This includes regular SMS but also the dryrun for test purposes. In addition, there are a number of functions to query sent SMS, delete SMS or stop the dispatch.

  • Send single SMS
  • Query sent SMS
  • Stop time shifted SMS
  • Delete SMS data
  • Query SMS data

If you don't want to send single SMS, but want to send bulk SMS via the API, then the endpoint "bulks" is relevant.

Relatório de Entrega SMS (DLR) Webhook

O evento 'sms.delivery' envia alterações no dlr_code. Isso permite que você descubra se uma mensagem SMS foi entregue com sucesso, rejeitada ou ainda está sendo entregue.

Cada SMS tem um código de relatório de entrega Notificações de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "sms.delivery"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json
Example

Evento enviado quando o status de entrega do SMS muda

{
  • "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
  • "api_version": "2022-05-25",
  • "name": "sms.delivery",
  • "created_at": 1653378603,
  • "attempt_total": 4,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Teste Registo de entrega de SMS (DLR) Webhook

O evento 'sms.delivery.dryrun' é usado para uma emulação de envio de SMS. Veja Simular o envio de um SMS (para teste).

Cada SMS tem um código de relatório de entrega (DLR).

Notificações de webhook

Notificações de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "sms.delivery.dryrun"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "api_version": "2022-05-25",
  • "name": "sms.delivery.dryrun",
  • "created_at": 0,
  • "attempt_total": 4,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Sucesso na análise de email SMS Webhook

Acionado quando o email para SMS é analisado com sucesso

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "sms.email.parsing.success"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when email to SMS parsing is successful

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "sms.email.parsing.success",
  • "created_at": 1653378803,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}

Falha na análise de email SMS Webhook

Acionado quando a análise de email para SMS falha

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "sms.email.parsing.fail"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Event sent when email to SMS parsing fails

{
  • "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
  • "api_version": "2022-05-25",
  • "name": "sms.email.parsing.fail",
  • "created_at": 1653378603,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Retrieves the collection of SMS

Getting the list of messages from the postbox, ordered by the field created_at in descending order. The postbox contains all sent, not sent and terminated SMS. You can also optionally sort according to the price or the time of transmit to the network operator. You also have the option of transferring different search criteria to limit the output of postbox's messages.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Find one SMS by the unique ID

uuid[]
Array of strings

Find many SMS by the unique IDs

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Send the SMS

Send short message data, such as text, destination number and sender identification by sending a POST request and we transfer the message to the destination network.

Authorizations:
token
Request Body schema: application/json
required

The new sms resource

text
required
string (property.sms.text)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

ID do remetente ou número de telefone

phone
required
string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$

Recipient (international) number:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

property.messages.delivery_at (integer) or null
source
integer or null (property.messages.source)

Fonte ou origem da mensagem

is_unicode
boolean or null (property.messages.is_unicode)

True se a mensagem contém caracteres Unicode, False caso contrário

(property.messages.voice_lang (string or null)) or null
callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

property.messages.service_code (any) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
Example

Exemplo de uma mensagem SMS simples com apenas campos obrigatórios

{
  • "text": "Olá! Esta é uma mensagem SMS de teste.",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671"
}

Response samples

Content type
Example

API response for a successfully request with minimum parameters

{
  • "@context": "/contexts/sms",
  • "@id": "/sms/11111111-2222-3333-4444-555555555555",
  • "@type": "sms",
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+19388888025",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 0,
  • "ip": "139.59.136.251",
  • "created_at": 1755868416,
  • "is_unicode": false,
  • "uuid": "11111111-2222-3333-4444-555555555555",
  • "iso2": "US",
  • "voice_lang": null,
  • "parts_count": 1,
  • "chars_count": 34,
  • "callback_data": null,
  • "bulk_id": null,
  • "key_id": 8291,
  • "service_code": "direct",
  • "is_text_deleted": false,
  • "price": 0.056,
  • "is_sent": false,
  • "requests": "/sms/11111111-2222-3333-4444-555555555555/requests",
  • "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"
}

Simulate sending an SMS (for testing)

This endpoint doesn't send any SMS but emulates the proccess and response. This can be used to get the SMS price or test the API during the integration process. The property uuid will be always equal to 11111111-2222-3333-4444-55555555555. No data will be saved at LOX24, therefore you can't extract any SMS info by GET /sms/{id}. DLR report are send back in same way as per real SMS, if DLR url/email was set-up before, but with statuscode 0.

Authorizations:
token
Request Body schema: application/json
required

The new sms resource

text
required
string (property.sms.text)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

ID do remetente ou número de telefone

phone
required
string (property.common.phone_number) [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$

Recipient (international) number:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

property.messages.delivery_at (integer) or null
source
integer or null (property.messages.source)

Fonte ou origem da mensagem

is_unicode
boolean or null (property.messages.is_unicode)

True se a mensagem contém caracteres Unicode, False caso contrário

(property.messages.voice_lang (string or null)) or null
callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

property.messages.service_code (any) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
Example

Exemplo de uma mensagem SMS simples com apenas campos obrigatórios

{
  • "text": "Olá! Esta é uma mensagem SMS de teste.",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671"
}

Response samples

Content type
Example

API response for a successfully request with minimum parameters

{
  • "@context": "/contexts/sms",
  • "@id": "/sms/11111111-2222-3333-4444-555555555555",
  • "@type": "sms",
  • "text": "Hello! This is a test SMS message.",
  • "sender_id": "+19388888025",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 0,
  • "ip": "139.59.136.251",
  • "created_at": 1755868416,
  • "is_unicode": false,
  • "uuid": "11111111-2222-3333-4444-555555555555",
  • "iso2": "US",
  • "voice_lang": null,
  • "parts_count": 1,
  • "chars_count": 34,
  • "callback_data": null,
  • "bulk_id": null,
  • "key_id": 8291,
  • "service_code": "direct",
  • "is_text_deleted": false,
  • "price": 0.056,
  • "is_sent": false,
  • "requests": "/sms/11111111-2222-3333-4444-555555555555/requests",
  • "clicks": "/sms/11111111-2222-3333-4444-555555555555/clicks"
}

Stopping postponed and not yet sent SMS messages

With this API you can delete SMS messages that have not yet been sent or interrupt the sending process. For scheduled SMS messages, the transmission time must be in the future. If the SMS is not scheduled, the transmission to the mobile phone provider may take a few seconds, which will possibly allow you to stop the transmission in exceptional cases.

Authorizations:
token
query Parameters
_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Find one SMS by the unique ID

uuid[]
Array of strings

Find many SMS by the unique IDs

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

curl -X POST https://api.lox24.eu/sms/ops/batch_cancel?uuid=20f39273-0566-11ea-a637-96000028b339  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
application/json
{
  • "deleted_sms_count": 0
}

Bulk delete SMS messages

With this API you can delete SMS any messages

Authorizations:
token
query Parameters
_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[gateway_sent_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was transmitted to the mobile network

is_sent
boolean

Boolean filter SMS by the is_sent field to distinguish between already sent and not yet sent sms

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

uuid
string

Find one SMS by the unique ID

uuid[]
Array of strings

Find many SMS by the unique IDs

iso2
string

Exact filter SMS by the phone's country (ISO 3166-1 alpha-2)

iso2[]
Array of strings

Exact filter SMS by the phone's countries (ISO 3166-1 alpha-2)

dlr_code
integer

Exact filter SMS by the delivery report status

dlr_code[]
Array of integers

Exact filter SMS by the delivery report statuses

status_code
integer

Exact filter SMS by the status code

status_code[]
Array of integers

Exact filter SMS by the statuses codes

gateway_sent_at
integer

Exact filter SMS by the send to gateway timestamp

gateway_sent_at[]
Array of integers

Exact and range filter SMS by send to gateway timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

chars_count
integer

Range filter SMS by the message chars count

chars_count[]
Array of integers

Exact and range filter SMS by the message chars count

parts_count
integer

Exact filter SMS by the message parts count

parts_count[]
Array of integers

Exact and range filter SMS by the message parts count

bulk
string

Exact filter SMS by the Bulk

bulk[]
Array of strings

Exact and range filter SMS by the Bulk

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

text
string

Partial case-insensitive text filter SMS by the message text

phone
string

Partial text filter SMS by the phone number

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

ip
string

Partial text filter SMS by the IP which created the message

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

callback_data
string

Exact filter SMS by callback_data property

callback_data[]
Array of strings

Exact filter SMS by callback_data property

Responses

Request samples

#!/usr/bin/env bash
curl -X POST https://api.lox24.eu/sms/ops/batch_delete?uuid=20f39273-0566-11ea-a637-96000028b339  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
application/json
{
  • "deleted_sms_count": 0
}

Retrieves the entry of SMS

Getting the single SMS entity by the ID (uuid). If SMS not found then HTTP code 404 will response.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "text": "string",
  • "sender_id": "+491701234567",
  • "phone": "+14155552671",
  • "delivery_at": 0,
  • "status_code": 0,
  • "gateway_sent_at": 0,
  • "source": 0,
  • "dlr_code": 1,
  • "ip": "192.168.1.1",
  • "created_at": 0,
  • "is_unicode": true,
  • "uuid": "string",
  • "iso2": "US",
  • "voice_lang": "DE",
  • "parts_count": 1,
  • "chars_count": 0,
  • "callback_data": "string",
  • "bulk_id": null,
  • "key_id": 1,
  • "service_code": "direct",
  • "is_text_deleted": true,
  • "price": 0,
  • "is_sent": true,
  • "requests": "string",
  • "clicks": "string"
}

Delete a SMS

Remove the SMS entity by the ID (uuid). Endpoint response doesn't contains the body and has HTTP code 204 if SMS was removed or 404 if it doesn't exists. Attention. The SMS is also deleted from the itemised bill. Later complaints are therefore excluded due to lack of traceability.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/sms/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

bulks

The bulks interface is used to send bulk SMS. This includes the correct bulk SMS transmission to multiple phone numbers and/or groups but also the dryrun. In addition, there are a number of functions to query the status of a bulk or to stop the mailing.

  • Send bulk SMS
  • Query status of bulk SMS
  • Stop bulk SMS

If you don't want to send mass SMS but want to send individual SMS via the API, then the endpoint "sms" is relevant.

Bulk Email Parsing Error Webhook Webhook

O evento bulk.email.parsing.fail é enviado em caso de erro na análise do e-mail.

Notificações de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "bulk.email.parsing.fail"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Evento enviado quando a análise de email em massa falha

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "bulk.email.parsing.fail",
  • "created_at": 1653378903,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "6601ab16-ca99-7fe1-cf4c-5e43f74ee974"
}

Bulk Email Parsing Success Webhook

O evento bulk.email.parsing.success é enviado na análise bem-sucedida de um e-mail Email to SMS Bulk.

Notificações de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "bulk.email.parsing.success"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Evento enviado quando o email em massa é analisado com sucesso

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "bulk.email.parsing.success",
  • "created_at": 1653378803,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "5590fa05-fb88-6fc0-bf3b-4d32f63dd863"
}

Retrieves the collection of Bulks

Getting the list of bulks from the postbox, ordered by the field created_at in descending order. The postbox contains all sent, not sent and terminated SMS. You can also optionally sort according to the price or the time of transmit to the network operator. You also have the option of transferring different search criteria to limit the output of postbox's messages.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

_order[delivery_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the message was/should transmitted to the mobile network

_order[processed_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was changed last time

_order[msg_total_count]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by the total counts of the related SMS

text
string

Partial case-insensitive text filter SMS by the message text

sender_id
string

Partial text case-insensitive filter SMS by the sender number or text

status_code
integer

Exact filter Bulks by the status code

status_code[]
Array of integers

Exact filter Bulks by the statuses codes

created_at
integer

Exact filter entities by the creation timestamp

created_at[]
Array of integers

Exact and range filter entities by the creation timestamps

delivery_at
integer

Exact filter SMS by the delivery timestamp

delivery_at[]
Array of integers

Exact and range filter SMS by the delivery timestamps

processed_at
integer

Exact filter entities by the last changes timestamp

processed_at[]
Array of integers

Exact and range filter entities by the last changes timestamps

msg_total_count
integer

Exact filter Bulks by the total count of the SMS in the bulk

msg_total_count[]
Array of integers

Exact and range filter Bulks by the total counts of the related SMS

source
integer

Exact filter SMS by the sources

source[]
Array of integers

Exact and range filter SMS by the sources

key_id
integer

Exact filter entities by the used API key

key_id[]
Array of integers

Exact filter entities by the used API keys

is_unicode
boolean

Boolean filter SMS by the is_unicode field to distinguish between GSM and Unicode messages

is_dryrun
boolean

Boolean filter Bulks by the is_dryrun field to distinguish type of the Bulk

exists[is_unicode]
boolean

Boolean and exists filter Bulks by the is_unicode field to distinguish between GSM and Unicode messages

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Create the Bulk

Create a bulk SMS campaign by sending a POST request with message details and recipient information.

Authorizations:
token
Request Body schema: application/json
required

The new bulks resource

One of
property.messages.delivery_at (integer) or null
sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

ID do remetente ou número de telefone

text
required
string (property.bulks.text) <= 1785 characters

Max text length is 1785 character. But don't forget that the final message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

phones
required
Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ]

List of the recipients (international) numbers:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

msg_groups
Array of integers or null (property.bulks.msg_groups)

List of the recipients groups

is_unicode
boolean or null (property.messages.is_unicode)

True se a mensagem contém caracteres Unicode, False caso contrário

property.messages.service_code (any) or null
source
integer or null (property.messages.source)

Fonte ou origem da mensagem

(property.messages.voice_lang (string or null)) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
{
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "is_unicode": true,
  • "service_code": "direct",
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Simulate creating a Bulk (for testing)

This endpoint is used for test purposes to emulate the creating of an Bulk without actually creating SMS and passing them to the network operator for a fee.

Authorizations:
token
Request Body schema: application/json
required

The new bulks resource

One of
property.messages.delivery_at (integer) or null
sender_id
required
string (property.messages.sender_id) ^(\+?[1-9]\d{0,14}|[a-zA-Z0-9 ]{1,11})$

ID do remetente ou número de telefone

text
required
string (property.bulks.text) <= 1785 characters

Max text length is 1785 character. But don't forget that the final message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

phones
required
Array of strings or null (property.bulks.phones) [ items [ 4 .. 16 ] characters ^\+[1-9]\d{1,14}$ ]

List of the recipients (international) numbers:

  • +491701234567 (E.164)
  • 00491701234567
  • 491701234567
  • 01701234567 (if the account is registered in Germany) will be convert to +491701234567

If the number is not in an E.164 format then the service will convert it based on user's address. To avoid problems with the converting please use E.164 preferentially.

msg_groups
Array of integers or null (property.bulks.msg_groups)

List of the recipients groups

is_unicode
boolean or null (property.messages.is_unicode)

True se a mensagem contém caracteres Unicode, False caso contrário

property.messages.service_code (any) or null
source
integer or null (property.messages.source)

Fonte ou origem da mensagem

(property.messages.voice_lang (string or null)) or null
property.messages.is_text_deleted (boolean) or null

Responses

Request samples

Content type
application/json
{
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "is_unicode": true,
  • "service_code": "direct",
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Retrieves the entry of Bulk

Getting the single Bulk entity by the ID (uuid). If Bulk not found then HTTP code 404 will response.

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "sender_id": "+491701234567",
  • "text": "string",
  • "phones": [
    ],
  • "msg_groups": [
    ],
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": 0,
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Delete a Bulk

Remove the Bulk entity by the ID . Endpoint response doesn't contains the body and has HTTP code 204 if SMS was removed or 404 if it doesn't exists. Attention. The Bulk is also deleted from the itemised bill. Later complaints are therefore excluded due to lack of traceability.

Authorizations:
token
path Parameters
id
required
string

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Cancel the Bulk processing

Cancel Bulk's processing if it has status_code = 0 (New) or status_code = 5 and related to the Bulk messages with is_sent = False

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X PUT https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339/cancel \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": "string",
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

Retrieves current status of the entry of Bulk

Getting short info about Bulk status

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/da0fa78c-4699-11ea-a637-96000028b339/status \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "delivery_at": 0,
  • "status_code": 0,
  • "msg_total_count": 0,
  • "created_at": "string",
  • "processed_at": 0,
  • "ip": "192.168.1.1",
  • "is_unicode": true,
  • "is_dryrun": true,
  • "service_code": "direct",
  • "key_id": 1,
  • "source": 0,
  • "voice_lang": "DE",
  • "is_text_deleted": true,
  • "msg_total_cost": 0
}

incomings

This interface is used to query inbound SMS (pull). The list of all incoming SMS, as well as the content of a particular SMS. Please note, however, that you can also receive the SMS as push, as soon as they arrive. The push variant is preferably, since you do not have to check for incoming SMS, but these are sent directly to your script.

SMS entrantes Webhook

O evento 'sms.incoming' é enviado em um SMS de entrada/resposta (originado pelo celular - SMS-MO).

Notificações de webhook

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "sms.incoming"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Evento enviado quando um SMS recebido é recebido

{
  • "id": "d6ff9b42-1da5-711f-df20-f0173a4e7df1",
  • "api_version": "2022-05-25",
  • "name": "sms.incoming",
  • "created_at": 1653378703,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "4489ef94-ef77-5ef9-ae2a-3c21e52cc752"
}

Retrieves the collection of Incoming SMS

Getting the list of incoming SMS ordered by the field received_at in descending order. The postbox contains all inbound sms and replies. For SMS replies property 'msg_uuid' filled by correspond /sms entity.

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[received_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the Incoming sms was received

text
string

Partial case-insensitive text filter SMS by the message text

from
string

Partial case-insensitive text filter by sender's phone number

to
string

Partial case-insensitive text filter by inbound's phone number

msg_uuid
string

Exact filter by initial SMS ID

msg_uuid[]
Array of strings

Exact filter by initial SMS ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/incomings \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Retrieves the entry of Incoming SMS

Getting the entry of incoming SMS. The postbox contains all inbound sms and replies. For SMS replies property 'msg_uuid' filled by correspond /sms entity.

Authorizations:
token
path Parameters
uuid
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Incoming message ID

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "to": "+14155552671",
  • "from": "+14155552671",
  • "received_at": 0,
  • "text": "string",
  • "msg_uuid": "string"
}

Deleting an Inbound SMS

Received SMS (inbound or reply SMS) can be deleted from the server based on the UUID.

Authorizations:
token
path Parameters
uuid
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Incoming message ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/incomings/20f39273-0566-11ea-a637-96000028b339 \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

groups

The function "Groups" allows you to create bulk SMS mailing lists. Each mailing list represents a group. By using the functions in "Groups" you can create, view, delete and export the mailing lists.

Recupera a coleção de Grupos

Retorna todos os seus grupos (lista de distribuição SMS).

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/groups \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Criar um Grupo

Com este comando você cria uma lista de mailing SMS que é armazenada em nosso sistema para você. Uma lista de mailing tem um nome, uma descrição e cinco colunas adicionais que você pode adicionar além do número de telefone.

Authorizations:
token
Request Body schema: application/json
required

The new groups resource

name
required
string (property.group.name) [ 1 .. 50 ] characters

Nome do grupo

description
string or null (property.group.description) <= 255 characters

Descrição do grupo

name_a
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_b
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_c
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_d
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_e
string or null (property.group.column_name) <= 50 characters

Nome da coluna

object or null
deleted_at
string or null <date-time> (property.group.deleted_at)

Data e hora em que o grupo será excluído

id
integer (property.group.id) >= 1

ID do grupo

count_items
integer (property.group.count_items) >= 0

Contagem de itens no grupo

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "phones": {
    },
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "count_items": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Recupera a entrada de Grupos

Retorna os dados do grupo específico, como nome do grupo e da coluna.

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Editar um Grupo

Alterar a configuração de um grupo, como o nome do grupo ou descrição.

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Request Body schema: application/json
required

The updated groups resource

name
required
string (property.group.name) [ 1 .. 50 ] characters

Nome do grupo

description
string or null (property.group.description) <= 255 characters

Descrição do grupo

name_a
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_b
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_c
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_d
string or null (property.group.column_name) <= 50 characters

Nome da coluna

name_e
string or null (property.group.column_name) <= 50 characters

Nome da coluna

object or null
deleted_at
string or null <date-time> (property.group.deleted_at)

Data e hora em que o grupo será excluído

id
integer (property.group.id) >= 1

ID do grupo

count_items
integer (property.group.count_items) >= 0

Contagem de itens no grupo

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "phones": {
    },
  • "deleted_at": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "count_items": 0
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": 1,
  • "name": "string",
  • "description": "string",
  • "name_a": "string",
  • "name_b": "string",
  • "name_c": "string",
  • "name_d": "string",
  • "name_e": "string",
  • "count_items": 0,
  • "deleted_at": "2019-08-24T14:15:22Z"
}

Excluir um Grupo

Excluir o grupo junto com todos os números de telefone associados.

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/groups/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

phones

Esta interface serve de complemento aos grupos. Através dos telefones pode adicionar, apagar ou modificar números de telefone na sua lista de distribuição de SMS. Também é possível exportar o conteúdo de um grupo através desta interface.

Exportar CSV dos Telefones

Example of the CSV
id phone col_A col_B col_C col_D col_E callback_data
7848412 +49123456780 Name Second name Foo Bar Zoo 12345
7848413 +49123456781 Name Second name Foo Bar Zoo 12346
7848414 +49123456782 Name Second name Foo Bar Zoo 12347
7848415 +49123456783 Name Second name Foo Bar Zoo 12348

The names of the columns will correspond to the values in the fields name_X of the corresponding /group object. If the corresponding value is missing, the default is col_X, where X = (a, b, c, d, e).

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/7116/file/csv  \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Recupera a coleção de Telefones por ID do Grupo

Recupera a coleção de Telefones por ID do Grupo

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/groups/7116/phones  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ]
}

Criar um Telefone

Criar uma entrada com um número de telefone.

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Request Body schema: application/json
required

The new phones resource

phone
required
string (property.phone.phone) <= 30 characters

Número de telefone

a
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

b
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

c
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

d
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

e
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
{
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Criar Telefones em lote

Em vez de enviar múltiplas solicitações, é melhor enviar uma única solicitação com uma lista de objetos de Telefone como corpo da solicitação.

Authorizations:
token
path Parameters
id
required
integer >= 0

ID do grupo

Request Body schema: application/json
required

The new groups resource

Array
phone
required
string (property.phone.phone) <= 30 characters

Número de telefone

a
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

b
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

c
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

d
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

e
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "hydra:totalItems": 0,
  • "hydra:member": {
    }
}

Recupera a entrada de Telefone

Consultar uma entrada com um número de telefone.

Authorizations:
token
path Parameters
id
required
integer >= 0

Identificador do telefone

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/phones/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Editar a entrada de Telefone

Editar uma entrada com um número de telefone.

Authorizations:
token
path Parameters
id
required
integer >= 0

Identificador do telefone

Request Body schema: application/json
required

The updated phones resource

phone
required
string (property.phone.phone) <= 30 characters

Número de telefone

a
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

b
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

c
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

d
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

e
string or null (property.phone.column) <= 1530 characters

Dados da coluna do telefone

callback_data
string or null (property.common.callback_data) <= 36 characters

String which will be send back to your endpoint. E.g. it can be usable to pass your system message id.

Responses

Request samples

Content type
application/json
{
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "string",
  • "phone": "string",
  • "a": "string",
  • "b": "string",
  • "c": "string",
  • "d": "string",
  • "e": "string",
  • "callback_data": "string",
  • "subscribed_at": 0,
  • "unsubscribed_at": 0,
  • "unsubscribe_reason": 0
}

Excluir a entrada de Telefone

Excluir uma entrada com um número de telefone.

Authorizations:
token
path Parameters
id
required
integer >= 0

Identificador do telefone

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/phones/12344  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

campaigns

You can create a short link campaign via the campaigns API. A short link campaign is used to create a short link, which you can then use for individual and bulk SMS messages. You can also query the existing short links via the interface and change or delete them.

Create a Short Link Campaign

Create a new Short Link Campaign entity with destination url, type and name

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

type
required
integer (property.short_link_campaigns.type)
Enum: 1 2

Tipo da campanha de links curtos

name
required
string (property.short_link_campaigns.name) <= 100 characters

Nome da campanha de links curtos

url
required
string (property.short_link_campaigns.url)

URL da campanha de links curtos

group_id
integer or null (property.short_link_campaigns.group_id)

ID do grupo da campanha de links curtos

Responses

Request samples

Content type
application/json
{
  • "type": 1,
  • "name": "string",
  • "url": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

Create a subscription form campaign

A special type of short link campaign that redirects the user to a subscription form. You can specify the id of the group to which the subscribed users phone numbers will be added.

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

name
required
string (property.short_link_campaigns.name) <= 100 characters

Nome da campanha de links curtos

group_id
required
integer or null (property.short_link_campaigns.group_id)

ID do grupo da campanha de links curtos

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

Create a unsubscription form campaign

A special type of short link campaign that redirects the user to a unsubscription form. You can specify the id of the group from which the subscribed users phone numbers will be removed (if they have been added to it).

Authorizations:
token
Request Body schema: application/json
required

The new short_link_campaigns resource

name
required
string (property.short_link_campaigns.name) <= 100 characters

Nome da campanha de links curtos

group_id
required
integer or null (property.short_link_campaigns.group_id)

ID do grupo da campanha de links curtos

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "group_id": 0
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "type": 1,
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "created_at": 0,
  • "group_id": 0
}

requests

Via requests you can retrieve the results of your short link campaign. Depending on whether you have sent an SMS with simple or advanced tracking, you can determine which phone numbers have clicked how often on the links in your SMS. Through this interface it is possible to find out which recipients or which SMS have scored how well.

List by a bulk sms ID

List of all requests by a SMS Bulk ID

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Bulk ID

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filtrar solicitações de links curtos por data maior que

date[gte]
string

Filtrar solicitações de links curtos por data maior ou igual

date[lt]
string

Filtrar solicitações de links curtos por data menor que

date[lte]
string

Filtrar solicitações de links curtos por data menor ou igual

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/bulks/{bulk_id_here}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

List requests by campaign

Lists all clicks on shortlinks for a specific campaign

Authorizations:
token
path Parameters
code
required
string

short_link_campaigns code

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filtrar solicitações de links curtos por data maior que

date[gte]
string

Filtrar solicitações de links curtos por data maior ou igual

date[lt]
string

Filtrar solicitações de links curtos por data menor que

date[lte]
string

Filtrar solicitações de links curtos por data menor ou igual

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu//short_link_campaigns/{campaign_id}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

List by a SMS

List of all requests by a single SMS ID

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

query Parameters
page
integer
Default: 1

Current page

_order[date]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'date' property

ip
string

Partial case-insensitive text filter by a IP address

url
string

Partial case-insensitive text filter by a destination URL

user_agent
string

Partial filter short links by user agent (partial match)

country
string

Exact filter entities by the country code

country[]
Array of strings

Exact filter entities by the country codes

referer
string

Partial case-insensitive text filter by a referer

date
integer

Exact filter short link requests by exact date

date[]
Array of integers

Exact filter short link requests by date (array of values)

type
integer

Exact filter short links by type (exact match)

type[]
Array of integers

Range filter short links by type (array of values)

browser
string

Partial case-insensitive text filter by a browser name

os
string

Partial case-insensitive text filter by a operation system name

os_version
string

Partial case-insensitive text filter by a operation system version

software_type
string

Partial case-insensitive text filter by a software type

hardware_type
string

Partial case-insensitive text filter by a hardware type

date[between]
string

Range filter short link requests by date range

date[gt]
string

Filtrar solicitações de links curtos por data maior que

date[gte]
string

Filtrar solicitações de links curtos por data maior ou igual

date[lt]
string

Filtrar solicitações de links curtos por data menor que

date[lte]
string

Filtrar solicitações de links curtos por data menor ou igual

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/{sms_id}/requests \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

click rate

By using this interface, you will be able to measure the number of clicks of your SMS mailings.

List of all SMS with clicks

Retrieves the list of sms which contain a short link and the number of clicks on these links.

Authorizations:
token
query Parameters
page
integer
Default: 1
_order[created_at]
string
Default: "asc"
Enum: "asc" "desc"

Sort a list by 'created_at' property

requests_count
integer

Exact filter by the requests count value

requests_count[]
Array of integers

Exact and range filter by the requests count value

created_at
integer

Exact filter by SMS creating date

created_at[]
Array of integers

Exact and range filter by SMS creating date

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/sms/clicks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Short-Link clicks of a SMS

Returns the number of clicks on a short link for a specific SMS. If SMS doesn't exists or doesn't contain then HTTP code 404 will response.

Authorizations:
token
path Parameters
uuid
required
string

SMS ID (uuid)

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/sms/clicks/sms_uuid_here  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "uuid": "string",
  • "created_at": 0,
  • "requests_count": 0
}

Fraud Detection API

O Fraud Detection API ajuda a identificar pedidos suspeitos ao seu serviço. A API recebe dados de você, tais como o número de telefone, e-mail e endereço IP de seu cliente em potencial, em conformidade com os regulamentos*** de proteção de dados válidos na Europa. Nosso sistema os verifica usando bancos de dados, algoritmos e inteligência artificial. O API finalmente fornece uma avaliação da probabilidade ou risco de fraude*. O risco é medido como a probabilidade de fraude de 0 a 100, onde 0 representa uma baixa probabilidade de fraude (bom valor de risco) e 100 representa uma probabilidade extremamente alta de fraude (mau valor de risco).

O serviço também permite que você mesmo verifique cada parte do pedido separadamente, por exemplo, passando apenas os dados telefônicos.

Além da pontuação de risco, a resposta AP de Detecção de Fraude também contém informações adicionais para ajudá-lo com sua avaliação de risco própria*:

  • pelo telefone:
    • Região
    • tipo de número (telefone celular, VoIP, etc.)
    • formato válido
    • se o número é de todo possível
  • via e-mail:
    • é um e-mail possível
    • é o domínio do e-mail especificado suspeito
  • através do endereço IP
    • região
    • estado
    • cidade
    • código postal
    • Coordenadas geográficas
    • ISP
    • Avaliação de risco do ISP
    • Tipo de servidor proxy (se usado)
    • Tipo de conexão
  • about the address
    • country code (ISO 3166-1 alpha-2)
    • city
    • postal code
    • street name
    • street number

Dependendo da tarifa selecionada ('economia', 'pró', 'direto'), a resposta e a velocidade de processamento do pedido são diferentes. Os pedidos de economia são adequados para um simples login, por exemplo. Consultas profissionais para o registro de um novo cliente e consultas diretas para a venda de um produto:

  • Economia***". - a resposta contém apenas o fator de risco, o pedido é processado na fila geral.
  • pro*''. - a resposta contém todos os dados detalhados e o pedido é processado na fila geral
  • direct' a resposta contém - a resposta contém todos os dados detalhados e o pedido é processado em uma fila separada com prioridade maior.

Como a pontuação leva algum tempo, a solicitação é processada em modo assíncrono e, após o processamento, o serviço envia os dados da solicitação de volta no formato JSON para a URL HTTP ou e-mail que você especificou. Você pode definir este valor na conta web em Configurações e Notificações (Notificações de Evento). Você também pode verificar o status da solicitação através de sua identificação enviando uma solicitação para o API. Entretanto, recomendamos fortemente que você utilize o sistema de notificação (webhook), pois o serviço pode bloquear suas solicitações se houver um grande número de solicitações de você.

Fraud Check Completed Webhook

Triggered when a Fraud Detection request is completed

Authorizations:
token
Request Body schema: application/json
required
id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Unique entity UUID

api_version
string (property.common.api_version)

Versão da estrutura de dados do webhook de notificação

name
string
Value: "fraud-check.done"

Nome do evento do Webhook

created_at
integer (property.common.created_at) >= 0

Timestamp when the entity was added to the system by the user

attempt_total
integer (property.common.attempt_total) [ 1 .. 4 ]

Número total de tentativas de entrega de webhooks de notificação

attempt_number
integer (property.common.attempt_number) >= 1

Número atual da tentativa de notificação do webhook

object

Event-specific data payload

notification_task_id
string <uuid>

Notification task identifier (request identifier)

Responses

Request samples

Content type
application/json

Evento enviado quando a verificação de detecção de fraude é concluída

{
  • "id": "a7bc0d53-2ab6-822c-df31-a1284b5f8ea2",
  • "api_version": "2022-05-25",
  • "name": "fraud-check.done",
  • "created_at": 1653379003,
  • "attempt_total": 1,
  • "attempt_number": 1,
  • "data": {
    },
  • "notification_task_id": "7712ab27-cd00-8ef2-da5d-6f54f85ff085"
}

List of all Fraud Check requests

Retrieves the list of all previous Fraud Check requests

Authorizations:
token
query Parameters
page
integer
Default: 1

Current page

_order[created_at]
string (order.ordering)
Default: "asc"
Enum: "asc" "desc"

Sort by timestamp when the entity was created

id
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Exact filter by Fraud request ID

id[]
Array of strings (property.common.uuid) [ items^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... ]

Exact filter by Fraud request ID

callback_data
string

Partitial filter entities by the callback_data

request_phone.phone
string

Partial filter by the request's phone value

request_email.email
string

Partial filter by the request's email value

request_ip.ip
string

Partial filter by the request's IP value

status_code
integer

Exact filter Fraud requests by the status code

status_code[]
Array of integers

Exact filter Fraud requests by the status codes

Responses

Request samples

#!/usr/bin/env bash
curl -X GET https://api.lox24.eu/fraud-checks \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Creates a new Fraud Check request

Send a Fraud Check request and get risk score value back.

Authorizations:
token
Request Body schema: application/json
required

The new fraud-check resource

service_code
required
string (property.fraud-check.service_code)
Enum: "economy" "pro" "direct"

Service code defines the type of fraud query you make. Economy contains only a risk value, while Pro and Direct contain more details about the results, so you can make your own decision. Direct queries are also processed with priority. (see /me)

(property.common.callback_data (string or null)) or null
property.common.phone_number (string) or null
property.fraud-check.email (string) or null
property.fraud-check.ip (string) or null
schema.fraud-check-address-fraud_request_write (object) or null

Responses

Request samples

Content type
application/json
{
  • "service_code": "economy",
  • "callback_data": "string",
  • "phone": "+14155552671",
  • "email": "string",
  • "ip": "strings",
  • "address": {
    }
}

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": "string",
  • "status_code": 0,
  • "risk_score": 100,
  • "service_code": "economy",
  • "created_at": 0,
  • "updated_at": 0,
  • "callback_data": "string",
  • "request_phone": {
    },
  • "request_email": {
    },
  • "request_ip": {
    },
  • "request_address": {
    },
  • "price": 0
}

Retrieve Fraud Check request

Returns the data of a specific Fraud Check request

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Fraud Check request ID

Responses

Request samples

#!/usr/bin/env bash
curl https://api.lox24.eu/fraud-checks/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Response samples

Content type
{
  • "@id": "string",
  • "@type": "string",
  • "@context": "string",
  • "id": "string",
  • "status_code": 0,
  • "risk_score": 100,
  • "service_code": "economy",
  • "created_at": 0,
  • "updated_at": 0,
  • "callback_data": "string",
  • "request_phone": {
    },
  • "request_email": {
    },
  • "request_ip": {
    },
  • "request_address": {
    },
  • "price": 0
}

Delete a specific previous Fraud Check request

Remove all information about a previous Fraud Check request.

Authorizations:
token
path Parameters
id
required
string (property.common.uuid) ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

Fraud Check request ID

Responses

Request samples

#!/usr/bin/env bash
curl -X DELETE https://api.lox24.eu/fraud-checks/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee  \
  -H 'Content-Type: application/json' \
  -H 'X-LOX24-AUTH-TOKEN: 1234567:e3f3a759b6677959b6ebfcxxxxxxxxxx'

Collection filters

LOX24 API provides a generic system to apply filters and sort criteria on collections. You can see which filters you can use in the property description.

Search filter

The API uses two types of the text filters:

  • partial strategy uses provided text to search for fields that contain part of that text
  • exact strategy uses uses provided text to search for fields that contain exactly that text

Note: Search filters with the exact strategy can have multiple values for the same property (in this case the condition will be similar to a SQL IN clause).

Usage examples

Find sms which phone property contains "4979" and text property contains *"hello":

curl -X GET https://api.lox24.eu/sms?phone=4979&text=hello \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Find sms with country iso2 property equal 'DE' OR 'CH' and status_code = 0

curl -X GET https://api.lox24.eu/sms?iso2[]=DE&iso2[]=CH&status_code=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Boolean filter

The boolean filter allows to search on boolean fields and values.

Syntax: ?property=<true|false|1|0>

Get sms which wasn't sent to the mobile operator yet:

curl -X GET https://api.lox24.eu/sms?sent=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Exists filter

The exists filter allows to select items based on a nullable field value

Syntax: ?exists[property]=<true|false|1|0>

Get bulks which has property is_unicode=null (sms encoding auto-detection):

curl -X GET https://api.lox24.eu/bulks?exists[is_unicode]=0 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567'

Range Filter

The range filter allows to filter by a value lower than, greater than, lower than or equal, greater than or equal and between two values.

Syntax: ?property[<lt|gt|lte|gte|between>]=value

Usage examples

Filter sms collection by the field created_at between 1575158400 (2019-12-01) and 1575676800 (2019-12-07):

curl -X GET https://api.lox24.eu/sms?created_at[between]=1575158400..1575676800 \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

Order Filter (Sorting)

The order filter allows you to sort a collection against the given properties. Order parameter _order.

Usage examples

Sort sms collection by the field 'created_at' in descending order:

curl -X GET https://api.lox24.eu/sms?_order[created_at]=desc \
  -H 'Host: api.lox24.eu' \
  -H 'X-LOX24-AUTH-TOKEN: e3f3a759b6677959b6ebfcxxxxxxxxxx' \
  -H 'X-LOX24-CLIENT-ID: 1234567' 

SMS status codes

Description of the sms status codes (property status_code):

Status code Description
0 New just created message
100 Message was successfuly transmitted to the mobile operator
208 The destination network/country is blocked
400 The message could not be delivered during maintenance
410 The message was stopped before transmission via web account
2000 No connection to landline possible at the moment
3000 Not enough money on the user balance to send the message
5000 No mobile operator found for this message
6000 The message was stopped before transmission via API

SMS delivery report codes (DLR)

Each SMS has delivery report code (DLR). There are three ways to get DLR code and additional info info:

  1. pull data from API endpoint GET /sms/{id} (id - SMS id) and check property dlr_code
  2. set-up service send HTTP GET requests (webhook) to yours endpoint (please check account page Settings -> API settings). Data sends as URL parameters. On an endpoint's response with HTTP status code < 200 or >= 300 service will do additional attempts (only per DLR code DELIVERY_OK) but maximum four.
  3. set-up service to send emails about SMS DLR status to yours email address (please check account page Settings -> API settings). Data sends as JSON object in email body.

NOTE: The answer of your script is not taken into account therefore you have to monitor your script. In the case of malfunctions there is no notification by us.

DLR report properties

Property Type Description
uuid UUID SMS id
dlr_code integer DLR status code
key_id integer API key id used to sent request to API
phone string Recipinet phone number from SMS (in DLR by email only)
callback_data string String which posted to POST /sms in property callback_data or if sms was send by POST /bulks as Phone's property callback_data

Description of the delivery report status codes (property dlr_code):

Status code Description
0 NONE: There is no delivery report available
1 DELIVERY_OK: The message was successfully delivered
2 DELIVERY_QUEUE: The message is scheduled for later sending
4 DELIVERY_SUBMIT_ACK: The message is enroute
8 DELIVERY_EXPIRED: The SMSC was unable to deliver the message in a specified amount of time. For instance when the phone was turned off
16 DELIVERY_REJECTED: The message was rejected. The provider could have blocked phone numbers in this range

Encoding and number of characters

Generally, the SMS text has to be transfered with UTF-8 encoding (and possibly urlencoded) to the gateway. You have the option to use the parameter "encoding" to decide if you want to send a normal 7 bit or UCS-2 SMS.

GSM 7 bit Standard-Alphabet (GSM 03.38)

The basic character set contains all characters that can be transmitted with a normal 7 bit SMS. Each of this characters counts as 1 character. The extended character set can also be transferred, but requires 2 characters for transmission. SMS which contain more than 160 characters are delivered to the handset as multiple SMS, each with 153 characters, and concatenated by the phone to one message.

Basic Character Set

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00 @ Δ SP 0 ¡ P ¿ p
0x01 £ _ ! 1 A Q a q
0x02 $ Φ " 2 B R b r
0x03 ¥ Γ # 3 C S c s
0x04 è Λ ¤ 4 D T d t
0x05 é Ω % 5 E U e u
0x06 ù Π & 6 F V f v
0x07 ì Ψ ' 7 G W g w
0x08 ò Σ ( 8 H X h x
0x09 Ç Θ ) 9 I Y i y
0x0A LF Ξ * : J Z j z
0x0B Ø ESC + ; K Ä k ä
0x0C ø Æ , < L Ö l ö
0x0D CR æ - = M Ñ m ñ
0x0E Å ß . > N Ü n ü
0x0F å É / ? O § o à
  • LF is a Line Feed control.
  • CR is a Carriage Return control, or filler.
  • ESC is an Escape control.
  • SP is a Space character.

Basic Character Set Extension

0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70
0x00
0x01
0x02
0x03
0x04 ^
0x05
0x06
0x07
0x08 {
0x09 }
0x0A FF
0x0B SS2
0x0C [
0x0D CR2 ~
0x0E ]
0x0F |
  • FF is a Page Break control. If not recognized, it shall be treated like LF.
  • CR2 is a control character. No language specific character shall be encoded at this position.
  • SS2 is a second Single Shift Escape control reserved for future extensions.

UCS-2 (Unicode SMS)

With UCS-2 it is possible to transmit 1,112,064 characters. These characters represent nearly every spoken language. Each character counts as 1 character, but Unicode SMS can only consist of 70 characters, or consist of multiple concatenated SMS, each with 67 characters.

Concatenated SMS

For technical reasons, with one sms only 160 characters of text (70 characters Unicode text) can be transferred. If you send an SMS with more characters, then you send a so-called concatenated SMS. Overlong text messages / Multi-SMS (concatenated SMS, Long SMS) are part messages and transmitted separately. Each part is a separate text message. The receiver converts the parts again into a coherent text. To determine that the message is a concatenated message and which part belongs to which part 7 characters (or 3 in Unicode) of the available characters are needed. This is the reason why one part of an overlong SMS can only consist 153 characters (or 67 for Unicode) of your text. The maximum is 1530 characters with one concatenated message (or 670 characters for Unicode).

Inbound SMS and Reply-SMS

Inbound SMS and Reply-SMS:

You can get incoming SMS (mobile originated - SMS-MO) sent by a webhook to your web server. To receive incoming SMS you need to send Economy SMS to Germany OR you can order an inbound phone number by request to the support (berlin@lox24.eu).

Push service means that our gateway sends HTTP requests with data to a script on your host. On response with HTTP status code < 200 or >= 300, service will do additional attempts but maximum three. The response of your script is not taken into account, so you need to monitor your script. In case of malfunctions we will not notify you. You can enter the URL for all push services in your LOX24 web account page (Settings -> API settings). Alternatively, you can also receive info about incoming SMS by e-mail.

Inbound SMS are sent as HTTP GET with the parameters sender_id for the sender's phone number, text for the message text and time as time when message was sent in Unix timestamp format. For reply SMS to Economy SMS you also receive uuid as assignment to the initial SMS. For an inbound phone number, phone contains inbound (receiver) phone number and id contains the ID of the incoming SMS.

Inbound SMS by mail contains a JSON object with the same parameters.

Parameter Type Description
id integer Inbound SMS identifier (not for Economy reply SMS)
phone string Inbound phone number (not for Economy reply SMS)
sender_id string Sender's phone number of the incoming SMS
text string Message text
time integer Time at which the SMS was received by LOX24
uuid UUID ID of the message that a reply has come (only for Economy reply SMS)

Kannel API (emulation)

Intro

This is a guide to set up and connect our SMS API to your Kannel client.

If you use Kannel to route messages to different SMS gateways you can easily add an additional SMSC module without changing your application architecture.

Support: berlin@lox24.eu

API Key

To send messages with Kannel you need to create an authentication key on the account page with the type 'Kannel API'. Please go to "Settings" -> "API-Settings" and click on "Create new key". You have to choose as type "Kannel API".

Account page an API key

Config

There are two types of SMSC configurations possible to send SMS with LOX24 via Kannel:

  • sending DLR requests to your endpoint
  • sending DLR requests to your Kannel SMSC module, which in turn sends a DLR request to your endpoint (DLR URL chaining)

Note: What's about a DLR request you can read here:

Sending DLR requests to your endpoint

LOX24 API will send delivery reports directly back to your endpoint without bypassing Kannel.

To use the Kannel API just create a new SMSC config:

group = smsc
smsc = http
system-type = kannel
smsc-id = "lox24"
allowed-smsc-id = "lox24"
port = 10443
send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}.php"
smsc-username = "{USER_ID}"
smsc-password = "{API_KEY}"
max-sms-octets = 1530

Where:

  • SERVICE_CODE - any available for your account service code in lower case, e.g. 'text2speech', 'direct' and etc.
  • USER_ID - your account ID, same as the client ID used to login at account.lox24.eu
  • API_KEY - an active API token with type 'API Kannel'. How to create it see here.

DLR URL chaining

We will send delivery reports back to Kannel which will then send DLRs back to your endpoint.

To use the Kannel API just create a new SMSC config:

  group = smsc
  smsc = http
  system-type = kannel
  smsc-id = "lox24"
  allowed-smsc-id = "lox24"
  port = 10443
  send-url = "https://lox24.eu/api/kannel/{SERVICE_CODE}.php"
  smsc-username = "{USER_ID}"
  smsc-password = "{API_KEY}"
  dlr-url = "http://youhosthere.com:10443/?username={USER_ID}&password={API_KEY}"
  connect-allow-ip = "127.0.0.1;213.133.127.70;116.203.64.153;85.10.245.*"
  max-sms-octets = 1530

Where:

  • SERVICE_CODE - any available for your account service code in lower case, e.g. 'text2speech', 'direct' and etc.
  • USER_ID - your account ID, same as the client ID used to login at account.lox24.eu
  • API_KEY - an active API token with type 'API Kannel'. How to create it see here.

Additional notes

No DLR, but LOX24 notifications

If you set-up API v2 Status URL/E-mail in the lox24 web-account you are able to skip parameter dlr-url and get messages notifications in same way as if you sent SMS by our normal API v2 directly to a script on your server or by mail docs

SMSC port

In the SMSC config samples are using port 10443, but it can be any port which you like. We are highly recommend blocking it by the firewall and allow TCP connections from LOX24 servers (116.203.64.153,213.133.127.70,85.10.245.*) and well-known hosts.

Supported DLR variables

LOX24 Kannel API is a minimal Kannel implementation and does support only the following variables:

  • %d - Kannel report type (integer):

    • 1: Delivered to phone
    • 2: Non-Delivered to Phone
    • 4: Queued on SMSC
    • 8: Delivered to SMSC
    • 16: Non-Delivered to SMSC
  • %q - The international phone number (E.164), who will receive the message.

  • %T - The time of the delivery report expressed as seconds since UNIX epoch.

Note: You can use any other variables, but we can't guarantee the correctness of the data.

Parameters

from

(required)

Sender-ID of the message. Can be a number (up to 15 digits) or a text (up to 11 character). In case of a number please use preferentially E.164 phone number format. A sender of text may contain spaces but no other special characters. Please note that some countries do not support own sender IDs or do require pre-registration. Our system automatically tries to detect whether a sender ID is a text or a phone number. Avoid special characters in a number and enter it the same way as it would be dialed on a phone.

to

(required)

Recipient (international) number

text

(required)

The message text can have a length of up to 1530 characters. With a Unicode SMS, the maximum character length is reduced to 670 characters. Internal encoding is UTF-8.

coding

(optional)

You can send a SMS with parameter 'coding':

0 - GSM 03.38 (default), 1 - 8-bit or 2 - UCS-2 encoding.

In our case 8-bit and UCS-2 are the same (is_unicode = true) and will be handled as unicode SMS.

dlr-url

(optional)

Specify an URL and have us call it with delivery status reports. If parameter 'dlr-url' is missed then will be using API v2 DLR endpoint from user's settings (if them set).

deferred

(optional)

If given, the SMS center will postpone the message to be delivered at now plus this amount of minutes. If skipped then SMS will send ASAP.

Example of request

That example of get request which user sends to his Kannel smsbox which is listen on port 9001.

http://127.0.0.1:9001/cgi-bin/sendsms?dlr-url=http://yourhost.com/dlr_test.php?status=%d%26time=%T%26q=%q%26customid=1234567&from=sender&password=test1&smsc=lox24&text=test%20message&to=+49751234567&username=test1&coding=0

Advice

Add to a DLR url custom parameter with internal message ID for proper DLR request processing. In our example that's a customid = 1234567.

SSML e deteção de linguagem

Voice language detection

Voice language will be detected automatically by destination phone number if property voice_lang is null by follow rules:

Deutsch language (DE)

If default language is null then by destination phone number with prefix: '+49', '+41', '+43', '+79'.

Spanish language (ES)

If default language is null then by destination phone number with prefix: '+52', '+57', '+34', '+54', '+51', '+58', '+56', '+593', '+502', '+53', '+591', '+504', '+595', '+503', '+505', '+506', '+507', '+598', '+240'.

SSML Support

The API now supports a subset of SSML (Speech Synthesis Markup Language) for advanced voice message formatting.

Supported Features

Available Tags
  • <break> - Insert pauses in speech
  • <say-as> - Control pronunciation of text

Tag Specifications

<break> Tag
  • Purpose: Add pauses between words or sentences
  • Attributes: time (e.g., "1s", "500ms")
  • Preços: <0,5ms = 1 char, <1s = 2 chars, <1,5s = 3 chars, etc.
<say-as> Tag
  • Purpose: Control how text is interpreted and spoken
  • Supported Attributes:
    • interpret-as="characters" - Spell out text character by character
  • Note: Currently only "characters" value is supported

Usage

Wrap your message content with the <speak> root element:

<speak>
  Your verification code is <say-as interpret-as="characters">A1B2C3</say-as>.
  <break time="1s"/>
  Please enter it now.
</speak>

Email to SMS

Sending SMS via Email

You can send SMS messages via email in two different ways: sending a single SMS to a specific phone number, or sending an SMS to a group of phone numbers.

Sending a Single SMS

To send a single SMS, the email should be formatted as follows:

{{user_id}}.{{api_key}}.{{phone}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@mail2sms.lox24.eu

Sending to Multiple Phone Numbers (Group SMS)

To send an SMS to phone numbers from a specific group, use the following format:

{{user_id}}.{{api_key}}.{{group_id}}.{{service_code}}.{{sender_id}}.{{text_source}}.{{encoding}}.{{max_sms_parts}}@email2bulk.lox24.eu
Parameters:
Order Label Description
1 user_id User Id (integer)
2 api_key "Email2SMS" API key from the API Key settings page ("Settings" -> "API Settings")
3 phone/group_id For single SMS, this is the phone number in E.164 format without leading "+". For group SMS, this is the Group Id you can find in your web-account or request by API
4 service_code Service code 'text2speech', 'direct' (default)
5 sender_id Sender Id: an integer from 1 to 6 (default 1). If sender id wasn't found, then the default value is 'email2sms'.
6 text_source Text source: 0 - subject + body (by default), 1 - subject, 2 - body
7 encoding An integer: 0 - normal GSM (default), 1 - unicode, 2 - auto-detecting (by the whole text from request)
8 max_sms_parts An integer between 1 and 10. Default value is 1. There's a limit to the length of text when parsing the email. Extra characters are used for concatenation in messages longer than the standard limits.

Email Addresses Examples

Group SMS Examples

Send SMS to phones by a group id = 12345 (minimum parameters)

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct'

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct' and with sender id = 2

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct', with sender id = 2, and text from email's subject

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1@email2bulk.lox24.eu

Send SMS to phones by a group id = 12345 with service 'direct', with sender id = 2, with text from email's subject, and encoding auto-detection

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct.2.1.2@email2bulk.lox24.eu
Single SMS Examples

Send SMS to a single phone number "+1234567890" (minimum parameters)

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct'

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct' and sender id = 2

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct', with sender id = 2, and text from email's subject

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1@mail2sms.lox24.eu

Send SMS to a single phone number "+1234567890" with service 'direct', with sender id = 2, with text from email's subject, and encoding auto-detection

1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.1234567890.direct.2.1.2@mail2sms.lox24.eu

Replies about errors

Most errors are ignored to reduce unwanted flooding, including authentication-related errors. But for some errors, the system sends a JSON response with an error description.

Error JSON

Property Description
field Error field in request
description Error description
request EMail address to which the request was sent
Example

{"field":"group_id","description":"Group with id = 12345 was not found!","request":"1234567.e3f3a759b6677959b6ebfcxxxxxxxxxx.12345.direct@email2bulk.lox24.eu"}

Email Forwarding Warning

Please note that the mail gateway does not work with email forwarding. The email must be sent directly to the Mail2SMS gateway mailbox.

Notificações

Notificações

O sistema de mensagens de eventos foi criado como substituto do sistema obsoleto de notificação de status de entrega de SMS de saída e entrada (esses sistemas são considerados obsoletos, não serão melhorados e não são recomendados para uso).

O sistema de mensagens de eventos permite que você envie informações sobre eventos específicos para URIs especificadas (http ou email). Você pode personalizar o sistema para enviar notificações de um evento para diferentes URIs.

Para configurar as notificações, abra a página de configurações (account.lox24.eu -> Configurações -> Notificações), clique em "Criar um novo webhook" e insira no campo URI o endereço http ou e-mail para o qual você deseja receber notificações. Por padrão, todos os eventos possíveis serão enviados para a URI especificada. Se você quiser ser notificado apenas sobre certos eventos, marque a caixa ao lado dos eventos sobre os quais deseja ser notificado.

Se forem necessárias notificações adicionais, repita as instruções acima. Um máximo de cinco configurações individuais de notificação podem ser criadas.

As informações do evento serão notificadas no formato de objeto JSON, que tem o mesmo formato para todos os eventos e difere apenas nos dados do próprio evento.

Estrutura do objeto de evento

Campo Tipo Descrição
id string (36 chars) ID do evento
api_version string Versão da estrutura de dados
name string Nome do evento, ex. 'sms.delivery'
created_at integer Timestamp unix quando o evento foi criado
attempt_total integer Número total de tentativas (re-tentativas)
attempt_number integer Número atual da tentativa
data object Dados do evento (veja lista de eventos)
notification_task_id string (36 chars) ID da tarefa de notificação (identificador da solicitação)
Exemplo de evento
{
  "id": "a3cd6e19-8af2-498d-ad07-c7840f1b4ac8",
  "data": {
    "id": "d6c12ac4-cc7d-11ec-b6da-525400bbb7dc",
    "key_id": 8207,
    "dlr_code": 1,
    "status_code": 100,
    "callback_data": "some data from user's request here"
  },
  "name": "sms.delivery",
  "created_at": 1653378603,
  "api_version": "2022-05-25",
  "attempt_number": 1,
  "attempts_total": 4,
  "notification_task_id": "3378de83-de66-4de8-9d29-2b10d41bb641"
}

Tipos de transporte de eventos

O sistema de notificação pode enviar informações de eventos de duas maneiras (transportes): HTTP e E-mail.

HTTP

O json é enviado como o corpo da requisição http com o cabeçalho Content-Type: application/json. O serviço continuará tentando enviar a requisição (em intervalos de tempo crescentes) até que receba uma resposta com um código de status >= 200 e < 300 ou o número de tentativas atinja o valor especificado no campo attempt_number.

NOTA: A resposta do seu script de endpoint não é levada em consideração, portanto, você deve monitorar seu script. Em caso de mau funcionamento, não há notificação por nossa parte.

E-mail

O json é enviado como o corpo do e-mail com uma única tentativa de um e-mail no-reply@lox24.eu.

Hosts de serviço e endereços IP

Os alertas são enviados dos seguintes hosts 162.55.80.140 e 162.55.80.141. Se você usar um firewall, não se esqueça de colocar esses endereços IP na lista de permissões.

Lista de eventos

Release notes

Release Notes tell you what’s new in API. As always, we welcome your feedback.

2.20 (2025-08-20)

Adicionado

  • Cabeçalhos de resposta - Todas as respostas da API agora incluem um cabeçalho exclusivo X-LOX24-REQUEST-ID para fins de suporte e rastreamento.

2.19 (2025-08-15)

Alterado

  • Reorganização da especificação OpenAPI - Reestruturação importante com correção de vários erros semânticos
  • Renderização de documentação - Substituída a renderização dinâmica do navegador OpenAPI JSON por páginas HTML compiladas estáticas

Adicionado

  • Documentação de webhooks - Adicionada uma descrição abrangente de webhooks e detalhes de implementação
  • Novos eventos webhook para análise de Email para SMS: sms.email.parsing.success e sms.email.parsing.fail

2.18 (2022-10-03)

New

2.17 (2023-06-28)

New

2.16 (2023-01-09)

New

2.15 (2022-10-25)

New

2.14 (2022-08-17)

New

  • Added Phone's read-only properties subscribed_at, unsubscribed_at and unsubscribed_reason (see Phone API)

2.13 (2022-08-01)

New

2.12 (2022-05-05)

New

2.11 (2022-03-31)

New

2.10 (2021-09-23)

New

Fixes

  • The Incoming SMS list by default is ordered by decreasing values of the received_at field.

2.9 (2021-05-06)

New

  • Added the ability to authenticate using the new version of the API key with a single header X-LOX24-AUTH-TOKEN, header X-LOX24-AUTH-CLIENT-ID is deprecated and not recommended for use.

2.8.1 (2021-04-01)

New

  • Voice messages. Added voice_lang property to SMS and Bulk request/response objects.

2.8.0 (2021-02-21)

New

  • Temporary block IP address after multiple invalid authentication attempts.

2.7.1 (2021-02-16)

Fixes

2.7 (2020-07-17)

New

2.6 (2020-06-23)

New

  • Added ability to send SMS with additional data which will be send back to DLR endpoint.

2.5 (2020-06-10)

Developer

  • Added sample code per Phones and Groups endpoints.

2.4 (2020-05-30)

Developer

  • Added sample code in GoLang, Java and Python.

2.3 (2020-05-25)

New

  • Added boolean filter of Bulks list GET /bulks by the property is_dryrun.
  • Added timestamp property balance_changed_at to the endpoint GET /me.

2.2 (2020-05-19)

New

  • Created endpoints GET /incomings and GET /incomings/{id} to retrieve info about incoming and related SMS.
  • Enabled DLR report webhook on POST /sms/dryrun request.
  • Added exact filter by key_id on GET /bulks and GET /sms.

Developer

  • Added sample code in PHP, C# and Javascript per /sms, /bulks and /incomings endpoints.
  • Added section Inbound SMS and Reply-SMS about incoming SMS.

Fixed

  • Fixed a bug related to storing the ip address, date and time of the last API key use

2.1 (2020-03-18)

New

  • The feature that helps you make bulk sms in just one HTTP request:
    • with text template and contact groups
    • preliminary calculation of the cost of bulk SMS
    • fast server response and asynchronous processing
    • bulk SMS cancellation option even during processing
  • New endpoint POST /groups/{id}/phones/batch
    • combine multiple POST /groups/{id}/phones to an one request
  • Implemented filters GET /sms by the property bulk
  • Implemented filters GET /bulks by the property source
  • Added API key ID info to sms and bulks responses

Fixed

  • Added property price to SMS response object
  • Authorization parameters description in the API documentation

2.0-beta (2019-12-15)

New

  • API v2.0 has been developed in accordance with industry standards to make integration as easy as possible. In addition, you can now transmit large quantities of SMS with one query and retrieve detailed information about the messages at any time.

  • The extensive group functionality allows you to manage your mailing lists in our high-performance cloud and thus save your own resources. All this is still compliant with European data protection standards and the German Telecommunications Act.

Developer

You can find the new API description at https://doc.lox24.eu/