Integre facilmente com nossa plataforma de números virtuais através de nossa API robusta e documentada.
Todas as requisições à API devem incluir sua chave de API como parâmetro GET ou POST. Sua chave de API identifica você para o sistema e deve ser mantida em segredo.
Inclua sua chave de API como parâmetro na URL ou no corpo da requisição:
GET https://virtualsms.org/api-c/endpoint?api_key=SUA_CHAVE_API
ou
POST https://virtualsms.org/api-c/endpoint
Content-Type: application/x-www-form-urlencoded
api_key=SUA_CHAVE_API&outro_parametro=valor
Este endpoint permite solicitar um número virtual para uso com um serviço específico.
POST https://virtualsms.org/api-c/compra.php?api_key=SUA_CHAVE_API
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API (pode ser enviada via GET ou POST) |
service_id | string | Sim | ID do serviço para o qual deseja solicitar o número |
{
"message": "Número reservado com sucesso.",
"color": "green",
"numero": "5511999999999",
"porta_com": "12345",
"id_numero": 11433,
"iccid": "8931080112345678901",
"operadora": "Vivo"
}
<?php
$apiKey = 'SUA_API_KEY';
$serviceId = 'ID_DO_SERVIÇO';
$url = "https://virtualsms.org/api-c/compra.php?api_key=$apiKey";
$data = ['service_id' => $serviceId];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
echo "Erro na requisição: " . curl_error($ch);
} else {
if ($httpCode === 200) {
$responseData = json_decode($response, true);
if (json_last_error() === JSON_ERROR_NONE) {
print_r($responseData);
} else {
echo "Erro ao decodificar JSON: " . json_last_error_msg();
}
} else {
echo "Erro HTTP: $httpCode\nResposta: $response";
}
}
curl_close($ch);
?>
import requests
data = {
'service_id': 'ID_DO_SERVIÇO' # Parâmetro POST
}
api_key = 'SUA_API_KEY' # Parâmetro GET
url = f'https://virtualsms.org/api-c/compra.php?api_key={api_key}'
response = requests.post(url, data=data)
try:
print(response.json()) # Para exibir o JSON recebido
except Exception as e:
print(f"Erro ao processar resposta: {e}")
print(response.text) # Exibir o conteúdo da resposta
const axios = require('axios');
const apiKey = 'SUA_API_KEY';
const serviceId = 'ID_DO_SERVICO';
const url = `https://virtualsms.org/api-c/compra.php?api_key=${apiKey}`;
axios.post(url, {
service_id: serviceId
}, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
if (error.response) {
console.error('Erro na resposta:', error.response.status, error.response.data);
} else if (error.request) {
console.error('Erro na requisição:', error.request);
} else {
console.error('Erro desconhecido:', error.message);
}
});
Use este endpoint para cancelar um número que foi solicitado anteriormente e ainda não recebeu SMS.
POST https://virtualsms.org/api-c/cancelar.php
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API |
id_compra | integer | Sim | ID da compra que deseja cancelar |
{
"status": "success",
"message": "Compra cancelada com sucesso, saldo atualizado."
}
<?php
$url = "https://virtualsms.org/api-c/cancelar.php";
$apiKey = "SUA_API_KEY";
$idCompra = 11433;
$data = [
'api_key' => $apiKey,
'id_compra' => $idCompra
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "Erro na requisição: " . curl_error($ch);
} else {
$httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpStatus === 200) {
$responseData = json_decode($response, true);
if (json_last_error() === JSON_ERROR_NONE) {
echo "Resposta da API: " . print_r($responseData, true);
} else {
echo "Erro ao decodificar JSON: " . json_last_error_msg();
echo "Resposta bruta: " . $response;
}
} else {
echo "Erro na resposta. Código de status: $httpStatus\nResposta: $response";
}
}
curl_close($ch);
?>
import requests
url = "https://virtualsms.org/api-c/cancelar.php"
api_key = "SUA_API_KEY"
id_compra = 12345
data = {
'api_key': api_key,
'id_compra': id_compra
}
try:
response = requests.post(url, data=data)
if response.status_code == 200:
response_json = response.json()
print("Resposta da API:", response_json)
else:
print(f"Erro ao conectar à API. Código de status: {response.status_code}")
print("Resposta:", response.text)
except requests.exceptions.RequestException as e:
print(f"Erro ao conectar: {e}")
const axios = require('axios');
const url = "https://virtualsms.org/api-c/cancelar.php";
const apiKey = "SUA_API_KEY";
const idCompra = 11433;
axios.post(url, {
api_key: apiKey,
id_compra: idCompra
})
.then(response => {
console.log("Resposta da API:", response.data);
})
.catch(error => {
if (error.response) {
console.error("Erro na resposta:", error.response.status, error.response.data);
} else {
console.error("Erro na requisição:", error.message);
}
});
Use este endpoint para verificar se já foi recebido um código SMS para o número solicitado.
POST https://virtualsms.org/api-c/verificar_codigo.php
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API |
id_compra | integer | Sim | ID da compra que deseja verificar |
{
"status": "success",
"message": {
"codigo": "123456"
}
}
<?php
$url = "https://virtualsms.org/api-c/verificar_codigo.php";
$apiKey = "SUA_API_KEY";
$idCompra = 12345;
$data = [
'api_key' => $apiKey,
'id_compra' => $idCompra
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_status === 200) {
$response_json = json_decode($response, true);
echo "Resposta da API: ";
print_r($response_json);
file_put_contents("log.txt", "Resposta da API: " . print_r($response_json, true) . PHP_EOL, FILE_APPEND);
} else {
echo "Erro ao conectar à API. Código de status: $http_status\n";
echo "Resposta: $response";
}
?>
import requests
url = "https://virtualsms.org/api-c/verificar_codigo.php"
api_key = "SUA_API_KEY"
id_compra = 12345
data = {
'api_key': api_key,
'id_compra': id_compra
}
try:
response = requests.post(url, data=data)
if response.status_code == 200:
response_json = response.json()
print("Resposta da API:", response_json)
with open("log.txt", "a") as log_file:
log_file.write(f"Resposta da API: {response_json}\n")
else:
print(f"Erro ao conectar à API. Código de status: {response.status_code}")
print("Resposta:", response.text)
except requests.exceptions.RequestException as e:
print(f"Erro ao conectar: {e}")
const axios = require('axios');
const fs = require('fs');
const url = "https://virtualsms.org/api-c/verificar_codigo.php";
const apiKey = "SUA_API_KEY";
const idCompra = 12345;
const data = {
api_key: apiKey,
id_compra: idCompra
};
axios.post(url, data)
.then(response => {
console.log("Resposta da API:", response.data);
fs.appendFileSync("log.txt", `Resposta da API: ${JSON.stringify(response.data)}\n`, 'utf8');
})
.catch(error => {
if (error.response) {
console.error(`Erro ao conectar à API. Código de status: ${error.response.status}`);
console.error("Resposta:", error.response.data);
} else {
console.error("Erro na requisição:", error.message);
}
});
Use este endpoint para solicitar um novo SMS para um número já comprado, quando o serviço permite múltiplas mensagens.
POST https://virtualsms.org/api-c/novo_sms.php
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API |
id_compra | integer | Sim | ID da compra que deseja solicitar novo SMS |
{
"status": "success",
"message": "Código resetado e quant_sms incrementado com sucesso!"
}
<?php
$url = "https://virtualsms.org/api-c/novo_sms.php";
$apiKey = "SUA_API_KEY";
$idCompra = 12345;
$data = [
'api_key' => $apiKey,
'id_compra' => $idCompra
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_status === 200) {
$responseData = json_decode($response, true);
echo "Resposta da API: ";
print_r($responseData);
} else {
echo "Erro ao conectar à API. Código de status: $http_status\n";
echo "Resposta: $response";
}
?>
import requests
url = "https://virtualsms.org/api-c/novo_sms.php"
api_key = "SUA_API_KEY"
id_compra = 12345
data = {
'api_key': api_key,
'id_compra': id_compra
}
try:
response = requests.post(url, data=data)
if response.status_code == 200:
print("Resposta da API:", response.json())
else:
print(f"Erro ao conectar à API. Código de status: {response.status_code}")
print("Resposta:", response.text)
except requests.exceptions.RequestException as e:
print(f"Erro ao conectar: {e}")
const axios = require('axios');
const url = "https://virtualsms.org/api-c/novo_sms.php";
const apiKey = "SUA_API_KEY";
const idCompra = 12345;
axios.post(url, {
api_key: apiKey,
id_compra: idCompra
})
.then(response => {
console.log("Resposta da API:", response.data);
})
.catch(error => {
if (error.response) {
console.error(`Erro ao conectar à API. Código de status: ${error.response.status}`);
console.error("Resposta:", error.response.data);
} else {
console.error("Erro na requisição:", error.message);
}
});
Use este endpoint para reativar um número que foi utilizado anteriormente para o mesmo serviço.
POST https://virtualsms.org/api-c/reativar.php?api_key=SUA_CHAVE_API
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API (pode ser enviada via GET ou POST) |
numero | string | Sim | Número que deseja reativar |
id_servico | string | Sim | ID do serviço para o qual deseja reativar o número |
{
"error": false,
"message": "Número reativado com sucesso!"
}
<?php
$apiKey = "SUA_CHAVE_API_AQUI";
$numero = "NUMERO_A_REATIVAR";
$idServico = "ID_DO_SERVICO";
$url = "https://virtualsms.org/api-c/reativar.php?api_key=" . urlencode($apiKey);
$data = [
'numero' => $numero,
'id_servico' => $idServico
];
$options = [
'http' => [
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
],
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) {
echo "Erro ao chamar a API.";
} else {
$response = json_decode($result, true);
print_r($response);
}
?>
import requests
api_key = "SUA_CHAVE_API_AQUI"
numero = "NUMERO_A_REATIVAR"
id_servico = "ID_DO_SERVICO"
url = f"https://virtualsms.org/api-c/reativar.php?api_key={requests.utils.quote(api_key)}"
data = {
'numero': numero,
'id_servico': id_servico
}
response = requests.post(url, data=data)
if response.status_code == 200:
print(response.json())
else:
print("Erro ao chamar a API:", response.text)
const axios = require('axios');
const apiKey = "SUA_CHAVE_API_AQUI";
const numero = "NUMERO_A_REATIVAR";
const idServico = "ID_DO_SERVICO";
const url = `https://virtualsms.org/api-c/reativar.php?api_key=${encodeURIComponent(apiKey)}`;
axios.post(url, {
numero: numero,
id_servico: idServico
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error("Erro ao chamar a API:", error.response ? error.response.data : error.message);
});
Este endpoint retorna a lista completa de serviços disponíveis na plataforma com seus respectivos detalhes.
POST https://virtualsms.org/api-c/servicos.php
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API |
{
"status": "success",
"message": "Serviços recuperados com sucesso.",
"data": [
{
"id": 1,
"id_servico": "twitter",
"nome": "Twitter",
"valor": "1.50",
"valor_reativacao": "1.00",
"is_verificacao": 0,
"status": 1,
"quant_sms": 1,
"created_at": "2023-01-01 00:00:00",
"updated_at": "2023-01-01 00:00:00"
},
{
"id": 2,
"id_servico": "whatsapp",
"nome": "WhatsApp",
"valor": "2.00",
"valor_reativacao": "1.50",
"is_verificacao": 1,
"status": 1,
"quant_sms": 1,
"created_at": "2023-01-01 00:00:00",
"updated_at": "2023-01-01 00:00:00"
}
]
}
<?php
$url = "https://virtualsms.org/api-c/servicos.php";
$api_key = "SUA_CHAVE_API";
$data = array('api_key' => $api_key);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
echo 'Erro na requisição: ' . curl_error($ch);
} else {
$responseData = json_decode($response, true);
echo "Resposta da API: ";
print_r($responseData);
}
curl_close($ch);
?>
import requests
url = 'https://virtualsms.org/api-c/servicos.php'
data = {'api_key': 'SUA_CHAVE_API'}
response = requests.post(url, data=data)
if response.status_code == 200:
try:
response_data = response.json()
print('Resposta da API:', response_data)
except ValueError:
print('Erro ao decodificar a resposta JSON:', response.text)
else:
print(f'Erro na requisição. Código de status: {response.status_code}')
const axios = require('axios');
const url = 'https://virtualsms.org/api-c/servicos.php';
const data = { api_key: 'SUA_CHAVE_API' };
axios.post(url, data)
.then(response => {
console.log('Resposta da API:', response.data);
})
.catch(error => {
console.error('Erro ao conectar à API:', error.response ? error.response.data : error.message);
});
Use este endpoint para verificar o status atual de um número (pendente, expirado, cancelado, etc.).
POST https://virtualsms.org/api-c/verificar_status.php
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
api_key | string | Sim | Sua chave de API |
id_compra | integer | Sim | ID da compra que deseja verificar |
{
"status": "success",
"message": "Status da compra recuperado com sucesso.",
"data": {
"status": "pendente de sms"
}
}
<?php
$url = "https://virtualsms.org/api-c/verificar_status.php";
$apiKey = "SUA_API_KEY";
$idCompra = 12345;
$data = [
'api_key' => $apiKey,
'id_compra' => $idCompra
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_status === 200) {
$responseData = json_decode($response, true);
echo "Status do número: " . $responseData['data']['status'];
} else {
echo "Erro ao verificar status: " . $response;
}
?>
import requests
url = "https://virtualsms.org/api-c/verificar_status.php"
api_key = "SUA_API_KEY"
id_compra = 12345
data = {
'api_key': api_key,
'id_compra': id_compra
}
try:
response = requests.post(url, data=data)
if response.status_code == 200:
print("Status do número:", response.json()['data']['status'])
else:
print(f"Erro ao verificar status: {response.text}")
except requests.exceptions.RequestException as e:
print(f"Erro na requisição: {e}")
const axios = require('axios');
const url = "https://virtualsms.org/api-c/verificar_status.php";
const apiKey = "SUA_API_KEY";
const idCompra = 12345;
axios.post(url, {
api_key: apiKey,
id_compra: idCompra
})
.then(response => {
console.log("Status do número:", response.data.data.status);
})
.catch(error => {
console.error("Erro ao verificar status:", error.response ? error.response.data : error.message);
});
Todas as respostas da API são retornadas no formato JSON com uma estrutura consistente.
{
"status": "success" | "error",
"message": "Mensagem descritiva do resultado",
"data": { ... } // Dados adicionais quando aplicável
}
Código | Significado | Descrição |
---|---|---|
200 | OK | Requisição bem-sucedida |
400 | Bad Request | Parâmetros inválidos ou faltando |
401 | Unauthorized | Chave de API inválida ou ausente |
403 | Forbidden | Acesso negado (usuário bloqueado, etc.) |
404 | Not Found | Recurso não encontrado |
500 | Internal Server Error | Erro no servidor |
A API retorna mensagens de erro descritivas para ajudar na identificação e resolução de problemas.
Mensagem de Erro | Causa Provável | Solução |
---|---|---|
Chave de API inválida | Chave de API incorreta ou não fornecida | Verifique sua chave de API no painel administrativo |
Saldo insuficiente | Saldo na conta é menor que o valor do serviço | Recarregue seu saldo |
Serviço não encontrado | ID do serviço não existe ou está inativo | Verifique a lista de serviços disponíveis |
Nenhum número disponível | Todos os números estão em uso para o serviço solicitado | Tente novamente mais tarde ou contate o suporte |
Compra não encontrada | ID da compra não existe ou não pertence ao usuário | Verifique o histórico de compras |