Skip to content

Pagamentos — Endpoints

Base URL: /api/payments

Permissões: Admin, Financial


GET /api/payments

Lista pagamentos da empresa.

Query params:

ParâmetroTipoDescrição
pageintegerPágina (padrão: 1)
pageSizeintegerItens por página
searchstringBusca por contrato ou cliente
statusstringPending, Paid, Defaulted, Cancelled
typestringRent, Condo, IPTU, Fine, Expense
periodstringCompetência no formato YYYY-MM
contractIdguidFiltrar por contrato

Resposta 200:

json
{
  "data": [
    {
      "id": "e1f2a3b4-...",
      "type": "Rent",
      "period": "2026-06",
      "value": 2800.00,
      "dueDate": "2026-06-05",
      "status": "Pending",
      "method": null,
      "paidAt": null,
      "paidValue": null,
      "contractId": "d1e2f3a4-...",
      "contract": {
        "id": "d1e2f3a4-...",
        "client": {
          "name": "João da Silva"
        },
        "property": {
          "code": "AP-001"
        }
      },
      "createdAt": "2026-05-20T10:00:00Z"
    }
  ],
  "page": 1,
  "pageSize": 20,
  "total": 56,
  "totalPages": 3,
  "hasNext": true,
  "hasPrevious": false
}

GET /api/payments/:id

Retorna detalhes de um pagamento.

Resposta 200:

json
{
  "id": "e1f2a3b4-...",
  "type": "Rent",
  "period": "2026-06",
  "value": 2800.00,
  "dueDate": "2026-06-05",
  "status": "Paid",
  "method": "Pix",
  "paidAt": "2026-06-03T14:22:00Z",
  "paidValue": 2800.00,
  "receiptUrl": "https://storage.googleapis.com/.../comprovante.pdf",
  "notes": "Pago adiantado.",
  "contractId": "d1e2f3a4-...",
  "boletoUrl": null,
  "createdAt": "2026-05-20T10:00:00Z"
}

POST /api/payments

Lança um novo pagamento.

Body:

json
{
  "contractId": "d1e2f3a4-...",
  "type": "Rent",
  "period": "2026-07",
  "value": 2800.00,
  "dueDate": "2026-07-05",
  "notes": "Competência julho/2026"
}
CampoTipoObrigatório
contractIdguidSim
typestringSim
periodstringSim (formato YYYY-MM)
valuedecimalSim
dueDatedateSim

Resposta 201: Pagamento criado com status Pending.


PUT /api/payments/:id

Atualiza dados de um pagamento.


PATCH /api/payments/:id/pay

Marca um pagamento como pago.

Body:

json
{
  "method": "Pix",
  "paidAt": "2026-06-03T14:22:00Z",
  "paidValue": 2800.00,
  "receiptUrl": "https://storage.googleapis.com/.../comprovante.pdf",
  "notes": "Confirmado via extrato."
}
CampoTipoObrigatório
methodstringSim: Pix, Boleto, Transfer, Cash
paidAtdatetimeSim
paidValuedecimalSim

Resposta 200: Pagamento com status Paid.

Erros:

  • 422 — Pagamento já está pago ou cancelado

DELETE /api/payments/:id

Remove pagamento (soft delete).

Permissões: Admin

Erros:

  • 400 — Pagamento já está pago (não pode ser deletado)

Relatórios de pagamento

GET /api/payments/report/defaulted

Retorna relatório de inadimplência.

Query params: period, contractId

Resposta 200:

json
{
  "totalDefaulted": 5,
  "totalValue": 14000.00,
  "payments": [...]
}

GET /api/payments/report/revenue

Retorna relatório de receita.

Query params: periodFrom, periodTo

Resposta 200:

json
{
  "totalRevenue": 84000.00,
  "byMonth": [
    { "period": "2026-04", "value": 27000.00 },
    { "period": "2026-05", "value": 28500.00 },
    { "period": "2026-06", "value": 28500.00 }
  ]
}

Documentação do FastGivr SystemImob