API QueroSMS - Documentação Completa

Documentação

Integre rapidamente a API QueroSMS ao seu sistema com nossa documentação completa e exemplos práticos.

Autenticação

Autenticação via API Key

A QueroSMS API usa autenticação via API Key no header da requisição

Header de Autenticação

Header
X-QueroSMS-API-Key: sua_api_key

Importante

Sua API Key é única e secreta. Mantenha-a segura e nunca a compartilhe publicamente.

Exemplo de Autenticação

cURL
curl -X GET "API_URL" \
  -H "X-QueroSMS-API-Key: sua_api_key"
Enviar SMS

Envio de Mensagens

Use nossa API para enviar mensagens SMS de forma simples e eficiente

POST/v1/sms/send

Parâmetros

toobrigatórioNúmero de destino (9XXXXXXXX)
messageobrigatórioMensagem a ser enviada
messaging_service_sidopcionalID da aplicação de mensagens
Atenção:

O número do destinatário deve ser informado sem o indicativo internacional (exemplo: 923XXXXXXX).
As mensagens são enviadas apenas para números das operadoras de telefone de Angola.

SMS Simples (Padrão "SMS INFO")

cURL
curl -X POST "API_URL" \
  -H "X-QueroSMS-API-Key: sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "9XXXXXXXX",
    "message": "Olá! Esta é uma mensagem de teste."
  }'

SMS com Remetente Personalizado

cURL
curl -X POST "API_URL" \
  -H "X-QueroSMS-API-Key: sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "9XXXXXXXX",
    "messaging_service_sid": "MSXXXXXXXX",
    "message": "Olá! Esta é uma mensagem de teste."
  }'

Resposta de Sucesso

JSON Response
{
  "success": true,
  "message": "SMS sent successfully",
  "data": {
    "sms_id": 123,
    "to": "9XXXXXXXX",
    "message": "Olá! Esta é uma mensagem de teste.",
    "messaging_service_sid": "MSXXXXXXXX",
    "status": "sent",
    "remaining_sms": 4999
  }
}

Como funciona o nome do remetente?

• Se você não informar o parâmetro messaging_service_sid, suas mensagens serão enviadas com o remetente padrão "SMS INFO"

• Se você informar o parâmetro messaging_service_sid, suas mensagens serão enviadas usando o nome personalizado que você configurou na sua aplicação de mensagens

Exemplo: Se sua aplicação se chama "Minha Loja", é esse nome que aparecerá como remetente das mensagens

Serviço OTP

Códigos de Verificação OTP

Envie e verifique códigos OTP de forma segura e confiável

Enviar OTP

Envie códigos de verificação personalizados via SMS

Verificar OTP

Verifique se o código inserido pelo usuário está correto

Expiração

Códigos expiram automaticamente após o tempo definido

POST/v1/otp/request

Parâmetros

phone_numberobrigatórioNúmero de destino (9XXXXXXXX)
messaging_service_sidopcionalID da aplicação de mensagens

Enviar OTP (cURL)

cURL
curl -X POST "API_URL/v1/otp/request" \
  -H "X-QueroSMS-API-Key: sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "937543544"
  }'

Enviar OTP (JavaScript)

JavaScript
const axios = require('axios');

const apiKey = process.env.API_KEY;
const apiUrl = process.env.API_URL;

async function sendOTP() {
    try {
        const response = await axios.post(apiUrl + '/v1/otp/request', {
            phone_number: '937543544'
        }, {
            headers: {
                'Content-Type': 'application/json',
                'X-QueroSMS-API-Key': apiKey
            }
        });
        
        if (response.data.success) {
            console.log('OTP enviado! ID:', response.data.data.otp_id);
        }
    } catch (error) {
        console.error('Erro:', error.response.data.message);
    }
}

sendOTP();

Resposta de Envio OTP

JSON Response
{
  "success": true,
  "message": "OTP enviado com sucesso.",
  "sms_id": 12,
  "remaining_sms": 199
}
POST/v1/otp/verify

Parâmetros

phone_numberobrigatórioNúmero de destino (9XXXXXXXX)
codeobrigatórioCódigo inserido pelo usuário

Verificar OTP (cURL)

cURL
curl -X POST "API_URL/v1/otp/verify" \
  -H "X-QueroSMS-API-Key: sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "937543544",
    "code": "123456"
  }'

Verificar OTP (JavaScript)

JavaScript
const axios = require('axios');

const apiKey = process.env.API_KEY;
const apiUrl = process.env.API_URL;

async function verifyOTP(phoneNumber, code) {
    try {
        const response = await axios.post(apiUrl + '/v1/otp/verify', {
            phone_number: phoneNumber,
            code: code
        }, {
            headers: {
                'Content-Type': 'application/json',
                'X-QueroSMS-API-Key': apiKey
            }
        });
        
        if (response.data.success) {
            console.log('OTP verificado com sucesso!');
        }
    } catch (error) {
        console.error('Erro:', error.response.data.message);
    }
}

verifyOTP('937543544', '123456');

Resposta de Verificação OTP

JSON Response
{
  "success": true,
  "message": "Código verificado com sucesso."
}

Como funciona o Serviço OTP?

• O sistema gera automaticamente um código de 6 dígitos quando você solicita um OTP

• O código é enviado via SMS usando a aplicação de mensagens especificada ou "SMS OTP" como padrão

• O código expira automaticamente após um período de tempo (padrão: 5 minutos)

• Use o mesmo número de telefone para verificar o código inserido pelo usuário

Exemplo: Envie um OTP para 937543544 e depois verifique o código inserido pelo usuário

Personalização das Configurações OTP

Quantidade de dígitos: Configure quantos dígitos terá o código OTP (padrão: 6)

Tempo de expiração: Defina por quanto tempo o código será válido (padrão: 5 minutos)

Número de tentativas: Configure quantas tentativas o usuário pode fazer para verificar o código

Templates personalizados: Crie mensagens personalizadas para os códigos OTP

Todas essas configurações podem ser personalizadas através do dashboard no menu "OTP"

Exemplos de Código

Exemplos de Integração

Integre a API QueroSMS em diferentes linguagens de programação

PHP

PHP

PHP
<?php

$apiKey = $_ENV['API_KEY'];
$apiUrl = $_ENV['API_URL'];
$messagingServiceSid = $_ENV['MESSAGING_SERVICE_SID'];

$url = apiUrl;
$data = [
    "to" => "9XXXXXXXX",
    "messaging_service_sid" => $messagingServiceSid, // Opcional, caso não seja informado, será usado o padrão "SMS INFO"
    "message" => "Sua mensagem aqui"
];

$options = [
    'http' => [
        'header' => [
            "Content-Type: application/json",
            "X-QueroSMS-API-Key: $apiKey"
        ],
        'method' => 'POST',
        'content' => json_encode($data)
    ]
];

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);

if ($response['success']) {
    echo "SMS enviado! ID: " . $response['data']['sms_id'];
} else {
    echo "Erro: " . $response['message'];
}
?>
PY

Python

Python
import requests
import json
import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv('API_KEY')
api_url = os.getenv('API_URL')
messaging_service_sid = os.getenv('MESSAGING_SERVICE_SID')

url = api_url
headers = {
    'Content-Type': 'application/json',
    'X-QueroSMS-API-Key': api_key
}
data = {
    'to': '9XXXXXXXX',
    'messaging_service_sid': messaging_service_sid, # Opcional, caso não seja informado, será usado o padrão "SMS INFO"
    'message': 'Sua mensagem aqui'
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

if result['success']:
    print(f"SMS enviado! ID: {result['data']['sms_id']}")
else:
    print(f"Erro: {result['message']}")
JS

JavaScript (Node.js)

JavaScript
const axios = require('axios');

const apiKey = process.env.API_KEY;
const apiUrl = process.env.API_URL;
const messagingServiceSid = process.env.MESSAGING_SERVICE_SID;

async function sendSMS() {
    try {
        const response = await axios.post(apiUrl, {
            to: '9XXXXXXXX',
            messaging_service_sid: messagingServiceSid, // Opcional, caso não seja informado, será usado o padrão "SMS INFO"
            message: 'Sua mensagem aqui'
        }, {
            headers: {
                'Content-Type': 'application/json',
                'X-QueroSMS-API-Key': apiKey
            }
        });
        
        if (response.data.success) {
            console.log('SMS enviado! ID:', response.data.data.sms_id);
        }
    } catch (error) {
        console.error('Erro:', error.response.data.message);
    }
}

sendSMS();
OTP

Exemplos OTP

Python OTP

Python
import requests
import json
import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv('API_KEY')
api_url = os.getenv('API_URL')

url = api_url + '/v1/otp/request'
headers = {
    'Content-Type': 'application/json',
    'X-QueroSMS-API-Key': api_key
}
data = {
    'phone_number': '937543544'
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

if result['success']:
    print(f"OTP enviado! ID: {result['data']['otp_id']}")
else:
    print(f"Erro: {result['message']}")

PHP OTP

PHP
<?php

$apiKey = $_ENV['API_KEY'];
$apiUrl = $_ENV['API_URL'];

$url = $apiUrl . '/v1/otp/request';
$data = [
    "phone_number" => "937543544"
];

$options = [
    'http' => [
        'header' => [
            "Content-Type: application/json",
            "X-QueroSMS-API-Key: $apiKey"
        ],
        'method' => 'POST',
        'content' => json_encode($data)
    ]
];

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);

if ($response['success']) {
    echo "OTP enviado! ID: " . $response['data']['otp_id'];
} else {
    echo "Erro: " . $response['message'];
}
?>

Pronto!

Agora você já pode integrar a QueroSMS API ao seu sistema. Para dúvidas, entre em contacto connosco.

Referência da API

Endpoints principais da API QueroSMS

POST/v1/sms/send

Enviar uma mensagem SMS

to (obrigatório)message (obrigatório)messaging_service_sid (opcional)
POST/v1/otp/request

Solicita o envio de um código OTP por SMS

phone_number (obrigatório)messaging_service_sid (opcional)
POST/v1/otp/verify

Verifica o código OTP enviado por SMS

phone_number (obrigatório)code (obrigatório)

Precisa de Ajuda?

Nossa equipe de suporte está pronta para ajudar na sua integração