Skip to main content
GET
List Payments

Date Handling

Both start_date and end_date accept two formats:
  • Date only (YYYY-MM-DD) — Interpreted as full UTC days. start_date begins at midnight UTC; end_date covers that entire UTC day, including payments recorded in the final sub-second (e.g. 23:59:59.750Z).
  • Full ISO timestamp (YYYY-MM-DDTHH:mm:ssZ) — Exact UTC boundaries, inclusive on both ends. Use this when you need timezone-specific alignment.
You can mix formats, and the range may span at most 366 days.

Timezone-Aligned Example

To query the US Eastern Time day of June 18, 2026, send:
For contiguous polling windows, date-only params are the safest choice — each day hands off cleanly to the next. With explicit ISO timestamps, dedupe on the payment id in case a payment lands exactly on a window boundary.

Pagination

Results are ordered newest first. When pagination.has_more is true, pass pagination.next_cursor as starting_after on the next request and keep the same date range and filters:
Cursor pages are stable: a payment recorded between two page requests cannot cause rows to repeat or be skipped.

Posting Payments

  • Use id as your idempotency key. It is stable across polls and unique per payment. transaction_id may be null depending on the processor.
  • recurrence_rule, total_installments, and next_payment_date are set on payment-plan installments and null on one-time payments — together they distinguish “installment 3 of 12” from a one-off when posting.
  • phone is derived from the originating call, falling back to the debtor record; it is null for payment-link records.

Relationship to the Payment Received Webhook

The Payment Received webhook fires once, in real time, when a payment is captured — the right integration for posting immediately without polling. GET /payments is the complement: same-day reconciliation sweeps, catching up after downtime, or backfilling a window your webhook consumer missed. Both surface the same payment id, so you can dedupe between the two streams.

Authorizations

collectwise_key
string
header
required

Query Parameters

start_date
string
required

Start of date range, inclusive. Accepts YYYY-MM-DD (interpreted as 00:00:00 UTC) or a full ISO 8601 UTC timestamp like 2026-06-18T04:00:00Z

end_date
string
required

End of date range. Accepts YYYY-MM-DD (covers that entire UTC day, including the final sub-second) or a full ISO 8601 UTC timestamp (inclusive). Must be on or after start_date and within 366 days of it.

status
enum<string>

Filter by payment status

Available options:
success,
failed,
declined,
error
payment_type
enum<string>

Filter by payment type. flat = one-time payment, subscription = payment-plan installment, settlement = settlement payment, remainder = remainder charge after a partial payment

Available options:
flat,
subscription,
settlement,
remainder
payment_method
enum<string>

Filter by payment method (matched case-insensitively)

Available options:
ach,
card
limit
integer
default:50

Page size. Defaults to 50, maximum 100.

Required range: x <= 100
starting_after
string

Pagination cursor: the id of the last payment on the previous page (also returned as pagination.next_cursor). Must reference a payment of your organization inside the queried date range.

Response

Payments retrieved successfully

object
string

Object type identifier

Example:

"list.payments"

period
object
pagination
object
count
integer

Number of payments on this page

payments
object[]