Recibir SMS
Recupera SMS, identificación de llamada o voz; HTTP 202 indica espera.
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
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
apikey | header | string | Sí | Tu clave API |
partnerkey | header | string | No | Clave de socio opcional para referidos; se aplica solo al recibir un SMS correctamente. |
Parámetros
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
orderid | path | integer | Sí | 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.
| HTTP | Descripción |
|---|---|
| 200 | Operación completada |
| 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. |
| 405 | Parámetros no válidos |
| 406 | El ID del pedido no es válido o no se encontró. |
| 407 | Se ha recibido el SMS, pero el saldo no alcanza para pagarlo. |
| 410 | El pedido está cerrado y ya no está disponible. |
| 411 | Acceso limitado por karma bajo o exceso de solicitudes. |
| 500 | No se pudo obtener el SMS. |
| 501 | El servidor no pudo procesar la solicitud. |
| 503 | El 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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
data | object | Datos de respuesta |
data.sms | object | Contenido del SMS recibido |
data.sms.code | string | Campo 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.fullText | string | Campo 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.orderId | integer | ID del pedido |
data.orderExpireIn | integer | Tiempo 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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | Tipo de error |
error.description | string | Descripció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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | |
error.description | string |
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
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
error | object | Detalles del error |
error.type | string | Tipo de error |
error.description | string | Descripción del error |
Guías relacionadas
Si falla la conexión al modificar un pedido, comprueba su estado antes de repetir.