Documentação da API
Documentação completa da API REST do sistema CBAV
"Tudo posso naquele que me fortalece"
Filipenses 4:13
A API REST do sistema CBAV fornece acesso programático a todas as funcionalidades do sistema. Desenvolvida com Laravel, oferece endpoints seguros e bem documentados para integração com aplicações externas.
JWT e OAuth2
Todas as entidades
Dados analíticos
Autenticação baseada em tokens JWT
POST /api/auth/login
{
"email": "user@example.com",
"password": "password"
}
Response:
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": 1,
"name": "User Name",
"email": "user@example.com"
}
}
Autenticação OAuth2 para aplicações externas
POST /oauth/token
{
"grant_type": "password",
"client_id": "client_id",
"client_secret": "client_secret",
"username": "user@example.com",
"password": "password"
}
# Listar membros
GET /api/members
Authorization: Bearer {token}
# Criar membro
POST /api/members
{
"nome": "João Silva",
"email": "joao@email.com",
"telefone": "(75) 99999-9999",
"data_nascimento": "1990-01-01",
"cargo_id": 1
}
# Atualizar membro
PUT /api/members/{id}
{
"nome": "João Silva Santos",
"email": "joao.silva@email.com"
}
# Deletar membro
DELETE /api/members/{id}
# Listar transações
GET /api/transactions
Authorization: Bearer {token}
# Criar doação
POST /api/donations
{
"valor": 100.00,
"gateway": "stripe",
"campanha_id": 1,
"doador_nome": "Anônimo",
"doador_email": "doador@email.com"
}
# Relatórios financeiros
GET /api/finance/reports
GET /api/finance/reports/monthly
GET /api/finance/reports/campaigns
# Listar aulas
GET /api/ebd/classes
Authorization: Bearer {token}
# Criar aula
POST /api/ebd/classes
{
"titulo": "Lição 1 - Introdução",
"descricao": "Introdução ao estudo bíblico",
"data_aula": "2025-01-15",
"professor_id": 1
}
# Quiz bíblico
GET /api/ebd/quiz/questions
POST /api/ebd/quiz/answers
{
"pergunta_id": 1,
"resposta": "A"
}
# Listar eventos
GET /api/events
Authorization: Bearer {token}
# Criar evento
POST /api/events
{
"titulo": "Culto de Domingo",
"descricao": "Culto de domingo às 18h",
"data_inicio": "2025-01-19 18:00:00",
"local": "Templo Principal",
"capacidade_maxima": 200
}
# Inscrições
POST /api/events/{id}/register
{
"nome": "Maria Silva",
"email": "maria@email.com",
"telefone": "(75) 88888-8888"
}
{
"success": true,
"message": "Operação realizada com sucesso",
"data": {
"id": 1,
"nome": "João Silva",
"email": "joao@email.com",
"created_at": "2025-01-15T10:30:00Z"
},
"meta": {
"total": 1,
"page": 1,
"per_page": 15
}
}
{
"success": false,
"message": "Erro na operação",
"errors": {
"email": ["O email já está em uso"],
"telefone": ["Telefone inválido"]
},
"code": "VALIDATION_ERROR"
}
# Stripe Webhook
POST /api/webhooks/stripe
{
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_1234567890",
"amount": 10000,
"currency": "brl",
"status": "succeeded"
}
}
}
# Mercado Pago Webhook
POST /api/webhooks/mercadopago
{
"type": "payment",
"data": {
"id": 123456789,
"status": "approved",
"amount": 100.00
}
}
# Novo membro
POST /webhook-url
{
"event": "member.created",
"data": {
"id": 1,
"nome": "João Silva",
"email": "joao@email.com"
}
}
# Nova doação
POST /webhook-url
{
"event": "donation.received",
"data": {
"id": 1,
"valor": 100.00,
"doador": "Anônimo"
}
}
npm install cbav-api-client
import { CBAVClient } from 'cbav-api-client';
const client = new CBAVClient({
baseURL: 'https://api.cbav.com',
token: 'your-api-token'
});
// Usar a API
const members = await client.members.list();
const newMember = await client.members.create({
nome: 'João Silva',
email: 'joao@email.com'
});
composer require cbav/api-client
use CBAV\ApiClient;
$client = new ApiClient([
'base_url' => 'https://api.cbav.com',
'token' => 'your-api-token'
]);
// Usar a API
$members = $client->members()->list();
$newMember = $client->members()->create([
'nome' => 'João Silva',
'email' => 'joao@email.com'
]);