Obtener número
Solicita un número para un país y servicio.
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 |
Parámetros
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
country | path | string | Sí | Código de país de dos caracteres en mayúsculas, en el formato ISO 3166-2 indicado por la API. Lista de países |
service | path | string | Sí | Código del servicio. Lista de servicios |
voice | query | integer | No | Tipo: 0 SMS, 1 identificación de llamada, 2 voz. Valor predeterminado: 0. (enum: [0,1,2]; default: 0) |
No requiere cuerpo de solicitud.
Cómo usar este método
Solicita un número para el country y el service elegidos.
Elige códigos en las listas. Antes de solicitar el número, consulta precios, disponibilidad y tipos de mensaje permitidos. También puedes comparar operadores y países.
Guarda data.orderId para Recibir SMS y gestionar el pedido. Calcula su vencimiento con data.orderExpireIn. Si la solicitud agota el tiempo de espera, revisa Pedidos actuales antes de pedir otro número: el primero puede haberse creado.
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_API_KEY:?Set SMSPVA_API_KEY}"
curl --fail-with-body --max-time 30 --request GET \
--url "https://api.smspva.com/activation/number/BD/opt20?voice=0" \
--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 |
| 405 | Parámetros no válidos |
| 407 | El saldo no alcanza para recibir SMS del país y servicio elegidos. |
| 411 | Acceso limitado por karma bajo o exceso de solicitudes. |
| 500 | No se pudo obtener el número. |
| 501 | No se encontró el número. |
| 502 | No se encontró el número. |
| 503 | El servidor está sobrecargado. Inténtalo más tarde. |
HTTP 200
Operación completada
Respuesta ilustrativa
{
"statusCode": 200,
"data": {
"orderId": 123456,
"phoneNumber": 9876544321,
"countryCode": "BD",
"orderExpireIn": 600
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | Código de estado del resultado |
data | object | Datos de respuesta |
data.orderId | integer | ID del pedido |
data.phoneNumber | integer | Número sin prefijo de país |
data.countryCode | string | Código de país según ITU-T E.123 y E.164. Lista de países |
data.orderExpireIn | integer | Tiempo hasta el vencimiento, en segundos |
HTTP 405
Parámetros no válidos
Respuesta ilustrativa
{
"statusCode": 405,
"error": {
"type": "INVALID_PARAMS",
"description": "Invalid params."
}
}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 407
El saldo no alcanza para recibir SMS del país y servicio elegidos.
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 | Tipo de error |
error.description | string | Descripción del error |
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 | Tipo de error |
error.description | string | Descripción del error |
HTTP 500
No se pudo obtener el número.
Respuesta ilustrativa
{
"statusCode": 500,
"error": {
"type": "NUMBER_FETCH_FAIL",
"description": "Failed to fetch number"
}
}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 501
No se encontró el número.
Respuesta ilustrativa
{
"statusCode": 501,
"error": {
"type": "PRICE_FETCH_FAIL",
"description": "Failed to fetch price"
}
}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 | Failed to fetch price |
HTTP 502
No se encontró el número.
Respuesta ilustrativa
{
"statusCode": 502,
"error": {
"type": "NUMBER_NOT_FOUND",
"description": "Number not found."
}
}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 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.