Skip to main content

GET /api/mobile/payments

Lista todas as cobranças da organização com estatísticas resumidas. Requer role ADMIN ou SUPER_ADMIN.

Query Params

ParamTipoDescrição
pagenumberPágina (padrão: 1)
pageSizenumberItens por página, máx. 50 (padrão: 20)
statusstringFiltrar por status: pending, paid, exempt, cancelled

Resposta

{
  "data": [
    {
      "id": "assign_id",
      "paymentStatus": "pending",
      "paymentMethod": "PIX",
      "paymentAmount": 50.00,
      "paymentId": "pay_asaas_id",
      "paymentLink": "https://sandbox.asaas.com/c/abc123",
      "paidAt": null,
      "createdAt": "2026-04-01T10:00:00.000Z",
      "form": { "id": "form_id", "title": "Avaliação Funcional" },
      "student": { "id": "student_id", "name": "Ana Lima" },
      "candidate": null,
      "teacher": { "id": "teacher_id", "name": "João Silva" }
    }
  ],
  "stats": {
    "pending": 12,
    "paid": 38,
    "totalCollected": 1900.00
  },
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "total": 50,
    "totalPages": 3
  }
}

GET /api/mobile/assignments/:id/payment

Retorna o status de pagamento de uma atribuição específica.

Resposta

{
  "paymentRequired": true,
  "paymentStatus": "pending",
  "paymentMethod": "PIX",
  "paymentAmount": 50.00,
  "paymentLink": "https://sandbox.asaas.com/c/abc123",
  "paymentQrCode": "data:image/png;base64,...",
  "paymentQrCodeText": "00020101021226870014br.gov.bcb...",
  "paymentId": "pay_asaas_id",
  "paidAt": null
}

POST /api/mobile/assignments/:id/payment

Cria uma cobrança para a atribuição. Pode ser via Asaas (PIX, cartão de crédito, boleto) ou método externo (PIX externo, cartão externo). Requer role ADMIN ou SUPER_ADMIN.

Body

{
  "method": "PIX",
  "amount": 50.00
}
CampoTipoValores aceitos
methodstringPIX, CREDIT_CARD, BOLETO, PIX_EXTERNO, CARD_EXTERNO_CREDITO, CARD_EXTERNO_DEBITO
amountnumberValor em reais (ex.: 50.00)

Resposta — Asaas PIX

{
  "ok": true,
  "paymentStatus": "pending",
  "paymentMethod": "PIX",
  "paymentAmount": 50.00,
  "paymentLink": "https://sandbox.asaas.com/c/abc123",
  "paymentQrCode": "data:image/png;base64,...",
  "paymentQrCodeText": "00020101021226870014br.gov.bcb..."
}

Resposta — método externo

{
  "ok": true,
  "paymentStatus": "pending",
  "paymentMethod": "PIX_EXTERNO",
  "paymentAmount": 50.00
}

POST /api/mobile/assignments/:id/payment/confirm

Confirma manualmente o pagamento de uma atribuição (registra como paid com método cash). Requer role ADMIN ou SUPER_ADMIN.

Resposta

{ "ok": true }

POST /api/mobile/assignments/:id/payment/exempt

Isenta o participante do pagamento (paymentStatus: "exempt"). O teste fica liberado sem cobrança. Requer role ADMIN ou SUPER_ADMIN.

Resposta

{ "ok": true }

POST /api/mobile/assignments/:id/payment/cancel

Cancela a cobrança. Se houver um paymentId Asaas vinculado, a cobrança é cancelada na plataforma. Os campos de pagamento são resetados. Requer role ADMIN ou SUPER_ADMIN.
Não é possível cancelar pagamentos já confirmados (paid).

Resposta

{ "ok": true }

POST /api/mobile/assignments/:id/payment/sync

Sincroniza o status da cobrança com o Asaas. Útil quando o webhook não foi recebido ou o status está desatualizado. Requer role ADMIN ou SUPER_ADMIN.
Requer que a atribuição tenha um paymentId vinculado.

Resposta

{
  "ok": true,
  "status": "paid",
  "paidAt": "2026-04-01T14:30:00.000Z"
}

Status de Pagamento

ValorDescrição
pendingCobrança criada, aguardando pagamento
paidPagamento confirmado
exemptIsento — teste liberado sem cobrança
cancelledCobrança cancelada

Webhook Asaas

O endpoint POST /api/webhooks/asaas recebe notificações de pagamento do Asaas e atualiza automaticamente o paymentStatus da atribuição para paid quando o evento PAYMENT_RECEIVED ou PAYMENT_CONFIRMED é recebido.