Desenvolvedores · Documentação da API

Começar

O que a API do EduPay faz, como conseguir a chave e a primeira chamada em 5 minutos.

A API do EduPay deixa outros sistemas da escola — ERP, CRM, site, plataforma de ensino, BI — ler e gravar os dados da escola no EduPay: catálogo, alunos, matrículas, contratos e cobranças. E avisa esses sistemas na hora em que algo acontece, como um pagamento confirmado.

Cada chave pertence a uma escola e só enxerga os dados dela.

O que dá para fazer

  • Consultar o catálogo (ofertas, trilhas, turmas, planos de pagamento e páginas de vendas), alunos, matrículas, contratos (com o PDF) e parcelas, com os dados para pagar.
  • Gravar: cadastrar e alterar alunos, criar e cancelar matrículas e gerar 2ª via de parcela. A matrícula criada pela API segue o mesmo caminho da matrícula feita no painel: gera parcelas e contrato, coloca o aluno no Moodle e emite a cobrança.
  • Receber avisos (webhooks) de aluno, matrícula, contrato e parcela, assinados para conferir que vieram do EduPay.
  • Abrir o portal do aluno já conectado, a partir de outro sistema, com um link que vale uma vez só.

A integração com o Moodle tem plugin próprio e rotas próprias. Ela está descrita em Integração Moodle.

Endereços

O quê Endereço
API https://edupay.estudiosite.com/api/v1
Especificação OpenAPI https://edupay.estudiosite.com/api/v1/openapi.json
Esta documentação https://edupay.estudiosite.com/pt/desenvolvedores

1. Ligar a API e criar a chave

Quem faz isso é o dono da conta da escola no EduPay:

  1. Entre no painel e abra Integrações → Tokens de API.
  2. No quadro API pública (v1), clique em Ligar API. A API nasce desligada em toda escola. O Moodle funciona com ela ligada ou desligada.
  3. Clique em Criar token, dê um nome que diga onde a chave vai ser usada (ex.: "ERP Financeiro") e escolha as permissões. Os pacotes prontos ajudam: Somente leitura ou Leitura e escrita. Veja Permissões.
  4. Copie a chave. Ela começa com edp_ e aparece uma vez só. O EduPay guarda apenas uma impressão dela.

Entregue a chave a quem vai integrar como se fosse uma senha. Ela não vai em site, aplicativo de celular ou qualquer código que rode no navegador.

2. Primeira chamada

Guarde a chave numa variável e chame /me, que responde para qualquer chave e mostra de que escola ela é:

export EDUPAY_KEY="edp_..."

curl https://edupay.estudiosite.com/api/v1/me \
  -H "Authorization: Bearer $EDUPAY_KEY"
{
  "data": {
    "school": { "name": "Colégio Modelo", "country": "BR", "currency": "BRL", "timezone": "America/Sao_Paulo" },
    "token": { "name": "ERP Financeiro", "prefix": "edp_7d2e9f01...", "scopes": ["students:read", "billing:read"], "expires_at": null }
  }
}

Se vier 401, a chave está errada, vencida ou revogada. Se vier 403 com code igual a api_disabled, a API ainda está desligada na escola.

3. Uma consulta de verdade

Parcelas vencidas, 50 por página:

curl "https://edupay.estudiosite.com/api/v1/installments?status=overdue&limit=50" \
  -H "Authorization: Bearer $EDUPAY_KEY"

A resposta traz data (a lista) e meta.next_cursor. Para a próxima página, repita a chamada com cursor= igual a esse valor. Detalhes em Erros e limites.

Combinados que valem para toda a API

  • JSON na ida e na volta. Escritas mandam Content-Type: application/json.
  • Dinheiro em centavos, como número inteiro, sempre com a moeda ao lado ("amount": 45000, "currency": "BRL" é R$ 450,00).
  • Data e hora em ISO 8601, em UTC (2026-11-10T13:00:00Z). Data sem hora (vencimento, nascimento) em AAAA-MM-DD.
  • Erros em application/problem+json, com um code que não muda entre versões. Decida pelo code, não pelo texto.
  • Idioma das mensagens: cabeçalho Accept-Language com pt-BR, en ou es. Sem ele, português.
  • Toda resposta traz o cabeçalho X-Request-Id. Informe esse número ao suporte quando precisar de ajuda com uma chamada.

Testar sem atrapalhar a escola

O EduPay não tem ambiente de testes separado: a chave fala com os dados reais da escola. Por isso:

  • comece com uma chave só de leitura e confira tudo antes de pedir permissão de escrita;
  • antes de gravar, combine com a escola um aluno e uma turma de teste. Matrícula criada pela API emite cobrança de verdade, como a do painel;
  • use external_id e Idempotency-Key desde o primeiro dia (veja Alunos e matrículas). Assim, repetir um pedido nunca duplica nada.

Próximos passos