Grand SMS
Документация API

Документация API

Начните с одного запроса

14 · Команды APIREST + handler_api.phpJSON / plain text · Bearer

Создайте API-ключ в кабинете, получите номер и проверяйте сообщения каждые 10 секунд. Вознаграждение начисляется при получении SMS с кодом; повторное чтение не влияет на баланс.

REST APIhttps://smscash.org/api/v1
Базовый URL совместимого APIhttps://smscash.org/stubs/handler_api.php
Сервис запущенПолучение номеров, SMS и начисления работают. Вывод средств доступен в USDT через сеть TRC20. Срок выплаты — от 1 до 45 дней.
Пример запроса · cURL
curl --get 'https://smscash.org/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumber' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86'

Альтернативный адрес совместимого интерфейса: /handler_api.php. Существующие REST-интеграции продолжают работать.

API

Конструктор запросов

cURL · Go · JS · Python
Базовый URL совместимого APIhttps://smscash.org/stubs/handler_api.php
cURL
curl --max-time 15 --fail-with-body 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'

Ключ не сохраняется. Проверка не выдаёт номера.

REST для новых интеграций

Сервисы и страны

Выберите сервис и страну. Оплата за SMS зависит от страны.

REST
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "offer_id": 42,
      "service": "go",
      "service_name": "Google",
      "country_id": 86,
      "country_name": "Italy",
      "provider_id": 1,
      "operator": 1,
      "provider_name": "operator=1",
      "reward": "0.00300000",
      "currency": "USD",
      "accounting_precision": 8,
      "earnings_hold_days": 45
    }
  ],
  "page": 1,
  "page_size": 100,
  "total": 1,
  "pages": 1,
  "has_more": false,
  "accounting_precision": 8
}

service · country · operator · q · page · page_size (1–100)

Получить номер
handler_api.php
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86

Автовыбор: случайный доступный оператор.

REST
ACCESS_NUMBER: session ID · phone number
service + country · session_duration: 20
ref: software owner code (optional)
operator: public ID (e.g. 1) or comma-separated IDs (e.g. "1,3")
optional · omitted/any/0: random eligible provider
country: integer · service: string · SMS code: string

Номер действует 20 минут. Проверка SMS — каждые 10 секунд. Отмена доступна сразу.

Проверка нескольких номеров
REST
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "id": 42,
      "found": true,
      "phone": "12025550123",
      "status": "received",
      "service": "go",
      "country_id": 86,
      "provider_id": 1,
      "operator": 1,
      "expires_at": "2026-10-10T12:15:00Z",
      "sms_count": 1,
      "code": "001234",
      "last_sms": {
        "id": 101,
        "code": "001234",
        "sender": "Service",
        "text": "Code: 001234",
        "received_at": "2026-10-10T12:01:00Z"
      }
    },
    {
      "id": 43,
      "found": false,
      "error": {
        "code": "NO_ACTIVATION",
        "message": "Session not found."
      }
    }
  ],
  "as_of": "2026-10-10T12:01:00Z",
  "poll_interval_seconds": 10
}
REST
ids: 1–100 positive session IDs, separated by commas
Input order preserved · duplicates removed
Foreign, unavailable or out-of-scope IDs: found=false
Read only · no supplier requests · last_sms is the latest message
Баланс · В холде
REST
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY
JSON
{
  "currency": "USD",
  "accounting_precision": 8,
  "balance": "12.00000000",
  "held_balance": "34.50000001",
  "balance_minor": "1200000000",
  "held_minor": "3450000001",
  "as_of": "2026-10-12T20:00:00Z",
  "next_release_at": "2026-11-26T20:00:00Z"
}

balance — Доступно; held_balance — В холде. USD · 8

Вывести можно только средства, у которых завершён холд.

Готовые клиенты

JavaScript · Node.js 18+
import {SmScash, SmScashError} from './smscash.mjs';

const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);

const messages = await api.sms(42, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([42]);
const held = await api.holdBalance();
console.log(held); // Exact USD string
Python 3.9+
import os
from smscash import SmScash, SmScashError

api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])

messages = api.sms(42, after_id=0)
print(messages['sms'])
statuses = api.batch([42])
held = api.hold_balance()
print(held) # Exact USD string
SDK
me() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
setStatus(id, "cancel") / set_status(id, "cancel")
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.

SMS-Activate / HeroSMS

SMS-Activate · Базовый URL совместимого APIhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · Базовый URL совместимого APIhttps://smscash.org/hero-sms/stubs/handler_api.php

Личный API-ключ пользователя.

Выберите сервис и страну. Оплата за SMS зависит от страны.

КодОписание
getNumber / getNumberV2Получить номер
getStatus / getStatusV2Получить последний код
setStatus / finishActivation / cancelActivationУправлять сессией
getPrices / getNumbersStatusПроверить наличие
getRewards (SMScash)Вознаграждение за SMS
getServicesList / getServicesСервисы
getCountries / getOperatorsСервисы и страны
getActiveActivationsСессии
getBalanceБаланс пользователя
getHoldBalance (SMScash)В холде

cost = 0 USD · activationCost = 0 USD
reward — Вознаграждение за SMS

HeroSMS · cURL
curl --get 'https://smscash.org/hero-sms/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumberV2' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86'
Ответы
{
  "activationId": "42",
  "phoneNumber": "393331234567",
  "activationCost": 0,
  "currency": 840,
  "countryCode": 86,
  "canGetAnotherSms": true,
  "activationTime": "2026-10-11T12:00:00Z",
  "activationEndTime": "2026-10-11T12:15:00Z",
  "reward": "0.00300000"
}
SMS-Activate / HeroSMS
GET or POST application/x-www-form-urlencoded
api_key · action · service · country · ref (optional)
setStatus: 1 → ACCESS_READY · 3 → ACCESS_RETRY_GET
           6 → ACCESS_ACTIVATION · 8 → ACCESS_CANCEL
getStatus: STATUS_WAIT_CODE · STATUS_OK:001234 · STATUS_CANCEL
getStatusV2: {"verificationType":1,"sms":null,"call":null}
getServicesList: {"status":"success","services":[{"code":"go","name":"Google"}]}
getCountries: {"86":{"id":86,"eng":"Italy","visible":1,"retry":1,"rent":0}}
getPrices: {"86":{"go":{"cost":0,"count":12,"reward":"0.00300000","currency":"USD"}}}
getRewards: {"59":{"vi":{"1":"0.01000000"}}}
getRewards filters: country · service · operator (optional, e.g. 1,3); any/0: all permitted providers
getActiveActivations: start=0 · limit=1–100 · activeActivations / data
Business/key errors: HTTP 200 + plain text · server errors: HTTP 500
Availability: actual supplier pool, shared cache up to 20 s; not a reservation
No automatic retries after a transport error or ALLOCATION_UNCERTAIN.
Unsupported: rent · calls · forwarding · multiple services per number · prolong
Unsupported options return BAD_REQUEST; unsupported actions return BAD_ACTION.
SMScash keys and country/service codes; configure this base URL in your software.

Номер действует 20 минут. Проверка SMS — каждые 10 секунд. Отмена доступна сразу.

Авторизация и повторы

REST: заголовок Authorization: Bearer YOUR_API_KEY. Совместимый интерфейс: параметры api_key и action. Используйте HTTPS.

Для управления API-ключами войдите в кабинет.

∞запросов / мин на аккаунт
∞одновременных сессий

Частота запросов и количество номеров не ограничены. Суточных и часовых квот нет.

Номер действует 20 минут. Проверка SMS — каждые 10 секунд. Отмена доступна сразу.

Область API-ключа

Ключ можно привязать к сервисам, странам и поставщикам. Пустые списки разрешают все доступные варианты.

JSON
{
  "label": "Мой софт",
  "policy": {
    "services": [
      "go"
    ],
    "countries": [
      86
    ],
    "providers": [
      1
    ]
  }
}

PATCH /api/v1/keys/{id} меняет имя и policy целиком. Секрет показывается только при создании.

10% суммарно. 5% + 5% с кодом софта.

При выдаче номера передавайте ref владельца софта. Запрос авторизуется ключом пользователя. Код находится в разделе «Рефералы» и в GET /api/v1/referrals → software_ref.

ЗапросПригласившемуСофт
Без ref10%—
С ref5%5%
С ref, пригласившего нет—5%

Бонус платит платформа, доход пользователя не уменьшается. Владелец софта и пригласивший могут совпадать. Собственный код пользователя недопустим.

Условия фиксируются при создании сессии; чтение SMS и retry их не меняют. В новой повторной сессии ref передаётся заново. В расчёте тарифа при 0,003 USD пользователю софт и пригласивший получают по 0,00015 USD. Общий бонус — 0,00030 USD.

Команды API

11 методов по образцу XVBC и баланс SMScash.

GETgetNumberПолучить номер

Создаёт сессию и закрепляет свободный номер за пользователем. Тариф и получатели реферальных долей фиксируются при выдаче, а вознаграждение начисляется после получения SMS с кодом.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
service*stringДоступные коды сервисов. Ответ ограничен областью API-ключа.
country*integerВозьмите ID из getCountries.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0
session_durationintegerСрок сессии — 20 минут. Передайте 20 или пропустите параметр.
with_operatorinteger1 добавляет ID оператора в ответ; 0 или отсутствие — три сегмента.
refstringПубличный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются.

* Обязательный параметр. Во всех запросах также передавайте action=getNumber.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'

Ответы

Номер выдан
ACCESS_NUMBER:42:380670000000:1
Нет свободных номеров
EMPTY_POOL
  • Автовыбор: случайный доступный оператор.
  • Числовая страна без пула даёт EMPTY_POOL; ошибочный формат country — BAD_COUNTRY.
  • Ключ удалённой сессии остаётся использованным: повтор выдачи с этим ключом возвращает SESSION_CLOSED и не выдаёт новый номер.
  • Результат выдачи не подтверждён. Автоматический повтор отключён, чтобы не выдать второй номер.
GETgetNumbersStatusПроверить наличие

Количество доступных номеров по сервисам и стране.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
country*integerВозьмите ID из getCountries.

* Обязательный параметр. Во всех запросах также передавайте action=getNumbersStatus.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'

Ответы

Свободные номера
{
  "go_0": 0
}
  • Суффикс _0 означает выбор без конкретного оператора.
  • Наличие относится к общему пулу поставщика. Доступность выбранного канала проверяется при выдаче номера.
GETgetStatusПолучить последний код

Лёгкий запрос состояния сессии и последнего SMS-кода. Начальные нули в коде сохраняются.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
id*integerID вашей сессии, полученный при выдаче номера.

* Обязательный параметр. Во всех запросах также передавайте action=getStatus.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'

Ответы

Ожидание
STATUS_WAIT_CODE
Код получен
STATUS_OK:001234
Отмена или истечение
STATUS_CANCEL
Не найдено
NO_ACTIVATION
  • Опрашивайте раз в 20 секунд. Повторное чтение не начисляет деньги.
  • После retry старый код не возвращается: getStatus ждёт следующее SMS.
  • После удаления номера без SMS getStatus и getSms возвращают STATUS_CANCEL, getSmsFull — закрытый статус, пустой phone и пустой sms. REST /activations/{id} и /sms возвращают 404 NO_ACTIVATION.
GETsetStatusУправлять сессией

Завершает, отменяет или возобновляет ожидание SMS. Срок сессии остаётся прежним.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
id*integerID вашей сессии, полученный при выдаче номера.
status*integer3 — ждать следующий код без продления; 6 — завершить после SMS; 8 — отменить сразу.

* Обязательный параметр. Во всех запросах также передавайте action=setStatus.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3'

Ответы

Ожидание SMS
ACCESS_RETRY_GET
Завершена
ACCESS_ACTIVATION
Отменена
ACCESS_CANCEL
  • Retry ждёт следующий код в пределах исходных 20 минут. Время выдачи и истечения не меняется.
  • Отмена не списывает уже заработанные средства.
  • В истории сохраняются только номера с SMS-кодом. Отменённые и истёкшие номера без кода удаляются.
GETgetRepeatNumberВыдать прежний номер снова

Открывает новую сессию с конкретным номером из вашей истории. Можно выбрать другой доступный сервис той же страны.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
number*stringВаш прежний номер. Допустимы только цифры и необязательный начальный +.
service*stringДоступные коды сервисов. Ответ ограничен областью API-ключа.
session_durationintegerСрок сессии — 20 минут. Передайте 20 или пропустите параметр.
with_operatorinteger1 добавляет ID оператора в ответ; 0 или отсутствие — три сегмента.
refstringПубличный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Обязательный параметр. Во всех запросах также передавайте action=getRepeatNumber.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go'

Ответы

Новая сессия
ACCESS_NUMBER:43:380670000000
Номер ещё занят
NUMBER_IN_USE
  • Сначала завершите или отмените текущую сессию. При занятом номере повторная выдача не выполняется.
  • Новая сессия получает новый ID и текущий тариф. Старые SMS в неё не копируются. ref задаётся заново.
  • SMScash разрешает повтор только номеров из истории этого аккаунта. Страна определяется по номеру.
  • Ключ удалённой сессии остаётся использованным: повтор выдачи с этим ключом возвращает SESSION_CLOSED и не выдаёт новый номер.
GETgetSmsFullПолучить SMS в JSON

Структурированная история всех сообщений с ID, отправителем, кодом, текстом и данными страны, сервиса и поставщика.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
id*integerID вашей сессии, полученный при выдаче номера.

* Обязательный параметр. Во всех запросах также передавайте action=getSmsFull.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'

Ответы

JSON
{
  "success": true,
  "session_id": 42,
  "phone": "380670000000",
  "status": 1,
  "status_name": "received",
  "sms_count": 1,
  "sms": [
    {
      "id": 101,
      "external_id": "message-101",
      "sender": "Service",
      "code": "001234",
      "text": "Код подтверждения: 001234",
      "received_at": "2026-10-09T12:00:00Z",
      "country": {
        "id": 86,
        "name": "Italy"
      },
      "service": {
        "code": "go",
        "name": "Google"
      },
      "provider": {
        "id": 1,
        "name": "operator=1"
      }
    }
  ],
  "expires_at": "2026-10-09T12:20:00Z"
}
  • Предпочтительный формат для интеграции. Запоминайте sms[].id, чтобы обрабатывать только новые сообщения.
  • Числовой status SMScash: 1 — активна, 6 — завершена, 8 — отменена или истекла. status_name различает waiting, received, finished, canceled, expired.
  • История полученных кодов доступна после закрытия сессии. Для большого потока используйте REST /activations/{id}/sms с after_id.
  • После удаления номера без SMS getStatus и getSms возвращают STATUS_CANCEL, getSmsFull — закрытый статус, пустой phone и пустой sms. REST /activations/{id} и /sms возвращают 404 NO_ACTIVATION.
GETgetSmsПолучить SMS текстовой строкой

Возвращает всю историю SMS в строковом формате для существующих клиентов.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
id*integerID вашей сессии, полученный при выдаче номера.

* Обязательный параметр. Во всех запросах также передавайте action=getSms.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'

Ответы

Сообщение
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234
Ожидание
STATUS_WAIT_CODE
Отмена или истечение
STATUS_CANCEL
  • Формат сообщения: время|код|текст. Несколько сообщений разделяются двоеточием.
  • Текст SMS сам может содержать двоеточия и вертикальные черты. Для надёжного разбора используйте getSmsFull.
GETgetServicesСервисы

Доступные коды сервисов. Ответ ограничен областью API-ключа.

Справочник

Загрузка…

JSON ↗

Справочник сервисов общий для поставщика. Наличие номеров проверяется отдельно.

Ключ можно привязать к сервисам, странам и поставщикам. Пустые списки разрешают все доступные варианты.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
countryintegerВозьмите ID из getCountries.

* Обязательный параметр. Во всех запросах также передавайте action=getServices.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'

Ответы

Сервисы
{
  "go": {
    "name": "Google",
    "code": "go"
  }
}
  • Справочник сервисов общий для поставщика. Наличие номеров проверяется отдельно.
GETgetCountriesСтраны

ID, название и телефонный префикс стран выбранного канала.

Справочник

Загрузка…

JSON ↗

Ключ можно привязать к сервисам, странам и поставщикам. Пустые списки разрешают все доступные варианты.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.

* Обязательный параметр. Во всех запросах также передавайте action=getCountries.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'

Ответы

Страны
{
  "86": {
    "id": 86,
    "name": "Italy",
    "phone_code": "39"
  }
}
GETgetOperatorsОператоры

Доступные операторы: ID для API, название и срок холда.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
countryintegerВозьмите ID из getCountries.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Обязательный параметр. Во всех запросах также передавайте action=getOperators.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'

Ответы

Операторы
{
  "1": {
    "id": 1,
    "provider_id": 1,
    "operator": 1,
    "name": "operator=1",
    "earnings_hold_days": 45
  }
}
  • Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsВознаграждение за SMS

Цена зависит от страны. Все суммы в таблице — за одно оплаченное SMS.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
countryintegerВозьмите ID из getCountries.
servicestringДоступные коды сервисов. Ответ ограничен областью API-ключа.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Обязательный параметр. Во всех запросах также передавайте action=getRewards.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'

Ответы

JSON
{
  "59": {
    "vi": {
      "1": "0.01000000",
      "3": "0.00500000"
    }
  }
}
{}
{}
  • Тарифы в USD передаются точными строками с 8 знаками после точки:
  • Включённые поставщики, доступные вашему ключу.
  • country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису

До 10 стран с лучшей доставкой смс кодов за последние 24 часа

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.
service*stringКод сервиса из getServices.

* Обязательный параметр. Во всех запросах также передавайте action=getTopCountriesByService.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go'

Ответы

Структура ответа

Ключ в примереОписаниеСправочник
["12"], ["36"]ID страны
Первый, внешний уровень JSON. Каждая запись объединяет операторов одной страны.
getCountries
["12"]["1"], ["12"]["3"]ID оператора
Второй уровень JSON, внутри страны. Это публичный ID оператора (поставщика), который передаётся в параметре operator.
getOperators
JSON
{
  "12": {
    "1": {
      "reward": 0.012,
      "count": 542
    },
    "3": {
      "reward": 0.014,
      "count": 301
    }
  },
  "36": {
    "1": {
      "reward": 0.011,
      "count": 190
    }
  }
}
{}
{}
  • В примере ["12"]["1"] — данные оператора 1 в стране 12. ID стран берутся из getCountries, ID операторов — из getOperators.
  • reward — действующее личное вознаграждение в USD, JSON-число. count — количество выданных номеров за последние 24 часа, включая сессии без кода.
  • Рейтинг рассчитывается как все полученные непустые коды, делённые на все выдачи номеров за последние 24 часа для выбранного сервиса.
  • Повторные непустые коды увеличивают числитель; конверсия может превышать 100%. Начальные нули сохраняются.
  • Суточная статистика сервиса кэшируется на 10 минут. Тарифы и ограничения ключа проверяются при каждом запросе. Момент среза — в заголовке X-Statistics-As-Of.
  • Нет данных или доступных связок — пустой объект {}. Страны с выдачами и нулём кодов имеют нулевую конверсию. Порядок ключей JSON не задаёт места в рейтинге.
GETgetBalanceБаланс пользователя

Дополнение SMScash: доступный баланс с учётом начислений, реферальных бонусов и заявок на выплату.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.

* Обязательный параметр. Во всех запросах также передавайте action=getBalance.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'

Ответы

Баланс
ACCESS_BALANCE:0.00
  • getBalance возвращает доступный баланс в USD с точностью до 8 знаков.
  • Вывести можно только средства, у которых завершён холд.
GETgetHoldBalanceВ холде

После получения SMS начисление уходит в холд на срок поставщика. В указанную дату сумма автоматически становится доступной для вывода.

Параметры

ПараметрТипОписание
api_key*stringЛичный API-ключ пользователя.

* Обязательный параметр. Во всех запросах также передавайте action=getHoldBalance.

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

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'

Ответы

В холде
ACCESS_HOLD_BALANCE:34.50000001
  • SMScash · getHoldBalance · USD · 8
  • Вывести можно только средства, у которых завершён холд.

Коды ответа и повторные запросы

В handler_api.php бизнес-исходы обычно приходят с HTTP 200. Проверяйте текст тела. Справочники и getSmsFull при успехе возвращают JSON; ошибки всегда текстовые.

КодHTTPПричина и действие
TARIFF_NOT_CONFIGURED200Тарифы ещё не заданыВыдача номеров начнётся после настройки вознаграждения за SMS.
COUNTRY_BLOCKED200Получение номеров этой страны заблокировано.Выберите другую страну.
BAD_SERVICE200Этот сервис заблокирован для получения номеров.Выберите другой сервис.
PROVIDER_NOT_READY200Выдача номеров временно недоступнаОбновите справочники.
BAD_KEY400Нет api_key или неверный формат.Проверьте ключ в запросе.
INVALID_API_KEY401Ключ неизвестен, отозван или аккаунт отключён.Выпустите действующий ключ.
BAD_COUNTRY400country отсутствует или не является положительным числом.Возьмите ID из getCountries.
BAD_SESSION_DURATION400Номер выдаётся ровно на 20 минут.Исправьте session_duration.
BAD_REQUEST400Проверьте поля запроса.Исправьте запрос.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200Неизвестный или отключённый элемент каталога.Обновите справочники.
BAD_NUMBER200Неправильный формат номера.Передайте номер цифрами.
BAD_ACTION / BAD_STATUS200Неизвестная команда, ID или операция.Проверьте параметры.
EMPTY_POOL200Подходящих свободных номеров сейчас нет.Повторите через 10–30 секунд или смените фильтры.
NUMBER_IN_USE200Конкретный номер занят активной сессией.Завершите свою сессию либо выберите другой номер.
NO_ACTIVATION200Сессия или прежний номер не принадлежат вашему аккаунту.Проверьте ID и ключ.
SESSION_CLOSED / SMS_REQUIRED200Переход состояния сейчас недоступен.Проверьте состояние и наличие SMS.
SCOPE_BLOCKED200Сервис, страна или поставщик не разрешены ключу.Исправьте область ключа.
INTERNAL_ERROR500Временная ошибка сервера или поставщика.Контакты и техподдержка · X-Request-ID
ALLOCATION_PENDING200ОжиданиеgetActiveActivations · getStatus
ALLOCATION_UNCERTAIN200Результат выдачи не подтверждён. Автоматический повтор отключён, чтобы не выдать второй номер.Результат выдачи не подтверждён. Автоматический повтор отключён, чтобы не выдать второй номер.

REST возвращает объект {"error":{"code":"…","message":"…"}} и обычные HTTP-статусы 400/401/403/404/409/503.

JSON
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Проверьте поля запроса.",
    "request_id": "req_…",
    "hint": "Use the documented JSON type; numbers must not be quoted.",
    "retryable": false,
    "details": {
      "field": "country",
      "expected": "integer"
    }
  }
}
REST
X-Request-ID: included in every API response
405: Allow lists the supported HTTP methods
ALLOCATION_PENDING: retryable=true · Retry-After=3 · same operation key
ALLOCATION_UNCERTAIN: retryable=false · contact support
Transport errors: check the operation before another write; keep the original key.

REST для новых интеграций

Тарифы в USD передаются точными строками с 8 знаками после точки: 0.00300000 USD.

Валюта баланса — USD. Схемы запросов и ответов находятся в OpenAPI.

Вывод в USDT · TRC20Срок выплаты — от 1 до 45 дней. Комиссия за вывод — 4 $. Она удерживается из суммы заявки. После получения SMS начисление уходит в холд на срок поставщика. В указанную дату сумма автоматически становится доступной для вывода. Вывести можно только средства, у которых завершён холд.
GET/api/v1/catalogСервисы и страны
GET/api/v1/tariffsВознаграждение за SMS по странам
GET/api/v1/offersТарифы и вознаграждения
GET/api/v1/servicesСправочник
GET/api/v1/countriesСправочник
GET/api/v1/operatorsСправочник
GET/api/v1/availability?country=1Наличие номеров
POST/api/v1/activationsНовая сессия
GET/api/v1/activations/batch?ids=42,43Проверка нескольких номеров
GET/api/v1/activationsПоследние 200 сессий: scope=history, waiting или all
GET/api/v1/activations/{id}Сессия и сообщения
GET/api/v1/activations/{id}/sms?after_id=0&limit=100Новые SMS с курсором
POST/api/v1/activations/{id}/retryОжидание SMS
POST/api/v1/activations/{id}/finishЗавершение
POST/api/v1/activations/{id}/cancelОтмена
POST/api/v1/activations/repeatПовторная выдача номера
GET/api/v1/keysAPI-ключи
POST/api/v1/keysСоздать ключ
PATCH/api/v1/keys/{id}Изменить имя или policy
DELETE/api/v1/keys/{id}Отозвать ключ
GET/api/v1/referralsРеферальный код и доходы
GET/api/v1/summaryБаланс и сводка
GET/api/v1/balanceВ холде
GET/api/v1/ledgerЖурнал начислений
GET/api/v1/withdrawalsЗаявки на выплату
POST/api/v1/withdrawalsСоздать заявку
GET/api/v1/statisticsОбщая статистика
GET/api/v1/earnings/holdsХолд начислений

Получение только новых SMS

REST
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "session_id": 42,
  "sms": [
    {
      "id": 101,
      "code": "001234",
      "text": "Код: 001234",
      "sender": "Service",
      "received_at": "2026-10-09T12:00:00Z"
    }
  ],
  "next_cursor": 101,
  "has_more": false
}

Сохраняйте next_cursor и передавайте его как after_id. Если has_more=true, следующую страницу можно читать сразу. limit: 1–200. Сессии и SMS доступны только владельцу.