Números, mensajes y ganancias, directamente desde tu aplicación.
SMScash
Documentación de la API
Empezando

Documentación de la API

Números, mensajes y ganancias, directamente desde tu aplicación.

Comience con una solicitud

13 · Comandos APIREST + handler_api.phpJSON / plain text · Bearer

Cree una clave API en su panel de control, obtenga un número y verifique los mensajes cada 20 segundos. El pago se aplica cuando llegue un SMS con un código; leerlo nuevamente no afecta su saldo.

REST APIhttps://smscash.org/api/v1
Compatibilidad API base URLhttps://smscash.org/stubs/handler_api.php
El servicio está vivoNúmeros de teléfono, SMS y los ingresos están disponibles. los retrasos están disponibles en USDT En TRC20Los pagos se toman entre 1 y 45 Los días.
Inicio rápido · 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}'

Dirección de interfaz compatible alternativa: /handler_api.php. Las integraciones existentes de REST continúan funcionando.

REST API

Constructor de solicitudes

cURL · Go · JS · Python

Idempotency-Key: UUID · POST · 8–128

Selección automática: más códigos en la última hora, luego en 24 horas. Sin números: siguiente operador.

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}'

La clave no se guarda. Esta comprobación no asigna números.

REST para nuevas integraciones

Servicios y países

Elige un servicio y un país. El pago por SMS depende del país.

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)

obtener un numero
REST
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001

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

Selección automática: más códigos en la última hora, luego en 24 horas. Sin números: siguiente operador.

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

El número es válido durante 20 minutos. Los SMS se consultan cada 20 segundos. Puedes cancelar de inmediato.

Comprobar varios números
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
Saldo · Retenido
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 — Disponible; held_balance — Retenido. USD · 8

Solo se pueden retirar fondos cuyo plazo de retención haya terminado.

Clientes listos para usar

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 · Compatibilidad API base URLhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · Compatibilidad API base URLhttps://smscash.org/hero-sms/stubs/handler_api.php

Clave API personal del usuario.

Elige un servicio y un país. El pago por SMS depende del país.

CódigoDescripción
getNumber / getNumberV2obtener un numero
getStatus / getStatusV2Obtenga el código más reciente
setStatus / finishActivation / cancelActivationAdministrar sesión
getPrices / getNumbersStatusConsultar disponibilidad
getRewards (SMScash)Recompensa por SMS
getServicesList / getServicesServicios
getCountries / getOperatorsServicios y países
getActiveActivationsSesiones
getBalanceSaldo del usuario
getHoldBalance (SMScash)Retenido

cost = 0 USD · activationCost = 0 USD
reward — Recompensa por 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'
Respuestas
{
  "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.

El número es válido durante 20 minutos. Los SMS se consultan cada 20 segundos. Puedes cancelar de inmediato.

Autenticación y reintentos

REST: encabezado Authorization: Bearer YOUR_API_KEY. Interfaz compatible: parámetros api_key y action. Utilice HTTPS.

Para administrar las claves API, ingrese a su cuenta.

∞solicitudes/min por cuenta
∞sesiones simultáneas

La frecuencia de solicitudes y la cantidad de números de teléfono no tienen límite. No hay cuotas diarias ni por hora.

El número es válido durante 20 minutos. Los SMS se consultan cada 20 segundos. Puedes cancelar de inmediato.

En REST, un único Idempotency-Key es necesario para la asignación de números, la repetición de asignaciones, retry y solicitudes de pago. Es opcional pero recomendado en handler_api.php. Reutilice la clave cuando vuelva a intentar una solicitud de red; utilice una nueva clave para una nueva operación.

Ámbito de la clave API

Puedes vincular una clave a servicios, países y proveedores concretos. Las listas vacías permiten todas las opciones disponibles.

JSON
{
  "label": "mi software",
  "policy": {
    "services": [
      "go"
    ],
    "countries": [
      86
    ],
    "providers": [
      1
    ]
  }
}

PATCH /api/v1/keys/{id} cambia el nombre y policy por completo. El secreto sólo se muestra cuando se crea.

10% en total. 5% + 5% con código de software.

Al emitir un número, proporcione ref propietario del software. La solicitud está autorizada por la clave del usuario. El código está en la sección "Referidos" y en GET /api/v1/referrals → software_ref.

SolicitarQuien te invitóprogramas
Sin ref10%—
Con ref5%5%
Con ref, sin referente—5%

La plataforma paga el bono sin reducir los ingresos del usuario. El propietario del software y el referente pueden ser la misma persona. Un usuario no puede utilizar su propio código.

Los términos se fijan cuando se crea una sesión; leer SMS y retry no los cambia. Pasar ref nuevamente para una nueva sesión de repetición. En el cálculo del tarifario, una recompensa para el usuario de USD 0.003 proporciona USD 0.00015 a cada uno del propietario y referente del software. El bono total es USD 0.00030.

Comandos API

11 métodos estilo XVBC más tu saldo SMScash.

GETgetNumberobtener un numero

Crea una sesión y reserva un número disponible para el usuario. La tasa de recompensa y los receptores de referencias están fijados en la asignación; la recompensa se acredita cuando llega un SMS con un código.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
service*stringCódigos de servicio disponibles. La respuesta se limita al área de la tecla API.
country*integerTome ID de getCountries.
operatorstringTome ID de operators/getOperators (API). operator=1 · any/0
session_durationintegerLa sesión dura 20 minutos. Pasar 20 o ometer este parámetro.
with_operatorinteger1 añade el ID del operador a la respuesta; 0 o su omisión devuelve tres segmentos.
refstringCódigo público del propietario del software: 5% para él y 5% para el invitante. Sin ref - 10% al que invita.

* Parámetro requerido. En todas las solicitudes también pase action=getNumber.

Solicitud de ejemplo

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'

Respuestas

Número emitido
ACCESS_NUMBER:42:380670000000:1
No hay números disponibles
EMPTY_POOL
  • Selección automática: más códigos en la última hora, luego en 24 horas. Sin números: siguiente operador.
  • Pase Idempotency-Key: la misma solicitud con la misma clave devuelve la sesión anterior. Cambiar los parámetros llama a IDEMPOTENCY_CONFLICT.
  • Un país numérico sin grupo da EMPTY_POOL; el formato de país incorrecto es BAD_COUNTRY.
  • La clave de una sesión eliminada sigue en uso: volver a asignar con esa clave devuelve SESSION_CLOSED y no emite otro número.
  • El resultado de la asignación no está confirmado. El reintento automático está desactivado para evitar asignar un segundo número.
GETgetNumbersStatusConsultar disponibilidad

Cantidad de números de teléfono disponibles por servicio y país.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
country*integerTome ID de getCountries.

* Parámetro requerido. En todas las solicitudes también pase action=getNumbersStatus.

Solicitud de ejemplo

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

Respuestas

Números disponibles
{
  "go_0": 0
}
  • El sufijo _0 significa una elección sin un operador específico.
  • La disponibilidad corresponde al conjunto total del proveedor. El canal elegido se comprueba al asignar un número.
GETgetStatusObtenga el código más reciente

Solicitud sencilla del estado de la sesión y del último código SMS. Se conservan los ceros a la izquierda del código.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
id*integerID de su sesión, recibido cuando se emitió el número.

* Parámetro requerido. En todas las solicitudes también pase action=getStatus.

Solicitud de ejemplo

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

Respuestas

esperando
STATUS_WAIT_CODE
Código recibido
STATUS_OK:001234
Z Cancelación o caducidad
STATUS_CANCEL
No encontrado
NO_ACTIVATION
  • Realice una encuesta cada 20 segundos. Leer un mensaje nuevamente no genera otro pago.
  • Después de retry no se devuelve el código antiguo: getStatus espera el siguiente SMS.
  • Después de que un número sin SMS sea eliminado, getStatus y getSms devuelven STATUS_CANCEL; getSmsFull devuelve el estado cerrado, un teléfono vacío y una lista de SMS vacía. REST /activations/{id} y /sms devuelven 404 NO_ACTIVATION.
GETsetStatusAdministrar sesión

Terminaciones, cancelaciones o reanudaciones en espera de SMS. El vencimiento de la sesión permanece igual.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
id*integerID de su sesión, recibido cuando se emitió el número.
status*integer3 — espere el siguiente código sin extender la sesión; 6 — termine después de SMS; 8 — cancele inmediatamente.

* Parámetro requerido. En todas las solicitudes también pase action=setStatus.

Solicitud de ejemplo

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'

Respuestas

Esperando a SMS
ACCESS_RETRY_GET
Completado
ACCESS_ACTIVATION
Cancelado
ACCESS_CANCEL
  • Repita la acción y espere el siguiente código dentro de los 20 minutos originales. Los tiempos de problema y expiración no cambian.
  • Para estado = 3 use Idempotency-Key: repetir la solicitud no restablecerá el nuevo código ya recibido. El historial de SMS sigue disponible.
  • La cancelación no descuenta las recompensas ya obtenidas.
  • Solo los números con un código SMS se conservan en el historial. Los números cancelados y caducados sin código se eliminan.
GETgetRepeatNumberVuelve a emitir el mismo número

Abre una nueva sesión con un número específico de tu historial. Puedes seleccionar otro servicio disponible en el mismo país.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
number*stringTu antiguo número. Sólo se permiten números y un + inicial opcional.
service*stringCódigos de servicio disponibles. La respuesta se limita al área de la tecla API.
session_durationintegerLa sesión dura 20 minutos. Pasar 20 o ometer este parámetro.
with_operatorinteger1 añade el ID del operador a la respuesta; 0 o su omisión devuelve tres segmentos.
refstringCódigo público del propietario del software: 5% para él y 5% para el invitante. Sin ref - 10% al que invita.
operatorstringTome ID de operators/getOperators (API). operator=1 · any/0

* Parámetro requerido. En todas las solicitudes también pase action=getRepeatNumber.

Solicitud de ejemplo

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'

Respuestas

Nueva sesión
ACCESS_NUMBER:43:380670000000
El numero sigue ocupado
NUMBER_IN_USE
  • Primero, finalice o cancele su sesión actual. Si el número está ocupado, no se realiza la reemisión.
  • La nueva sesión recibe un nuevo ID y la tarifa actual. Los antiguos SMS no se copian en él. ref se configura nuevamente.
  • SMScash permite repetir solo números del historial de esta cuenta. El país se identifica por un número.
  • La clave de una sesión eliminada sigue en uso: volver a asignar con esa clave devuelve SESSION_CLOSED y no emite otro número.
GETgetSmsFullObtenga SMS como JSON

Historial estructurado de todos los mensajes con ID, remitente, código, texto y país, datos de servicio y proveedor.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
id*integerID de su sesión, recibido cuando se emitió el número.

* Parámetro requerido. En todas las solicitudes también pase action=getSmsFull.

Solicitud de ejemplo

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

Respuestas

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"
}
  • Formato preferido para la integración. Recuerde sms[].id para procesar solo mensajes nuevos.
  • Estado numérico SMScash: 1 - activo, 6 - completado, 8 - cancelado o caducado. status_name distingue entre en espera, recibido, finalizado, cancelado, caducado.
  • Los códigos recibidos permanecen disponibles después de que se cierre una sesión. Para volúmenes grandes, utilice REST /activations/{id}/sms con after_id.
  • Después de que un número sin SMS sea eliminado, getStatus y getSms devuelven STATUS_CANCEL; getSmsFull devuelve el estado cerrado, un teléfono vacío y una lista de SMS vacía. REST /activations/{id} y /sms devuelven 404 NO_ACTIVATION.
GETgetSmsObtenga SMS como una cadena de texto

Devuelve el historial completo de SMS en formato de cadena para clientes existentes.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
id*integerID de su sesión, recibido cuando se emitió el número.

* Parámetro requerido. En todas las solicitudes también pase action=getSms.

Solicitud de ejemplo

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

Respuestas

Mensaje
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234
esperando
STATUS_WAIT_CODE
Z Cancelación o caducidad
STATUS_CANCEL
  • Formato del mensaje: tiempo|código|texto. Varios mensajes están separados por dos puntos.
  • El texto SMS puede contener dos puntos y barras verticales. Para un análisis confiable, use getSmsFull.
GETgetServicesServicios

Códigos de servicio disponibles. La respuesta se limita al área de la tecla API.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
countryintegerTome ID de getCountries.

* Parámetro requerido. En todas las solicitudes también pase action=getServices.

Solicitud de ejemplo

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

Respuestas

Servicios
{
  "go": {
    "name": "Google",
    "code": "go"
  }
}
  • El directorio de servicios se comparte entre los proveedores. La disponibilidad de números se verifica por separado.
GETgetCountriesPaíses

Identificadores, nombres y códigos de llamada para los países en el canal seleccionado.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.

* Parámetro requerido. En todas las solicitudes también pase action=getCountries.

Solicitud de ejemplo

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

Respuestas

Países
{
  "86": {
    "id": 86,
    "name": "Italy",
    "phone_code": "39"
  }
}
GETgetOperatorsOperadores

Operadores disponibles: ID de API, nombre y período de retención.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
countryintegerTome ID de getCountries.
operatorstringTome ID de operators/getOperators (API). operator=1 · any/0

* Parámetro requerido. En todas las solicitudes también pase action=getOperators.

Solicitud de ejemplo

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

Respuestas

Operadores
{
  "1": {
    "id": 1,
    "provider_id": 1,
    "operator": 1,
    "name": "Оператор 1",
    "earnings_hold_days": 45
  }
}
  • Tome ID de operators/getOperators (API).
GETgetRewardsRecompensa por SMS

Las tasas dependen del país. Todas las cantidades de la tabla son por SMS pagado.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.
countryintegerTome ID de getCountries.
servicestringCódigos de servicio disponibles. La respuesta se limita al área de la tecla API.
operatorstringTome ID de operators/getOperators (API). operator=1 · any/0

* Parámetro requerido. En todas las solicitudes también pase action=getRewards.

Solicitud de ejemplo

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

Respuestas

JSON
{
  "59": {
    "vi": {
      "1": "0.01000000",
      "3": "0.00500000"
    }
  }
}
{}
{}
  • USDLos montos de tarifa se devuelven como cadenas decimales exactas con 8 casillas decimales:
  • Proveedores habilitados disponibles para su clave.
  • country ID → service code → operator ID → reward (USD)
GETgetBalanceSaldo del usuario

Adición SMScash: saldo disponible teniendo en cuenta acumulaciones, bonos por referencia y solicitudes de pago.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.

* Parámetro requerido. En todas las solicitudes también pase action=getBalance.

Solicitud de ejemplo

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

Respuestas

Saldo
ACCESS_BALANCE:0.00
  • getBalance devuelve el saldo disponible en USD con hasta 8 decimales.
  • Solo se pueden retirar fondos cuyo plazo de retención haya terminado.
GETgetHoldBalanceRetenido

Tras recibir un SMS, sus ganancias se retienen durante el plazo del proveedor. En la fecha indicada, el importe pasa automáticamente a estar disponible para retirar.

Parámetros

ParámetroTipoDescripción
api_key*stringClave API personal del usuario.

* Parámetro requerido. En todas las solicitudes también pase action=getHoldBalance.

Solicitud de ejemplo

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

Respuestas

Retenido
ACCESS_HOLD_BALANCE:34.50000001
  • SMScash · getHoldBalance · USD · 8
  • Solo se pueden retirar fondos cuyo plazo de retención haya terminado.

Códigos de respuesta y solicitudes repetidas

Z En handler_api.php, los resultados comerciales generalmente vienen con HTTP 200. Verifique el texto del cuerpo. Los directorios y getSmsFull devuelven JSON si tienen éxito; Los errores son siempre texto.

CódigoHTTPCausa y siguiente paso
TARIFF_NOT_CONFIGURED200Los tipos de cambio aún no están establecidosLa asignación de números comenzará una vez que se configuren las recompensas SMS.
COUNTRY_BLOCKED200La asignación de números para este país está bloqueada.Elija otro país.
BAD_SERVICE200La asignación de números para este servicio está bloqueada.Elige otro servicio.
PROVIDER_NOT_READY200La asignación de números está temporalmente no disponibleActualizar los catálogos de API.
BAD_KEY400Sin api_key o formato no válido.Verifique la clave en la solicitud.
INVALID_API_KEY401La clave es desconocida, revocada o la cuenta está deshabilitada.Cree una clave API válida.
BAD_COUNTRY400país falta o no hay un número positivo.Tome ID de getCountries.
BAD_SESSION_DURATION400Los números de teléfono se otorgan por exactamente 20 minutos.Correcto session_duration.
BAD_REQUEST400Parámetro no válido o Idempotency-Key.Por favor corrija su solicitud.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200Elemento de directorio desconocido o deshabilitado.Actualizar los catálogos de API.
BAD_NUMBER200Formato de número incorrecto.Da el número en dígitos.
BAD_ACTION / BAD_STATUS200Comando desconocido, ID u operación.Verifique la configuración.
EMPTY_POOL200Actualmente no hay números de teléfono coincidentes disponibles.Repita después de 10 a 30 segundos o cambie los filtros.
NUMBER_IN_USE200Un número específico está ocupado por una sesión activa.Finaliza tu sesión o selecciona otro número.
NO_ACTIVATION200La sesión o número anterior no pertenece a tu cuenta.Verifique ID y clave.
SESSION_CLOSED / SMS_REQUIRED200La transición de estado no está disponible actualmente.Z Consulta el estado y disponibilidad de SMS.
SCOPE_BLOCKED200El servicio, país o proveedor no está autorizado para la clave.Actualice el alcance de la clave API.
IDEMPOTENCY_CONFLICT200Esta clave de consulta ya está asociada con otros parámetros.Para una nueva operación, cree otro Idempotency-Key.
BAD_REF / SELF_REF400El código del software es desconocido, inhabilitado o pertenece al propio usuario.Transmita el código del propietario del software.
INTERNAL_ERROR500Error temporal del servidor o proveedor.Repetir con retraso y lo mismo Idempotency-Key.
ALLOCATION_PENDING200La solicitud de número ya está en curso. Reintenta con el mismo Idempotency-Key.La solicitud de número ya está en curso. Reintenta con el mismo Idempotency-Key.
ALLOCATION_UNCERTAIN200El resultado de la asignación no está confirmado. El reintento automático está desactivado para evitar asignar un segundo número.El resultado de la asignación no está confirmado. El reintento automático está desactivado para evitar asignar un segundo número.

REST devuelve un objeto {"error":{"code":"…","message":"…"}} y estados regulares HTTP 400/401/403/404/409/503.

JSON
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Consulta los campos de solicitud.",
    "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 para nuevas integraciones

USDLos montos de tarifa se devuelven como cadenas decimales exactas con 8 casillas decimales: 0.00300000 USD.

La moneda del saldo es USD. Los esquemas de solicitud y respuesta están disponibles en OpenAPI.

Retirar en USDT · TRC20Los pagos tardan entre 1 y 45 días. La comisión de retiro es de 4 $. Se deduce del importe solicitado. Tras recibir un SMS, sus ganancias se retienen durante el plazo del proveedor. En la fecha indicada, el importe pasa automáticamente a estar disponible para retirar. Solo se pueden retirar fondos cuyo plazo de retención haya terminado.
GET/api/v1/catalogServicios y países
GET/api/v1/tariffsSMS tasas de recompensa por país
GET/api/v1/offersTarifas y recompensas
GET/api/v1/servicesDirectorio
GET/api/v1/countriesDirectorio
GET/api/v1/operatorsDirectorio
GET/api/v1/availability?country=1Disponibilidad de números
POST/api/v1/activationsNueva sesión
GET/api/v1/activations/batch?ids=42,43Comprobar varios números
GET/api/v1/activationsÚltimas 200 sesiones: scope=history, esperando o todas
GET/api/v1/activations/{id}Sesión y mensajes
GET/api/v1/activations/{id}/sms?after_id=0&limit=100Nuevo SMS con cursor
POST/api/v1/activations/{id}/retryEsperando a SMS
POST/api/v1/activations/{id}/finishFinalización
POST/api/v1/activations/{id}/cancelCancelar
POST/api/v1/activations/repeatReedición de números
GET/api/v1/keysTeclas API
POST/api/v1/keysCrear una clave
PATCH/api/v1/keys/{id}Cambiar nombre o policy
DELETE/api/v1/keys/{id}Revocar clave
GET/api/v1/referralsCódigo de referencia y ganancias
GET/api/v1/summaryBalance y resumen
GET/api/v1/balanceRetenido
GET/api/v1/ledgerLibro mayor de ganancias
GET/api/v1/withdrawalsSolicitudes de pago
POST/api/v1/withdrawalsCrear una solicitud
GET/api/v1/statisticsEstadísticas generales
GET/api/v1/earnings/holdsRetención de ganancias

Recibiendo solo SMS nuevo

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": "Código: 001234",
      "sender": "Service",
      "received_at": "2026-10-09T12:00:00Z"
    }
  ],
  "next_cursor": 101,
  "has_more": false
}

Guarde next_cursor y páselo como after_id. Si has_more=true, la página siguiente se puede leer inmediatamente. limit: 1–200. Sessions y SMS están disponibles sólo para el propietario.