Equipment protocol error

The SMS > STATUS SEND  page does not display a description for messages "delivered" and those "queued.

The SMS > STATUS SEND  page does not display a description for messages «delivered« and those «queued.

 However the error messages are displayed in the following format: Status_RoutingCode_ErrorCode

Below are the descriptions of the codes returned in case of error.

  
Note: For the protocol used, there is also the state DELIVRD (message delivered) but this will never be displayed, because it does not fall into the error’s examples

Depending on the route (SMSC) which is sent a SMS error the code may be different. The possible paths are identified by numbers (1, 2, 3, )

For errors like «NACK« they depend on  messages belonging to the 0x00000400-0x000004FF interval.  

The first table shows errors are independent by the route, while the following tables report dependencies to the SMSC on which the message was routed.

ErrorCode

Error Description

0x00000000

 No Error

 0x00000001

 Message Length is invalid

 0x00000002

 Command Length is invalid

 0x00000003

 Invalid Command ID

 0x00000004

 Incorrect BIND Status for given command

 0x00000005

ESME Already in Bound State

 0x00000006

 Invalid Priority Flag

 0x00000007

 Invalid Registered Delivery Flag

 0x00000008

 System Error

 0x00000009

 Reserved

 0x0000000A

 Invalid Source Address

 0x0000000B

 Invalid Dest Addr

 0x0000000C

Message ID is invalid

 0x0000000D

 Bind Failed

 0x0000000E

 Invalid Password

 0x0000000F

 Invalid System ID

0x00000010

  Reserved

 0x00000011

 Cancel SM Failed

 0x00000012

 Reserved

 0x00000013

 Replace SM Failed

 0x00000014

Message Queue Full

 0x00000015

 Invalid Service Type

0x00000016-0x00000032

Reserved

 0x00000033

 Invalid number of destinations

 0x00000034

 Invalid Distribution List name

 0x00000035-0x0000003F

Reserved

 0x00000040

 Destination flag is invalid (submit_multi)

 0x00000041

 Reserved

 0x00000042

 Invalid ‘submit with replace’ request (i.e. submit_sm with replace_if_present_flag set)

 0x00000043

 Invalid esm_class field data

 0x00000044

 Cannot Submit to Distribution List

 0x00000045

 submit_sm or submit_multi failed

 0x00000046-0x00000047

Reserved

 0x00000048

 Invalid Source address TON

0x00000049

 Invalid Source address NPI

0x00000050

 Invalid Destination address TON

 0x00000051

Invalid Destination address NPI

 0x00000052

 Reserved

 0x00000053

Invalid system_type field

 0x00000054

Invalid replace_if_present flag

0x00000055

 Invalid number of messages

 0x00000056-0x00000057

Reserved

 0x00000058

Throttling error (ESME has exceeded allowed message limits)

 0x00000059-0x00000060

Reserved

 0x00000061

 Invalid Scheduled Delivery Time

 0x00000062

 Invalid message validity period (Expiry time)

 0x00000063

 Predefined Message Invalid or Not Found

 0x00000064

 ESME Receiver Temporary App

 0x00000065

 ESME Receiver Permanent App Error

 0x00000066

 ESME Receiver Reject Message Error

 0x00000067

 query_sm request failed

 0x00000068-0x000000BF

Reserved

 0x000000C0

 Error in the optional part of the PDU

 0x000000C1

 Optional Parameter not allowed

 0x000000C2

 Invalid Parameter Length.

 0x000000C3

Expected Optional Parameter missing

 0x000000C4

Invalid Optional Parameter Value

 0x000000C5-0x000000FD

Reserved

0x000000FE

Delivery Failure (used for data_sm_resp)

 0x000000FF

 Unknown Error

 0x00000100-0x000003FF

Reserved for SMPP extension

0x00000400-0x000004FF

Reserved for SMSC vendor specific errors

0x00000500-0xFFFFFFFF

Reserved

Error-Code

Error Description

401

Number blacklisted in system

402

Client blacklisted in system

403

Prefix blacklisted in system

404

Invalid account Error

405

No longer applicable

406

Destination busy — The message was not sent due to the fact that the QoS was busy, please try again.

407

Reply Type Error.

408

MSIP Syntax Error.

409

No longer applicable

40A

System unavailable.

40B

System unavailable.

40C 

System unavailable.

40D

Profile Error.

40E

Username not set — No username was specified.

40F

Do not try again. Binary message not allowed on profile. — This message does not allow binary messages.

410

 Temporary System failure, please retry.

411

 Number unroutable. Do not retry.

412

Number Temporarily unroutable, please try again.

413

 Number unroutable. Do not retry.

414

Number unroutable on current settings. Do not retry.

415

 Number Temporarily unroutable, please try again.

416

Number unroutable. Do not retry.

417

Number unroutable. Do not retry.

418

Number unroutable. Do not retry.

419

Number unroutable. Do not retry.

41A

 Number unroutable. Do not retry.

41B

 Number unroutable. Do not retry.

41C

Number Temporarily unroutable, please try again.

41D

 Number unroutable. Do not retry.

41E

Number Temporarily unroutable, please try again.

41F

 Number Temporarily unroutable, please try again.

420

 Unable to send on local deliverer

421

 Cannot find originator for index. Do not retry.

422

 Destination unavailable, please try again.

The following table shows the values of specific ErrorCode for the route. Lines highlighted in green relate to the message returned if the message is sent successfully.

There is no specific ErrorCode of this route. We only use information from the Status field.

Error-Code

Error Description

Permanent

Status

1

Phone related

No

BUFFERED

2

Deliver related: message within operator

No

BUFFERED

3

Accepted bySMSC

No

ACKED

4

Delivered to mobile device

n/a

DELIVERED

5

Message failed — detailed reason is unknown

n/a

FAILED

6

Final status of message is unknown

n/a

UNKNOWN

8

Message expired within the operator and failure reason is unknown

No

FAILED

20

Permanent operator error

Yes

FAILED

21

Credit related: message has been retried by operator

No

FAILED

23

Absent subscriber permanent

Yes

FAILED

24

Absent subscriber temporary

No

FAILED

25

Operator network failure

No

FAILED

26

Phone related error

No

FAILED

27

Permanent phone related error

Yes

FAILED

28

Anti-spam

Yes

FAILED

29

Content related error

Yes

FAILED

33

Age verification failure — parental lock

Yes

FAILED

73

Mobile number portability error

Yes

FAILED

74

Roaming error

No

FAILED

76

Mobile number portability and blocking error

Yes

FAILED

202

Mobile number portability error

Yes

FAILED

Error code

Error description

Permanent

Status

0000

EC_DELIVRD

Yes

DELIVERED

1

EC_UNKNOWN_SUBSCRIBER

Yes

UNDELIV

5

EC_UNIDENTIFIED_SUBSCRIBER

No

EXPIRED

6

EC_ABSENT_SUBSCRIBER_SM

No

EXPIRED

9

EC_ILLEGAL_SUBSCRIBER

Yes

UNDELIV

11

EC_TELESERVICE_NOT_PROVISIONED

Yes

UNDELIV

12

EC_ILLEGAL_EQUIPMENT

Yes

UNDELIV

13

EC_CALL_BARRED

No

EXPIRED

21

EC_FACILITY_NOT_SUPPORTED

No

EXPIRED

27

EC_ABSENT_SUBSCRIBER

No

EXPIRED

31

EC_SUBSCRIBER_BUSY_FOR_MT_SMS

No

EXPIRED

32

EC_SM_DELIVERY_FAILURE

No

EXPIRED

33

EC_MESSAGE_WAITING_LIST_FULL

No

EXPIRED

34

EC_SYSTEM_FAILURE

No

EXPIRED

35

EC_DATA_MISSING

Yes

UNDELIV

36

EC_UNEXPECTED_DATA_VALUE

Yes

UNDELIV

256

EC_SM_DF_memoryCapacityExceeded

No

EXPIRED

257

EC_SM_DF_equipmentProtocolError

No

EXPIRED

258

EC_SM_DF_equipmentNotSM_Equipped

No

EXPIRED

259

EC_SM_DF_unknownServiceCentre

No

EXPIRED

260

EC_SM_DF_sc_Congestion

No

EXPIRED

261

EC_SM_DF_invalidSME_Address

No

EXPIRED

262

 EC_SM_DF_subscriberNotSC_Subscriber

No

EXPIRED

500

EC_PROVIDER_GENERAL_ERROR

No

EXPIRED

502

EC_NO_RESPONSE

No

EXPIRED

503

EC_SERVICE_COMPLETION_FAILURE

No

EXPIRED

504

EC_UNEXPECTED_RESPONSE_FROM_PEER

No

EXPIRED

507

EC_MISTYPED_PARAMETER

No

EXPIRED

508

EC_NOT_SUPPORTED_SERVICE

No

EXPIRED

509

EC_DUPLICATED_INVOKE_ID

No

EXPIRED

511

EC_INITIATING_RELEASE

No

EXPIRED

1024

EC_OR_appContextNotSupported

No

EXPIRED

1025

EC_OR_invalidDestinationReference

No

EXPIRED

1026

EC_OR_invalidOriginatingReference

No

EXPIRED

1027

EC_OR_encapsulatedAC_NotSupported

No

EXPIRED

1028

EC_OR_transportProtectionNotAdequate

No

EXPIRED

1030

EC_OR_potentialVersionIncompatibility

No

EXPIRED

1031

EC_OR_remoteNodeNotReachable

No

EXPIRED

1152

EC_NNR_noTranslationForAnAddressOfSuchNatur

No

EXPIRED

1153

EC_NNR_noTranslationForThisSpecificAddress

No

EXPIRED

1154

EC_NNR_subsystemCongestion

No

EXPIRED

1155

EC_NNR_subsystemFailure

No

EXPIRED

1156

EC_NNR_unequippedUser

No

EXPIRED

1157

EC_NNR_MTPfailure

No

EXPIRED

1158

EC_NNR_networkCongestion

No

EXPIRED

1159

EC_NNR_unqualified

No

EXPIRED

1160

EC_NNR_errorInMessageTransportXUDT

No

EXPIRED

1161

EC_NNR_errorInLocalProcessingXUDT

No

EXPIRED

1162

EC_NNR_destinationCannotPerformReassemblyXUDT

No

EXPIRED

1163

 EC_NNR_SCCPfailure

No

EXPIRED

1164

 EC_NNR_hopCounterViolation

No

EXPIRED

1165

EC_NNR_segmentationNotSupported

No

EXPIRED

1166

EC_NNR_segmentationFailure

No

EXPIRED

1281

EC_UA_userSpecificReason

No

EXPIRED

1282

EC_UA_userResourceLimitation

No

EXPIRED

1283

EC_UA_resourceUnavailable

No

EXPIRED

1284

EC_UA_applicationProcedureCancellation

No

EXPIRED

1536

EC_PA_providerMalfunction

No

EXPIRED

1537

EC_PA_supportingDialogOrTransactionRealeased

No

EXPIRED

1538

EC_PA_ressourceLimitation

No

EXPIRED

1539

EC_PA_maintenanceActivity

No

EXPIRED

1540

EC_PA_versionIncompatibility

No

EXPIRED

1541

EC_PA_abnormalMapDialog

No

EXPIRED

1793

EC_NC_responseRejectedByPeer

No

EXPIRED

1794

EC_NC_abnormalEventReceivedFromPeer

No

EXPIRED

1795

EC_NC_messageCannotBeDeliveredToPeer

No

EXPIRED

1796

EC_NC_providerOutOfInvoke

No

EXPIRED

2048

EC_TIME_OUT

No

EXPIRED

2049

EC_IMSI_BLACKLISTED

Yes

UNDELIV

2050

EC_DEST_ADDRESS_BLACKLISTED

Yes

UNDELIV

2051

EC_InvalidMscAddress

No

EXPIRED

4096

EC_InvalidPduFormat

Yes

UNDELIV

4100

EC_Cancelled

Yes

EXPIRED

4101

EC_ValidityExpired

Yes

UNDELIV

Error-Code

Status

Permanent

Descrizione

00

DELIVRD

Y

Message is delivered to destination

01

REJECTD

Y

SMPP Gateway cannot accept the message for delivery ( i.e. you run out of credit if your account is a prepaid one )

02

UNDELIV

Y

Mobile network attemtps to deliver the message have been failed

03

ACCEPTED

N

Mobile network has accepted message for delivery

04

FAILED

Y

Mobile network is unable to accept message for delivery

05

EXPIRED

Y

Message validity period has expired

99

UNKNOWN

Y

AT cannot determine the status of your message

Error-Code

Descrizione

Permanent

Status

000

DELIVERED

Y

DELIVRD

001

EXPIRED (generic error)

002

UNKNOWN (generic error)

UNKNOWN

003

UNDELIV (generic error)

UNDELIV

004

UNDELIV (generic error)

005

DELETED (generic error)

006

FAILED (generic error)

FAILED

007

REJECTD (generic error)

REJECTD

008

UNKNOWN (generic error)

UNKNOWN

101

abort

102

absent subscriber

FAILED, UNDELIV

103

absent subscriber sm

104

absent subscriber temporary

FAILED

105

absent subscriber. imsi detached.

106

absent subscriber. no paging response via msc.

107

absent subscriber. roaming restriction.

108

absent subscriber: the message is undeliverable

109

age verification failure failed av

110

age verification failure no previous av

111

age verification failure parental lock

112

age verification failure temporary av error

113

agent not registered

114

anti spam

115

ati not allowed

116

bad parameter value

117

badly formatted transaction portion

118

badly structured component

119

barring service active

120

bearer service not provisioned

121

blacklisted destination

122

blacklisted_opc

123

blacklisted_prefix

124

busysubscriber

125

call barred

UNDELIV

126

cancelled

127

charged failed

128

connection aborted before delivery

129

content related error

130

context could not be loaded

131

controling msc system failure

132

could not asn.1 encode a parameter.

133

could not decode an asn.1 encoded parameter.

134

could not open map dialogue

135

credit related message may be being retried

136

credit related: message has been retried

137

cug_reject

138

customer blocked

139

data missing

140

data not found

141

dcs inconsistency

142

delivery fail

REJECTD

143

deregistered in hlr for gprs

144

deregistered in hlr for non-gprs

145

deregistered in the hlr for gprs

146

deregistered in the hlr for non-gprs

147

dest_address_blacklisted

148

destination blocked

149

destination blocked by customer

150

destination network or country is blocked.

151

device unable to receive sms

152

dialogue collision

153

dialogue queue size exceeded.

154

dialogue timed out

155

duplicate invoke id

156

eir system failure

157

equipment memory capacity exceeded

158

equipment not sm equiped

159

equipment not supported

160

equipment protocol error

161

error in ms

162

error in smt

163

esme client error

164

exceeded maximum length

165

expired

FAILED

166

facility not supported

167

failed_to_req_routing_info

168

flood protection in multiple identical messages

169

format error

170

forwardingfailed

171

forwardingviolation

172

gprs connection suspended

173

gprs detached

174

handset delivery failure

175

handset error

176

handset memory exceeded

177

hlr error

178

hlr failure

179

hlr system failure

ACCEPTD

180

illegal character in message body

181

illegal equipment

182

illegal subscriber

183

illegalss-operation

184

imsi detached

185

imsi_blacklisted

186

inappropriate transport message

187

incompatibleterminal

188

incorrect ie length

189

incorrect message length

190

incorrect transaction portion

191

initiating release

192

insufficient credit

193

insufficient credits to send message

194

internal error code

195

internal recoverable system failure

196

internal server error

197

invalid acct — your number has expire date

198

invalid delivery outcome

199

invalid destination address

UNKNOWN

200

invalid dialogue id

201

invalid input format

202

invalid msisdn/destaddr

203

invalid parameter

204

invalid params

205

invalid payload length

206

invalid pdu format

207

invalid response received

208

invalid service id from the request.

209

invalid sme address

210

invalid source address

211

invalid srcaddr

212

invalidmscaddress

213

invalidpduformat

214

invalidsme-address

215

invalidtargetbasestation

216

linked response unexpected

217

local acl deny

218

local cancel

219

login incorrect

220

longtermdenial

221

max_attempts_reached

222

mb_err_blacklisted_dpc

223

mb_err_blacklisted_smsc

224

mcef-set

225

memory capacity exceeded

226

message body error

227

message expired within the operator

228

message expired, reason unknown

229

message too long

230

message waiting list full

231

missing mandatory ie

232

missing parameter

233

missing params

234

mistyped component

235

mnrf-set

236

mnrg-set

237

mobile number portability and blocking error

238

mobile number portability error (client side)

239

mobile number portability error (operator side)

240

mobile subscriber not reachable

241

ms not equipped

UNKNOWN

242

ms protocol error

243

ms purged for gprs

244

ms purged for non-gprs

245

national blacklist

246

nc_abnormaleventreceivedfrompeer

247

nc_messagecannotbedeliveredtopeer

248

nc_provideroutofinvoke

249

nc_responserejectedbypeer

250

network specific error codes

251

network timeout

252

nnr_destinationcannotperformreassemblyxudt

253

nnr_errorinlocalprocessingxudt

254

nnr_errorinmessagetransportxudt

255

nnr_hopcounterviolation

256

nnr_mtpfailure

257

nnr_networkcongestion

258

nnr_notranslationforanaddressofsuchnatur

259

nnr_notranslationforthisspecificaddress

260

nnr_sccpfailure

261

nnr_segmentationfailure

262

nnr_segmentationnotsupported

263

nnr_subsystemcongestion

264

nnr_subsystemfailure

265

nnr_unequippeduser

266

nnr_unqualified

267

no free dialogues

268

no interworking module available

269

no is41 server available

270

no mt connection found for short number

271

no network response

272

no own smh

273

no paging response msc

274

no paging response via sgsn

275

no paging response via the msc

276

no paging response via the sgsn

277

no response from is41 server

278

no response from peer

279

no retry allowed

280

no route found

281

no session with user

282

no subscriber reply

283

no_response

284

no_route_to_destination

285

no_route_to_destination_sip

286

no_sub_reply

287

node not reachable

288

nogroupcallnumberavailable

289

nohandovernumberavailable

290

noradioresourceavailable

291

noroam

292

nosubscriberreply

293

not supported service

294

not_prov

295

not_supported

296

not_supported_service

297

numberchanged

298

numberofpw-attemptsviolation

299

operator barring

300

operator network failure

301

or_appcontextnotsupported

302

or_encapsulatedac_notsupported

303

or_invaliddestinationreference

304

or_invalidoriginatingreference

305

or_potentialversionincompatibility

306

or_remotenodenotreachable

307

or_transportprotectionnotadequate

308

or-notallowed

309

pa_abnormalmapdialog

310

pa_maintenanceactivity

311

pa_providermalfunction

312

pa_ressourcelimitation

313

pa_supportingdialogortransactionrealeased

314

pa_versionincompatibility

315

permanent handset error

316

permanent operator error

317

permanent phone related error

318

phone related error

319

phone switched off

320

phone switched off or phone not reachable

321

plmn system failure

ACCEPTD

322

portability error: the message was failed

323

positionmethodfailure

324

previous vlr system failure

325

provider_general_error

326

psa connection failed

327

pvlr system failure

328

radio subsystem system failure

329

ref_in_use

330

rejected

331

rejected — smsc rejected

332

relation with is41 server removed

333

remote abort

334

remote logic deny

335

remote logic error

336

removed by operator

337

removed by sme

338

resource limitation

339

return error unexpected

340

return result unexpected

341

roaming error

342

roaming level not supported

343

roaming restriction

344

route error, please contact support

345

rtec error

346

sc-addressnotincluded

347

sc-congestion

348

sccp_destination_cannot_perform_reassembly

349

sccp_error_in_local_processing

350

sccp_error_in_message_transport

351

sccp_failure

352

sccp_hop_counter_violation

353

sccp_mtp_failure

354

sccp_network_congestion

355

sccp no translation for an address

356

sccp_no_translation_for_this_specific_address

357

sccp_segmentation_failure

358

sccp_segmentation_not_suported

359

sccp_subsystem_congestion

360

sccp_subsystem_failure

361

sccp_unequipped_failure

362

sccp_unqualified

363

screening error, terminating imsi blocked

364

service center congestion

365

service completion failure

366

service temporary not available

ACCEPTD

367

service_completion_failure

368

shorttermdenial

369

sm delivery failure

370

sm loop prevented

371

sm loop prevention

372

sm_df_equipmentnotsm_equipped

373

sm_df_equipmentprotocolerror

374

sm_df_invalidsme_address

375

sm_df_memorycapacityexceeded

376

sm_df_sc_congestion

377

sm_df_subscribernotsc_subscriber

378

sm_df_unknownservicecentre

379

sm-deliveryfailure

380

sms buffered.

381

sms discarded

382

sms expired.

383

sms lower layer capabilities not provisioned

384

sms lower layer not provisioned

385

sms malformed. sms is not formed correctly

386

sms sent, no delivery report received.

387

sms submit from smsgw to smsc failure

388

sms window exceeded.

389

smsc congestion

390

smsc failure

391

smsc roaming

392

ss_err_status

393

ss_incompat

394

ss_notavail

395

ss_subviol

396

ss-errorstatus

397

ss-incompatibility

398

ss-notavailable

399

ss-subscriptionviolation

400

subscriber absent

401

subscriber barred

402

subscriber busy

403

subscriber busy for mt short message

404

subscriber not provisioned

405

subscriber not sc subscriber

406

subscriber spend limit exceeded

407

subscriber unable to be billed

408

subscriber unavailable

409

subscriber_busy_for_mt_sms

410

subscriberlocationreport

411

subscribernotsc-subscriber

412

subscription failed

413

subsequenthandoverfailure

414

system failure

ACCEPTD

415

tc user not bound

416

tcap error.

417

tcap_abort1 (on hlr request)

418

tcap_abort2 205 (on forwardsm)

419

teleservice not provisioned

420

temporary handset error — memory exceeded

421

the dialogue has received a map-delimiter error

422

the dialogue has received a map-service-request

423

the end user belongs to a network operator

424

the end user does not exist

425

the end user has insufficient funds

426

the end user is blocked

427

the end user is not allowed to purchase premium

428

the recipient has no credit

429

the subscription period is expired

430

throttling error

431

time_out

432

timeout waiting for response from peer.

433

timer_exp

434

tracingbufferfull

435

ua_applicationprocedurecancellation

436

ua_resourceunavailable

437

ua_userresourcelimitation

438

ua_userspecificreason

439

umo (unauthorised message originator)

440

umo with barring service active

441

umo with operator barring

442

unable to find outbound route for this sms.

443

unauthorizedlcsclient

444

unauthorizedrequestingnetwork

445

unexp_tcap_msg

446

unexpected data value

447

unexpected data value (in idi message)

448

unexpected data value (in internal message)

449

unexpected data value

450

unexpected error

451

unexpected linked operation

452

unexpected response from peer

453

unexpected_response_from_peer

454

unidentified subscriber via msc

455

unidentified subscriber via sgsn

456

unidentified subscriber via the msc

457

unidentified subscriber via the sgsn

458

unidentified subscriber

459

unidentifiedsubscriber

460

unknown alphabet

461

unknown equipment

462

unknown error

FAILED

463

unknown operator

464

unknown service center

465

unknown subscriber

UNKNOWN

466

unknown subscriber (gprs subscription unknown)

467

unknown subscriber (imsi unknown)

468

unknown subscriber (recipient address problem)

469

unknownbasestation

470

unknownmsc

471

unknownorunreachablelcsclient

472

unrecognized component

473

unrecognized error

474

unrecognized invoke id

475

unrecognized message type

476

unrecognized operation

477

unrecognized transaction id

478

ussd busy

479

validityexpired

480

vlr system failure

FAILED

481

vmsc system failure

482

vp exceeded

483

bind failed

484

cannot submit to DL (Distribution list)

485

command length is invalid

486

destination flag is invalid (sm_multi)

487

error in address service centre

488

incorrect bind status

489

message queue full

490

mNP other operator not allowed

491

param Retrieve Failed

492

predefined Message Not Found

493

protocol error. Error in data communication

494

query SM Failed

495

replace SM failed

496

retry queue. Delivery retry

497

sMS blocked due to unauthorised content

498

submit SM/Multi failed

499

submit w/replace invalid

500

subscriber temp. unreachable while roaming

501

unable to convert to IA5 ALPHABET

502

unable to Unpack GSM message

Error-Code

Description

Permanent

Status

0

Successfully delivered.

Y

DELIVERED

3

SMSC did not return a status for this delivery

UNKNOWN

4

SMSC refused the message.

Y

REJECTED

Message delivery expired.

Y

EXPIRED

SMSC was not able to deliver the message.

Y

UNDELIVERABLE

0 NO ERROR No error / Unknown error Temporary 1 ROUTING ERROR Internal routing error Report to World Text Permanent 2 ROUTING ERROR Internal routing error Report to World Text Permanent 3 ROUTING ERROR Internal routing error Report to World Text Permanent 4 ROUTING ERROR Internal routing error Report to World Text Temporary 5 ROUTING ERROR Internal routing error Report to World Text Permanent 6 ROUTING ERROR Internal routing error Report to World Text Permanent 7 ROUTING ERROR Internal routing error Report to World Text Permanent 8 SCREENING ERROR Error, personal service barring, MT Operator Determined Barring Black List Permanent 9 ROUTING ERROR Unsupported number plan Permanent 10 ROUTING ERROR Unsupported type of number Permanent 11 ROUTING ERROR Message not deliverable Most common cause of this error is an incorrectly formatted destination number Permanent 12 ROUTING ERROR Dialling zone not found Permanent 13 ROUTING ERROR Not home zone and IMSI not allowed Permanent 14 ROUTING ERROR Not home zone and IMSI fetch failed Temporary 15 SCREENING ERROR Screening block Permanent 16 SCREENING ERROR Terminating IMSI blocked Permanent 17 ROUTING ERROR Destination network type unknown Permanent 18 ESME ERROR ESME error Temporary 19 SCREENING ERROR Originating location mismatch Permanent Permanent 21 ESME EXTERNAL ERROR SMS not supported in the MT network. Permanent 22 ESME EXTERNAL ERROR SMS not supported in the MT MSC Permanent 23 ESME EXTERNAL ERROR MT number is unknown in the MT network’s HLR Permanent 27 ESME EXTERNAL ERROR MT number is unknown in the MT network’s HLR Permanent 31 ESME EXTERNAL ERROR MT handset is busy. The signalling control channel is in use. (Probably receiving another SMS at the same time) Temporary 32 ESME EXTERNAL ERROR GPRS — As above Temporary 34 ESME EXTERNAL ERROR System failure in the MT network. Temporary 35 ESME EXTERNAL ERROR Data Missing in either the MT HLR or MSC Temporary 36 ESME EXTERNAL ERROR Unexpected data value received in response to a FSM or SRI Temporary 40 INTERNAL ERROR Internal error Report to World Text Temporary 41 ESME EXTERNAL ERROR MT handset protocol error Permanent 42 ESME EXTERNAL ERROR MT handset is not equipped to support SMS Permanent 43 ESME EXTERNAL ERROR Short message type «0» not supported by the MT handset. Permanent 44 ESME EXTERNAL ERROR MT network unable to replace the SMS on the MT customers’ handset Permanent 45 ESME EXTERNAL ERROR Unspecified protocol error on the MT handset Permanent 46 ESME EXTERNAL ERROR Message class not supported on the MT handset Permanent 47 ESME EXTERNAL ERROR Unspecified DCS (Data coding scheme) error on the MT handset Permanent 48 ESME EXTERNAL ERROR Transfer layer PDU not supported by MT handset Permanent 49 ESME EXTERNAL ERROR SIM card full on MT handset Temporary 50 INTERNAL ERROR Internal error Report to World Text Temporary 51 INTERNAL ERROR Internal error Report to World Text Temporary 52 INTERNAL ERROR Internal error Report to World Text Temporary 53 INTERNAL ERROR Internal error Report to World Text Permanent 54 INTERNAL ERROR Internal error Report to World Text Permanent 55 INTERNAL ERROR Internal error Report to World Text Permanent 56 INTERNAL ERROR Internal error Report to World Text Temporary 60 SCREENING ERROR Error, originator blocked Permanent 61 SCREENING ERROR Error, destination blocked Permanent 62 SCREENING ERROR Error, keyword blocked Permanent 63 SCREENING ERROR Error, SC address blocked Permanent 64 SCREENING ERROR Error, blocked due to exceeded quota Permanent 65 SCREENING ERROR Error, loop detected Permanent 66 SCREENING ERROR Error, data coding scheme blocked Permanent 67 SCREENING ERROR Error, information element identifier blocked Permanent 70 ESME ERROR Internal error Report to World Text Temporary 71 ESME ERROR Internal error Report to World Text Temporary 72 ESME ERROR Internal error Report to World Text Permanent 73 ESME ERROR Internal error Report to World Text Temporary 74 ESME ERROR Internal error Report to World Text Temporary 75 ESME ERROR Internal error Report to World Text Temporary 76 ESME ERROR Internal error Report to World Text Temporary 77 ESME ERROR IMSI lookup blocked Permanent 93 SMSC ERROR Alphanumeric source address with more than 11 characters or message content not GSM compliant Permanent 100 SMSC ERROR Unidentified Subscriber Permanent 101 SMSC ERROR Facility not supported Temporary 102 SMSC ERROR System failure Temporary 103 SMSC ERROR Unexpected data value Permanent 104 SMSC ERROR Data missing Permanent 105 SMSC ERROR Equipment protocol error Permanent 106 SMSC ERROR Unknown service centre address Temporary 107 SMSC ERROR Service centre congestion Temporary 108 SMSC ERROR Invalid short message entity address Permanent 109 SMSC ERROR Subscriber not service centre subscriber Temporary 110 SMSC ERROR Reject Indicates temporary problem or lost reach Permanent 111 SMSC ERROR Local Cancel Indicates temporary problem or lost reach Temporary 112 SMSC ERROR Abort Indicates temporary problem or lost reach Temporary 113 SMSC ERROR Exception (internal) Report to World Text Permanent 114 SMSC ERROR Unknown error Temporary 150 HLR ERROR Unknown subscriber Message is rejected because there is no directory number for the mobile subscriber Permanent 151 HLR ERROR Call barred Message is rejected due to barring of the MS Permanent 152 HLR ERROR Teleservice not provisioned Message is rejected because the recipient MS has no SMS subscription Permanent 153 HLR ERROR Absent subscriber Temporary 154 HLR ERROR Facility not supported The message is rejected due to no provision of the SMS in the VPLMN Permanent 155 HLR ERROR System failure Message rejected due to network or protocol failure Temporary 156 HLR ERROR Unexpected data value Permanent 157 HLR ERROR Data missing Permanent 158 HLR ERROR Memory capacity exceeded Message rejected because the MS doesn’t have enough memory Temporary 159 HLR ERROR Mobile subscriber not reachable Temporary 160 HLR ERROR Reject Indicates temporary problem or lost reach Permanent 161 HLR ERROR Local Cancel Indicates temporary problem or lost reach Temporary 162 HLR ERROR Abort Indicates temporary problem or lost reach Temporary 163 HLR ERROR Exception (internal) Report to World Text (Local error) Permanent 164 HLR ERROR Unknown error Temporary 171 SMSC ERROR General source address rotation failure Report to World Text Temporary 172 SMSC ERROR No source addresses in rotation pool, rotation failed Report to World Text Temporary 173 SMSC ERROR Daily quotas exceeded for all available source addresses Temporary 174 SMSC ERROR Monthly quotas exceeded for all available source addresses Temporary 175 SMSC ERROR Invalid source address for source address quota account Permanent 200 MSC ERROR Unidentified subscriber Temporary 201 MSC ERROR Absent subscriber, IMSI detached Subscriber is absent and have been for a period of time Temporary 202 MSC ERROR Absent subscriber, no page response The message is rejected because there was no paging response Temporary 203 MSC ERROR Subscriber busy for MT SMS The message is rejected because of congestion encountered at the visited MSC Temporary 204 MSC ERROR Facility not supported The message is rejected due to no provision of the SMS in the destination SIM Permanent 205 MSC ERROR Illegal subscriber Message rejected because of failed authentication Permanent 206 MSC ERROR Illegal equipment Message rejected because the MS was black-listed Permanent 207 MSC ERROR System failure Message rejected due to network or protocol failure Temporary 208 MSC ERROR Unexpected data value Permanent 209 MSC ERROR Data missing Permanent 210 MSC ERROR Memory capacity exceeded Message rejected because the MS doesn’t have enough memory Temporary 211 MSC ERROR Equipment protocol error Temporary 212 MSC ERROR Equipment not short message equipped Temporary 213 MSC ERROR Reject Indicates temporary problem or lost reach Permanent 214 MSC ERROR Local Cancel Indicates temporary problem or lost reach Temporary 215 MSC ERROR Abort Indicates temporary problem or lost reach Temporary 216 MSC ERROR Exception (internal) Report to World Text Permanent 217 MSC ERROR Unknown error Temporary 250 SCREENING ERROR Error, personal service barring, MO Personal Determined Barring White List Permanent 251 SCREENING ERROR Error, personal service barring, MO Personal Determined Barring Black List Permanent 252 SCREENING ERROR Error, personal service barring, MO Operator Determined Barring White List Permanent 253 SCREENING ERROR Error, personal service barring, MO Operator Determined Barring Black List Permanent 254 SCREENING ERROR Error, personal service barring, MT Personal Determined Barring White List Permanent 255 SCREENING ERROR Error, personal service barring, MT Personal Determined Barring Black List Permanent 256 SCREENING ERROR Error, personal service barring, MT Operator Determined Barring White List Permanent 257 SCREENING ERROR Error, personal service barring, MT Operator Determined Barring Black List Permanent 300 ESME EXTERNAL ERROR Invalid destination address Permanent 301 ESME EXTERNAL ERROR Invalid destination numbering plan Permanent 302 ESME EXTERNAL ERROR Invalid destination type of number Permanent 303 ESME EXTERNAL ERROR Invalid destination flag Permanent 304 ESME EXTERNAL ERROR Invalid number of destinations Permanent 310 ESME EXTERNAL ERROR Invalid source address Permanent 311 ESME EXTERNAL ERROR Invalid source numbering plan Permanent 312 ESME EXTERNAL ERROR Invalid source type of number Permanent 320 ESME EXTERNAL ERROR ESME Receiver permanent error Permanent 321 ESME EXTERNAL ERROR ESME Receiver reject error Permanent 322 ESME EXTERNAL ERROR ESME Receiver temporary error Permanent 330 ESME EXTERNAL ERROR Invalid command length Permanent 331 ESME EXTERNAL ERROR Invalid service type Permanent 332 ESME EXTERNAL ERROR Invalid operation Permanent 333 ESME EXTERNAL ERROR Operation not allowed Permanent 334 ESME EXTERNAL ERROR Invalid parameter Permanent 335 ESME EXTERNAL ERROR Parameter not allowed Permanent 336 ESME EXTERNAL ERROR Invalid parameter length Permanent 337 ESME EXTERNAL ERROR Invalid optional parameter Permanent 338 ESME EXTERNAL ERROR Optional parameter missing Permanent 339 ESME EXTERNAL ERROR Invalid validity parameter Permanent 340 ESME EXTERNAL ERROR Invalid scheduled delivery parameter Permanent 341 ESME EXTERNAL ERROR Invalid distribution list Permanent 342 ESME EXTERNAL ERROR Invalid message class Permanent 343 ESME EXTERNAL ERROR Invalid message length Permanent 344 ESME EXTERNAL ERROR Invalid message reference Permanent 345 ESME EXTERNAL ERROR Invalid number of messages Permanent 346 ESME EXTERNAL ERROR Invalid predefined message Permanent 347 ESME EXTERNAL ERROR Invalid priority Permanent 348 ESME EXTERNAL ERROR Invalid replace flag Permanent 349 ESME EXTERNAL ERROR Request failed Permanent 350 ESME EXTERNAL ERROR Invalid delivery report request Temporary 360 ESME EXTERNAL ERROR Message queue full Temporary 361 ESME EXTERNAL ERROR Extenal error Report to World Text Temporary 362 ESME EXTERNAL ERROR Extenal error Report to World Text Temporary 370 ESME EXTERNAL ERROR Cannot find information Temporary 1029 ROUTING ERROR No valid operator for given prefix / IMSI Permanent 1030 ROUTING ERROR No valid operator for given prefix / IMSI Permanent

Справочное руководство

Comex HTTP API

  • Введение
    • Термины и определения
    • Условные обозначения
  • Взаимодействие с сервисом
  • Авторизация
  • Параметры запроса
  • Отправка одиночного сообщения
    • SMS
    • Viber
    • E-mail
    • VK Notify
    • Push
    • FlashCall
    • WhatsApp
    • VoiceCall
    • Параметры ответа
  • Пакетная отправка сообщений
    • Пример запроса
    • Пример ответа
  • Каскадная отправка
  • Получение статусов доставки
    • Запрос к API
    • HTTP Callback
  • Коды ошибок
    • Общие коды ошибок
    • SMS
    • Viber
    • WhatsApp
    • VK Notify
    • Push
    • FlashCall
  • Приём сообщений от абонентов
    • Запрос к API
    • HTTP Callback

Введение

Сервис Comex предназначен для отправки сообщений по различным каналам связи. Поддерживаются следующие каналы:

  • SMS;
  • Viber;
  • электронная почта;
  • личные сообщения Вконтакте;
  • Push-сообщения;
  • WhatsApp;
  • FlashCall;
  • VoiceCall;

Также с помощью сервиса вы можете получать:

  • статусы отправленных сообщений;
  • входящие сообщения от абонентов.

Термины и определения

  • ID ноды — уникальный идентификатор клиентского подключения в системе. У каждого клиента может быть несколько нод (и соответственно идентификаторов) с индивидуальными параметрами каналов отправки

  • MSID — уникальный идентификатор каждого сообщения на платформе i-Digital. По этому идентификатору вы можете отследить статус доставки сообщения, а специалисты технической поддержки — провести детальный анализ при возникновении проблем с доставкой.

  • CallBack (обратный вызов) — механизм , с помощью которого можно получать необходимую информацию по мере её поступления, не делая при этом дополнительных запросов к API.

Условные обозначения

Во всех примерах запросов используются обозначения в треугольных скобках, например
<имя отправителя>. Вместо такого обозначения при выполнении запроса нужно использовать значение соответствующего параметра.

Обозначения в круглых скобках указывают на возможные варианты содержимого, если их количество ограничено — например, (true|false). В запросе следует указывать только один из вариантов, разделенных вертикальной чертой.

Взаимодействие с сервисом

Взаимодействие с сервисом осуществляется через REST API с помощью стандартных HTTP-запросов.

Структура запроса:

  • URI — https://external-api.i-dgtl.ru/
    <вызываeмое действие>;
  • тип запроса — POST;
  • Content-Type — application/json;
  • авторизация — HTTP Basic;
  • кодировка символов — UTF-8.

Авторизация

В API используется аутентификация на основе базовой схемы. При регистрации каждый клиент получает ID ноды (идентификатор подключения) и пароль. Для авторизации нужно перекодировать эти параметры, разделённые двоеточием, в формат base64. Пример для ОС семейства Linux (39999 — ID ноды, 123654 — пароль):

echo -n '39999:123654' | base64

Вывод приведённой команды выглядит так:

Эту строку нужно передавать во всех запросах в заголовке Authorization. Пример запроса к Comex HTTP API с помощью утилиты cURL:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Basic Mzk5OTk6MTIzNjU0" -d '<содержимое запроса>' https://external-api.i-dgtl.ru/<вызываeмое действие>

Принципы формирования содержимого запроса описаны ниже.

Параметры запроса

Параметр Тип Значение
@type string Тип сообщения (входящее или исходящее); имеет постоянное значение оutbound (исходящее)
addresses object Объект, содержащий адреса отправителя и получателя
source string Имя или адрес отправителя
destination string Адрес или номер телефона получателя
body object Объект, в котором передаётся содержимое сообщения
bodyType string Тип сообщения (SMS, e-mail, ВКонтакте, Viber, push, WhatsApp, FlashCall)
content string Содержимое сообщения (подробнее см. в примерах ниже)
nodeId integer Номер ноды
requestDelivery boolean Указывает, cледует ли предоставлять отчёт о доставке после отправки сообщения
expirationDate timestamp Время, до которого будет ожидаться получение статуса от оператора (timestamp в миллисекундах или в формате ISO 8601). По умолчанию составляет 24 часа с момента отправки сообщения. Если статус к этому времени не будет получен, возвращается ошибка 127 (см. описание ниже)

ВАЖНО:
все временные метки в протоколе Comex передаются в формате Unixtime с учетом миллисекунд. Это отличается от наиболее распространенной реализации, где в основном используются секунды

Номер телефона указывается в международном формате MSISDN, состоящем из кода страны, DEF-кода оператора и номера абонента. Например, российский номер выглядит так: 79001234567, где 7 — код страны (Россия). Если клиент по той или иной причине использует другой формат номеров (со скобками, с дополнительными символами и т.п.), можно настроить автоматическую конвертацию номеров в MSISDN. Правила конвертации оговариваются с каждым клиентом индивидуально.

Будьте внимательны при использовании в SMS следующих символов:

£,¥,è,é,ù,ì,ò,Ç,Ø,ø,Å,å,Δ,Φ,Γ,Λ,Ω,Π,Ψ,Σ,Θ,Ξ,Æ,æ,ß,É,¤,¡,Ä,Ö,Ñ,Ü,§ ¿,ä,ö,ñ,ü,à,
      NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL,BS,TAB,VT,SO,SI,DLE,DC1,DC2,DC3,DC4,NAK,
      SYN,ETB,CAN,EM,SUB,FS,GS,RS,US,`,DEL. 

Операторы могут не поддерживать эти символы или конвертировать сообщения в Unicode, тем самым увеличивая количество тарифицируемых частей сообщения.

Отправка одиночного сообщения

URI: https://external-api.i-dgtl.ru/message

SMS

 {
          "@type": "outbound",
          "addresses": {
              "source": "<имя отправителя>",
              "destination": "<номер телефона получателя>"
          },
          "body": {
              "bodyType": "text",
              "content": "<текст сообщения>"
          },
          "nodeId": "<ID ноды>",
          "requestDelivery": (true|false)
      }

Viber

Отправка текстового сообщения

 {
          "@type": "outbound",
          "addresses": {
              "source": "<имя отправителя>",
              "destination": "<номер телефона получателя>"
          },
          "body": {
              "bodyType": "viber",
              "content": "<текст сообщения>"
          },
          "nodeId": <ID ноды>,
          "requestDelivery": (true|false)
      }

ВАЖНО:

  • объём отправляемого через Viber текста не должен превышать 1000 символов.

Отправка сообщения с изображением

При отправке изображения через Viber в поле content включается JSON-объект в виде строки, в котором содержатся следующие дополнительные параметры:

  • content_type — image;
  • image_URL -ссылка на изображение.
{
         "@type": "outbound",
         "addresses": {
             "source": "<имя отправителя>",
             "destination": "<номер телефона получателя>"
         },
         "body": {
             "bodyType": "viber",
             "content": "{"content_type":"image","imageUrl":"<ссылка на изображение>"}"
         },
         "nodeId": <ID ноды>,
         "requestDelivery": (true|false)
      }

ВАЖНО:

  • так как параметр content_type является строкой, двойные кавычки необходимо экранировать при помощи обратной косой черты;
  • поддерживаемые форматы изображений — JPEG и PNG;
  • оптимальный размер изображения — 400×400 пикселей;
  • Viber может не отображать некоторые изображения в зависимости от платформы получателя (iOS, Android) и/или наличия HTTPS. Для генерации гарантированно корректной ссылки на изображение обратитесь в техническую поддержку i-Digital.

Отправка сообщения с изображением и с кнопкой-ссылкой или кнопкой с номером телефона

{
        "@type": "outbound",
        "addresses": {
            "source": "<имя отправителя>",
            "destination": "<номер телефона получателя>"
        },
        "body": {
            "bodyType": "viber",
            "content": "{"content_type":"button","text":"<текст сообщения>","caption":"<текст кнопки>","action":"tel:+70000000000","imageUrl":"<ссылка на изображение>"}"
        },
        "nodeId": <ID ноды>,
        "requestDelivery": (true|false)
      }

Параметры Viber-сообщения с изображением и кнопкой-ссылкой или кнопкой с номером телефона:

  • content_type — button;
  • text — текст сообщения;
  • caption — имя кнопки;
  • action — в качестве действия можно указать:
    • ссылку, на которую будет выполнен переход после нажатия на кнопку;
    • номер телефона в формате tel:+СХХХХХХХХХХ, где С – код страны, Х – номер телефона. После нажатия на кнопку пользователю будет предложено позвонить по номеру телефона.
  • imageURL — ссылка на изображение, которое будет передано в сообщении.

ВАЖНО:

  • длина имени кнопки не должна превышать 30 символов.

E-mail

 {
         "@type": "outbound",
         "addresses": {
             "source": "<email-адрес отправителя>",
             "destination": "<email-адрес получателя>"
         },
         "body": {
             "bodyType": "email",
             "html": (true|false),
             "content": "<содержимое письма>",
             "senderName": "<отображаемое имя отправителя>",
             "subject": "<тема письма>"
         },
         "nodeId": <ID ноды>,
         "requestDelivery": (true|false)
      }

Параметры e-mail-сообщения:

  • html — формат почтового сообщения (HTML — true, plain text — false);
  • content — полный текст сообщения (для сообщений в формате HTML передаётся со всеми необходимыми тэгами);
  • senderName — отображаемое имя отправителя;
  • subject — тема сообщения.

VK Notify

{
          "@type": "outbound",
          "addresses": {
              "source": "<имя отправителя>",
              "destination": "<номер телефона получателя>"
          },
          "body": {
              "bodyType": "vk",
              "content": "<текст сообщения>"
          },
          "nodeId": <ID ноды>,
          "requestDelivery": (true|false)
      }

Push

Пример 1

{
          "@type": "outbound",
          "addresses": {
              "source": "<имя отправителя>",
              "destination": "<номер телефона получателя>"
          },
          "body": {
              "bodyType": "push",
              "content": "<текст сообщения>"
          },
          "nodeId": <ID ноды>,
          "requestDelivery": (true|false)
      }

Пример 2

{
          "@type": "outbound",
          "addresses": {
              "source": "<имя отправителя>",
              "destination": "<номер телефона получателя>"
          },
          "body": {
              "bodyType": "push",
              "content": "<текст сообщения>"
          },
          "properties": {
              "pushParameters": {
                  "shortMessage": "Test",
                  "fullMessage": "Текст тестового сообщения"
              }
          },
          "nodeId": <ID ноды>,
          "requestDelivery": (true|false)
      }

Во втором примере в запросе содержитcя объект properties -> pushParameters с дополнительными параметрами

  • shortMessage — текст короткого сообщения, которое будет отображено на экране мобильного телефона сразу после получения;
  • fullMessage — текст полного сообщения, которое будет отображено в приложении после нажатия на короткое сообщение.

FlashCall

FlashCall — звонок с номера, последние цифры которого являются кодом авторизации/подтверждения.

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "flashcall",
                    "content": "<текст сообщения>"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

В запросе на отправку вызова FlashCall в качестве значения параметра content можно указать как последовательность от 4 до 6 цифр, так и произвольный текст. В последнем случае в качестве кода будет по умолчанию выбрана первая последовательность от 4 до 6 цифр без пробелов, встречающаяся в тексте.

Если вам нужно настроить подбор кода по индивидуальным правилам, обратитесь к вашему менеджеру или в службу технической поддержки.

Передача конверсии для FlashCall-вызовов

Передача конверсии для FlashCall-вызовов позволяет повысить качество сервиса, осуществляющего звонки абонентам. Настройка передачи конверсии для FlashCall-вызовов обязательна для всех направлений.

После ввода абонентом кода подтверждения/авторизации, в сервис передается одно из следующих событий:

  • Введенный код совпал с отправленным
  • Введенный код не совпал с отправленным
  • Абонент не ввел код

Преимущества передачи конверсии:

  • Из сервиса исключаются номера с плохой доставкой, что позволяет повысить коэффициент конверсии
  • Дополнительный анализ кейсов, когда код был успешно отправлен, но не введен абонентом или было введено неверное значение

Описание метода передачи конверсии

URI: https://external-api.i-dgtl.ru/conversion

{
                "msid": "<msid сообщения>",
                "result": "(NUMBER_VERIFIED|WRONG_CODE)",
                "code": "<код, введенный абонентом>"
            }

Параметры запроса

Параметр Тип Значение
msid string Уникальный идентификатор сообщения на платформе i-Digital. Передаётся клиенту при отправке сообщения.
result string Результат проверки введенного пользователем кода.

Возможные значения:

  • NUMBER_VERIFIED — передается в случае, если абонент ввел код, который совпадает с тем, что был отправлен
  • WRONG_CODE — передается в случае, если абонент не ввел код или введенный код не совпадает с тем, что был отправлен
code string Код, который ввел абонент. Необязательный параметр. Рекомендуется передавать для дополнительной аналитики случаев, когда абонент неверно ввел код.

Пример успешного ответа

Пример не успешного ответа

{
                "timestamp": <время отправки запроса>,
                "path": "/conversion",
                "status": <код ошибки>,
                "error": "<Текст ошибки>",
                "message": "<Описание ошибки>",
                "requestId": "<id запроса к сервису>"
            }

Параметры ответа

Параметр Тип Значение
timestamp timestamp Время отправки сообщения в формате Unix Timestamp
path string Имя метода, на который осуществляется ответ
status intrger Код ошибки
error string Текст ошибки
message string Описание ошибки
requestId string Идентификатор запроса к сервису

WhatsApp

Особенности отправки WhatsApp-сообщений

  • поддерживается отправка сообщений в режиме чата:

    • если чат инициируется клиентом, первое сообщение должно соответствовать зарегистрированному шаблону. После каждого ответа абонента открывается 24 часовое окно для отправки сообщений с произвольным содержанием. Если абонент не ответил, клиент может отправлять сообщения пользователю вне рамок 24 часового окна с использованием заранее зарегистрированных шаблонов сообщений;
    • если чат инициируется абонентом, в течение 24 часового окна клиент может отправлять сообщения с произвольным содержанием.
  • шаблонные сообщения могут содержать следующие типы контента:

    • текст;
    • кнопки с ссылками (URL и/или номер телефона);
    • кнопки с текстом (до 3 кнопок);
    • заголовок с текстом;
    • заголовок с изображением;
    • заголовок с документом;
    • подпись сообщения.
  • сообщения, отправленные в период 24 часового окна, могут содержать любой тип контента;
  • сообщения, содержащие заголовок, подпись, кнопки с ссылками или кнопки с текстом обязательно должны соответствовать зарегистрированному шаблону, независимо от момента отправки;
  • весь медиаконтент, передаваемый в WhatsApp-сообщениях, является строкой: двойные кавычки необходимо экранировать при помощи обратной косой черты.

Отправка текстового сообщения

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "<текст сообщения>"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

ВАЖНО:

  • максимальная длина сообщения составляет 1000 символов;

Отправка сообщения с изображением

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"image","imageUrl":"http://example.com/my-image.png","imageName":"<подпись к изображению>"}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с изображением

  • content_type — image;
  • imageUrl — ссылка на изображение;
  • imageName — подпись к изображению.

ВАЖНО:

  • поддерживаемые форматы изображений — JPEG и PNG;
  • оптимальный размер изображения — 400×400 пикселей;
  • размер отправляемого изображения не должен превышать 100 МБ.

Отправка сообщения с текстовым документом

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content":  "{"content_type":"document","documentUrl":"http://bank.ru/docs/tarif123.pdf","documentName":"Новые тарифы на 2019 год"}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с документом

  • content_type — document (можно добавлять файл любого формата);
  • documentUrl — ссылка на отправляемый в сообщении документ.

ВАЖНО:

  • в виде документа может быть отправлен файл любого формата;
  • размер отправляемого файла не должен превышать 100 МБ.

Отправка сообщения с аудиофайлом

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content":  "{"content_type":"audio","audioUrl":"http://example.com/audios/hello.mp3"}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с аудиофайлом

  • content_type — audio;
  • audioUrl — ссылка на отправляемый в сообщении аудиофайл.

ВАЖНО:

  • поддерживаемые аудиоформаты: mp3, ogg, AAC;
  • поддерживаемые кодеки: AMR, MPEG, Opu;
  • размер отправляемого аудиофайла не должен превышать 100 МБ.

Отправка сообщения с видеофайлом

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"video","videoUrl":"http://example.com/videos/hello.mp4","videoName":"Добро пожаловать"}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с видеофайлом

  • content_type — video;
  • videoUrl — ссылка на отправляемый в сообщении видеофайл.

ВАЖНО:

  • поддерживаемые видеоформаты: mp4;
  • поддерживаемые кодеки: H.264 и AAC;
  • размер отправляемого видеофайла не должен превышать 100 МБ.

Отправка сообщения с кнопкой-ссылкой и номером телефона

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"text","buttons":[{" text ":"<текст кнопки>"," url ":"<ссылка на сайт>"},{"text":"<текст кнопки>","phone":"<номер телефона>"}],"text":"<текст сообщения>"}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с кнопкой-ссылкой и номером телефона

  • content_type – text;
  • buttons – массив параметров, передаваемых с кнопками;
  • text – имя, отображаемое на кнопке;
  • url – ссылка, на которую будет выполнен переход после нажатия;
  • phone – номер телефона в формате +СХХХ ХХХ-ХХ-ХХ, где С – код страны, Х – номер телефона.

ВАЖНО:

  • максимальное количество кнопок — 2;
  • может быть только одна кнопка со ссылкой на сайт;
  • может быть только одна кнопка с номером телефона: при нажатии на неё пользователю будет предложено позвонить по номеру телефона;
  • текст кнопки задаётся на этапе регистрации шаблона, максимальная длина текста кнопки составляет 20 символов;
  • номер телефона задаётся на этапе регистрации шаблона.

Отправка сообщения с кнопкой с текстом

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{ "content_type":"text", "buttons":[ {"text":"<текст кнопки_1>", "payload":"<скрытый текст_1>"}, {"text":"<текст кнопки_2>", "payload":"<скрытый текст_2>"}, {"text":"<текст кнопки_3>", "payload":"<скрытый текст_3>"}],  "text": "<текст сообщения>" }"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с кнопкой с текстом

  • content_type – text;
  • buttons – массив параметров, передаваемых с кнопками;
  • text — имя кнопки;
  • payload – скрытый текст, который будет передан во входящем сообщении, если пользователь нажмет на кнопку.

ВАЖНО:

  • комбинировать кнопку с текстом с кнопкой-ссылкой не допускается;
  • максимальное количество кнопок в сообщении – 3;
  • максимальная длина текста кнопки составляет 20 символов;
  • параметр «payload» является обязательным;
  • максимальное количество символов для параметра «payload» — 128;
  • все варианты текстов кнопок необходимо регистрировать заранее.

Отправка сообщения с текстом в заголовке

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"text","text":"<текст сообщения> ","header":{"text":"<текст заголовка>"},"footer":{"text":"<текст подписи>"}}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Отправка сообщения с изображением в заголовке

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"text","text":"<текст сообщения>","header":{"imageUrl":"<ссылка на изображение>"},"footer":{"text":"<текст подписи>"}}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Отправка сообщения с документом в заголовке

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "whatsapp",
                    "content": "{"content_type":"text","text":"<текст сообщения>","header":{"documentUrl":"<ссылка на документ> ", "documentName":"<название документа>"},"footer":{"text":"<текст подписи>"}}"
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

Параметры WhatsApp-сообщения с контентом в заголовке

  • content_type – text;
  • header – заголовок;
  • footer – подпись;
  • documentUrl – ссылка на отправляемый в сообщении документ;
  • documentName – имя документа;
  • imageUrl – ссылка на изображение.

ВАЖНО:

  • header и footer являются необязательными параметрами;
  • максимальная длина заголовка и подписи составляет 60 символов каждый;
  • отправлять одновременно в заголовке текст, изображение и документ не допускается;
  • рекомендовано использовать изображение размером не меньше 400x400px с расширением JPG или PNG;
  • формат документа – pdf.

VoiceCall

VoiceCall — это тип сообщений, в которых выполняется преобразование текста в речь при вызове абонентов.

          [
                {
                    "@type": "outbound",
                    "addresses": {
                        "source": "<имя/номер отправителя>",
                        "destination": "<номер телефона получателя>"
                    },
                    "body": {
                        "bodyType": "whatsapp",  
                    "content": [
                        {
                            "contentType": "<tts>"
                            "text": "<Текст, который будет преобразован в текст>"
                            "sex": "<female|male>"
                            "speed": "<1.2>"
                    },
                    "nodeId": <ID ноды>,
                    "requestDelivery": (true|false)
                }
            ]
        

ВАЖНО:

  • для отправки голосового вызова с использованием системы автоматической генерации речи параметр contentType должен быть tts;
  • через параметр sex для сообщения можно настроить пол голосового помощника, который будет озвучивать текст: female — женский, male — мужской;
  • скорость зачитывания сообщения задается параметром speed. Возможные значения скорости:
    • медленно — 0.5, 0.8;
    • нормально — 1.0;
    • быстро — 1.2, 1.5.

Параметры ответа

В ответ на все приведённые выше примеры запросов API возвращает ответ вида:

{
                "id": "<MSID сообщения>",
                "timestamp": <время отправки сообщения>,
                "code": <код ответа сервиса>
            }

Ответ содержит следующие параметры:

Параметр Тип Значение
id string ID сообщения
timestamp timestamp время отправки сообщения в формате Unix Timestamp
code integer код ответа (в случае успешного выполнения запроса — 200 OK)

ВАЖНО: * все временные метки в протоколе Comex передаются в формате Unixtime с учетом миллисекунд. Это отличается от наиболее распространенной реализации, где в основном используются секунды

Коды ошибок

Код ошибки Описание
200 Успешно
400 Неверный синтаксис запроса
401 Ошибка авторизации
403 Доступ запрещён
405 Метод запроса отключён и не может быть использован
415 Некорректное значение заголовка Content-Type
451 В запросе содержатся запрещённые к использованию слова

Пакетная отправка сообщений

С помощью API можно отправлять не только одиночные сообщения, но и группы (пакеты) сообщений.

URI: https://external-api.i-dgtl.ru/pack

Пример запроса

[
                {
                    "@type": "outbound",
                    "addresses": {
                        "source": "<имя отправителя>",
                        "destination": "<номер телефона получателя #1>"
                    },
                    "body": {
                        "bodyType": "text",
                        "content": "<текст сообщения>"
                    },
                    "nodeId": <ID ноды>,
                    "requestDelivery": (true|false)
                },
                {
                    "@type": "outbound",
                    "addresses": {
                        "source": "<имя отправителя>",
                        "destination": "<номер телефона получателя #2>"
                    },
                    "body": {
                        "bodyType": "text",
                        "content": "<текст сообщения>"
                    },
                    "nodeId": <ID ноды>,
                    "requestDelivery": (true|false)
                }
            ]

Как видно из приведённого примера, тело запроса представляет собой массив из одиночных сообщений.

Максимальное количество сообщений в пакете составляет 100.

Пример ответа

В ответ на запрос API возвращает ID, время отправки и код ответа для каждого сообщения из пакета:

{
               "timestamp": "<время отправки пакета сообщений>",
               "code": 200,
               "responses": [
                  {
                     "timestamp": "<время отправки сообщения>",
                     "code": 200,
                     "id": "<MSID сообщения>"
                  },
                  {
                     "timestamp": "<время отправки сообщения>",
                     "code": 200,
                     "id": "<MSID сообщения>"
                  }
               ]
            }

Параметры ответа

Параметр Тип Значение
id string ID сообщения
timestamp timestamp время отправки сообщения в формате Unix Timestamp
code integer код ответа (в случае успешного выполнения запроса — 200 OK)

Коды ошибок

Код ошибки Описание
401 Ошибка авторизации
413 Превышено количество сообщений в пакете
452 Сработала блокировка по стоп-словам

Каскадная отправка

Каскадной отправкой называется технология переотправки сообщения по различным каналам. Последовательность каналов настраивается по согласованию с клиентом. При поступлении сообщение будет направлено в канал с наивысшим приоритетом; в случае недоставки оно будет переотправлено в следующий канал. Переотправка продолжится до тех пор, пока не будет получен статус “Доставлено” или пока не будут использованы все возможные каналы. Например, если push-сообщение по той или иной причине не поступает на мобильное устройство пользователя, его содержание может быть переотправлено в виде SMS.

По умолчанию функция каскадной отправки не активирована для клиентов. Для активации обратитесь к персональному менеджеру.

Отправка сообщений с одинаковым содержимым

Если при каскадной отправке не требуется отображение разного содержимого через разные каналы доставки, поле bodyType может содержать значение text и иметь такое же содержимое, как при отправке SMS.

Отправка сообщений с разным содержимым

{
                "@type": "outbound",
                "addresses": {
                    "source": "<имя отправителя>",
                    "destination": "<номер телефона получателя>"
                },
                "body": {
                    "bodyType": "generic",
                    "content": [
                        {
                            "bodyType": "viber",
                            "content": "<текст сообщения>"
                        },
                        {
                            "bodyType": "text",
                            "content": "<текст сообщения>"
                        }
                    ]
                },
                "nodeId": <ID ноды>,
                "requestDelivery": (true|false)
            }

В запросах на каскадную отправку сообщений с разным содержимым параметр bodyType имеет значение generic. Такой синтаксис используется для отправки массива объекта body разного типа. Таким образом при каскадной отправке вы можете комбинировать любой из доступных способов отправки, описанных выше, указывая необходимое содержимое для каждого типа канала.

Получение статусов доставки

Получение статусов доставки возможно только в случае, если при отправке сообщения указано значение параметра requestDelivery: true. Время получения статуса зависит от доступности абонента и качества сигнала мобильной сети.

Получать статусы можно двумя способами: * с помощью запроса к API: вы выполняете запрос и получаете статусы, доступные на момент выполнения; * с помощью сервиса HTTP Callback: в этом случае запросы будут поступать на ваш сервер, и вы будете получать статусы по мере их поступления.

Получение массива статусов

URI: https://external-api.i-dgtl.ru/receive

Пример запроса

curl -H 'Content-Type: application/json'
                 -H 'Accept: application/json' 
                 -H "Authorization: Basic  Mzk5OTk6MTIzNjU0" 
                 -d '10' 
                 'https://external-api.i-dgtl.ru/receive'
                 -X POST

В теле запроса передаётся количество сообщений, статусы которых нужно включить в ответ. В приведённом примере в теле запроса передаётся число 10, и это значит, что в ответ будет включена информация о последних 10 отправленных сообщениях. Максимальное количество запрашиваемых статусов не должно превышать 1000.

Получение статуса по id сообщения

URI: https://external-api.i-dgtl.ru/receivebymsid

Пример запроса

curl -H 'Content-Type: application/json'
                 -H 'Accept: application/json' 
                 -H "Authorization: Basic  Mzk5OTk6MTIzNjU0" 
                 -d '{"msids": ["10147aa1-5766-8324-2973-aa0000000010", "10147aa1-5766-8324-2973-aa0000000011"]}'
                 -X POST

В запросе возможно указать один или несколько msid сообщений, по которым необходимо получить статусы.
Максимальное количество возвращаемых статусов составляет 100.
Запрос по одному и тому же msid возможно выполнить несколько раз в течение времени хранения статуса.

ВАЖНО:

  • срок хранения статусов сообщений составляет 48 часов.

Пример ответа

{
               "timestamp": "<время генерации ответа>",
               "code": 200,
               "states": [
                  {
                     "@type": "state",
                     "msid": "<MSID сообщения>",
                     "status": "<статус сообщения>",
                     "creationDate": "<время генерации статуса>",
                     "errorCode": <код ошибки>,
                     "final": (true|false)
                  },
                  {
                     "@type": "state",
                     "msid": "<MSID сообщения>",
                     "status": "<статус сообщения>",
                     "creationDate": "<время генерации статуса>",
                     "errorCode": <код ошибки>,
                     "final": (true|false)
                  },
                  ...
               ]
            }

Параметры ответа

Параметр Тип Значение
timestamp timestamp Время отправки сообщения в формате Unix Timestamp
code integer Код ответа
responses array Массив со статусами сообщений. Последовательность сообщений в массиве соответствует их последовательности в запросе

Параметры сообщения в массиве

Параметр Тип Значение
@type string Тип ответа (в запросах на получение статусов — state)
msid string UUID сообщения
status string Статус сообщения (cм. ниже)
creationDate timestamp Дата формирования статуса
errorCode integer Код ошибки (см. ниже)
final boolean Указывает, является ли статус сообщения финальным

Cтатусы сообщений

Статус Описание
DELIVERED Сообщение доставлено абоненту
UNDELIVERED Сообщение не доставлено
EXPIRED Время ожидания статуса истекло
READ Сообщение прочитано
EXPIRED_READ Сообщения было доставлено, но статус READ не был получен за необходимое время.

ВАЖНО:

  • время получения статуса зависит от доступности абонента, качества сигнала мобильной сети и некоторых других технических параметров;
  • временем ожидания статуса считается промежуток времени от отправки до даты, указанной в параметре expirationDate; по истечении этого промежутка возвращается статус EXPIRED;
  • если оператор связи по тем или иным причинам не предоставляет код доставки, сообщение будет финализировано как недоставленное с кодом 127.
  • статус EXPIRED_READ по умолчанию не передаётся; если вам нужно получать этот статус, обратитесь в службу технической поддержки или к вашему менеджеру.

HTTP Callback

Чтобы воспользоваться сервисом HTTP Callback, вам потребуется сообщить нам адрес и порт вашего сервера, на который будут приходить статусы. Сервис HTTP Callback периодически проверяет доступность вашего сервера, отправляя GET-запрос на адрес <host>/ping. Если ваш сервер доступен и возвращает ответ с кодом 200 OK, вам будут отправлены доступные на текущий момент статусы.

Статусы будут передаваться на ваш сервер в запросе, который имеет следующую структуру:

  • тип запроса — POST;
  • URL:<host>:<port>/states;
  • Authorization: Basic base64(login:pass)
  • Content-Type — application/json

В качестве значений параметров <host> и <host> вам потребуется указать адрес и порт вашего сервера.

По умолчанию эндпоинт для получения статусов /states. Вы можете задать кастомное значение эндпоинта для получения статусов. Для этого необходимо вместе с адресом и портом вашего сервера укажите название эндпоинта.

В теле запроса передаётся точно такой же JSON-объект, как в ответе на запрос статусов (см. выше).

В ответ на запрос ваш сервер должен вернуть код 200 OK или 202 (Accepted). Если ваш сервер вернёт другой код, будет предпринята повторная попытка отправки согласно заданным правилам. Правила оговариваются с каждым пользователем индивидуально.

Коды ошибок

В этом разделе описаны коды ошибок, которые возвращаются при получении статусов сообщений.

Общие коды ошибок

Код ошибки Текст сообщения об ошибке Описание ошибки
11 error-address-format Номер получателя указан некорректно или не существует
127 Timeout of getting status Истекло время ожидания статуса сообщения
6969 Error without additional information Неизвестная ошибка

SMS

Код ошибки Текст сообщения об ошибке Описание ошибки
501 Unknown subscriner Номер получателя указан некорректно или не существует
502 SMSC failure Ошибка центра передачи сообщений (SMSC) на стороне конечного оператора.
504 The subscriber is absent or out of coverage Устройство абонента выключено или находится вне зоны действия сети
505 Call bar service activated У абонента включен запрет на прием сообщений или абонента заблокировал оператор (возможно, в связи с отрицательным балансом).
508 Teleservice not provisioned Сервис коротких сообщений не предоставляется
509 Roaming restrictions Абонент находится в роуминге
510 A2P messages blocked SIM-карта абонента заменена менее суток назад
511 Message queue full Очередь сообщений со стороны оператора переполнена
515 Equipment protocol error Аппаратная ошибка телефона абонента
517 Memory capacity exceeded Память телефона абонента переполнена
518 SS7 routing error Ошибка центра передачи сообщений (SMSC) на стороне конечного оператора.
523 Subscriber is busy Устройство абонента занято операцией, препятствующей получению короткого сообщения
525 IMSI error Ошибка на стороне оператора при запросе IMSI
557 Internal system failure Внутренняя ошибка системы на стороне конечного оператора
647 Illegal subscriber Абонент не зарегистрирован или заблокирован оператором

Viber

Код ошибки Текст сообщения об ошибке Описание ошибки
601 not-viber-user Абонент не является пользователем Viber
605 user-blocked Абонент заблокировал рассылку
607 not-suitable-device Устройство абонента не поддерживает сервис Viber
614 error-caption-too-long Превышена длина имени кнопки
618 filtered Сообщение содержит запрещенные к использованию слова

WhatsApp

Код ошибки Текст сообщения об ошибке Описание ошибки
605 user-blocked Абонент заблокировал рассылку
617 not-template-match Не найден подходящий шаблон сообщения
618 filtered Сообщение содержит запрещенные к использованию слова
620 error-whatsapp-template-quick-reply-button-payload-not-specified Не передан параметр payload для кнопки

VK Notify

Код ошибки Текст сообщения об ошибке Описание ошибки
250 NOT ENOUGH DATA Не хватает обязательных параметров
251 INCORRECT_SIGNATURE Некорректная подпись сообщения
252 ERROR Устройство абонента не поддерживает сервис Viber
253 UNSUPPORTED_NUMBER Номер не поддерживается (неподдерживаемая страна или оператор)
254 INCORRECT_NUMBER Некорректный формат номера
255 NUMBER_IN_BLACK_LIST Номер абонента занесен в черный список
256 NUMBER_TYPE_NOT_ALLOWED Номер абонента виртуальный или определен как «спамерский»
258 DAILY_RATELIMIT_FOR_RECEIVER Превышен дневной лимит отправки сообщений от группы ВКонтакте для данного номера.
259 UNSUPPORT Сообщение не может быть доставлено по одной из причин: — данного абонента (пользователя) не существует в системе; — абонент проявлял активность в системе более 7 дней назад.
260 UNSUPPORTED TEMPLATE Параметр text не соответствует ни одному шаблону.
261 UNKNOWN Неизвестный тип ошибки (возможен при получении неизвестного статуса от ВКонтакте)
262 BLOCKED_BY_USER Абонент запретил прием сообщений от данного отправителя (группы)
357 RATELIMIT Превышен лимит отправки сообщений ВКонтакте для данного номера

Push

Код ошибки Текст сообщения об ошибке Описание ошибки
700 recipient-is-locked Абонент заблокирован на платформе вручную
701 recipient-not-found Абонент не найден
702 recipient-has-no-active-device Устройство абонента неактивно
703 device_not_found Устройство абонента не найдено
704 client_application_removed Приложение удалено с устройства абонента
705 subscription-disabled Абонент отписался от push-сообщений
707 application-not-configured Приложение не настроено на платформе или в настройках приложения не указаны обязательные параметры
708 device-unregistered Устройство не зарегистрировано на платформе
709 certificate-expired Истек срок действия сертификата iOS-устройства

FlashCall

Код ошибки Текст сообщения об ошибке Описание ошибки
263 unknown-error Неизвестная ошибка
265 invalid-message Невалидное сообщение
266 destination-denied Направление или оператор не поддерживается
267 number-generation-failed Не удалось подобрать номер для передачи кода
268 duplicate Сообщение является дубликатом (дублированием считается отправка сообщения на один и тот же номер в течение минуты)
269 sending error Запрос был получен, но не бы отправлен оператору из-за неожиданной системной ошибки
270 rejected Звонок не может быть совершен (номер занят другим звонком, либо возникла другая SIP-ошибка)

Приём сообщений от абонентов

Процесс получения входящих сообщений аналогичен получению статусов доставки. Максимальное количество единовременно запрашиваемых сообщений — 100. Как и статусы, cообщения можно получать как с помощью запросов к API, так и с помощью сервиса HTTP Callback.

Запрос к API

URI: https://external-api.i-dgtl.ru/receiveinbound

Пример запроса

curl  -H 'Content-Type: application/json'
                  -H 'Accept: application/json' 
                  -H'Authorization: Basic Mzk5OTk6MTIzNjU0' 
                  -d '10'
                  https://external-api.i-dgtl.ru/receiveinbound
                  -X POST

В теле запроса передаётся количество сообщений, который будут включены в ответ. Приведённом примере в ответ на запрос API вернёт 10 сообщений (-d ‘10’). Число запрашиваемых сообщений не должно превышать 100.

Пример ответа

{
              "timestamp": 1570530342388,
              "code": "<код ответа>",
              "messages": [
                {
                  "@type": "inbound",
                  "properties": {},
                  "creationDate": 1570439178438,
                  "requestDelivery": false,
                  "addresses": {
                    "source": "<имя или адрес отправителя>",
                    "destination": "<адрес или номер телефона получателя>"
                  },
                  "body": {
                    "bodyType": "<тип сообщения>",
                    "content": "<текст сообщения>"
                  },
                  "expirationDate": "<timestamp>",
                  "msid": "<MSID сообщения>"
                }
              ]
            }

Как видно из приведённых примеров, структура ответа ничем не отличается от структуры ответа, возвращаемого при отправке, за исключением параметра @type (для входящих сообщений он имеет значение inbound).

Параметры ответа

Параметр Тип Значение
timestamp timestamp время отправки сообщения в формате Unix Timestamp
code integer код ответа (в случае успешного выполнения запроса — 200 OK)
messages object объект, cодержащий принятые сообщения

Параметры сообщения в массиве

Параметр Тип Значение
@type string Тип сообщения (входящее или исходящее); в данном случае имеет значение inbound
properties string Служебный параметр
сreationDate timestamp время создания сообщения
requestDelivery boolean Указывает, был ли запрошен для сообщения отчёт о доставке
addresses object Объект, содержащий адреса отправителя и получателя
source string Имя или адрес отправителя
destination string Адрес или номер телефона получателя
body object Объект, который содержит параметры bodyType и content
bodyType string Тип сообщения (SMS, e-mail, ВКонтакте, Viber, push, WhatsApp)
content string Содержимое сообщения (подробнее см. в примерах выше)
expirationDate timestamp Срок (дата и время), до которого будут повторяться попытки доставить сообщение. Указывается в формате в формате unixtime или ISO-8601 (например, 2017-01-01T00:00:00Z)
msid string UUID сообщения

Коды ошибок

Код ошибки Описание
401 Ошибка авторизации
413 Превышено количество сообщений в пакете

HTTP Callback

Получение входящих сообщений происходит точно так же, как и получение статусов. Вам потребуется сообщить нам адрес и порт вашего сервера, на который будут поступать входящие сообщения. Так же, как и при получении статусов, сервис HTTP Callback будет периодически проверять доступность вашего сервера, отправляет GET-запрос на <host>:<port>/ping. Если ваш сервер доступен, вы получите все доступные на текущий момент входящие сообщения.

Входящие сообщения будут передаваться на ваш сервер в запросе, который имеет следующую структуру:

  • тип запроса — POST;
  • URL: <host>:<port>/inbounds;
  • Authorization: Basic base64(login:pass)
  • Content-Type — application/json

В качестве значений параметров <host> и <host> вам потребуется указать адрес и порт вашего сервера.

По умолчанию эндпоинт для получения входящих сообщений /inbounds. Вы можете задать кастомное значение эндпоинта для получения входящих сообщений. Для этого необходимо вместе с адресом и портом вашего сервера укажите название эндпоинта.

В теле запроса передаётся точно такой же JSON-объект, как в ответе на запрос статусов (см. выше).

В ответ на запрос ваш сервер должен вернуть код 200 OK или 202 (Accepted). Если ваш сервер вернёт другой код, будет предпринята повторная попытка отправки согласно заданным правилам. Правила оговариваются с каждым пользователем индивидуально.

Hex Dec Description
000 0 Successfully Delivered
001 1 Absent subscriber (network cannot contact subscriber)
002 2 Handset memory exceeded
003 3 Equipment protocol error
004 4 Equipment not equipped with short-message capability
005 5 Unknown service centre (destination MSC)
006 6 Service centre congestion (Too much inbound traffic at destination network)
007 7 Invalid SME address
008 8 Subscriber is not a SC subscriber (Number belongs to a different destination network but HLR is not updated)
009 9 Unknown subscriber (IMSI is unknown in the HLR)
00A 10 Illegal subscriber (The mobile station failed authentication)
00B 11 Teleservice not provisioned (Mobile subscription identified by the MSISDN number does not include the short message service)
00C 12 Illegal equipment (IMEI check failed, blacklisted or not whitelisted)
00D 13 Call barred (Operator barred the MSISDN number)
00E 14 Facility not supported (VLR in the PLMN does not support MT short message service)
00F 15 Subscriber busy for MT short message
010 16 System failure
011 17 Message waiting list at HLR is full
012 18 Data missing
013 19 Unexpected data value
014 20 Resource limitation at peer / destination network
015 21 TCAP error (Duplicate invoke ID)
016 22 TCAP error (Not supported service)
017 23 TCAP error (Mistyped parameter)
018 24 TCP error (Resource Limitation)
019 25 TCAP error (TCAP initiating release)
01A 26 TCAP error (Unexpected response from peer)
01B 27 TCAP error (Service completion failure)
01C 28 TCAP error (No response from peer)
01D 29 TCAP error (Invalid response received)
01E 30 Unidentified subscriber
01F 31 Service temporary not available
020 32 Illegal error code
021 33 Network timeout
022 34 Operation Barred (From the MNO)
023 35 Delivery fail
024 36 Error in MS
025 37 PLMN system failure
026 38 HLR system failure
027 39 VLR system failure
028 40 Controlling MSC failure (Error in the MSC where the user is located)
029 41 Visited MSC failure (Error in the visited MSC)
02A 42 MNP other operator not allowed (MSISDN is ported, delivery via this SMSC not permitted)
02B 43 Subscriber temporarily unreachable (While roaming)
02C 44 Message store busy
02D 45 SME Interface busy
02E 46 Closed user group reject
02F 47 Network failure
030 48 Deferred Delivery (Message has not been delivered and is part of a deferred delivery schedule)
031 49 Error getting route
032 50 Insufficient credit
033 51 Rejected Destination
034 52 Rejected Unknown Reason
035 53 Rejected due to routing issue
036 54 Rejected due to blocking issue
037 55 Rejected due to no price
038 56 Rejected due to not enough credits
039 57 Rejected due to spam filter
03A 58 Rejected due to flooding
03B 59 UNKNOWN TCType,SMS
03C 60 UNKNOWN TCType,SRI
03E 62 Failure due to submission towards AA19 destination
03D 61 UNKNOWN
03F 63 Sent to SME but unable to confirm
040 64 Replaced at the SMSC
041 65 Quality service not available
042 66 Error in SMSC
043 67 Rejected by operator due to validity period expiry
044 68 Intermediate state notification that the message has not yet been delivered due to a phone related problem but is being retried.
045 69 Cannot determine whether this message has been delivered or has failed due to lack of final delivery state information from the operator.
046 70 Specific content is not permitted on the network / shortcode
047 71 Subscriber cannot receive adult content because of a parental lock
048 72 Failure due to ported combinations being unreachable.
049 73 Roaming subscriber.
04A 74 Failure due to ported combinations being blocked for client (Client has been blacklisted from the ported destination).
04B 75 Abort from HLR
04C 76 Source address is blacklisted or not supported
04D 77 Operation barred
04E 78 Facility not provided
04F 79 Invalid absolute validity period
050 80 SMS center received
051 81 Invalid PDU format
052 82 Local Cancel (Temporary problem / Lost reach)
053 83 Rejected due to duplicate
054 84 Maximum Connection Reached
055 85 Information Not Available
056 86 Message waiting list full
057 87 Short Term Denial
058 88 Expired due to no response from supplier
059 89 message replaced by SMSC
0EC 236 PSMS Unknown subscriber
05A 90 congestion at subscriber
05B 91 service rejected
05C 92 Error in SME
05D 93 Remote procedure error
05E 94 Connection rejected by SME
05F 95 SM deleted by the sender
060 96 SM deleted by SMSC Admin

Понравилась статья? Поделить с друзьями:
  • Equalizer apo error while reading configuration file
  • Err connection reset как исправить на компьютере windows 10
  • Err connection closed как исправить ошибку яндекс браузер
  • Err connection closed как исправить ошибку chrome
  • Err connection aborted как исправить ошибку