SMSPVAdevelopers
Activation V2
SMSPVA / API REFERENCE

Recibir SMS

Recupera SMS, identificación de llamada o voz; HTTP 202 indica espera.

SMSPVA API
GEThttps://api.smspva.com/activation/sms/{orderid}

Esta solicitud puede modificar un pedido o generar cargos. Los ejemplos no la repiten automáticamente. Leer un SMS recién recibido puede generar el cobro, aunque el método use GET.

Autenticación

NombreUbicaciónTipoObligatorioDescripción
apikeyheaderstringSíTu clave API
partnerkeyheaderstringNoClave de socio opcional para referidos; se aplica solo al recibir un SMS correctamente.

Parámetros

NombreUbicaciónTipoObligatorioDescripción
orderidpathintegerSíID devuelto al solicitar el número

No requiere cuerpo de solicitud.

Cómo usar este método

Usa el orderId recibido al pedir el número o en Pedidos actuales. Este método también devuelve resultados de voz e identificación de llamada; el tipo ya se eligió con voice=0, voice=1 o voice=2. Aquí no debes enviar voice.

El campo text del proveedor pasa a data.sms.code y sms pasa a data.sms.fullText, sin cambios. Por eso, code no siempre contiene un código numérico.

HTTP 202 con statusCode=202 y error.type=SMS_NOT_YET_RECEIVED significa que el resultado sigue pendiente. Reconócelo antes de los errores generales y espera antes de consultar de nuevo. Se aplica a los tres tipos de mensaje. Consulta la guía de espera.

Ejemplos de solicitud

Requisitos y configuración del entorno. cURL usa un shell POSIX. El ejemplo JavaScript también es válido en TypeScript sobre Node.js. Java utiliza el cliente estándar y muestra JSON sin analizar; usa la biblioteca JSON de tu aplicación.

  • SMSPVA_ORDER_ID: orderid (obligatorio).
: "${SMSPVA_API_KEY:?Set SMSPVA_API_KEY}"
: "${SMSPVA_ORDER_ID:?Set SMSPVA_ORDER_ID to your orderid}"
curl --fail-with-body --max-time 30 --request GET \
  --url "https://api.smspva.com/activation/sms/${SMSPVA_ORDER_ID}" \
  --header "apikey: $SMSPVA_API_KEY"

Respuestas

Los ejemplos muestran el formato de respuesta. Los precios, las cantidades y los datos de cuenta son orientativos; consulta la API para obtener valores actuales.

HTTPDescripción
200Operación completada
202El resultado sigue pendiente. SMS, voz e identificación de llamada usan SMS_NOT_YET_RECEIVED y Waiting for SMS para indicar la espera.
405Parámetros no válidos
406El ID del pedido no es válido o no se encontró.
407Se ha recibido el SMS, pero el saldo no alcanza para pagarlo.
410El pedido está cerrado y ya no está disponible.
411Acceso limitado por karma bajo o exceso de solicitudes.
500No se pudo obtener el SMS.
501El servidor no pudo procesar la solicitud.
503El servidor está sobrecargado. Inténtalo más tarde.
HTTP 200

Operación completada

SMS (voice=0)

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "123456",
      "fullText": "Your verification code is 123456"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

Llamada de voz (voice=2)

Ejemplo de voz. fullText contiene texto y un enlace a la grabación con el formato VOICE: ...; The file: ....

El contenido de code depende del proveedor y no está confirmado; no siempre será un código numérico.

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text value>",
      "fullText": "VOICE: Your code is 123456; The file: https://link.smspva.com/EXAMPLE_RECORD_ID"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

Voz: solo enlace (voice=2)

Formato posible: fullText puede contener solo el enlace a la grabación. Esta variante no está confirmada; evita depender de un formato fijo.

code representa el valor text del proveedor, sin modificarlo.

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text value>",
      "fullText": "https://link.smspva.com/EXAMPLE_RECORD_ID"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

Identificación de llamada (voice=1)

La estructura JSON es la misma que para SMS. Los valores son marcadores: el formato exacto de identificación de llamada aún no está confirmado.

El proveedor puede devolver un código o número de llamada en code, y un mensaje en fullText. code no siempre es un código de verificación.

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text: code or caller number>",
      "fullText": "<provider sms: caller-ID message>"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
dataobjectDatos de respuesta
data.smsobjectContenido del SMS recibido
data.sms.codestringCampo text del proveedor, sin cambios. El contenido depende del tipo de mensaje y proveedor; no siempre es un código de verificación.
data.sms.fullTextstringCampo sms del proveedor, sin cambios. Puede incluir texto SMS, texto de voz y grabación, solo un enlace de grabación o identificación de llamada.
data.orderIdintegerID del pedido
data.orderExpireInintegerTiempo hasta el vencimiento, en segundos
HTTP 202

El resultado sigue pendiente. SMS, voz e identificación de llamada usan SMS_NOT_YET_RECEIVED y Waiting for SMS para indicar la espera.

Respuesta ilustrativa

{
  "statusCode": 202,
  "error": {
    "type": "SMS_NOT_YET_RECEIVED",
    "description": "Waiting for SMS"
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 405

Parámetros no válidos

Respuesta ilustrativa

{
  "statusCode": 405,
  "error": {
    "type": "INVALID_PARAMS",
    "description": "Invalid params, please re-check the specified data."
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 406

El ID del pedido no es válido o no se encontró.

Respuesta ilustrativa

{
  "statusCode": 406,
  "error": {
    "type": "INVALID_ORDER_FORMAT",
    "description": "Order should be integer."
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 407

Se ha recibido el SMS, pero el saldo no alcanza para pagarlo.

Respuesta ilustrativa

{
  "statusCode": 407,
  "error": {
    "type": "LOW_BALANCE",
    "description": "Low balance"
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 410

El pedido está cerrado y ya no está disponible.

Respuesta ilustrativa

{
  "statusCode": 410,
  "error": {
    "type": "ORDER_CLOSED",
    "description": "Order closed and unavailable"
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 411

Acceso limitado por karma bajo o exceso de solicitudes.

Respuesta ilustrativa

{
  "statusCode": 411,
  "error": {
    "type": "ACCESS_LIMITED",
    "description": "Access is temporary limited"
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 500

No se pudo obtener el SMS.

Respuesta ilustrativa

{
  "statusCode": 500,
  "error": {
    "type": "SMS_FETCH_FAIL",
    "description": "Failed to fetch SMS."
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestringTipo de error
error.descriptionstringDescripción del error
HTTP 501

El servidor no pudo procesar la solicitud.

Respuesta ilustrativa

{
  "statusCode": 501,
  "error": {
    "type": "SERVER_FAIL",
    "description": "Server failed to process request"
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestring
error.descriptionstring
HTTP 503

El servidor está sobrecargado. Inténtalo más tarde.

Respuesta ilustrativa

{
  "statusCode": 503,
  "error": {
    "type": "SERVER_BUSY",
    "description": "Server overload, try later."
  }
}

Campos de respuesta

NombreTipoDescripción
statusCodeintegerCódigo de estado del resultado
errorobjectDetalles del error
error.typestringTipo de error
error.descriptionstringDescripción del error

Guías relacionadas

Si falla la conexión al modificar un pedido, comprueba su estado antes de repetir.

En esta página