# ChangeUp DMS

## Fetch and filter donations

> List all donation(s) associated with a partner account in a paginated list.

```json
{"openapi":"3.1.0","info":{"title":"ChangeUp DMS","version":"1.0.0"},"servers":[{"url":"https://donations.api.changeup.com"}],"paths":{"/v1/donations":{"get":{"summary":"Fetch and filter donations","parameters":[{"name":"limit","in":"query","description":"Limit of records to return","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Which page to return. This endpoint is paginated.","schema":{"type":"integer"}},{"name":"charityId","in":"query","description":"(Optional) - Filter by charity Id","schema":{"type":"string"}},{"name":"transactionId","in":"query","description":"(Optional) - Your transaction id used to create the donation(s)","schema":{"type":"string"}},{"name":"startDate","in":"query","description":"(Optional) - Filter donations with a start date MM/DD/YYY","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"(Optional) - Filter donations with a end date","schema":{"type":"string"}},{"name":"sortOrder","in":"query","description":"(Optional) - sort asc or desc","schema":{"type":"string"}},{"name":"sortBy","in":"query","description":"(Optional) - sort by any field","schema":{"type":"string"}},{"name":"x-api-key","in":"header","required":false,"description":"(Required) ","deprecated":false,"schema":{}},{"name":"x-client-id","in":"header","required":false,"description":"(Required) ","deprecated":false,"schema":{}}],"responses":{"200":{"description":"Sucess","content":{"application/json":{"schema":{"type":"object","properties":{"docs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"partnerId":{"type":"string"},"daf":{"type":"string"},"dafAccountType":{"type":"string"},"amount":{"type":"integer"},"causeId":{"type":"string"},"charityId":{"type":"string"},"transactionId":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string"},"jobId":{"type":"null"},"invoiceId":{"type":"null"},"receipt":{"type":"null"},"environment":{"type":"string"},"type":{"type":"string"},"transactionOrderDate":{"type":"string","format":"date-time"},"reason":{"type":"null"},"source":{"type":"string"},"widgetId":{"type":"string"},"delayReportBy":{"type":"integer"},"status":{"type":"string"},"invoiced":{"type":"boolean"},"generateReceipt":{"type":"boolean"},"invoicedAt":{"type":"null"},"reportTransactionAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"benevityDonationCreatedAt":{"type":"string","format":"date-time"},"benevityResponse":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"funds":{"type":"object","properties":{"amount":{"type":"integer"},"source":{"type":"string"},"paymentType":{"type":"string"},"currencyCode":{"type":"string"}}},"state":{"type":"object","properties":{"processingStatus":{"type":"string"},"statusLastUpdated":{"type":"string","format":"date-time"}}},"destination":{"type":"object","properties":{"recipientId":{"type":"string"}}}}}}}}}}}}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"lastPage":{"type":"integer"},"currentPage":{"type":"integer"},"perPage":{"type":"integer"},"prev":{"type":"null"},"next":{"type":"integer"}}}}}}}}},"description":"List all donation(s) associated with a partner account in a paginated list."}}}}
```

## Create donation

> Send a single or batch of donations.\
> \
> Creates a single donation or batch donations. Batch donations accepts a limit of 15 per request. to any nonprofit.\
> \
> \> \*\*Note:\*\* To schedule a future to be posted at a future date, set the delayReportBy field (e.g., a value of 5 will delay the report for 5 days). This allows you to cancel a donation before it is finalized. Please note that once a donation is posted after the delay period, it cannot be cancelled. The maximum allowable delay is 90 days.

```json
{"openapi":"3.1.0","info":{"title":"ChangeUp DMS","version":"1.0.0"},"servers":[{"url":"https://donations.api.changeup.com"}],"paths":{"/v1/donations":{"post":{"summary":"Create donation","parameters":[{"name":"x-api-key","in":"header","required":false,"description":"(Required) - API Key Secret","deprecated":false,"schema":{}},{"name":"x-client-id","in":"header","required":false,"description":"(Required) - Client Secret","deprecated":false,"schema":{}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"statusCode":{"type":"integer"},"success":{"type":"boolean"},"id":{"type":"string"},"sourceId":{"type":"string"},"status":{"type":"string"},"transactionId":{"type":"string"}}}}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"description":"Send a single or batch of donations.\n\nCreates a single donation or batch donations. Batch donations accepts a limit of 15 per request. to any nonprofit.\n\n> **Note:** To schedule a future to be posted at a future date, set the delayReportBy field (e.g., a value of 5 will delay the report for 5 days). This allows you to cancel a donation before it is finalized. Please note that once a donation is posted after the delay period, it cannot be cancelled. The maximum allowable delay is 90 days.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"donations":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"},"items":{"type":"object","properties":{"type":{"type":"string"},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","properties":{"amount":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}},"delayReportBy":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}},"causeId":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}},"transactionId":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}},"currencyCode":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}},"metadata":{"type":"object","properties":{"type":{"type":"string"},"description":{"type":"string"}}}}}}}}}}}}}}}}}}}}
```

## Fetch donation by id

> Use to fetch the status and details of a single donation by Id

```json
{"openapi":"3.1.0","info":{"title":"ChangeUp DMS","version":"1.0.0"},"servers":[{"url":"https://donations.api.changeup.com"}],"paths":{"/v1/donations/{id}":{"get":{"summary":"Fetch donation by id","parameters":[{"name":"x-api-key","in":"header","description":"(Required) ","schema":{"type":"string"}},{"name":"x-client-id","in":"header","description":"(Required) ","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"partnerId":{"type":"string"},"daf":{"type":"string"},"dafAccountType":{"type":"string"},"amount":{"type":"integer"},"causeId":{"type":"string"},"charityId":{"type":"string"},"transactionId":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string","format":"color"},"jobId":{"type":"string"},"invoiceId":{"type":"null"},"receipt":{"type":"null"},"environment":{"type":"string"},"type":{"type":"string"},"transactionOrderDate":{"type":"string","format":"date-time"},"reason":{"type":"string"},"source":{"type":"string"},"widgetId":{"type":"string"},"delayReportBy":{"type":"integer"},"status":{"type":"string"},"invoiced":{"type":"boolean"},"generateReceipt":{"type":"boolean"},"invoicedAt":{"type":"null"},"reportTransactionAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"benevityDonationCreatedAt":{"type":"null"},"benevityResponse":{"type":"array"},"widget":{"type":"object","properties":{"id":{"type":"string"},"widgetName":{"type":"string"}}},"charity":{"type":"object","properties":{"id":{"type":"string"},"displayName":{"type":"string"}}}}}}}}},"description":"Use to fetch the status and details of a single donation by Id"}}}}
```

## Cancel a donation

> Cancel a donation that has not been posted to a DAF. When a donation is posted, it goes from:\
> \
> \*\*PENDING\*\* -> \*\*COMPLETED\*\*\
> \
> Donation(s) marked as \*\*COMPLETED\*\* cannot be canceled.\
> \
> Once a donation is canceled, the status will be marked as \*\*CANCELED.\*\*\
> \
> \| \*\*Field\*\* | \*\*Type\*\* | \*\*Description\*\* |\
> \| --- | --- | --- |\
> \| reason | String | \`Optional\`  \<br>Reason for canceling the donation |

```json
{"openapi":"3.1.0","info":{"title":"ChangeUp DMS","version":"1.0.0"},"servers":[{"url":"https://donations.api.changeup.com"}],"paths":{"/v1/donations/{id}/cancel":{"patch":{"summary":"Cancel a donation","parameters":[{"name":"x-api-key","in":"header","description":"(Required) ","schema":{"type":"string"}},{"name":"x-client-id","in":"header","description":"(Required) ","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"description":"Cancel a donation that has not been posted to a DAF. When a donation is posted, it goes from:\n\n**PENDING** -> **COMPLETED**\n\nDonation(s) marked as **COMPLETED** cannot be canceled.\n\nOnce a donation is canceled, the status will be marked as **CANCELED.**\n\n| **Field** | **Type** | **Description** |\n| --- | --- | --- |\n| reason | String | `Optional`  <br>Reason for canceling the donation |","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.changeup.com/app/resources/apis/changeup-dms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
