integrax/integrax-php

Send SMS, RCS & OTP messages via API. Bulk SMS, OTP verification, phone number lookup — zero dependencies.

Maintainers

Package info

github.com/IntegraX-lat/integrax-php

Homepage

Issues

pkg:composer/integrax/integrax-php

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

dev-main 2026-04-12 16:01 UTC

This package is not auto-updated.

Last update: 2026-04-13 14:31:22 UTC


README

SDK oficial da Integrax para PHP — SMS, RCS, OTP e consultas via API REST.

  • Zero dependencias (usa curl nativo)
  • PHP 8.1+ com named arguments, readonly properties
  • PSR-4 autoload

Obtendo seu token

  1. Crie uma conta gratuita em integrax.app
  2. Após o cadastro, acesse o menu API e crie um token

Pronto, você já pode integrar!

Se receber MESSAGE_NOT_ALLOWED, entre em contato com o suporte pelo WhatsApp e solicite a liberação.

Instalacao

composer require integrax/integrax-php

Quick start

require_once 'vendor/autoload.php';

use Integrax\Integrax;

$ix = new Integrax("seu-token-aqui");

// Enviar SMS
$res = $ix->sms->send(["5511999999999"], "Pedido #4821 confirmado!");
echo $res["data"][0]["messageId"]; // "82816396"

Configuracao

$ix = new Integrax(
    token: "seu-token",
    baseUrl: "https://sms.aresfun.com", // padrao
    timeout: 15,                         // padrao: 30s
);

SMS

// Envio simples (usa shortcode padrao da conta)
$res = $ix->sms->send(["5511999999999", "5521888888888"], "Sua mensagem aqui");

// Com shortcode customizado
$res = $ix->sms->send(["5511999999999"], "Ola!", from: "29094");

// $res["code"] == "SMS_SENT"
// $res["data"][0]["status"] == "SENT_TO_OPERATOR"
// $res["data"][0]["messageId"] == "82816396"

DLR (webhook)

Configure seu webhook para receber o status de entrega:

{
    "message_id": "82816396",
    "status": "DELIVRD",
    "number": "5511999999999"
}

OTP

Duas chamadas: enviar codigo e verificar.

// 1. Envio minimo (usa todos os defaults: 6 digitos numericos, expira em 10min)
$ix->otp->send("5511999999999");

// 1b. Personalizado
$ix->otp->send(
    "5511999999999",
    messageDefault: "Use [code] pra confirmar sua conta", // padrao: "Seu codigo: [code]"
    from: "29094",       // se omitido, usa o padrao da conta
    qtdDigits: 5,        // padrao: 6
    withText: true,      // alfanumerico (padrao: false = so numeros)
    expiresIn: 5,        // minutos (padrao: 10)
);

// 2. Verificar codigo digitado pelo usuario
$res = $ix->otp->verify("1MP5L", "5511999999999");
if ($res["status"] === "verified") {
    echo "Codigo valido!";
}

RCS

BASIC (so texto)

$ix->rcs->send(
    ["5511999999999"],
    "Ola! Mensagem RCS basica.",
    "IntegraX",
    rcsType: "BASIC",
);

RICH (card com midia e botoes)

$ix->rcs->send(
    ["5511999999999"],
    "Confira nossa oferta!",
    "IntegraX",
    rcsMessage: [
        "card" => [
            "title" => "Black Friday",
            "description" => "Ate 60% OFF em todos os produtos.",
            "media" => [
                "file" => ["url" => "https://exemplo.com/banner.png"],
                "height" => "MEDIUM",
            ],
            "suggestions" => [
                [
                    "type" => "OPEN_URL",
                    "text" => "Ver ofertas",
                    "url" => "https://exemplo.com/ofertas",
                    "postbackData" => "click_ofertas",
                ],
            ],
        ],
    ],
);

Creditos

$saldo = $ix->credits->balance();
print_r($saldo);

Consultas

Por CPF

$res = $ix->consult->cpf(["00000000001"], showPhoneValid: true, showRestrictions: true);

Por telefone

$res = $ix->consult->phone(["551199999999"]);

Telefone premium (dados enriquecidos)

$res = $ix->consult->phonePremium(["551199999999"]);

Números internacionais

  • Para números de outros países, insira + na frente do número (ex: +34992000000).
  • Para envios internacionais, é necessário solicitar a ativação da rota através do suporte.
  • Alguns países permitem from personalizado. Se permitido, basta informar o from no payload.

Tratamento de erros

use Integrax\Integrax;
use Integrax\IntegraxException;

try {
    $ix->sms->send(["551100000000"], "teste");
} catch (IntegraxException $e) {
    echo $e->status;    // HTTP status (ex: 401, 422)
    echo $e->errorCode; // codigo da API (ex: "INVALID_TOKEN")
    print_r($e->body);  // corpo completo da resposta
}

Licenca

MIT