List participant payments
List the payments that involve one of your participants: payouts and
requests for payment, sent or received. direction on each item is the
money movement relative to the participant. Returns an empty list when
none exist.
Only payments that you own are returned.
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, this participant, or
the current filters.
Auth: API key or bearer token. Scoped to the calling provider.
curl -X GET https://api.moov.money/providers/{providerID}/participants/{participantID}/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-08-31T12:00:00Z",
"direction": "sent",
"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
requiredparticipantID
string
requiredparticipantID, or your externalID for them. Both
resolve to the same participant.Query 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
stringcursor
stringnextCursor. Omit to fetch the first page.limit
integer
<int32>Response
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.type
string<enum>
requiredpayoutpaymentID
string
requireddirection
string<enum>
requiredsent,
receivedcounterparty
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.amount
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,
deniedmemo
stringcreatedOn
string<date-time>
requiredexpiresOn
string<date-time>completedOn
string<date-time>referenceNumber
stringinitiator
object
requiredreceived row it is the same
party as counterparty.Show 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.hold
object
requiredShow child attributes
payments[].hold
active
boolean
requiredexpiresOn
string<date-time>active is false, and when any
blocking review has no expiry.Requesttype: "request"
type is always request and paymentID is a request ID.type
string<enum>
requiredrequestpaymentID
string
requireddirection
string<enum>
requiredsent,
receivedcounterparty
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.amount
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,
deniedmemo
stringcreatedOn
string<date-time>
requiredexpiresOn
string<date-time>completedOn
string<date-time>referenceNumber
stringinitiator
object
requiredsent row, where the
participant is the payer, it is the same party as counterparty.Show 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.hold
object
requiredShow child attributes
payments[].hold
active
boolean
requiredexpiresOn
string<date-time>active is false, and when any
blocking review has no expiry.nextCursor
stringhasMore
boolean
required