Telegram Gateway Authorization Codes#

This section describes the specifics of transmitting authorization codes via the SMPP protocol to the Telegram Gateway.

More details

The Telegram Gateway service is designed to deliver authorization and verification digital codes to Telegram Messenger users.

Codes are sent from the Verification Codes official channel.

Hiding one's phone number in Telegram settings does not affect message delivery. The delivery of codes is also unaffected by whether the user has a Telegram Premium subscription or not.

Digital codes can be sent to Telegram messenger in text messages of SMS type only. During processing, messages will be converted into the TG format and transmitted to Telegram.

Currently, the service supports:

  • sending messages with authorization codes to Telegram;
  • receiving message delivery statuses;

Connection#

The service is connected by the Technical Support Service of the Service Provider.

The Partner and the Service Provider must agree on the following to connect:

  • a service name for transmitting authorization codes to Telegram;

  • a message lifetime.

Sending Request#

In the request for transmitting the authorization code to Telegram, it is necessary to specify a service name that has been separately coordinated with the Technical Support Service.

It is recommended to include parameters and values related to the SMS message type in the request.

The message must contain a code consisting of four to eight digits.

To send a message, the Partner needs to establish a connection to the server and transmit the submit_sm packet to the Service Provider. This packet contains all the necessary message parameters (optionally, also TLV parameters).

Main Request Parameters#

Parameter

Type

Description

source_addr

string

Service name from which the message is sent.

The request for transmitting an authorization code (including the main channel in the cascading message sending) must contain the service name, which is separately agreed upon with the Technical Support Service.

If this parameter is absent, the message is sent from the default name configured on the Service Provider’s platform (as per the Partner’s request).
The encoding for the source_addr parameter value is ASCII (according to the SMPP protocol).

destination_addr

string

Subscriber’s phone number.
Maximum length is 25 characters.
Examples: 79036550550, +79036550550, 8-903-655-05-50, 89036550550.

short_message

string

Message to be sent to the subscriber.

Message must contain a code consisting of four to eight digits.

Maximum message length is 2000 characters.

Maximum user data length for the short_message field: 254 octets.

Text messages longer than 254 octets are recommended to be sent in a single PDU in the TLV parameter message_payload``(id = ``0x0424).

Предупреждение

Simultaneous use of both fields is not allowed. When using the message_payload parameter, the value of the short_message parameter should not be specified.

data_coding

integer

Encoding scheme/type of the message text. It is set in accordance with the GSM 03.38 standard.
Valid values:
  • 0 – DEFAULT, default encoding;

  • 1 – ASCII;

  • 3 – LATIN1;

  • 6 – LATIN_CYR;

  • 8 – UCS2.

If the text encoding differs from those listed above, the platform will treat the message as binary.
It is recommended to use the UCS2 encoding (data_coding = 8) to send the text of the message.
To send messages in Latin, it is possible to use data_coding = 0, which corresponds to the GSM DEFAULT ALPHABET or ASCII, as chosen by the Partner (a unified setting for receiving and sending messages).

esm_class

integer

The set of values for this parameter is specified by the SMPP protocol version 3.4, section 5.2.12.

registered_delivery

integer

This parameter specifies whether the Partner requires delivery status notifications.
Possible values:
  • 0 – the Partner does not require delivery status notification;

  • 1 – the Partner requires delivery status notification;

  • 2 – the Partner requires notification only if the message is not delivered to the subscriber.

This option can be configured by default on the Service Provider’s side (upon the Partner’s request).

validity_period

string

Message lifetime.
Validity period: from 30 to 3600 seconds.
Value format for the YYMMDDhhmmsstnnp parameter, where:
  • YYMMDDhhmmss – year, month, day, hours, minutes, seconds;

  • t – tenths of seconds;

  • nn – quarters of an hour (15-minute intervals), e.g., for 8 hours the value will be “32”;

  • p – shift. Possible values:

    • “+” and “–” specify the time shift in quarter hours relative to GMT, for example, “08+” corresponds to GMT+2, and “04–” corresponds to GMT-1;

    • “R” – values t and nn are ignored, the rest is added to the current local time.

priority

integer

This parameter indicates the message priority.
Messages with higher priority are sent to the operator first.
Possible values are from 0 to 2, where:
  • 0 – lowest priority;

  • 1 – normal priority;

  • 2 – high priority.

Примечание

This parameter is disabled by default. Enabling this functionality should be agreed with your supervising manager.

TLV Parameters#

TLV parameters for sending messages from the Partner to the Service Provider.

TLV Parameter

Field

Octets size

Type

Description

message_payload

Tag

2

Integer

id = 0x0424

Length

2

Integer

Length of the parameter in octets.

Value

up to 2048

Octet String

Contains the extended short message user data, longer than 254 octets.

Примечание

The short message data should be inserted in either the short_message or message_payload fields. Both fields should not be used simultaneously.

The sm_length field should be set to zero if using the message_payload parameter.

ptag

Tag

2

Integer

id = 0x1411

Length

2

Integer

Length of the parameter in octets.

Value

up to 1000

Octet String

Message identifier in the Partner’s system.

May contain from 1 to 50 characters.
Allowed characters: 0…9a…zA…Z-.
It can be any identifier in the Partner’s system.
For example, a unique message identifier or an identifier of the department initiating the sending request.
The Service Provider does not control the values passed in the ptag parameter (only format compliance is checked). The Service Provider optionally returns this identifier to the Partner when sending the message delivery status (see Delivery Status Service).

Response to Request#

In response to the submit_sm packet, the Service Provider’s server replies with the submit_sm_resp packet containing the command_status field.

If the packet is accepted and processed successfully, the body of the submit_sm_resp packet will contain a message_id unique identifier (a positive integer) assigned to this PDU by the Service Provider’s server.

Subsequently, the message_id value is used by the Partner to receive and analyze message delivery statuses.

Possible values for the command_status field are provided in the tables below.

Successful Send Response#

In case of successful sending, the 0x00 response code (HEX) is returned.

Code (HEX)

Description

Partner Action

0x00

The packet received successfully.

No errors, common service’s operation. No Partner’s action needed.

Send Errors#

For invalid results, the response code (HEX) will be different from 0x00.

Code (HEX)

Description

Partner Action

0x01

Message text length exceeded.

The Partner can shorten the text to the allowed values and retry sending the message.

0x03

The Partner sent a PDU of an unsupported type (query_sm, submit_multi, data_sm, etc.)

The Partner fixes the errors on their side.

0x08

System error on the server.

The Partner can retry to send the message.
If the error persists, stop trying to send the message and contact the Technical Support Service, providing the most comprehensive information about the conditions for the occurrence of this error.

0x0A

Invalid sender name.
The Partner sent in the source_addr parameter a value from which sending messages to subscribers is not allowed.

The Partner must fix the errors on their side and can resend the message with the correct source_addr parameter value.

0x0B

Invalid recipient number.
An attempt was made to send a message to a number that is not allowed to send messages.
The Partner should not resend messages.
The Partner should contact the Service Provider’s manager to find out whether it is possible to send messages to this number.

0x0C

Invalid ptag TLV parameter value passed (id = 0x1411).

The Partner corrects the parameter value and can retry to send the message.

0x14

The queue for sending messages from the Partner has reached the maximum allowed value.
Example: The maximum number of messages in the queue for sending to subscribers is set to 100 messages for the Partner’s service.
If more than 100 messages accumulate, the Service Provider will respond with this error code until the queue is reduced.
The Partner pauses the SMS sending process (submit_sm) for 5 seconds, then resumes sending.
The Partner can retry sending the messages that failed.
If the error repeats more than five times in a row, stop sending messages and contact the Technical Support Service, providing the most comprehensive information about the conditions for the occurrence of this error.

0x45

An attempt to send messages after the end of the trial period or when the number of messages allowed for the trial period is exceeded.

The Partner must not retry sending the message.

0x55

The threshold for the maximum number of response messages for the “request-response” or “mixed” mode has been exceeded.

The Partner needs to wait for the next incoming message from the subscriber.

0x58

The bandwidth set for the Partner has been exceeded.
Example. The Partner service has a rate limit of 10 messages per second. The Partner sent 12 messages per second. The first 10 messages will be successfully processed: the Service Provider will send messages to subscribers.
In response to the last 2 messages, the Service Provider will return the 0x58 error code to the Partner and will not send these 2 messages to subscribers.
The Partner stops the sending process (submit_sm) for 5 seconds, then resumes sending without exceeding the allowed speed.
The Partner can retry sending the messages that failed.

0x62

Transaction duration limit exceeded.
The error occurs if the value passed in the schedule_delivery_time parameter is out of range.

The Partner can retry sending with the correct schedule_delivery_time value.

0xAB

An attempt to send a duplicate message was made.
Example. The duplicate blocking feature is enabled for the Partner’s service. The Partner sent 3 requests to send a message to the same subscriber number with the same text within 24 hours. The first request will be successfully processed and the message will be sent to the subscriber.
In response to the last 2 requests, the Service Provider will return the 0xAB error code to the Partner and will not send these 2 messages to the subscriber.
The feature of blocking duplicates is disabled by default for the Partner. The feature can be enabled at the request of the Partner.

The Partner must not retry sending the message.

0xC4

The partner sent an incorrect value in one of the TLV parameters.

The Partner must fix the errors on their side and can then retry sending the message with the correct set of parameters.

0x500

The error will occur if in the settings of the integrated SMPP client under the protocol parameters («Protocol Parameters»), a specific concatenation method («Concatenate via UDH» or «Concatenate via TLV») is selected, and the SMPP client sends a packet that does not conform to this type of processing.

The error will not occur if the “Detect automatically” option (set by default) is selected. In this case, upon receiving data from the SMPP client, the packet type is automatically determined, and the message concatenation is performed according to the specified method.

When this error occurs, the Partner stops the process of sending messages, changes the method of sending these messages on their side (TLV or UDH), repeats sending these messages.

If the error occurs again after the changes made, please contact the Technical Support Service, providing the most comprehensive information about the conditions for the occurrence of this error.

Примечание

If the Partner’s service does not respond to the Service Provider’s requests, Message Reprocessing is performed.

Message Delivery Statuses#

To receive message statuses, you need to configure the Delivery Status Service.

Cascading Message Sending#

Cascade message sending for transmitting authorization codes via the SMPP protocol is not available.