Configuración de mensajes
Comprueba los tipos de mensaje permitidos por país, servicio y operador.
Autenticación
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
apikey | header | string | Sí | Tu clave API |
Parámetros
Sin parámetros de ruta o consulta. No requiere cuerpo.
Cómo usar este método
Comprueba qué tipos de mensaje permite la combinación de country, service y operator. Envía la cabecera apikey; no se necesitan parámetros de ruta ni de consulta. La respuesta incluye todas las reglas ordenadas por ID ascendente, aunque no muestra los IDs.
Cada condición no vacía debe coincidir; una cadena vacía acepta cualquier valor. Tiene prioridad la regla coincidente con más condiciones no vacías. Por ejemplo, una regla de país y servicio sustituye a una regla solo de país; añadir el operador la hace aún más específica. Usa juntos los tres indicadores de esa regla: sms, caller y voice emplean 1 para permitido y 0 para desactivado.
Si ninguna regla coincide, se permiten los tres tipos. Un array data vacío es una respuesta correcta sin reglas configuradas. Estos permisos no garantizan números disponibles.
El parámetro de consulta voice tiene otro significado al consultar precios o pedir números: 0 SMS, 1 identificación de llamada, 2 voz. Usa el mismo tipo al comparar precios y al pedir el número. Comprueba la disponibilidad por separado.
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/countryservicesettings" \
--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 | Reglas de tipos de mensaje. Una lista vacía es una respuesta correcta. |
| 400 | Falta la cabecera apikey, está vacía o tiene menos de 30 caracteres. |
| 401 | No se encontró una cuenta para esa clave API. |
| 402 | Se ha superado el límite de solicitudes. Esta API devuelve HTTP 402 para este error. |
| 403 | La cuenta está bloqueada. |
| 500 | Error interno. Si los detalles están habilitados, la descripción puede incluir la excepción. |
HTTP 200
Reglas de tipos de mensaje. Una lista vacía es una respuesta correcta.
Reglas de servicio y reglas por país
{
"statusCode": 200,
"data": [
{
"country": "",
"service": "opt20",
"operator": "",
"voice": 0,
"caller": 0,
"sms": 1
},
{
"country": "FR",
"service": "opt20",
"operator": "",
"voice": 1,
"caller": 0,
"sms": 1
}
]
}Sin reglas configuradas
{
"statusCode": 200,
"data": []
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [200]) |
data | array<object> | |
data[].country | string | País al que se aplica; vacío acepta cualquier país. |
data[].service | string | Servicio al que se aplica; vacío acepta cualquier servicio. |
data[].operator | string | Operador al que se aplica; vacío acepta cualquier operador. |
data[].voice | integer | Voz: 1 permitido, 0 desactivado. (enum: [0,1]) |
data[].caller | integer | Identificación de llamada: 1 permitido, 0 desactivado. (enum: [0,1]) |
data[].sms | integer | SMS: 1 permitido, 0 desactivado. (enum: [0,1]) |
HTTP 400
Falta la cabecera apikey, está vacía o tiene menos de 30 caracteres.
Respuesta ilustrativa
{
"statusCode": 400,
"error": {
"type": "APIKEY_NOT_SET",
"description": "No ApiKey found"
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [400]) |
error | object | |
error.type | string | |
error.description | string |
HTTP 401
No se encontró una cuenta para esa clave API.
Respuesta ilustrativa
{
"statusCode": 401,
"error": {
"type": "USER_NOT_FOUND",
"description": "Not found"
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [401]) |
error | object | |
error.type | string | |
error.description | string |
HTTP 402
Se ha superado el límite de solicitudes. Esta API devuelve HTTP 402 para este error.
Respuesta ilustrativa
{
"statusCode": 402,
"error": {
"type": "RATELIMIT_EXCEED",
"description": "Request ratelimit exeeded"
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [402]) |
error | object | |
error.type | string | |
error.description | string |
HTTP 403
La cuenta está bloqueada.
Respuesta ilustrativa
{
"statusCode": 403,
"error": {
"type": "USER_BANNED",
"description": "User banned"
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [403]) |
error | object | |
error.type | string | |
error.description | string |
HTTP 500
Error interno. Si los detalles están habilitados, la descripción puede incluir la excepción.
Respuesta ilustrativa
{
"statusCode": 500,
"error": {
"type": "SERVER_ERROR",
"description": "An internal error has occurred while processing your request."
}
}Campos de respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
statusCode | integer | (enum: [500]) |
error | object | |
error.type | string | |
error.description | string |
Guías relacionadas
Si falla la conexión al modificar un pedido, comprueba su estado antes de repetir.