Los cobros de EduPay son las cuotas de cada matrícula. Cada cuota tiene valor, vencimiento, forma de pago y, mientras se puede pagar, los datos para pagar: línea digitable y enlace del boleto, PIX copiar y pegar o enlace de pago con tarjeta.
Consultar cuotas
GET /installments (billing:read) acepta enrollment_id, student_id, status, período de vencimiento (due_from, due_to) y período de pago (paid_from, paid_to), todos en AAAA-MM-DD, además de updated_since.
curl "https://edupay.estudiosite.com/api/v1/installments?status=overdue&due_to=2026-10-31&limit=100" \
-H "Authorization: Bearer $EDUPAY_KEY"
GET /installments/{id} trae una cuota y, en el caso del PIX, también la imagen del código QR en payment.pix_qr_code_base64 (solo en el detalle, para que la lista no quede pesada).
Estados de la cuota
status |
Significa | ¿Tiene payment? |
|---|---|---|
open |
Pendiente, todavía no venció | Sí, si el cobro ya se emitió |
overdue |
Venció sin pago | Sí |
outstanding |
Deuda que quedó de una matrícula cancelada | Sí |
paid |
Pagada (por el banco, por la notaría o registrada manualmente por la escuela) | No |
cancelled |
Cancelada (incluida la que se reemplazó por una segunda copia) | No |
waived |
Dispensada por la escuela | No |
El objeto payment solo aparece mientras la cuota se puede pagar:
"payment": {
"barcode": "23793.38128 60000.000003 ...",
"boleto_url": "https://...",
"pix_copy_paste": "00020126...",
"payment_url": "https://checkout.stripe.com/...",
"expires_at": "2026-11-12T02:59:59Z"
}
Un campo sin valor viene en null: un boleto no tiene payment_url, un enlace de tarjeta no tiene barcode. Una cuota pendiente todavía sin cobro emitido (el boleto y el PIX salen pocos días antes del vencimiento) viene con los campos en null — consulte de nuevo más cerca del vencimiento o espere el aviso installment.charge_issued.
Valores en centavos, con la moneda en currency. paid_amount es el valor que realmente entró.
Resumen financiero del alumno
GET /students/{id}/summary (billing:read) suma todo lo que el alumno todavía puede pagar, en todas las matrículas, incluida la deuda de una matrícula cancelada:
{
"data": {
"student_id": 532, "currency": "BRL",
"open_installments": 3, "overdue_installments": 1,
"amount_due": 135000, "amount_overdue": 45000,
"next_installment": { "id": 9813, "due_date": "2026-11-10", "amount": 45000 },
"active_enrollments": 1, "contract_status": "signed"
}
}
Útil para mostrar la situación del alumno en otro sistema (área del alumno, atención, CRM) sin descargar todas las cuotas.
Segunda copia
POST /installments/{id}/second-copy (billing:write) hace lo mismo que el botón del panel: cancela la cuota actual junto con el cobro en el banco y crea otra, con un cobro nuevo y un e-mail al alumno. La nueva trae en replaces_installment_id el número de la anterior.
curl -X POST https://edupay.estudiosite.com/api/v1/installments/9813/second-copy \
-H "Authorization: Bearer $EDUPAY_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 2via-9813-2026-11-20" \
-d '{"due_date": "2026-11-20"}'
- Sin
due_date, la segunda copia vence en 3 días. La fecha vale de hoy en adelante, en la zona horaria de la escuela. - El valor no cambia por la API.
- Solo cuotas pendientes, vencidas o en deuda (
409concodeinstallment_not_payableen las demás). - Un boleto todavía dentro de su validez no se puede cancelar en el banco:
409concodeboleto_still_valid, y el motivo endetail. - Escuela sin cuenta de cobro conectada:
409concodegateway_not_connected. - Si el banco rechaza, la respuesta es
502concodegateway_error. Si vieneinstallment_id, la segunda copia se creó y su cobro se emite de nuevo automáticamente.
Saber del pago en el momento
En lugar de consultar las cuotas de vez en cuando, registre una dirección para el aviso installment.paid. Llega segundos después de la confirmación, venga del banco, de la notaría o de un registro manual de la escuela. Vea Avisos automáticos.