payments

Stable. Describes behaviour that is built and covered by tests in this repository.

API reference

GET /v1/payments #

The tenant's payments (charges and refunds), newest first

Reads the tenant's own payment ledger from the payment service and folds it: the rows one provider reference left behind (a charge that was pending and then succeeded) are one payment with its most settled outcome. Amounts are minor-unit strings, each in its own currency; they are never summed across currencies. truncated says the newest 1000 ledger rows were all read, so older payments may exist. Provider references and decline details are not part of the answer. 503 when the payment service does not answer.

Parameters

NameInTypeDescription
limitqueryintegerThe answer folds the newest 1000 ledger rows and returns the first limit payments; there is no page_token (truncated says when the window was full)

Responses

StatusMeaningBody
200OKListPaymentsResponse
400Error envelopeError
503Error envelopeError
Example response
{
  "payments": [
    {
      "id": "string",
      "invoice_id": "string",
      "provider": "string",
      "kind": "charge",
      "status": "paid",
      "amount_minor": "string",
      "currency": "string",
      "occurred_at": "2026-11-03T10:15:00Z"
    }
  ],
  "truncated": false
}
curl
curl -X GET https://YOUR-API-ADDRESS/v1/payments \
  -H "Authorization: Bearer $PAYRUDDER_API_KEY"

Models

Error

FieldTypeDescription
error requiredobject

ListPaymentsResponse

FieldTypeDescription
payments requiredarray of Payment
truncated requiredboolean

Payment

FieldTypeDescription
id requiredstringThe ledger row that carries the outcome
invoice_id requiredstring
provider requiredstring
kind requiredcharge | refund
status requiredpaid | processing | failed | refunded
amount_minor requiredstring · int64
currency requiredstring
occurred_at requiredstring · date-time