Introduction
Integre seu sistema aos bots de venda de acesso a grupos do Telegram.
API REST para integrar seu sistema ao IncrívelBot: crie bots, planos de acesso, gere cobranças Pix, conceda/estenda/remova acessos e receba eventos por webhook.
Permissões
Tokens têm permissões de leitura (tenant:read / platform:read) e escrita (tenant:write / platform:write). Requisições GET exigem leitura ou escrita; as demais exigem escrita.
Valores e datas
Valores monetários em centavos (R$ 29,90 = 2990). Datas em ISO 8601 (fuso America/Sao_Paulo).
Erros
401 token ausente/inválido · 402 assinatura da criadora suspensa · 403 sem permissão ou limite do plano · 404 não encontrado (inclui registros de outra conta) · 422 validação (errors por campo) · 429 limite de requisições (120/min por token; 30 cobranças/min).
Webhooks de saída
Configure a URL em PATCH /api/v1/me (integration_webhook_url) e gere o segredo em POST /api/v1/me/webhook-secret.
Eventos: payment.paid, membership.activated, membership.granted, membership.expired.
Cada entrega é um POST JSON {"id","event","created_at","data"} com os cabeçalhos X-IncrivelBot-Event, X-IncrivelBot-Delivery, X-IncrivelBot-Timestamp e X-IncrivelBot-Signature.
Valide: X-IncrivelBot-Signature == "sha256=" + HMAC_SHA256("{timestamp}.{corpo bruto}", segredo) e rejeite timestamps com mais de 5 minutos. Responda 2xx; falhas são reenviadas com backoff (até 6 tentativas). Use id para idempotência.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {SEU_TOKEN}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Gere o token no painel: criadora em Configurações → API e integrações; plataforma em Sistema → API da plataforma.
Conta
Dados da criadora dona do token, limites do plano e configurações de recebimento e integração.
Minha conta
requires authentication
Retorna a criadora, o plano da plataforma, o uso atual e as configurações. Funciona mesmo com a assinatura suspensa.
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/me" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/me"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/me';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/me'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "9f1c...",
"name": "Ana VIP",
"slug": "anavip",
"status": "active",
"can_operate": true,
"payout_mode": "own",
"usage": {
"bots": 1,
"active_groups": 1,
"active_members": 42
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar configurações
requires authentication
Modo de recebimento, gateway padrão, Wallet ID do Asaas, contato de suporte e URL de webhooks de integração.
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/me" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"payout_mode\": \"own\",
\"default_gateway\": \"asaas\",
\"asaas_wallet_id\": \"0c4f1e8a-1f0b-4b8e-9c0e-2f3d4a5b6c7d\",
\"support_contact\": \"@meusuporte\",
\"integration_webhook_url\": \"https:\\/\\/meusistema.com.br\\/webhooks\\/incrivelbot\"
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/me"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"payout_mode": "own",
"default_gateway": "asaas",
"asaas_wallet_id": "0c4f1e8a-1f0b-4b8e-9c0e-2f3d4a5b6c7d",
"support_contact": "@meusuporte",
"integration_webhook_url": "https:\/\/meusistema.com.br\/webhooks\/incrivelbot"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/me';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'payout_mode' => 'own',
'default_gateway' => 'asaas',
'asaas_wallet_id' => '0c4f1e8a-1f0b-4b8e-9c0e-2f3d4a5b6c7d',
'support_contact' => '@meusuporte',
'integration_webhook_url' => 'https://meusistema.com.br/webhooks/incrivelbot',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/me'
payload = {
"payout_mode": "own",
"default_gateway": "asaas",
"asaas_wallet_id": "0c4f1e8a-1f0b-4b8e-9c0e-2f3d4a5b6c7d",
"support_contact": "@meusuporte",
"integration_webhook_url": "https:\/\/meusistema.com.br\/webhooks\/incrivelbot"
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"payout_mode": "own",
"default_gateway": "asaas",
"integration_webhook_url": "https://meusistema.com.br/webhooks/incrivelbot"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Gerar novo segredo de webhook
requires authentication
Gera (ou rotaciona) o segredo usado para assinar os webhooks de integração. O valor é exibido somente nesta resposta.
Verifique cada evento com: sha256= + HMAC-SHA256({X-IncrivelBot-Timestamp}.{corpo}, segredo) == X-IncrivelBot-Signature.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/me/webhook-secret" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/me/webhook-secret"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/me/webhook-secret';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/me/webhook-secret'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"secret": "whsec_6Jx..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bots
Bots do Telegram conectados à conta (token do @BotFather). O webhook é registrado automaticamente.
Listar bots
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/bots" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/bots"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 1,
"name": "Bot VIP",
"username": "meu_vip_bot",
"status": "active",
"link": "https://t.me/meu_vip_bot"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Conectar bot
requires authentication
Valida o token no Telegram, registra o webhook com segredo próprio e os comandos do bot. Respeita o limite de bots do plano.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/bots" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawQ\",
\"name\": \"Bot VIP\",
\"welcome_message\": \"Oi! Aqui você assina meu grupo VIP 💖\"
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/bots"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawQ",
"name": "Bot VIP",
"welcome_message": "Oi! Aqui você assina meu grupo VIP 💖"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'token' => '123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawQ',
'name' => 'Bot VIP',
'welcome_message' => 'Oi! Aqui você assina meu grupo VIP 💖',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots'
payload = {
"token": "123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawQ",
"name": "Bot VIP",
"welcome_message": "Oi! Aqui você assina meu grupo VIP 💖"
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Bot VIP",
"username": "meu_vip_bot",
"status": "active"
}
}
Example response (403):
{
"message": "Seu plano atingiu o limite de bots."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver bot
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/bots/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/bots/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 1,
"name": "Bot VIP",
"username": "meu_vip_bot",
"status": "active",
"groups_count": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar bot
requires authentication
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/bots/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Bot VIP\",
\"welcome_message\": \"Bem-vindo(a)!\"
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/bots/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Bot VIP",
"welcome_message": "Bem-vindo(a)!"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots/architecto';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Bot VIP',
'welcome_message' => 'Bem-vindo(a)!',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots/architecto'
payload = {
"name": "Bot VIP",
"welcome_message": "Bem-vindo(a)!"
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 1,
"name": "Bot VIP",
"welcome_message": "Bem-vindo(a)!"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reconectar webhook
requires authentication
Registra novamente o webhook no Telegram (use após trocar de domínio ou se o status estiver "error").
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/bots/1/reconnect" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/bots/1/reconnect"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots/1/reconnect';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots/1/reconnect'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 1,
"status": "active",
"last_error": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remover bot
requires authentication
Remove o webhook no Telegram e apaga o bot com seus grupos, planos e assinantes.
Example request:
curl --request DELETE \
"https://bot.incrivel.tech/api/v1/bots/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/bots/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/bots/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/bots/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Grupos e canais
Grupos são cadastrados automaticamente quando o bot vira administrador no Telegram. Pela API você ativa as vendas e ajusta as opções.
Listar grupos
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/groups?bot_id=1&is_active=1" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/groups"
);
const params = {
"bot_id": "1",
"is_active": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/groups';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'bot_id' => '1',
'is_active' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/groups'
params = {
'bot_id': '1',
'is_active': '1',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 1,
"bot_id": 1,
"chat_id": -1001234567890,
"title": "VIP da Ana",
"is_active": true,
"ready_to_sell": true,
"sales_link": "https://t.me/meu_vip_bot?start=g1"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver grupo
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/groups/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/groups/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/groups/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/groups/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 1,
"title": "VIP da Ana",
"permissions": {
"is_bot_admin": true,
"can_invite_users": true,
"can_restrict_members": true
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar grupo
requires authentication
Para ativar as vendas (is_active: true) o bot precisa ser administrador com permissão de convidar e banir,
e o plano da plataforma precisa ter vaga para mais um grupo ativo.
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/groups/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"description\": \"Conteúdo exclusivo diário.\",
\"adult_content\": true,
\"is_active\": true
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/groups/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"description": "Conteúdo exclusivo diário.",
"adult_content": true,
"is_active": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/groups/architecto';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'description' => 'Conteúdo exclusivo diário.',
'adult_content' => true,
'is_active' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/groups/architecto'
payload = {
"description": "Conteúdo exclusivo diário.",
"adult_content": true,
"is_active": true
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 1,
"is_active": true,
"adult_content": true
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verificar permissões do bot
requires authentication
Consulta o Telegram e atualiza se o bot é administrador e quais permissões tem no grupo.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/groups/1/check-permissions" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/groups/1/check-permissions"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/groups/1/check-permissions';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/groups/1/check-permissions'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 1,
"permissions": {
"is_bot_admin": true,
"can_invite_users": true,
"can_restrict_members": true,
"checked_at": "2026-10-18T12:00:00-03:00"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Planos de acesso
Planos vendidos pelo bot (preço, duração, lembretes de renovação e carência).
Listar planos
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/plans?telegram_group_id=1" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/plans"
);
const params = {
"telegram_group_id": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'telegram_group_id' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/plans'
params = {
'telegram_group_id': '1',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 3,
"telegram_group_id": 1,
"name": "VIP Mensal",
"price_cents": 2990,
"price": "R$ 29,90",
"duration_days": 30,
"reminder_days": [
3,
1,
0
],
"grace_hours": 0,
"is_active": true,
"purchase_link": "https://t.me/meu_vip_bot?start=p3"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Criar plano
requires authentication
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/plans" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"telegram_group_id\": 1,
\"name\": \"VIP Mensal\",
\"description\": \"Acesso por 30 dias\",
\"price_cents\": 2990,
\"duration_days\": 30,
\"reminder_days\": [
3
],
\"grace_hours\": 12,
\"is_active\": true,
\"sort_order\": 0
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/plans"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"telegram_group_id": 1,
"name": "VIP Mensal",
"description": "Acesso por 30 dias",
"price_cents": 2990,
"duration_days": 30,
"reminder_days": [
3
],
"grace_hours": 12,
"is_active": true,
"sort_order": 0
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/plans';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'telegram_group_id' => 1,
'name' => 'VIP Mensal',
'description' => 'Acesso por 30 dias',
'price_cents' => 2990,
'duration_days' => 30,
'reminder_days' => [3],
'grace_hours' => 12,
'is_active' => true,
'sort_order' => 0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/plans'
payload = {
"telegram_group_id": 1,
"name": "VIP Mensal",
"description": "Acesso por 30 dias",
"price_cents": 2990,
"duration_days": 30,
"reminder_days": [
3
],
"grace_hours": 12,
"is_active": true,
"sort_order": 0
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 3,
"telegram_group_id": 1,
"name": "VIP Mensal",
"price_cents": 2990,
"price": "R$ 29,90",
"duration_days": 30,
"reminder_days": [
3,
1,
0
],
"grace_hours": 0,
"is_active": true,
"purchase_link": "https://t.me/meu_vip_bot?start=p3"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver plano
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/plans/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/plans/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/plans/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/plans/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 3,
"telegram_group_id": 1,
"name": "VIP Mensal",
"price_cents": 2990,
"price": "R$ 29,90",
"duration_days": 30,
"reminder_days": [
3,
1,
0
],
"grace_hours": 0,
"is_active": true,
"purchase_link": "https://t.me/meu_vip_bot?start=p3"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar plano
requires authentication
Envie apenas os campos que deseja alterar. Assinantes ativos mantêm o vencimento atual.
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/plans/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"telegram_group_id\": 1,
\"name\": \"VIP Mensal\",
\"description\": \"Acesso por 30 dias\",
\"price_cents\": 2990,
\"duration_days\": 30,
\"reminder_days\": [
3
],
\"grace_hours\": 12,
\"is_active\": true,
\"sort_order\": 0
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/plans/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"telegram_group_id": 1,
"name": "VIP Mensal",
"description": "Acesso por 30 dias",
"price_cents": 2990,
"duration_days": 30,
"reminder_days": [
3
],
"grace_hours": 12,
"is_active": true,
"sort_order": 0
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/plans/architecto';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'telegram_group_id' => 1,
'name' => 'VIP Mensal',
'description' => 'Acesso por 30 dias',
'price_cents' => 2990,
'duration_days' => 30,
'reminder_days' => [3],
'grace_hours' => 12,
'is_active' => true,
'sort_order' => 0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/plans/architecto'
payload = {
"telegram_group_id": 1,
"name": "VIP Mensal",
"description": "Acesso por 30 dias",
"price_cents": 2990,
"duration_days": 30,
"reminder_days": [
3
],
"grace_hours": 12,
"is_active": true,
"sort_order": 0
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 3,
"telegram_group_id": 1,
"name": "VIP Mensal",
"price_cents": 2990,
"price": "R$ 29,90",
"duration_days": 30,
"reminder_days": [
3,
1,
0
],
"grace_hours": 0,
"is_active": true,
"purchase_link": "https://t.me/meu_vip_bot?start=p3"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remover plano
requires authentication
Exclusão lógica: o plano some do bot, mas o histórico de pagamentos é preservado.
Example request:
curl --request DELETE \
"https://bot.incrivel.tech/api/v1/plans/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/plans/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/plans/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/plans/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Assinantes
Pessoas que iniciaram conversa com o bot. O CPF nunca é exposto completo.
Listar assinantes
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/subscribers?search=ana&telegram_user_id=123456789&per_page=25" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/subscribers"
);
const params = {
"search": "ana",
"telegram_user_id": "123456789",
"per_page": "25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/subscribers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'search' => 'ana',
'telegram_user_id' => '123456789',
'per_page' => '25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/subscribers'
params = {
'search': 'ana',
'telegram_user_id': '123456789',
'per_page': '25',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 10,
"telegram_user_id": 123456789,
"username": "ana",
"full_name": "Ana Maria Silva",
"email": "ana@example.com",
"document_masked": "***.982.***-25"
}
],
"links": [],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver assinante
requires authentication
Inclui as permanências (acessos) do assinante em cada grupo.
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/subscribers/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/subscribers/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/subscribers/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/subscribers/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 10,
"full_name": "Ana Maria Silva",
"memberships": [
{
"id": 5,
"telegram_group_id": 1,
"status": "active",
"expires_at": "2026-11-18T12:00:00-03:00"
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Conceder acesso (cortesia)
requires authentication
Libera ou estende o acesso sem cobrança e envia o convite pelo bot.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/subscribers/10/grant" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"telegram_group_id\": 1,
\"days\": 30
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/subscribers/10/grant"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"telegram_group_id": 1,
"days": 30
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/subscribers/10/grant';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'telegram_group_id' => 1,
'days' => 30,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/subscribers/10/grant'
payload = {
"telegram_group_id": 1,
"days": 30
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 5,
"subscriber_id": 10,
"telegram_group_id": 1,
"status": "active",
"expires_at": "2026-11-18T12:00:00-03:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Membros
Permanências dos assinantes nos grupos: vencimentos, extensões, convites e remoções.
Listar membros
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/memberships?status=active&telegram_group_id=1&subscriber_id=10&expiring_in_days=7&per_page=25" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"cancelled\",
\"expiring_in_days\": 1
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/memberships"
);
const params = {
"status": "active",
"telegram_group_id": "1",
"subscriber_id": "10",
"expiring_in_days": "7",
"per_page": "25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "cancelled",
"expiring_in_days": 1
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/memberships';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'status' => 'active',
'telegram_group_id' => '1',
'subscriber_id' => '10',
'expiring_in_days' => '7',
'per_page' => '25',
],
'json' => [
'status' => 'cancelled',
'expiring_in_days' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/memberships'
payload = {
"status": "cancelled",
"expiring_in_days": 1
}
params = {
'status': 'active',
'telegram_group_id': '1',
'subscriber_id': '10',
'expiring_in_days': '7',
'per_page': '25',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 5,
"subscriber_id": 10,
"telegram_group_id": 1,
"access_plan_id": 3,
"status": "active",
"is_active": true,
"expires_at": "2026-11-18T12:00:00-03:00",
"joined_at": "2026-10-18T12:05:00-03:00"
}
],
"links": [],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver membro
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/memberships/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/memberships/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/memberships/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/memberships/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 5,
"subscriber_id": 10,
"telegram_group_id": 1,
"access_plan_id": 3,
"status": "active",
"is_active": true,
"expires_at": "2026-11-18T12:00:00-03:00",
"joined_at": "2026-10-18T12:05:00-03:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Estender acesso (cortesia)
requires authentication
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/memberships/5/extend" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"telegram_group_id\": 1,
\"days\": 30
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/memberships/5/extend"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"telegram_group_id": 1,
"days": 30
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/memberships/5/extend';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'telegram_group_id' => 1,
'days' => 30,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/memberships/5/extend'
payload = {
"telegram_group_id": 1,
"days": 30
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 5,
"subscriber_id": 10,
"telegram_group_id": 1,
"access_plan_id": 3,
"status": "active",
"is_active": true,
"expires_at": "2026-11-18T12:00:00-03:00",
"joined_at": "2026-10-18T12:05:00-03:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reenviar convite
requires authentication
Gera um novo link pessoal (com pedido de entrada) e envia ao assinante pelo bot.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/memberships/5/resend-invite" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/memberships/5/resend-invite"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/memberships/5/resend-invite';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/memberships/5/resend-invite'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 5,
"subscriber_id": 10,
"telegram_group_id": 1,
"access_plan_id": 3,
"status": "active",
"is_active": true,
"expires_at": "2026-11-18T12:00:00-03:00",
"joined_at": "2026-10-18T12:05:00-03:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remover do grupo agora
requires authentication
Remove o assinante do grupo imediatamente e encerra a permanência (status "expired").
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/memberships/5/remove" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/memberships/5/remove"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/memberships/5/remove';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/memberships/5/remove'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 5,
"status": "expired",
"removed_at": "2026-10-18T13:00:00-03:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Pagamentos
Cobranças Pix de planos de acesso. A confirmação vem do gateway (webhook) e libera o acesso automaticamente.
Listar pagamentos
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/payments?status=paid&subscriber_id=10&from=2026-10-01&per_page=25" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"pending\",
\"from\": \"2026-10-19\"
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/payments"
);
const params = {
"status": "paid",
"subscriber_id": "10",
"from": "2026-10-01",
"per_page": "25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "pending",
"from": "2026-10-19"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/payments';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'status' => 'paid',
'subscriber_id' => '10',
'from' => '2026-10-01',
'per_page' => '25',
],
'json' => [
'status' => 'pending',
'from' => '2026-10-19',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/payments'
payload = {
"status": "pending",
"from": "2026-10-19"
}
params = {
'status': 'paid',
'subscriber_id': '10',
'from': '2026-10-01',
'per_page': '25',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()Example response (200):
{
"data": [
{
"id": "0f8d6c3a-5b1e-4f7a-9a0b-1c2d3e4f5a6b",
"purpose": "membership",
"status": "pending",
"provider": "asaas",
"amount_cents": 2990,
"platform_fee_cents": 0,
"net_amount_cents": 2990,
"subscriber_id": 10,
"access_plan_id": 3,
"pix": {
"copy_paste": "00020126580014br.gov.bcb.pix...",
"qr_code_base64": "iVBORw0KGgo...",
"checkout_url": "https://www.asaas.com/i/abc123"
},
"expires_at": "2026-10-19T12:00:00-03:00",
"paid_at": null
}
],
"links": [],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Gerar cobrança Pix
requires authentication
Cria (ou reaproveita, se ainda válida) a cobrança Pix de um plano para um assinante. O pagador precisa ter nome, CPF e e-mail — envie-os aqui se ainda não foram coletados pelo bot.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/payments" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"subscriber_id\": 10,
\"access_plan_id\": 3,
\"full_name\": \"Ana Maria Silva\",
\"document\": \"529.982.247-25\",
\"email\": \"ana@example.com\",
\"send_to_telegram\": true
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/payments"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"subscriber_id": 10,
"access_plan_id": 3,
"full_name": "Ana Maria Silva",
"document": "529.982.247-25",
"email": "ana@example.com",
"send_to_telegram": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/payments';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'subscriber_id' => 10,
'access_plan_id' => 3,
'full_name' => 'Ana Maria Silva',
'document' => '529.982.247-25',
'email' => 'ana@example.com',
'send_to_telegram' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/payments'
payload = {
"subscriber_id": 10,
"access_plan_id": 3,
"full_name": "Ana Maria Silva",
"document": "529.982.247-25",
"email": "ana@example.com",
"send_to_telegram": true
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": "0f8d6c3a-5b1e-4f7a-9a0b-1c2d3e4f5a6b",
"purpose": "membership",
"status": "pending",
"provider": "asaas",
"amount_cents": 2990,
"platform_fee_cents": 0,
"net_amount_cents": 2990,
"subscriber_id": 10,
"access_plan_id": 3,
"pix": {
"copy_paste": "00020126580014br.gov.bcb.pix...",
"qr_code_base64": "iVBORw0KGgo...",
"checkout_url": "https://www.asaas.com/i/abc123"
},
"expires_at": "2026-10-19T12:00:00-03:00",
"paid_at": null
}
}
Example response (422):
{
"message": "Gateway da criadora não configurado."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver pagamento
requires authentication
Consulta o gateway quando a cobrança ainda está pendente, para refletir o status mais recente.
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/payments/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/payments/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/payments/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/payments/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "0f8d6c3a-5b1e-4f7a-9a0b-1c2d3e4f5a6b",
"purpose": "membership",
"status": "pending",
"provider": "asaas",
"amount_cents": 2990,
"platform_fee_cents": 0,
"net_amount_cents": 2990,
"subscriber_id": 10,
"access_plan_id": 3,
"pix": {
"copy_paste": "00020126580014br.gov.bcb.pix...",
"qr_code_base64": "iVBORw0KGgo...",
"checkout_url": "https://www.asaas.com/i/abc123"
},
"expires_at": "2026-10-19T12:00:00-03:00",
"paid_at": null
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Gateways de pagamento
Chaves próprias de Asaas, Mercado Pago e Infopago (modo "own"). Os segredos são gravados criptografados e nunca são devolvidos.
Listar gateways
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/gateways" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": "7b2f...",
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"configured_fields": {
"api_key": true
},
"webhook": {
"url": "https://bot.incrivel.tech/webhooks/asaas/7b2f...",
"token": "cole-este-token-no-asaas"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Cadastrar gateway
requires authentication
Depois de cadastrar, configure no painel do gateway a URL de webhook retornada (e, no Asaas, o token).
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/gateways" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"provider\": \"asaas\",
\"label\": \"Conta principal\",
\"sandbox\": true,
\"is_active\": true,
\"credentials\": {
\"api_key\": \"$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA\",
\"access_token\": \"APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000\",
\"webhook_secret\": \"segredo-do-webhook\",
\"base_url\": \"https:\\/\\/api.infopago.com.br\"
}
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"credentials": {
"api_key": "$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA",
"access_token": "APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000",
"webhook_secret": "segredo-do-webhook",
"base_url": "https:\/\/api.infopago.com.br"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'provider' => 'asaas',
'label' => 'Conta principal',
'sandbox' => true,
'is_active' => true,
'credentials' => ['api_key' => '$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA', 'access_token' => 'APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000', 'webhook_secret' => 'segredo-do-webhook', 'base_url' => 'https://api.infopago.com.br'],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways'
payload = {
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"credentials": {
"api_key": "$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA",
"access_token": "APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000",
"webhook_secret": "segredo-do-webhook",
"base_url": "https:\/\/api.infopago.com.br"
}
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": "7b2f...",
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"configured_fields": {
"api_key": true
},
"webhook": {
"url": "https://bot.incrivel.tech/webhooks/asaas/7b2f...",
"token": "cole-este-token-no-asaas"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver gateway
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "7b2f...",
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"configured_fields": {
"api_key": true
},
"webhook": {
"url": "https://bot.incrivel.tech/webhooks/asaas/7b2f...",
"token": "cole-este-token-no-asaas"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar gateway
requires authentication
Campos de credentials omitidos ou vazios mantêm o valor atual.
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"provider\": \"asaas\",
\"label\": \"Conta principal\",
\"sandbox\": true,
\"is_active\": true,
\"credentials\": {
\"api_key\": \"$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA\",
\"access_token\": \"APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000\",
\"webhook_secret\": \"segredo-do-webhook\",
\"base_url\": \"https:\\/\\/api.infopago.com.br\"
}
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"credentials": {
"api_key": "$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA",
"access_token": "APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000",
"webhook_secret": "segredo-do-webhook",
"base_url": "https:\/\/api.infopago.com.br"
}
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'provider' => 'asaas',
'label' => 'Conta principal',
'sandbox' => true,
'is_active' => true,
'credentials' => ['api_key' => '$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA', 'access_token' => 'APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000', 'webhook_secret' => 'segredo-do-webhook', 'base_url' => 'https://api.infopago.com.br'],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000'
payload = {
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"credentials": {
"api_key": "$aact_YTU5YTE0M2M2N2I4MTliNzk0YTI5N2U5MzdjNWZmNDQ6OjAwMDAwMDAwMDAwMDA",
"access_token": "APP_USR-0000000000000000-000000-00000000000000000000000000000000-000000000",
"webhook_secret": "segredo-do-webhook",
"base_url": "https:\/\/api.infopago.com.br"
}
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": "7b2f...",
"provider": "asaas",
"label": "Conta principal",
"sandbox": true,
"is_active": true,
"configured_fields": {
"api_key": true
},
"webhook": {
"url": "https://bot.incrivel.tech/webhooks/asaas/7b2f...",
"token": "cole-este-token-no-asaas"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Testar conexão
requires authentication
Autentica no gateway com as chaves salvas.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000/test" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000/test"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000/test';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000/test'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (200):
{
"ok": true
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remover gateway
requires authentication
Example request:
curl --request DELETE \
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/gateways/7b2f0000-0000-0000-0000-000000000000'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Plataforma: criadoras
Exige token da plataforma (criado no painel master). Provisione contas de criadoras a partir do seu sistema.
Listar criadoras
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/platform/tenants?status=active&search=ana&per_page=25" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"past_due\"
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/tenants"
);
const params = {
"status": "active",
"search": "ana",
"per_page": "25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "past_due"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/tenants';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'status' => 'active',
'search' => 'ana',
'per_page' => '25',
],
'json' => [
'status' => 'past_due',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/tenants'
payload = {
"status": "past_due"
}
params = {
'status': 'active',
'search': 'ana',
'per_page': '25',
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()Example response (200):
{
"data": [
{
"id": "9f1c2d3e-0000-0000-0000-000000000000",
"name": "Ana VIP",
"slug": "anavip",
"url": "https://anavip.bot.incrivel.tech/",
"panel_url": "https://anavip.bot.incrivel.tech/app",
"status": "trial",
"can_operate": true,
"payout_mode": "own",
"plan": {
"id": 2,
"name": "Pro"
}
}
],
"links": [],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Provisionar criadora
requires authentication
Cria a conta (com subdomínio e usuária dona). Com issue_api_token: true, devolve um token de API da criadora,
exibido somente nesta resposta, para seu sistema criar bots, planos etc. em nome dela.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/platform/tenants" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"saas_plan_id\": 2,
\"name\": \"Ana VIP\",
\"slug\": \"anavip\",
\"owner_name\": \"Ana Souza\",
\"email\": \"ana@example.com\",
\"password\": \"SenhaForte#2026\",
\"document\": \"529.982.247-25\",
\"phone\": \"(11) 98888-7777\",
\"adult_content\": false,
\"issue_api_token\": true
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/tenants"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"saas_plan_id": 2,
"name": "Ana VIP",
"slug": "anavip",
"owner_name": "Ana Souza",
"email": "ana@example.com",
"password": "SenhaForte#2026",
"document": "529.982.247-25",
"phone": "(11) 98888-7777",
"adult_content": false,
"issue_api_token": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/tenants';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'saas_plan_id' => 2,
'name' => 'Ana VIP',
'slug' => 'anavip',
'owner_name' => 'Ana Souza',
'email' => 'ana@example.com',
'password' => 'SenhaForte#2026',
'document' => '529.982.247-25',
'phone' => '(11) 98888-7777',
'adult_content' => false,
'issue_api_token' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/tenants'
payload = {
"saas_plan_id": 2,
"name": "Ana VIP",
"slug": "anavip",
"owner_name": "Ana Souza",
"email": "ana@example.com",
"password": "SenhaForte#2026",
"document": "529.982.247-25",
"phone": "(11) 98888-7777",
"adult_content": false,
"issue_api_token": true
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": "9f1c2d3e-0000-0000-0000-000000000000",
"name": "Ana VIP",
"slug": "anavip",
"url": "https://anavip.bot.incrivel.tech/",
"panel_url": "https://anavip.bot.incrivel.tech/app",
"status": "trial",
"can_operate": true,
"payout_mode": "own",
"plan": {
"id": 2,
"name": "Pro"
}
},
"api_token": "ibot_12|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver criadora
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/platform/tenants/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/tenants/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/tenants/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/tenants/architecto'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "9f1c2d3e-0000-0000-0000-000000000000",
"name": "Ana VIP",
"slug": "anavip",
"url": "https://anavip.bot.incrivel.tech/",
"panel_url": "https://anavip.bot.incrivel.tech/app",
"status": "trial",
"can_operate": true,
"payout_mode": "own",
"plan": {
"id": 2,
"name": "Pro"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar criadora
requires authentication
Altere status (ex.: suspender), plano e validade da assinatura.
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/platform/tenants/architecto" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Ana VIP\",
\"status\": \"active\",
\"saas_plan_id\": 2,
\"plan_expires_at\": \"2026-12-31T23:59:59-03:00\",
\"adult_content\": true
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/tenants/architecto"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Ana VIP",
"status": "active",
"saas_plan_id": 2,
"plan_expires_at": "2026-12-31T23:59:59-03:00",
"adult_content": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/tenants/architecto';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Ana VIP',
'status' => 'active',
'saas_plan_id' => 2,
'plan_expires_at' => '2026-12-31T23:59:59-03:00',
'adult_content' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/tenants/architecto'
payload = {
"name": "Ana VIP",
"status": "active",
"saas_plan_id": 2,
"plan_expires_at": "2026-12-31T23:59:59-03:00",
"adult_content": true
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": "9f1c2d3e-0000-0000-0000-000000000000",
"name": "Ana VIP",
"slug": "anavip",
"url": "https://anavip.bot.incrivel.tech/",
"panel_url": "https://anavip.bot.incrivel.tech/app",
"status": "trial",
"can_operate": true,
"payout_mode": "own",
"plan": {
"id": 2,
"name": "Pro"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Gerar token de API da criadora
requires authentication
Emite um novo token (leitura e escrita) para a dona da conta. Exibido somente nesta resposta.
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/platform/tenants/9f1c2d3e-0000-0000-0000-000000000000/tokens" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/tenants/9f1c2d3e-0000-0000-0000-000000000000/tokens"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/tenants/9f1c2d3e-0000-0000-0000-000000000000/tokens';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/tenants/9f1c2d3e-0000-0000-0000-000000000000/tokens'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers)
response.json()Example response (201):
{
"api_token": "ibot_13|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Plataforma: planos
Planos que as criadoras assinam na plataforma. Exige token da plataforma.
Listar planos da plataforma
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/platform/saas-plans" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/saas-plans"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 2,
"name": "Pro",
"slug": "pro",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"limits": {
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000
},
"platform_fee_percent": 3,
"is_active": true
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Criar plano da plataforma
requires authentication
Example request:
curl --request POST \
"https://bot.incrivel.tech/api/v1/platform/saas-plans" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Pro\",
\"slug\": \"pro\",
\"description\": \"Para criadoras com vários grupos.\",
\"price_cents\": 9990,
\"interval_months\": 1,
\"trial_days\": 7,
\"max_bots\": 3,
\"max_groups\": 5,
\"max_active_members\": 2000,
\"platform_fee_percent\": 3,
\"allows_custom_domain\": true,
\"features\": [
\"Domínio próprio\"
],
\"is_featured\": true,
\"is_active\": true,
\"sort_order\": 2
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/saas-plans"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Pro",
"slug": "pro",
"description": "Para criadoras com vários grupos.",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000,
"platform_fee_percent": 3,
"allows_custom_domain": true,
"features": [
"Domínio próprio"
],
"is_featured": true,
"is_active": true,
"sort_order": 2
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Pro',
'slug' => 'pro',
'description' => 'Para criadoras com vários grupos.',
'price_cents' => 9990,
'interval_months' => 1,
'trial_days' => 7,
'max_bots' => 3,
'max_groups' => 5,
'max_active_members' => 2000,
'platform_fee_percent' => 3.0,
'allows_custom_domain' => true,
'features' => ['Domínio próprio'],
'is_featured' => true,
'is_active' => true,
'sort_order' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans'
payload = {
"name": "Pro",
"slug": "pro",
"description": "Para criadoras com vários grupos.",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000,
"platform_fee_percent": 3,
"allows_custom_domain": true,
"features": [
"Domínio próprio"
],
"is_featured": true,
"is_active": true,
"sort_order": 2
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 2,
"name": "Pro",
"slug": "pro",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"limits": {
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000
},
"platform_fee_percent": 3,
"is_active": true
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Ver plano da plataforma
requires authentication
Example request:
curl --request GET \
--get "https://bot.incrivel.tech/api/v1/platform/saas-plans/2" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/saas-plans/2"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 2,
"name": "Pro",
"slug": "pro",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"limits": {
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000
},
"platform_fee_percent": 3,
"is_active": true
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Atualizar plano da plataforma
requires authentication
Example request:
curl --request PATCH \
"https://bot.incrivel.tech/api/v1/platform/saas-plans/2" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Pro\",
\"slug\": \"pro\",
\"description\": \"Para criadoras com vários grupos.\",
\"price_cents\": 9990,
\"interval_months\": 1,
\"trial_days\": 7,
\"max_bots\": 3,
\"max_groups\": 5,
\"max_active_members\": 2000,
\"platform_fee_percent\": 3,
\"allows_custom_domain\": true,
\"features\": [
\"Domínio próprio\"
],
\"is_featured\": true,
\"is_active\": true,
\"sort_order\": 2
}"
const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/saas-plans/2"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Pro",
"slug": "pro",
"description": "Para criadoras com vários grupos.",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000,
"platform_fee_percent": 3,
"allows_custom_domain": true,
"features": [
"Domínio próprio"
],
"is_featured": true,
"is_active": true,
"sort_order": 2
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Pro',
'slug' => 'pro',
'description' => 'Para criadoras com vários grupos.',
'price_cents' => 9990,
'interval_months' => 1,
'trial_days' => 7,
'max_bots' => 3,
'max_groups' => 5,
'max_active_members' => 2000,
'platform_fee_percent' => 3.0,
'allows_custom_domain' => true,
'features' => ['Domínio próprio'],
'is_featured' => true,
'is_active' => true,
'sort_order' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2'
payload = {
"name": "Pro",
"slug": "pro",
"description": "Para criadoras com vários grupos.",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000,
"platform_fee_percent": 3,
"allows_custom_domain": true,
"features": [
"Domínio próprio"
],
"is_featured": true,
"is_active": true,
"sort_order": 2
}
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 2,
"name": "Pro",
"slug": "pro",
"price_cents": 9990,
"interval_months": 1,
"trial_days": 7,
"limits": {
"max_bots": 3,
"max_groups": 5,
"max_active_members": 2000
},
"platform_fee_percent": 3,
"is_active": true
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Arquivar plano da plataforma
requires authentication
Exclusão lógica: criadoras que já assinam continuam no plano.
Example request:
curl --request DELETE \
"https://bot.incrivel.tech/api/v1/platform/saas-plans/2" \
--header "Authorization: Bearer {SEU_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://bot.incrivel.tech/api/v1/platform/saas-plans/2"
);
const headers = {
"Authorization": "Bearer {SEU_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {SEU_TOKEN}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://bot.incrivel.tech/api/v1/platform/saas-plans/2'
headers = {
'Authorization': 'Bearer {SEU_TOKEN}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.