Skip to main content
POST
Record a payment against a statement

Description

Record payment Records a payment against the active Statement for (tenantUserId, periodStart..periodEnd). Rejected if the statement is still draft (must be finalized or later). Authorization:
  • Required role: admin or higher

Code Examples

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

tenantUserId
string<uuid>
required
periodStart
string<date-time>
required
periodEnd
string<date-time>
required

Body

application/json
method
string
required
Example:

"bank_transfer"

amount
number
required

Must be a positive number.

paymentDate
string<date-time>
required
reference
string | null
note
string | null

Response

Payment recorded.

Every statements response wraps the payload in { status, message, data }. data carries the per-endpoint payload PLUS the per-tenant feature flag.

status
enum<string>
Available options:
success,
error
message
string
data
object

Response payload shared by the ITEM 2 lifecycle mutations (finalize, payments, adjustments, hold, resume, void, disputes): the updated Statement row, shaped via the same shapeForClient mapper as StatementRosterRow, plus ok: true. The underlying Sequelize row carries additional endpoint-specific detail (e.g. statusHistory) not exhaustively modeled here — treat this as the roster-row core.