Skip to content

The event's payment ledger

GET
/groups/{groupId}/events/{eventId}/payments
curl --request GET \
--url 'https://app.grouperly.com/api/v2/groups/example/events/example/payments?limit=50&status=PENDING' \
--header 'Authorization: Bearer <token>'

Every payment, in the order recorded, for leaders reconciling: pending, completed, failed and refunded.

groupId
required
string

The credential’s group

eventId
required
string

An event in the group

limit
integer
default: 50 >= 1 <= 200

Items per page

cursor
string

From the previous page’s nextCursor; opaque

status
string
Allowed values: PENDING COMPLETED FAILED REFUNDED

Only payments with this status (case-insensitive)

OK

Media typeapplication/json
object
items
required
Array<object>
object
id
required
string
userId
required
string
rsvpId
required

The response it paid toward (added in 2.11.0)

string | null
payer
required

Who paid. Null for a youth’s payment to an app without roster.youth.read

string | null
amount
required
object
amount
required

A decimal string, e.g. “25.00”: never a float.

string
/^-?\d+\.\d{2}$/
currency
required

ISO 4217, e.g. “USD”.

string
/^[A-Z]{3}$/
refunded
required

How much of it was refunded (“0.00” for none)

object
amount
required

A decimal string, e.g. “25.00”: never a float.

string
/^-?\d+\.\d{2}$/
currency
required

ISO 4217, e.g. “USD”.

string
/^[A-Z]{3}$/
status
required
string
Allowed values: PENDING COMPLETED FAILED REFUNDED
method
required

E.g. “Stripe”, “Cash”, “Check”, “Venmo”

string | null
online
required

Paid by card through Grouperly

boolean
description
required

What it covers, e.g. “2 × Youth”

string | null
processingFee
required
One of:
object
amount
required

A decimal string, e.g. “25.00”: never a float.

string
/^-?\d+\.\d{2}$/
currency
required

ISO 4217, e.g. “USD”.

string
/^[A-Z]{3}$/
items
required

Who it paid for, person by person (added in 2.11.0)

Array<object>
object
id
required
string
kind
required

A person paid for, money toward the response as a whole, or the payer’s contribution toward the card fee

string
Allowed values: ATTENDEE CREDIT FEE_COVER
attendeeId
required

The RSVP attendee it paid for (null once they were taken off)

string | null
name
required

Who it paid for. Null to an app without roster.youth.read unless they’re an adult’s account: a name typed in may be a child’s

string | null
ticketTypeId
required
string | null
label
required

E.g. “Adult”, “Per person”, “Contribution toward card fees”

string
amount
required
object
amount
required

A decimal string, e.g. “25.00”: never a float.

string
/^-?\d+\.\d{2}$/
currency
required

ISO 4217, e.g. “USD”.

string
/^[A-Z]{3}$/
paidAt
required
string | null format: date-time
refundedAt
required
string | null format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
nextCursor
required

Pass as ?cursor= for the next page; null on the last page.

string | null
Example
{
"items": [
{
"status": "PENDING",
"items": [
{
"kind": "ATTENDEE"
}
]
}
]
}
X-RateLimit-Limit
integer

Requests allowed per minute for this credential

X-RateLimit-Remaining
integer

Requests left in this window

X-RateLimit-Reset
integer

When the window ends (Unix seconds)

A query parameter is malformed or unknown (invalid_parameter, with parameter)

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}
X-RateLimit-Limit
integer

Requests allowed per minute for this credential

X-RateLimit-Remaining
integer

Requests left in this window

X-RateLimit-Reset
integer

When the window ends (Unix seconds)

Missing, unknown, revoked or expired credential (unauthorized)

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}

A key: wrong group (forbidden), missing scope (insufficient_scope), or its creator no longer leads the group (key_owner_not_leader). An app’s token: missing scope (insufficient_scope), the group hasn’t installed the app (app_not_installed) or allowed the scope (scope_not_allowed, the message has the consent link), the person may not do this in the group (forbidden), Grouperly paused the app (app_suspended), the person hasn’t accepted Grouperly’s current Terms (terms_required: refresh their token, then send them to the hub’s /account/welcome), or it’s a child’s account (child_account)

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}
X-RateLimit-Limit
integer

Requests allowed per minute for this credential

X-RateLimit-Remaining
integer

Requests left in this window

X-RateLimit-Reset
integer

When the window ends (Unix seconds)

Not found (not_found)

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}
X-RateLimit-Limit
integer

Requests allowed per minute for this credential

X-RateLimit-Remaining
integer

Requests left in this window

X-RateLimit-Reset
integer

When the window ends (Unix seconds)

Rate limited (rate_limited)

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}
X-RateLimit-Limit
integer

Requests allowed per minute for this credential

X-RateLimit-Remaining
integer

Requests left in this window

X-RateLimit-Reset
integer

When the window ends (Unix seconds)

Retry-After
integer

Seconds to wait

An app’s token for someone new, while Grouperly’s sign-in can’t be reached (unavailable); try again

Media typeapplication/json
object
error
required
object
code
required

Stable and machine-readable: unauthorized, forbidden, insufficient_scope, key_owner_not_leader, app_not_installed, scope_not_allowed, app_suspended, rate_limited, not_found, invalid_parameter, invalid_body, invalid_profile, invalid_descriptor, no_profile, already_exists, not_a_member, position_inactive, position_full, already_assigned, assignment_ended, version_not_current, nothing_to_pay, payments_not_ready, payload_too_large, first_party_only, terms_required, child_account, assistant_off, not_for_assistant, assistant_failed, not_a_draft, storage_full, unavailable, internal_error. New codes may be added.

string
message
required

For people; wording may change.

string
parameter

The query parameter (invalid_parameter) or body field (invalid_body, not_a_member) at fault.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"parameter": "example"
}
}