Skip to main content
Every donation processed through CharityStack — whether a one-time gift or a charge from a recurring subscription — is captured as a payment record. The /v1/payments endpoints give you a unified view of all transaction activity for your organization, with consistent field names and clear status values that make it straightforward to build reports, sync your CRM, or trigger downstream workflows.

The payment object

The following fields are returned by GET /v1/payments and GET /v1/payments/{id}.

Status values

Frequency values

For recurring donors, each individual charge creates its own payment record with frequency set to the subscription’s cadence. Use the frequency field to distinguish subscription charges from one-time gifts.

API endpoints

List payments

Retrieve a paginated list of all payment records for your account.

Get payment

Fetch a single payment record by its ID.

Migrating from the donations API

The /v1/donations endpoints are deprecated and will be permanently removed on 2026-07-01. Migrate to /v1/payments before this date to avoid service interruption.
The /v1/payments endpoints return the same underlying data as /v1/donations, but with cleaner field names and without several fields that were rarely used. Update your integration by replacing the endpoint path and renaming the fields you read from each response.

Field mapping

The fields merchantName, tipAmount, and transactionID are not present in the payment object and are not available through /v1/payments.

Migration steps

1

Update your endpoint URL

Replace GET /v1/donations with GET /v1/payments and GET /v1/donations/{id} with GET /v1/payments/{id}. The query parameters (limit, lastEvaluatedKey) are identical.
2

Rename fields in your code

Update any references to the legacy field names listed in the mapping table above.
3

Remove references to removed fields

Drop any code that reads merchantName, tipAmount, or transactionID. These fields have no equivalent in the payments API.
4

Verify your integration

Make a test call to GET /v1/payments and confirm the response shape matches your updated field expectations before the 2026-07-01 cutover.