Цифри, повідомлення та прибутки прямо з вашого додатка.
SMScash
Документація API
Початок роботи

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

Цифри, повідомлення та прибутки прямо з вашого додатка.

Почніть з одного запиту

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

Створіть ключ API у своєму дашбуку, отримайте число та перевіряйте повідомлення кожні 20 секунд. Оплата буде зарахована, коли прийде SMS з кодом; перегляд його знову не впливає на ваш баланс.

REST APIhttps://smscash.org/api/v1
Сумісність API база URLhttps://smscash.org/stubs/handler_api.php
Сервіс живийТелефонні номери , SMS Прибуток доступний, виведення доступні в USDT На TRC20Платіж між ними 1 і 45 Днів
Швидкий старт · REST / cURL
curl -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  -d '{"service":"go","country":86}'

Альтернативна адреса сумісного інтерфейсу: /handler_api.php. Існуючі інтеграції REST продовжують працювати.

REST API

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

cURL · Go · JS · Python

Idempotency-Key: UUID · POST · 8–128

Автовибір: більше кодів за годину, потім за добу. Немає номерів — наступний оператор.

cURL
curl --max-time 15 --fail-with-body -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  --data '{"service":"go","country":86}'

Ключ не зберігається. Перевірка не видає номери.

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)

Отримати номер
REST
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001

{
  "service": "go",
  "country": 86
}

Автовибір: більше кодів за годину, потім за добу. Немає номерів — наступний оператор.

REST
201: new session · 200: replay of the same operation
service + country OR offer_id · duration_minutes: 20
ref: software owner code (optional)
operator: public ID (e.g. 1 for Operator 1), optional · any/0: automatic
country: integer · service: string · SMS code: string

Це число дійсне протягом 20 хвилин. SMS перевіряється кожні 20 секунд. Ви можете скасувати негайно.

Перевірка кількох номерів
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": 20
}
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';
import {randomUUID} from 'node:crypto';

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

// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD string
Python 3.9+
import os
import uuid
from smscash import SmScash, SmScashError

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

# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD string
SDK
me() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
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 · Сумісність API база URLhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · Сумісність API база URLhttps://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' \
  -H 'Idempotency-Key: request-unique-001'
Відповіді
{
  "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); 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.
Keep the original Idempotency-Key and parameters.
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 перевіряється кожні 20 секунд. Ви можете скасувати негайно.

Авторизація та повторні запити

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

Щоб керувати ключами API, увійдіть у свій обліковий запис.

∞запитів/хв на обліковий запис
∞одночасні сесії

Частота запитів і кількість номерів не обмежені. Добових і погодинних квот немає.

Це число дійсне протягом 20 хвилин. SMS перевіряється кожні 20 секунд. Ви можете скасувати негайно.

У REST унікальний Idempotency-Key необхідний для розподілу номерів, повторного розподілу, retry і запитів на виплату. Це необов’язково, але рекомендовано в handler_api.php. Повторне використання ключа під час повторної спроби мережевого запиту; використовувати новий ключ для нової операції.

Область 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 ще раз для нової сесії. У розрахунку тарифу, винагорода користувача USD 0.003 дається USD 0.00015 кожному власнику програмного продукту та пошуковцю. Загальна бонусна винагорода становить USD 0.00030.

Команди API

11 методів у стилі XVBC плюс баланс SMScash.

GETgetNumberОтримати номер

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

Параметри

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

* Обов'язковий параметр. У всіх запитах також передавайте 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' \
  -H 'Idempotency-Key: request-unique-001'

Відповіді

Номер виданий
ACCESS_NUMBER:42:380670000000:1
Немає доступних номерів
EMPTY_POOL
  • Автовибір: більше кодів за годину, потім за добу. Немає номерів — наступний оператор.
  • Передайте Idempotency-Key: той самий запит із тим самим ключем повертає попередній сеанс. Зміна параметрів викликає IDEMPOTENCY_CONFLICT.
  • Числова країна без пулу дає EMPTY_POOL; неправильний формат країни – 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 повертає статус закритого, порожній телефон та порожню список 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' \
  -H 'Idempotency-Key: request-unique-001'

Відповіді

Чекаю на SMS
ACCESS_RETRY_GET
Виконано
ACCESS_ACTIVATION
Скасовано
ACCESS_CANCEL
  • Повторно спробуйте – чекайте наступний код протягом оригінальних 20 хвилин. Час проблеми та закінчення терміну не змінюються.
  • Для status=3 використовуйте Idempotency-Key: повторення запиту не призведе до скидання нового вже отриманого коду. Історія SMS залишається доступною.
  • Скасування не списує вже зароблені кошти.
  • Лише числа з кодом SMS зберігаються в історії. Ці числа, які були скасовані чи закінчилися, видаляються.
GETgetRepeatNumberВидайте той самий номер знову

Відкриває новий сеанс із певним числом із вашої історії. Ви можете вибрати іншу доступну послугу в тій самій країні.

Параметри

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

* Обов'язковий параметр. У всіх запитах також передавайте action=getRepeatNumber.

Приклад запиту

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go' \
  -H 'Idempotency-Key: request-unique-001'

Відповіді

Нова сесія
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": "Оператор 1"
      }
    }
  ],
  "expires_at": "2026-10-09T12:20:00Z"
}
  • Бажаний формат для інтеграції. Пам’ятайте sms[].id, щоб обробляти лише нові повідомлення.
  • Числовий статус SMScash: 1 - активний, 6 - виконано, 8 - анульовано або минув. status_name розрізняє очікування, отримано, завершено, скасовано, минув.
  • Коди, отримані раніше, залишаються доступними після закінчення сесії. Для великих обсягів використовуйте REST /activations/{id}/sms з after_id.
  • Після видалення числа без SMS, getStatus та getSms повертаються до STATUS_CANCEL; getSmsFull повертає статус закритого, порожній телефон та порожню список 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.

Параметри

ПараметрТипопис
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-типи, назви та коди дзвінків для країн у обраному каналі.

Параметри

ПараметрТипопис
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). operator=1 · 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": "Оператор 1",
    "earnings_hold_days": 45
  }
}
  • Візьміть ID від operators/getOperators (API).
GETgetRewardsНагорода за SMS

Ціни залежать від країни. Усі суми в таблиці – це за оплачений SMS.

Параметри

ПараметрТипопис
api_key*stringОсобистий API-ключ користувача.
countryintegerВізьміть ID від getCountries.
servicestringДоступні сервісні коди. Відповідь обмежена областю клавіші API.
operatorstringВізьміть ID від operators/getOperators (API). operator=1 · 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)
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Розподіл номерів тимчасово недоступнийОновіть каталоги API.
BAD_KEY400Немає api_key або недійсний формат.Перевірте ключ у запиті.
INVALID_API_KEY401Ключ невідомий, відкликаний або обліковий запис вимкнено.Створіть дійсний ключ API.
BAD_COUNTRY400країна відсутня або не додатне число.Візьміть ID від getCountries.
BAD_SESSION_DURATION400Номери телефонів випускаються на точно 20 хвилин.Правильно session_duration.
BAD_REQUEST400Недійсний параметр або Idempotency-Key.Виправте запит.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200Невідомий або вимкнений елемент каталогу.Оновіть каталоги API.
BAD_NUMBER200Неправильний формат числа.Укажіть число цифрами.
BAD_ACTION / BAD_STATUS200Невідома команда, ID або операція.Перевірте налаштування.
EMPTY_POOL200Наразі немає відповідних номерів телефону.Повторіть через 10-30 секунд або змініть фільтри.
NUMBER_IN_USE200Активним сеансом займає певне число.Завершіть сеанс або виберіть інший номер.
NO_ACTIVATION200Сеанс або попередній номер не належить до вашого облікового запису.Перевірте ID і ключ.
SESSION_CLOSED / SMS_REQUIRED200Перехід стану наразі недоступний.Перевірте стан та наявність SMS.
SCOPE_BLOCKED200Служба, країна або постачальник не авторизовані для ключа.Оновіть область дії ключа API.
IDEMPOTENCY_CONFLICT200Цей ключ запиту вже пов’язано з іншими параметрами.Для нової операції створіть інший Idempotency-Key.
BAD_REF / SELF_REF400Програмний код невідомий, вимкнений або належить самому користувачу.Передайте код власника програмного забезпечення.
INTERNAL_ERROR500Тимчасова помилка сервера або постачальника.Повторіть із затримкою і той самий Idempotency-Key.
ALLOCATION_PENDING200Запит видачі вже виконується. Повторіть із попереднім Idempotency-Key.Запит видачі вже виконується. Повторіть із попереднім Idempotency-Key.
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/tariffsSMS ставки винагороди по країнах
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, очікування або всі
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/repeatNumber reissue
GET/api/v1/keysКлючі API
POST/api/v1/keysСтворіть ключ
PATCH/api/v1/keys/{id}Змініть назву або policy
DELETE/api/v1/keys/{id}Revoke key
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 доступні лише власнику.