> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payments

> List payment lines and record receipts or invoice evidence against them.

## List payments

`GET /payments` · requires `payment_entry` (view)

<ParamField query="tab" type="string" default="due">`due` | `overdue` | `reconcile` | `invoice` | `all`</ParamField>

<ParamField query="page" type="integer" default="1" />

<ParamField query="pageSize" type="integer" default="20">Max 200.</ParamField>

<ParamField query="contractId" type="string" />

<ParamField query="subjectId" type="string" />

<ParamField query="includeDeleted" type="boolean" />

## Payment stats

`GET /payments/stats` · requires `payment_entry` (view)

Summary counts for the current tenant (and `subjectScope`, if restricted) — this is what backs
the [Dashboard](/guides/dashboard) receivables numbers.

## Record a receipt

`PATCH /payments/:paymentId/receipt` · requires `payment_entry` (edit)

<ParamField body="receivedAmount" type="number">Minimum 0.</ParamField>
<ParamField body="receivedDate" type="string">ISO date.</ParamField>

<ParamField body="method" type="string" />

<ParamField body="payerName" type="string" />

<ParamField body="receiptAccount" type="string" />

<ParamField body="bankSerialNo" type="string" />

<ParamField body="proof" type="string">File reference.</ParamField>
<ParamField body="reconciliationStatus" type="string">`pending` | `matched` | `exception`</ParamField>

<ParamField body="reconciliationNote" type="string" />

```bash theme={null}
curl -X PATCH https://api.alforse.com/api/v1/payments/pay_123/receipt \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"receivedAmount": 250000, "receivedDate": "2026-08-05", "method": "bank_transfer"}'
```

## Record invoice evidence

`PATCH /payments/:paymentId/invoice` · requires `invoice` (edit)

<ParamField body="invoiceAmount" type="number">Minimum 0.</ParamField>
<ParamField body="invoiceDate" type="string">ISO date.</ParamField>

<ParamField body="invoiceNo" type="string" />

<ParamField body="invoiceAttachment" type="string">File reference.</ParamField>

All fields on both endpoints are optional — send only what changed. See
[Payments & Invoices](/guides/payments-invoices) for how this fits into the contract lifecycle,
and [Files](/api-reference/files) for how `proof` / `invoiceAttachment` file references are
produced.
