Protocolo API para trabajar con SMS-Activate
La API es un protocolo entre tu software y nuestro servidor
La API es necesaria para automatizar el proceso de recepción de SMS, OTP y PVA en tu lado
Nuestra API es totalmente compatible con los sitios de la competencia
Todas las solicitudes deben dirigirse a https://api.sms-activate.ai/stubs/handler_api.php
Solicitud POST o GET.
Todas las solicitudes deben contener una clave API en forma del parámetro GET api_key
Descargar la implementación del protocolo en PHP Descargar la implementación lista del protocolo en PythonAPI de activación
Parámetros:
$api_key - Clave de API
$country * - número de país ver tabla
$operador * números de operadores móviles, puedes especificar varios números separados por comas (disponible solo para:
** disponible para $country = 0, $country = 1, $country = 2
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{"vk_0":76,"ok_0":139,"wa_0":90,"vi_0":223,"tg_0":158,"wb_0":106,"go_0":182,"av_0":244,"av_1":211,"fb_0":107}
Donde antes del guion está el nombre del servicio; después, la indicación de si es necesario incluir redirección. 0 - no. 1 - sí.
Parámetros:
$api_key - Clave de API
$service * - Servicio ver tabla
* parámetro opcional. Si no se especifica, se mostrarán por defecto los principales países para todos los servicios.
$freePrice * - parámetro opcional. Si se proporciona true, la cantidad y el precio se ajustarán según Free Price
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00
}, ...
}
$freePrice = true:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00,
"freePriceMap": {
"15.00": 43242,
"18.00": 333
}
}, ...
}
Solicitud de saldo con cuenta de cashback:
* devuelve el saldo teniendo en cuenta el cashback acumulado, si la casilla "Usar cashback para activaciones" en la configuración de la cuenta de cashback está marcada
Parámetros:
$api_key - Clave de API
RESPUESTA:
ACCESS_BALANCE: 'saldo de la cuenta'
POSIBLES ERRORES:
BAD_KEY - clave API no válida
ERROR_SQL - error del servidor SQL
* devuelve todos los operadores disponibles para el país indicado; si no se indica ningún país, devolverá todos los operadores disponibles para cada país
Parámetros:
$api_key - Clave de API
$country - código de país
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{"status":"success", "countryOperators": {
"Country1Code": ["operator1Name","operator2Name","operator3Name", ...],
"Country2Code": ["operator1Name","operator2Name","operator3Name", ...],
...
}}
Ejemplo:
{"status":"success", "countryOperators": {
"0": ["beeline","megafon","mts", ...],
"1": ["life","mts","kyivstar","utel" ...],
...
}}
* dentro de 'countryOperators', la clave será el código de país
POSIBLES ERRORES:
BAD_KEY - clave API no válida
ERROR_SQL - error del servidor SQL
OPERATORS_NOT_FOUND - no se han encontrado registros (por ejemplo, se ha indicado un país inexistente)
Parámetros:
$api_key - Clave de API
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{"status":"success", "activeActivations": [
{
"activationId" : "635468021",
"serviceCode" : "vk",
"phoneNumber" : "79********1",
"activationCost" : "12.50",
"activationStatus" : "4",
"smsCode" : ["CODE"],
"smsText" : "[Your CODE registration code]",
"activationTime" : "2022-06-01 16:59:16",
"discount" : "0.00",
"repeated" : "0",
"countryCode" : "0",
"countryName" : "Russia",
"canGetAnotherSms" : "1",
}]
POSIBLES ERRORES:
BAD_KEY - clave API no válida
ERROR_SQL - error del servidor SQL
NO_ACTIVATIONS - no se han encontrado entradas (no hay activaciones activas)
Parámetros:
$api_key - Clave de API
$service - servicio para realizar pedidos ver tabla
$forward * - si es necesario solicitar un número con reenvío
* parámetro opcional, acepta 0 (no ejecutar, establecido por defecto), 1 (ejecutar)
$maxPrice * - el precio máximo al que estás dispuesto a comprar un número mediante Free Price
* parámetro opcional; si no se especifica, la compra se realizará al precio habitual
$phoneException * - excluye prefijos para números rusos. Introdúcelos separados por comas. Formato: código de país y de 3 a 6 dígitos de la máscara (ej.: 7918, 7900111). El valor predeterminado es el especificado en la cuenta.
$operator* es el operador móvil del número, puedes especificar varios separados por comas (solo disponible para **)
$activationType - tipo de activación: 0 - con SMS (predeterminado), 1 - con número, 2 - con voz
$language - idioma de análisis (necesario para la activación por voz) ver tabla
$userId * - ID de usuario a bloquear por malas estadísticas de activación, pero la cuenta propia del revendedor no se ve afectada.
* campo opcional
** disponible para $country = 0, $country = 1, $country = 2
$ref - transfiere el ID de referencia.
$country - número de país ver tabla
$useCashBack* - acepta un valor booleano; si el parámetro es 'true', la compra del número se realizará utilizando el cashback. Cuando te quedes sin fondos en el saldo de cashback, todas las compras posteriores se realizarán usando el saldo principal. Es IMPORTANTE recordar que todas las compras posteriores utilizarán primero el cashback y, después, el saldo principal (incluso si posteriormente pasas el parámetro 'false').
* parámetro opcional, acepta 'true'
Al obtener el número a través de la API, aceptas los reglas del proyecto reglas del proyecto
POSIBLES ERRORES:
WRONG_MAX_PRICE:$min- el precio máximo especificado es inferior al permitido
$min - precio mínimo permitido
BAD_ACTION - acción incorrecta
BAD_SERVICE - nombre de servicio incorrecto
BAD_KEY - clave API no válida
ERROR_SQL - error del servidor SQL
BANNED:'YYYY-m-d H-i-s' - hora durante la cual la cuenta está bloqueada
WRONG_EXCEPTION_PHONE - prefijos de exclusión incorrectos
NO_BALANCE_FORWARD - fondos insuficientes para comprar el desvío de llamadas
CHANNELS_LIMIT - cuenta bloqueada
NO_NUMBERS - no hay números
Si intentas obtener un número de un operador específico que no opera en el país seleccionado o que no ofrece el servicio seleccionado, se devolverá el número del primer operador que coincida con los parámetros de la solicitud
el método funciona de forma similar al método getNumber, acepta los mismos parámetros y otros adicionales descritos a continuación, pero devuelve información adicional sobre la activación
Parámetros:
$orderId- ID de activación del sistema del revendedor. Al realizar la compra, estos datos se comparan con el ID de activación y el revendedor en nuestro sistema. De este modo, buscamos lograr la idempotencia (el mismo pedido no se procesará de nuevo).
RESPUESTA:
Si la solicitud se realiza correctamente, la respuesta tendrá el siguiente formato:
{
"activationId": 635468024,
"phoneNumber": "79584******",
"activationCost": "12.50",
"countryCode": "0",
"canGetAnotherSms": "1",
"activationTime": "2022-06-01 17:30:57",
"activationOperator": "mtt"
}
Si intentas obtener un número de un operador específico que no opera en el país seleccionado o que no ofrece el servicio seleccionado, se devolverá el número del primer operador que coincida con los parámetros de la solicitud
POSIBLES ERRORES:
ORDER_ALREADY_EXISTS- el pedido ya ha sido creado
Cuando recibas un SMS en un número, si has activado la funcionalidad de Webhooks en tu configuración, enviaremos la información sobre el SMS a las direcciones que hayas especificado mediante una solicitud POST
RESPUESTA:
El formato de la respuesta será el siguiente:
{
"activationId": 635468024,
"service": "go",
"text": "Your sms text",
"code": "Your sms code",
"country": 0,
"receivedAt": "2022-06-01 17:30:57",
}
Al enviar una solicitud, esperaremos una respuesta de tu script con el estado HTTP 200. Si tu script no responde, reenviaremos la solicitud durante 2 horas, pero no más de 8 veces.
Puedes activar esta funcionalidad en la configuración del perfil
Parámetros:
$api_key - Clave de API
$service - servicio para realizar pedidos ver tabla
$forward * - si es necesario solicitar un número con reenvío
* parámetro opcional, los caracteres de redirección se separan por comas; el número de dígitos de redirección debe coincidir con el número de servicios transmitidos en el parámetro $service. Solo se permite transmitir 1 servicio con redirección, por ejemplo "0,1,0,0" es correcto, "0,1,1,0" es incorrecto. Acepta 0 (no ejecutar, valor predeterminado), 1 (ejecutar)
$operator * - operador móvil del número, puedes especificar varios números separados por comas (disponible solo para **):
$ref - transfiere el ID de referencia.
$country - número de país ver tabla
Al obtener el número a través de la API, aceptas los reglas del proyecto reglas del proyecto
RESPUESTA:
NO_NUMBERS - no hay números
NO_BALANCE - saldo agotado
{{'phone':phone,'activation':activation,'service':service},
{'phone':phone,'activation':activation,'service':service}}, donde (phone - ID de operaciones, activation - Número de teléfono, service - Servicio)
POSIBLES ERRORES:
BAD_ACTION - acción incorrecta
BAD_SERVICE - nombre de servicio incorrecto
BAD_KEY - clave API no válida
ERROR_SQL - error del servidor SQL
BANNED:'YYYY-m-d H-i-s' - hora durante la cual la cuenta está bloqueada
Parámetros:
$api_key - Clave de API
$id - ID de activación
$forward * - número de teléfono al que deseas redirigir
* requerido solo si se pasó un parámetro con getNumber forward=1.
$status - estado de la activación
1 - notificar sobre la disponibilidad del número (SMS enviado al número)
3 - solicitar otro código (gratis)
6 - finalizar la activación *
8 - informar que el número ya ha sido usado y cancelar la activación
* si había un estado 'código recibido', lo marca como exitoso y finaliza; si había un estado 'preparación', lo elimina y marca un error; si había un estado 'esperando reintento', transfiere la activación a SMS pendiente
** No es posible cambiar el estado de activación para la cual se seleccionó el método de verificación por llamada si el número ya ha llegado
La lógica simple de la cronología de trabajo con la API:
Obtener un número usando el método getNumber, luego están disponibles las siguientes acciones:
8 - cancelar la activación (si el número no te conviene)
1 - informar que se ha enviado el SMS (opcional)
Para la activación con estado 1:
8 - cancelar la activación
Inmediatamente después de recibir el código:
3 - solicitar otro SMS
6 - confirmar el código SMS y finalizar la activación
Para la activación con estado 3:
6 - confirmar el código SMS y finalizar la activación
RESPUESTA:
ACCESS_READY - disponibilidad del número confirmada
ACCESS_RETRY_GET - esperando un nuevo SMS
ACCESS_ACTIVATION - el servicio se ha activado correctamente
ACCESS_CANCEL - activación cancelada
POSIBLES ERRORES:
EARLY_CANCEL_DENIED - no está permitido cancelar un número durante los primeros 2 minutos
ERROR_SQL - error del servidor SQL
NO_ACTIVATION - el ID de activación no existe
BAD_SERVICE - nombre de servicio incorrecto
BAD_STATUS - estado incorrecto
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
WRONG_ACTIVATION_ID - ID incorrecto o el ID no es un número.
Parámetros:
$api_key - Clave de API
$id - ID de activación
RESPUESTA:
STATUS_WAIT_CODE - esperando SMS
STATUS_WAIT_RETRY: 'código pasado, no coincidente' - esperando aclaración del código
STATUS_WAIT_RESEND - esperando reenvío del SMS *
* el software debe pulsar reenviar SMS y cambiar el estado a 6
STATUS_CANCEL - activación cancelada
STATUS_OK: 'código de activación' - código recibido
POSIBLES ERRORES:
NO_ACTIVATION - el ID de activación no existe
ERROR_SQL - error del servidor SQL
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Parámetros:
$api_key - Clave de API
$id - ID de activación
RESPUESTA:
El formato de la respuesta será el siguiente:
{
"verificationType": 2,
"sms": {
"dateTime": "0000-00-00 00:00:00",
"code": "code",
"text": "sms text",
},
"call": {
"from": "phone",
"text": "voice text",
"dateTime": "0000-00-00 00:00:00",
"url": "voice file url",
"parsingCount": 1,
}
}
STATUS_CANCEL - activación cancelada
POSIBLES ERRORES:
NO_ACTIVATION - el ID de activación no existe
ERROR_SQL - error del servidor SQL
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Parámetros:
$api_key - Clave de API
$start - marca de tiempo en formato Unix Timestamp (opcional) - desde qué fecha considerar las activaciones
$end - marca de tiempo en formato Unix Timestamp (opcional) - hasta qué fecha considerar las activaciones
$offset - desplazamiento del primer elemento devuelto en la respuesta. El valor predeterminado es 0
$limit - número máximo de registros devueltos. El máximo es 100. El valor predeterminado es 50.
RESPUESTA:
El formato de la respuesta será el siguiente:
[{
"id": 635468024,
"date": "2022-11-12 15:58:39",
"phone": "79918529716",
"sms": "sms":"["Your sms code"]",
"cost": 100 //Если активация не завершена, то cost = 0,
"status": "4",
}]
POSIBLES ERRORES:
ERROR_SQL - error del servidor SQL
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Parámetros:
$api_key - Clave de API
$service - nombre del servicio
RESPUESTA:
El formato de la respuesta será el siguiente:
[{
"country": 0,
"share": 50 - // (Purchases of the chosen service by country as a percentage of the total quantity of purchases at our service),
"rate": 50 - // (% of successful activations among the total number of activations by the country)
}]
POSIBLES ERRORES:
ERROR_SQL - error del servidor SQL
BAD_KEY - clave API no válida
WRONG_SERVICE - servicio incorrecto
BAD_ACTION - acción incorrecta
Parámetros:
$api_key - Clave de API
$id - ID de activación
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{"status":"2","phone":false}
ESTADOS POSIBLES:
2 - nueva activación
3 - finalizada con éxito
4 - cancelada
5 - devuelta
POSIBLES ERRORES:
BAD_KEY - clave API no válida
INVALID_ACTIVATION_ID - ID de activación no válido
Parámetros:
$api_key - Clave de API
$serviceNombre corto del servicio (opcional, por defecto todos los servicios) ver tabla
$countryCódigo de país (opcional, por defecto todos los países) ver tabla
RESPUESTA:
JSON - objeto en formato
{"País":{"Servicio":{"cost":Cost,"count":Count}}}
Parámetros:
$api_key - Clave de API
$serviceNombre corto del servicio (opcional, por defecto todos los servicios) ver tabla
RESPUESTA:
JSON - objeto en formato
{"Servicio":{"País":{"count":Quantity,"price":"Price"}}}
Parámetros:
$api_key - Clave de API
RESPUESTA:
JSON - objeto en formato {{'Страна':{'id':0,'rus':"Россия","eng:"Russia","chn":"俄罗斯","visible":1,"retry":1,"rent":1,"multiService":1}},
donde (
id : ID del país;
rus : nombre del país en ruso;
eng : nombre del país en inglés;
chn : nombre del país en chino;
visible : 0 - el país no se muestra en el sitio, 1 - se muestra;
retry : 0 - reenvío de SMS NO disponible, 1 - disponible;
rent : 0 - país no disponible para alquiler, 1 - disponible para alquiler;
multiService : 0 - el país NO está disponible para multiservicio, 1 - disponible.)
Parámetros:
$api_key- Clave de API
$country *- ID del país. Si has especificado el país, devolvemos los servicios que tienen precio para el país elegido
$lang *- idioma que se utilizará para proporcionar el `name`. Valores posibles: 'ru', 'en', 'es', 'cn'. El valor predeterminado es 'en'
* parámetro opcional
RESPUESTA:
JSON - objeto en formato { "status": "success", "services": [ { "code": "aoo", "name": "Pegasus Airlines" } ] }
Tras recibir el primer SMS para números redirigidos, puedes comprar otros servicios relacionados como Yula, Yandex, Avito y cualquier otro
El coste del servicio adicional es solo de 5p
Parámetros:
$api_key - Clave de API
$service - para el nombre corto del servicio, consulta la tabla ver tabla
$id - ID de activación principal
RESPUESTA:
ADDITIONAL:$id:$phone - se ha creado correctamente una nueva activación. Donde ID es el ID de la activación adicional y phone es un número de teléfono
POSIBLES ERRORES:
WRONG_ADDITIONAL_SERVICE - Servicio adicional no válido (solo se permiten servicios de reenvío)
WRONG_ACTIVATION_ID - ID de activación principal incorrecto
WRONG_SECURITY - se ha producido un error al intentar transmitir un ID de activación sin redirección o una activación completada/inactiva
REPEAT_ADDITIONAL_SERVICE - se produce un error al intentar pedir de nuevo un servicio ya adquirido NO_BALANCE - Fondos insuficientes
ERROR_SQL- error de base de datos, contacta con el servicio de atención al cliente
Si has realizado una activación correcta con el número, puedes repetirla.
El coste de la activación adicional se determina en función del país y del servicio. Puedes consultar el coste específico en .
Parámetros:
$api_key - Clave de API
$activationId - ID de activación principal
RESPUESTA:
ACCESS_NUMBER:$id:$phone - se ha creado correctamente una nueva activación. Donde $id es el ID de la activación adicional y $phone es un número de teléfono
POSIBLES ERRORES:
RENEW_ACTIVATION_NOT_AVAILABLE- el número no está disponible para activación adicional
WRONG_ACTIVATION_ID - ID de activación principal incorrecto
ERROR_SQL- error de base de datos, contacta con el servicio de atención al cliente
NEW_ACTIVATION_IMPOSSIBLE- no es posible realizar una activación adicional
NO_BALANCE - sin saldo en la cuenta
Puedes comprobar la disponibilidad del número para activación adicional y conocer su coste
Parámetros:
$api_key - Clave de API
$activationId - ID de activación principal
RESPUESTA:
JSON - objeto en formato {'status': 'success', 'cost':200,"service":"tw","phone":777777777,"country":14},
POSIBLES ERRORES:
RENEW_ACTIVATION_NOT_AVAILABLE- el número no está disponible para activación adicional
WRONG_ACTIVATION_ID - ID de activación principal incorrecto
SIM_OFFLINE - Tarjeta SIM fuera de línea
RESPUESTA:
El formato de la respuesta será el siguiente:
{
"result": "OK"
}
STATUS_CANCEL - activación cancelada
NO_CALL- no se ha recibido ninguna llamada
PARSE_COUNT_EXCEED- límite de intentos de análisis (el máximo es 4)
POSIBLES ERRORES:
WRONG_ACTIVATION_ID - ID no válido, la activación no existe
ERROR_SQL - error del servidor SQL
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Alquiler de API
Parámetros:
$api_key - Clave de API
$time* - tiempo de alquiler (por defecto: 4 horas)
$operator* - operador móvil del número, puedes especificar varios separados por comas (por defecto: Cualquiera)
$country* - país (por defecto: Rusia)
$incomingCall * - si se transfiere "true"obtener un número que admita la función de recibir llamadas
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{ "countries": { "0": 0 }, "operators": { "0": "aiva", "1": "any", "2": "beeline", ... "16": "yota" }, "services": { "full": { "cost": 42.93, "quant": 20 }, "vk": { "cost": 21.95, "quant": 20 }, "ok": { "cost": 7.68, "quant": 55 }, "ot": { "cost": 5.2, "quant": 42 } } }
POSIBLES ERRORES:
BAD_KEY - clave API no válida
OUT_OF_STOCK - los números para ese país no están disponibles
Parámetros:
$api_key - Clave de API
$service - el servicio para el cual necesitas obtener un número
$time* - tiempo de alquiler en horas (por defecto: 4 horas). El siguiente período disponible es de 12 horas, luego 24 horas. Al solicitar un alquiler de un día o más, debes indicar: 24, 48, 72, etc.
$operator* - operador móvil del número, puedes especificar varios separados por comas (por defecto: Cualquiera)
$country* - país (por defecto: Rusia)
$url * - enlace para el webhook (no se considera por defecto)
$incomingCall * - si se transfiere "true"obtener un número que admita la función de recibir llamadas
* parámetro opcional. Si no se especifica, se utilizará el parámetro por defecto.
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564" } }
POSIBLES ERRORES:
BAD_KEY - clave API no válida
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*" }
Posibles respuestas en el campo "message":
BAD_SERVICE - servicio no especificado o nombre incorrecto
NO_BALANCE - sin saldo en la cuenta
NO_NUMBERS - no hay números
ACCOUNT_INACTIVE - no hay números
SERVER_ERROR - error del servidor
CHANNELS_LIMIT - cuenta bloqueada
Parámetros:
$api_key - Clave de API
$id - ID de alquiler recibido en la respuesta al pedir un número
$page* - número de página desde la que comienza la selección (la numeración de páginas empieza desde 0, de nuevo a antiguo; por defecto es 0)
$size* - tamaño de página (por defecto 10)
* parámetro opcional. Si no se especifica, se utilizará el parámetro por defecto.
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{ "status": "success", "quantity": "2", "values": { "0": { "phoneFrom": "79180230628", "text": "5", "service": "ot", "date": "2020-01-30 14:31:58" }, "1": { "phoneFrom": "79180230628", "text": "4", "service": "ot", "date": "2020-01-30 14:04:16" } } }
* exitoso solo cuando hay un SMS (campo 'quantity' > 0).
POSIBLES ERRORES:
BAD_KEY - clave API no válida
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*" } Posibles respuestas en el campo "message": NO_ID_RENT - no se ha especificado el ID de alquiler INVALID_PHONE - el número no está alquilado por ti (ID de alquiler no válido) STATUS_FINISH - alquiler pagado y completado STATUS_CANCEL - alquiler cancelado con reembolso STATUS_WAIT_CODE - esperando el primer SMS STATUS_REVOKE - El número está bloqueado, tus fondos han sido devueltos
Parámetros:
$api_key - Clave de API
$id - ID de alquiler recibido en la respuesta al pedir un número
$status - código para cambiar el estado (número)
El estado puede ser:
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{ "status": "success" }
POSIBLES ERRORES:
BAD_KEY - clave API no válida
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*" }
Posibles respuestas en el campo "message":
NO_ID_RENT - no se ha especificado el ID de alquiler
INCORECT_STATUS - estado faltante o especificado incorrectamente
CANT_CANCEL - no es posible cancelar el alquiler (más de 20 min.)
INVALID_PHONE - el número no está alquilado por ti (ID de alquiler no válido)
ALREADY_FINISH - el alquiler ya ha sido completado
ALREADY_CANCEL - el alquiler ya ha sido cancelado
SERVER_ERROR - error del servidor
👉¡Atención! Este método muestra solo los últimos 10 números. Si necesitas más números, utiliza el getRentStatus método para comprobar los estados.
Parámetros:
$api_key - Clave de API
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{ "status": "success", "values": { "0": { "id": "12345", "phone": "79181234567" }, "1": { "id": "12345", "phone": "79181234568" } } }
POSIBLES ERRORES:
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*" }
Posibles respuestas en el campo "message":
NO_NUMBERS - no hay números alquilados
SERVER_ERROR - error del servidor
Parámetros:
$api_key - Clave de API
$id - id del alquiler
$rent_time- tiempo de alquiler (por defecto: 4 horas)
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564"} }
Cuando se prolonga un alquiler completado, se volverá a pedir y se proporcionará un nuevo id
POSIBLES ERRORES:
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
SERVER_ERROR - error del servidor
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*", "info": "*details*" }
Posibles respuestas en el campo "message":
NO_ID_RENT - no hay ID de alquiler
INVALID_TIME - tiempo incorrecto. Horas disponibles de 4 a 1344
MAX_HOURS_EXCEED - Se ha excedido el tiempo máximo disponible
max - tiempo máximo disponible
INVALID_PHONE - ID de alquiler incorrecto
RENT_DIE - no se puede ampliar el alquiler porque el número ha caducado
NO_BALANCE - fondos insuficientes
CHANNELS_LIMIT - cuenta bloqueada
* este método solo está disponible para alquiler con el operador MTT.
Parámetros:
$api_key - Clave de API
$id - id del alquiler
$rent_time - tiempo de alquiler
RESPUESTA:
La respuesta del servicio estará en formato JSON:
{ "status": "success", "price": 6.33 }
POSIBLES ERRORES:
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
SERVER_ERROR - error del servidor
Respuesta en formato json:
{ "status": "error", "message": "*possible_answer*" }
Posibles respuestas en el campo "message":
NO_ID_RENT - no hay ID de alquiler
INVALID_PHONE - ID de alquiler incorrecto
INVALID_TIME - configuración de tiempo incorrecta
RENT_DIE - no se puede ampliar el alquiler porque el número ha caducado
MAX_HOURS_EXCEED - Se ha excedido el tiempo máximo disponible
max - tiempo máximo disponible
CHANNELS_LIMIT - cuenta bloqueada
API JAVA
Incluye la biblioteca en Maven
<artifactId>SMSActivateApi</artifactId>
<version>1.0</version>
</dependencia>
Puedes ver un ejemplo de registro en enlace a MavenRepository
Importa la clase principal para interactuar con la API de SMS-Activate.
Para usar la biblioteca, necesitas una clave API; puedes obtenerla en esta página y en el enlace siguiente.
Clave API de SMS-ActivatePara obtener el saldo actual de tu cuenta, utiliza el método getBalance... Si te interesa conocer el cashback además del saldo, llama al método getBalanceAndCashBack.
Método getBalanceAndCashBack devuelve un objeto de claseSMSActivateGetBalanceAndCashBack.
Parámetros:
NINGUNO
TIPO DE RETORNO:
BigDecimal
Parámetros:
NINGUNO
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
service(String) - nombre abreviado del servicio.
forward*(boolean) - si se solicita un número con desvío de llamadas.
operatorSet*(Conjunto) - conjunto de operadores.
phoneException*(Conjunto) - excluyendo prefijos solo para Rusia, un conjunto de números de 3 a 6 dígitos (7918,7900111).
* casilla opcional. Si no se especifica nada, se asignará la cantidad predeterminada según la configuración del perfil.
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
operatorSet*(Conjunto) - conjunto de operadores disponibles para el servicio
TIPO DE RETORNO:
Parámetros:
id(Entero) - identificador de activación
service(String) - nombre abreviado del servicio.
En lugar del identificador de activación, puede pasar el objeto de clase recibido SMSActivateActivation después de usar el método getNumber o una de las activaciones después de su uso getMultiServiceNumber.
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
serviceMap(Conjunto) - conjunto de servicios para los cuales se compra la activación
multiForwardList(Lista) - lista de servicios con desvío de llamadas disponible
operatorSet(Conjunto) - conjunto de operadores.
TIPO DE RETORNO:
Parámetros:
NINGUNO
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
service(String) - nombre abreviado del servicio.
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
TIPO DE RETORNO:
Parámetros:
activationId(Entero) - identificador de activación
En lugar del identificador de activación, puede pasar el objeto de clase recibido SMSActivateActivation después de usar el método getNumber o una de las activaciones después de su uso getMultiServiceNumber.
TIPO DE RETORNO:
Parámetros:
id(Entero) - identificador de activación
status(SMSActivateClientStatus) - el estado que se debe establecer para la activación
En lugar del identificador de activación, puede pasar el objeto de clase recibido SMSActivateActivation después de usar el método getNumber o una de las activaciones después de su uso getMultiServiceNumber.
TIPO DE RETORNO:
Parámetros:
NINGUNO
TIPO DE RETORNO:
Parámetros:
activationId(Entero) - identificador de activación
En lugar del identificador de activación, puede pasar el objeto de clase recibido SMSActivateActivation después de usar el método getNumber o una de las activaciones después de su uso getMultiServiceNumber.
TIPO DE RETORNO:
Algoritmo para recibir el texto completo del SMS con activación
Obtener un número usando el método getNumber, luego están disponibles las siguientes acciones:
CANCEL - 8 - Cancelar la activación (si el número no le conviene)
MESSAGE_WAS_SENT: Informa de que el SMS ha sido enviado (obligatorio para recibir el texto completo del SMS)
Tras establecer obligatoriamente el estado MESSAGE_WAS_SENT, configura la variable para recibir el SMS mediante el método waitSMS con los parámetros de activación y el tiempo de espera del SMS.
Una vez recibido el SMS, puedes obtenerlo usando el método getFullSMS y luego mostrar el texto completo mediante el método getText().
A continuación, puedes establecer las activaciones en los siguientes estados:
Para activar con el estado MESSAGE_WAS_SENT:
CANCEL: Cancelar la activación
Inmediatamente después de recibir el código:
REQUEST_ONE_MORE_CODE: Solicitar otro SMS
FINISH: Confirmar el código SMS y completar la activación
Para activar con el estado REQUEST_ONE_MORE_CODE:
FINISH: Confirmar el código SMS y completar la activación
Parámetros:
countryId(Integer) - identificador del país.
service(String) - nombre abreviado del servicio.
hours (Integer)* - duración del alquiler
operator (String)* - nombre del operador móvil
urlWebhook (String)* - enlace para el webhook (no se considera por defecto)
¿Qué es webHook?* parámetro opcional. Si no se especifica, se aplicará el valor predeterminado
TIPO DE RETORNO:
Parámetros:
countryId(Integer) - identificador del país.
operatorSet(Conjunto) - conjunto de operadores móviles
hours (Integer)* - duración del alquiler
* parámetro opcional. Si no se especifica, se aplicará el valor predeterminado
TIPO DE RETORNO:
Parámetros:
rentId (Integer) - identificador del número alquilado
En lugar de rentId, puedes pasar el objeto de clase resultante SMSActivateRentActivation después de usar el método getRentNumber
TIPO DE RETORNO:
API de correo electrónico
Descripción de los estados de la API
3 - En espera
4 - Cancelado
5 - Éxito
DESCRIPCIÓN:
Mayor cumplimiento de los principios de la API REST y un mayor número de buzones de gmail.com para registrar cuentas de Telegram.
Parámetros:
$api_key - Clave de API
$site- El sitio para el que necesitas un correo electrónico
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status":"OK",
"response":{
"zones":[
{
"name":"info",
"cost":2.5
},
...
],
"popular":[
{
"name":"mail.ru",
"cost":6,
"count":159008
},
...
]
}
}
POSIBLES ERRORES:
BAD_SITE- Sitio no especificado
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
Parámetros:
$api_key - Clave de API
$site - el sitio para el que necesitas un correo electrónico
$mail_type - tipo de correo: dominios o zonas populares (1 - zonas, 2 - populares)
$mail_domain - zona o dominio elegido
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status":"OK",
"response":{"email":"[email protected]","id":241}
}
POSIBLES ERRORES:
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
MAIL_TYPE_ERROR - no existe dicho dominio para el sitio especificado
CHANNELS_LIMIT - cuenta bloqueada
Parámetros:
$api_key - Clave de API
$id- ID del correo cuya reactivación es necesaria
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status": "OK",
"response": {
"email": "[email protected]",
"id": 360
}
}
POSIBLES ERRORES:
BAD_KEY - clave API no válida
BAD_ACTION - acción incorrecta
BLOCKED_SITE - sitio web bloqueado
BAD_BALANCE - fondos insuficientes
ACTIVATION_NOT_FOUND - activación no encontrada
CHANNELS_LIMIT - cuenta bloqueada
Parámetros:
$api_key - Clave de API
$page- número de página
$per_page- número de compras por página
$search- barra de búsqueda
$sort- dirección de ordenación (desc, asc)
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status":"OK",
"response":{
"list":[
{
"id":"241",
"site":"apple.com",
"email":"[email protected]",
"status":"3",
"value":null,
"cost":"6.00",
"date":"2023-10-06 14:24:13",
"full_message":""
}
],
"pages":1,
"count":1
}
}
Parámetros:
$api_key - Clave de API
$id- ID de compra
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status":"OK",
"response":true
}
POSIBLES ERRORES:
EARLY_CANCEL_DENIED - No puedes cancelar el correo durante los primeros 2 minutos.
Parámetros:
$api_key - Clave de API
$id- ID del correo electrónico comprado; se devuelve tras la compra
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status":"OK",
"response":{
"value":"Содержания письма"
}
}
Software para socios de API
Parámetros:
$api_key - Clave de API
$id- ID del software que necesitas comprar
RESPUESTA:
La respuesta del servicio estará en formato JSON, ejemplo:
{
"status": "success",
"key": "F5qrzFoY6afj3zrEq7SeMplbx",
"manual": "Software download link:"
}
POSIBLES ERRORES:
BAD_DATA - ID incorrecto o el ID no es un número
BAD_ACTION - acción no válida o el revendedor no está verificado.
<?php
include_once ("smsactivateApi.php");//Inclusion of a class in a project
$sms = new SMSActivate($API_KEY);//Create class instance SMSActivate
$freeSlots = $sms->getNumbersStatus(0, 'tele2');//Get the number of available numbers for the country of Russia and the tele2 operator
echo "Номеров Вконтакте: " . $freeSlots['vk']."\n";//Show for Vk
echo "Номеров Whatsapp: " . $freeSlots['wa']."\n";//Show for whatsapp
var_dump($freeSlots); //Show all services with quantity
$array=$activate->getTopCountriesByService(); //Get an array whose elements contain information for each country
$balance = $sms->getBalance();//Get balance
echo "On the account " . $balance." rub.\n";//Show balance
$balance = $sms->getBalanceAndCashBack();//Request a balance with cashback account
echo "On the account " . $balance." rub.\n";//Request a balance with cashback account
$operators = $sms->getOperators();
//Get operators for all countries
if (in_array('mts', $operators['countryOperators'][0])) {
//check if 'mts' is available for Russia
//perform an action
}
if (in_array('chinamobile', $operators['countryOperators'][3])) {
//check if 'chinamobile' is available for China
//perform an action
}
$activations = $sms->getActiveActivations();
$number = $sms->getNumber('ok',0, 0, 'tele2');//Get Odnoklassniki number without forwarding
echo "Activation № " . $number['id']. "Phone ". $number['number'] \n";//Show id and activation number
$result = $sms->getNumber('vk', 0 , 1);
if (!is_array($result)) {
echo 'Ошибка: ' . $result . '\n';//If an error occurs, a string will be returned, if successful, an array will be returned.
} else {
echo 'Id: ' . $result['id'] ."\n";
echo 'Номер: ' . $result['number'] ."\n";
}
$result = $sms->getNumberV2('vk', 0 , 1);
$number = $sms->getMultiServiceNumber('ok,vk,vi,av','0,0,0,1', 0, 'tele2');//Get a number for services Odnoklassniki, Vkontakte, Viber without call forwarding and Avito with call forwarding
foreach ($number as $value) {
echo "Activation № " . $value['activation']. " for service ". $value['service'] ."\n";
}
echo "Number " . $value['phone'] ."\n";//Show activation id and number
$status = $sms->setStatus($number['id'], 3);//Change activation status by id (get 1 more code)
$status = $sms->getStatus($number['id']);//Get activation status by id
if (is_array($status) {
echo "статус : " . $status['status'];//Can be STATUS_OK or STATUS_WAIT_RETRY, otherwise a line with error text will be returned
echo "код: " . $status['code'];
} else {
echo $status ."\n";
}
$incomingCall = $sms->getIncomingCallStatus($id);//Get activation data by call
echo $incomingCall['phone'] //Show incoming number
$prices = $sms->getPrices(1, 'vk');//Get the current price for the service
echo "Price for VK (Ukraine) : " .$prices[1]['vk']['cost']." rub. quantity: ". $prices[1]['vk']['count'];//Show the result
$countries = $sms->getCountries();//Get a list of all countries
$additional = $sms->getAdditionalService('fx', $id);//Get additional activation for PGbonus service based on id activation
echo "Activation no.: " . $additional[id] . " Telephone: " . $additional[number];//Show the result
$getAvailableRentNumbers = $sms->getRentServicesAndCountries('2');//Request available countries for rent and services (for 2 hours for all operators)
echo "Full rental - Cost:" . $getAvailableRentNumbers['services']['full']['cost'] . " Quant :" .$getAvailableRentNumbers['services']['full']['quant'] ." \n"; //Display full price information
foreach( $getAvailableRentNumbers['operators'] as $value) {
echo " Operator " . $value ."\n"; }//List operators
$getRentNumber = $sms->getRentNumber('vk','10','0','yota');//Get a number for rent for Vkontakte for 10 hours, operator 'Yota', country - Russia
if ($getRentNumber['status'] === 'success'){
echo "The rental was successful! Your phone number is: " . $getRentNumber['phone']['number']." \nRent expiration : ". $getRentNumber['phone']['endDate']." \nId numbers :" .$getRentNumber['phone']['id'] ; }//Display rental information
else
echo "Error code : " . $getRentNumber['message'];
$getRentStatus = $sms->getRentStatus($getRentNumber['phone']['id']);//Get the rent status with id from the received number
if ($getRentStatus['status'] == 'success'){
foreach( $getRentStatus['values']as $index => $value) {
echo " Message " . $index .": from the number - " . $value['phoneFrom'] . " Service - " . $value ['service'] . "message text - " . $value['text'] . "Date - " . $value['date']; } }//display a list of messages received while renting a phone
else
echo "Error code : " . $getRentStatus['message'];
$setRentStatus = $sms->setRentStatus($getRentNumber['phone']['id'],1);//Set rental status 'finish' with id from received number
if ($setRentStatus['status'] == 'success')
echo " Status change was successful! ";
else
echo "Error code : " . $setRentStatus['message'];
$getRentList = $sms->getRentList();//Get a list of currently rented numbers
if (getRentList['status'] == 'success')
foreach( $getRentList['values'] as $value) {
echo " ID " . $value["id"] . " Number " . $value["phone"] ."\n"; }//List numbers
else
echo "Error code : " . $getRentList['message'];
$result = $sms->continueRentNumber($id);//Extend the lease of activation id for 4 hours (by default)
if ($result['status'] == 'success') {
echo "Number: " . $result['phone']['number']"//Display number
echo "id: " . $result['phone']['id']"//Display activation id
echo "The lease is valid until: " . $result['phone']['endDate']"//Display the date and time of the end of the lease
} else {
echo "Error code : " . $result['msg'];
}
$result = $sms->getContinueRentPriceNumber($id, 12);//Get the cost of renewing the lease to activate the id for 12 hours
if ($result['status'] == 'success') {
echo " Renewal cost " . $result['price'];//Withdraw the cost
} else {
echo "Error code: " . $result['message']; //Display error code
}
from sms-activate.lat import SMSActivateAPI
# SMSActivateAPI Contains all basic tools for working with the SMSActivate API
sa = SMSActivateAPI(API_KEY)
sa.debug_mode = True
# Used for debugging. When debug_mode is active, all responses from the server and class will be output to the console
print(sa.version())
# Returns the current version of the library
status = sa.getNumbersStatus(country=0, operator='tele2')
try:
print(status['vk_0']) # 274789
except:
print(status['message']) # Error text
result = sa.getTopCountriesByService('vk')
try:
print(result[0]['count']) # 2350
except:
print(result['message']) # Error text
balance = sa.getBalance() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # Error text
balance = sa.getBalanceAndCashBack() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # Error text
operators = sa.getOperators(country=0)
try:
print(operators['countryOperators']['0'])
except:
print(operators['error']) # Error status
activations = sa.getActiveActivations()
try:
print(activations['activeActivations'])
except:
print(activations['error']) # Error status
number = sa.getNumber(service='vk', operator='tele2', country=0, verification="true") # {'activation_id': 000000000, 'phone': 79999999999}
try:
print(number['phone']) # 79999999999
except:
print(number['message']) # Error text
number = sa.getNumberV2(service='vk', country=0)
try:
print(number['phoneNumber']) # 79999999999
except:
print(number['message']) # Error text
multinumber = sa.getMultiServiceNumber(service='fb,ig', operator='tele2', country=0) # [{'phone': '79999999999', 'activation': 000000000, 'service': 'fb'}, {'phone': '79999999999', 'activation': 000000001, 'service': 'ig'}]
try:
print(multinumber[0]['phone']) # 79999999999
except:
print(multinumber['message']) # Error text
status = sa.setStatus(id=000000000, status=1) # ACCESS_READY
try:
print(status) # ACCESS_READY
except:
print(status['message']) # Error text
status = sa.getStatus(id=000000000) # STATUS_WAIT_CODE
try:
print(sa.activationStatus(status)) # {'status': 'STATUS_WAIT_CODE', 'message': 'Ожидание смс'}
except:
print(status['message']) # Error text
status = sa.getIncomingCallStatus(id=000000000)
try:
print(status['status']) # 2
except:
print(status['message']) # Error text
prices = sa.getPrices(service='fb', country=0)
try:
print(prices['0']) # {'fb': {'cost': 9, 'count': 27934}}
except:
print(prices['message']) # Error text
countries = sa.getCountries()
try:
print(countries['0']['eng']) # Russia
except:
print(countries['message']) # Error text
service = sa.getAdditionalService(id=000000000, service='ig')
try:
print(service['phone']) # 79999999999
except:
print(service['message']) # Error text
service = sa.getRentServicesAndCountries(time=4, operator='tele2', country=0)
try:
print(service['services']['full']['cost']) # 100.00
except:
print(service['message']) # Error text
rent = sa.getRentNumber(service='ig', time=4, operator='tele2', country=0)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # Error text
status = sa.getRentStatus(000000000)
try:
print(status['values']['0']['text']) # SMS
except:
print(status['message']) # Error text
status = sa.setRentStatus(id=000000000, status=1)
try:
print(status['status']) # success
except:
print(status['message']) # Error text
rent = sa.getRentList()
try:
print(rent['values']['0']['phone']) # 79999999999
except:
print(rent['message']) # Error text
rent = sa.continueRentNumber(id=000000000, time=4)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # Error text
rent = sa.getContinueRentPriceNumber(000000000)
try:
print(status['price']) # 4.00
except:
print(status['message']) # Error text
import ru.sms_activate.SMSActivateApi;//Inclusion of a class in a project
SMSActivateApi smsActivateApi = new SMSActivate("API_KEY");//Create an instance of the SMSActivate class
BigDecimal balance = smsActivateApi.getBalance();//Get the current account balance
System.out.println("Balance: "+ balance)//Withdraw the received balance
SMSActivateGetBalanceAndCashbackResponse smsActivateGetBalanceAndCashbackResponse = smsActivateApi.getBalanceAndCashback();//Get current balance and cashback
System.out.println("Cashback + balance: "+ smsActivateGetBalanceAndCashbackResponse.getBalanceAndCashback());//Withdraw the amount of balance and cashback
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Get activation for the Vkontakte service in Russia
System.out.println(activation);//Withdraw the received activation
SMSActivateGetNumbersStatusResponse smsActivateGetNumbersStatusResponse= smsActivateApi.getNumberStatus(0,null);//Get information about available services for Russia
SMSActivateServiceInfo go = smsActivateGetNumbersStatusResponse.getSMSActivateServiceInfoByShortName("go");//Getting information about numbers for the Google service
System.out.println("Short name service: " + go.getShortName();//Get the short name of the service
System.out.println("count phone numbers: "+ go.getCountPhoneNumber();//Get the number of numbers for the service
System.out.println(""Forwarding is available: "+ go.isForward() ? "yes" : "no"//Find out if the service has a redirect
SMSActivateActivation activation=smsActivateApi.getNumbersStatus(0,"ot",true);//Activations
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Setting the MESSAGE_WAS_SENT status after sending SMS for the number
SMSActivateActivation childActivation =smsActivateApi.getAdditionalService(activation,"av");//Requesting a new activation for an additional service
System.out.println(childActivation);//Displaying information about additional activation
Set<String>operatorSet= new HashSet<>();
operatorSet.add("mts");//Adding an MTS operator to the set of operators
Map<String,Boolean>serviceMap= new HashMap<>();
serviceMap.put("av",false);//Adding the Avito service to the list of services (specify true if you need a service with redirection)
SMSActivateGetMultiServiceNumberResponse multiServiceNumberResponse=smsActivateApi.getMultiServiceNumber(0, serviceMap, operatorSet);//Getting activation for multiple services
multiServiceNumberResponse.getSMSActivateActivationList().forEach(activation->{
System.out.println("Id: " + activation.getId());
System.out.println("Number: " + activation.getNumber());
System.out.println("Service name: " + activation.getShortName());
}
//Displaying information about received activations
SMSActivateGetPricesResponse smsActivateGetPricesResponse=smsActivateApi.getPricesByCountryIdAndServiceShortName(0, "vk");//Obtaining a list of prices for Russia on the Vkontakte service. For a complete list of prices, use the getAllPrices () method;
SMSActivateGetPriceInfo vk=smsActivateGetPricesResponse.getPriceInfo(0, "vk");//Getting information about the Vkontakte service for Russia
System.out.println(">>> Cost: "+ vk.getCost());//Get a price for the service
System.out.println(">>> count phone numbers: " + vk.getCountPhoneNumbers());//Get the number of numbers for the service
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Get activation for the Vkontakte service in Russia
System.out.println(activation);//Withdraw the received activation
SMSActivateGetStatusResponse getResponse = smsActivateApi.getStatus(activation);//Getting a status for activation
System.out.println(getResponse.getSMSActivateGetStatus());//Displaying information about the activation status
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Setting the MESSAGE_WAS_SENT status after receiving SMS for the number
smsActivateApi.setStatus(activation, SMSActivateClientStatus.FINISH);//Setting the FINISH status after receiving SMS for the number
SMSActivateGetCountriesResponse smsActivateGetCountriesResponse =smsActivateApi.getCountries();//Getting a list of countries with information
SMSActivateCountryInfo countryInfo = smsActivateGetCountriesResponse.get(0)//Getting information about the first country on the list
System.out.println("Russian name: "+countryInfo.getRussianName();//Display the Russian name of the country
System.out.println("English name: "+countryInfo.getEnglishName();//Display the Russian name of the country
System.out.println("Support multi-service: "+ countryInfo.isSupportMultiService() ? "yes" : "no"//Show if the country supports multi-services
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Get activation for the Vkontakte service in Russia
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Setting the MESSAGE_WAS_SENT status after sending SMS for the number
String code=smsActivateApi.waitSms(activation,2)//Set receiving sms within 2 minutes
if(code == null) {
smsActivateApi.setStatus(activation, SMSActivateClientStatus.CANCEL);//Setting the CANCEL status if sms has not arrived
}
else{
SMSActivateGetFullSmsResponse smsActivateGetFullSmsResponse=smsActivateApi.getFullSms(activation)//Receiving sms text
System.out.println("Full SMS: "+smsActivateGetFullSmsResponse.getText());//SMS text output
}
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk", 6);//Getting a number with rent
System.out.println(">> ID: "+rentActivation.getId());//Activation ID withdrawal
System.out.println(">> Number: "+rentActivation.getId());//Displaying the activation number
System.out.println(">> End date: "+rentActivation.getId());//Displaying the activation expiration date
SMSActivateGetRentServicesAndCountriesResponse smsActivateGetRentServicesAndCountriesResponse= smsActivateApi.getRentServicesAndCountries(0, null, 4);//Obtaining information on services and countries that support rental
smsActivateGetRentServicesAndCountriesResponse.getAllRentServices().forEach((serviceShortName, smsActivateRentService)->{
System.out.println("Service shortname: " + serviceShortName);
System.out.println(" count phone numbers: " + smsActivateRentService.getCountPhoneNumbers());
System.out.println(">> Cost: " + smsActivateRentService.getCost());
}
//Displaying information about received services
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk");//Getting a number with rent
SMSActivateGetRentStatusResponse smsActivateGetRentStatusResponse= smsActivateApi.getRentStatus(rentActivation);//Getting activation status
System.out.println(">> Count sms: "+ smsActivateGetRentStatusResponse.getCountSms());//Displaying the number of sms on the rented number





















































