List payments
List the payouts and requests for payment that you own, across all of your
participants. Rows have no direction: initiator is the sender or
requester, and counterparty is the recipient or payer. Returns an empty
list when none match.
A party name is the current participant name when the party is your
participant. Otherwise it is the name recorded on the payment, such as the
name a recipient gave at claim. Moov Money never uses contact labels, and
never reads the profile of a participant that is not yours. Instruments
follow the rules on PaymentPartyFunding.
Pagination is cursor-based over (createdOn, paymentID), newest first.
Moov Money applies every filter before pagination. Omit cursor to fetch
the first page; use nextCursor from each response to fetch the next page.
Returns a 400 with problem type invalid-cursor when the cursor is
malformed, or when it does not match this provider, the participantID
filter, or the other current filters.
Auth: API key or bearer token. Scoped to the calling provider.
curl -X GET https://api.moov.money/providers/{providerID}/payments \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00"{
"payments": [
{
"amount": {
"currency": {
"code": "USD",
"decimalPlaces": 2,
"name": "US Dollar",
"numericCode": "840"
},
"value": "100.00"
},
"counterparty": {
"displayName": "Jane Doe",
"externalID": "C-2077",
"funding": {
"displayName": "Checking",
"fundingType": "bank_account",
"last4": "5612"
},
"participantID": "counterparty-id_user",
"phoneNumber": "+15555551234"
},
"createdOn": "2026-10-06T15:00:00Z",
"hold": {
"active": true,
"expiresOn": "2026-10-06T17:00:00Z"
},
"initiator": {
"displayName": "Jane Smith",
"externalID": "C-1042",
"funding": {
"displayName": "Checking",
"fundingType": "bank_account",
"last4": "5612"
},
"participantID": "participant-id_user"
},
"memo": "Rent split",
"paymentID": "pay_01HF5J9ZKQT4RXP8M2VYBN3D",
"referenceNumber": "7K2Q9X4FC",
"status": "initiated",
"type": "payout"
}
]
}Response body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredResponse body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredHeaders
X-Moov-Version
stringv2026.10.00). When omitted, the server applies its default version.Path parameters
providerID
string
requiredQuery parameters
q
string_user) or your exact external
ID for a participant also matches the payments of that participant. A
value that contains only digits and phone punctuation, with at least
three digits, also matches the phone number the payment was addressed
to, by its digits: (555) 123 matches +15551234567. Contact labels
and emails never match. Leading and trailing spaces are ignored.
Returns 422 with problem type invalid-request when the trimmed value
is longer than 100 characters, or when it contains only digits and
phone punctuation with fewer than three digits.type
stringpayout,
requeststatus
arraystatus=initiated&status=authorized.
A status matches only payments of the family that defines it.
Unrecognized values return 400. Omit to return all statuses.onHold
booleantrue returns only payments with an active risk hold (hold.active).
false returns only payments without one. Omit to return both.createdFrom
string
<date-time>createdTo
string
<date-time>createdFrom; otherwise returns 400.paymentID
stringreferenceNumber
stringparticipantID
stringparticipantID, not your external ID. Returns an
empty list when the participant has no payments that you own.cursor
stringnextCursor. Omit to fetch the first page.limit
integer
<int32>Response
GET /providers/{providerID}/payments.payments
array<object>
requiredShow child attributes
payments[]
Matches exactly one of the following, determined by type:
Payouttype: "payout"
type is always payout
and paymentID is a payout ID. Provider-wide rows have no direction:
initiator is the sender and counterparty is the recipient.type
string<enum>
requiredpayoutpaymentID
string
requiredamount
object
requiredShow child attributes
payments[].amount
value
string
requiredcurrency
object
requiredShow child attributes
payments[].amount.currency
code
string
requireddecimalPlaces
integer<uint8>
requiredcode. Required.numericCode
stringname
stringstatus
string<enum>
requiredinitiated,
authorized,
accepted,
claiming,
completed,
failed,
payout_failed,
cancelled,
expired,
deniedreferenceNumber
string
requiredmemo
stringinitiator
object
requiredShow child attributes
payments[].initiator
participantID
string
requiredexternalID
stringdisplayName
stringfunding
objectShow child attributes
payments[].initiator.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.counterparty
object
requiredShow child attributes
payments[].counterparty
displayName
stringphoneNumber
stringparticipantID
stringexternalID
stringfunding
objectShow child attributes
payments[].counterparty.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.hold
object
requiredShow child attributes
payments[].hold
active
boolean
requiredexpiresOn
string<date-time>active is false, and when any
blocking review has no expiry.createdOn
string<date-time>
requiredexpiresOn
string<date-time>completedOn
string<date-time>Requesttype: "request"
type is always request
and paymentID is a request ID. Provider-wide rows have no direction:
initiator is the requester and counterparty is the payer. A request
moves money from the payer to the requester.type
string<enum>
requiredrequestpaymentID
string
requiredamount
object
requiredShow child attributes
payments[].amount
value
string
requiredcurrency
object
requiredShow child attributes
payments[].amount.currency
code
string
requireddecimalPlaces
integer<uint8>
requiredcode. Required.numericCode
stringname
stringstatus
string<enum>
requiredcreated,
authenticated,
declined,
cancelled,
expired,
paying,
funded,
disbursing,
disbursement_failed,
completed,
reversing,
reversal_failed,
reversed,
deniedreferenceNumber
string
requiredmemo
stringinitiator
object
requiredShow child attributes
payments[].initiator
participantID
string
requiredexternalID
stringdisplayName
stringfunding
objectShow child attributes
payments[].initiator.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.counterparty
object
requiredShow child attributes
payments[].counterparty
displayName
stringphoneNumber
stringparticipantID
stringexternalID
stringfunding
objectShow child attributes
payments[].counterparty.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.hold
object
requiredShow child attributes
payments[].hold
active
boolean
requiredexpiresOn
string<date-time>active is false, and when any
blocking review has no expiry.createdOn
string<date-time>
requiredexpiresOn
string<date-time>completedOn
string<date-time>nextCursor
stringhasMore
boolean
required