Cancel Impact
The Cancel Impact API enables you to cancel and reverse a previously created environmental impact. This is designed for refund flows where an impact needs to be undone. Cancelling an impact removes it from your /impact totals and the /track endpoint will reflect the cancellation with a cancelled_on timestamp and optional cancellation_reason.
You are not charged for cancelled impacts — any usage billing is automatically reversed. The original impact record is preserved for audit purposes. This endpoint is idempotent — calling it multiple times for the same impact will return the same result without double-reversing aggregates.
Impacts that have already been processed (donation received by a non-profit) cannot be cancelled via the API. Please contact us for assistance with processed impacts.
Cancel an impact
This endpoint allows you to cancel a specific impact using the user_id and time_utc from the original impact record. You can optionally provide a reason for the cancellation.
Required request body attributes
- Name
user_id- Type
- string
- Description
The user ID associated with the impact to cancel. This should be in the format "U1234". You can obtain this from the /records or /customer_records API responses.
- Name
time_utc- Type
- string
- Description
The UTC timestamp when the impact was originally made. You can obtain this from the /records or /customer_records API responses. Must be in ISO 8601 format "YYYY-MM-DDTHH:mm:ss.sssZ".
Optional request body attributes
- Name
reason- Type
- string
- Description
A reason for the cancellation (e.g., "order refunded", "duplicate transaction"). Maximum 200 characters.
Response fields
- Name
user_id- Type
- string
- Description
The user ID associated with the cancelled impact.
- Name
time_utc- Type
- string
- Description
The UTC timestamp of the original impact.
- Name
cancelled_on- Type
- string
- Description
The time (in UTC) when the impact was cancelled.
- Name
reason- Type
- string
- Description
The reason provided for the cancellation. Only present if a reason was provided.
- Name
tree_planted- Type
- integer
- Description
The number of trees that were reversed. Only present for tree planting impacts.
- Name
waste_removed- Type
- integer
- Description
The amount of ocean waste (in lbs) that was reversed. Only present for ocean cleanup impacts.
- Name
carbon_captured- Type
- integer
- Description
The amount of carbon (in lbs) that was reversed. Only present for carbon capture impacts.
- Name
money_donated- Type
- integer
- Description
The amount of money (in smallest USD units) that was reversed. Only present for donation impacts.
- Name
category- Type
- string
- Description
The category of the cancelled impact, if one was set. Only present when applicable.
- Name
message- Type
- string
- Description
A status message: "impact cancelled successfully" for new cancellations, or "impact was already cancelled" for repeat calls.
Request
curl --location 'https://api.1clickimpact.com/v1/cancel_impact' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {PRODUCTION API KEY}' \
--data '{
"user_id": "U1234",
"time_utc": "2025-03-12T15:22:14.753Z",
"reason": "order refunded"
}'
Response
{
"user_id": "U1234",
"time_utc": "2025-03-12T15:22:14.753Z",
"cancelled_on": "2025-04-30T10:15:32.000Z",
"reason": "order refunded",
"tree_planted": 10,
"category": "food",
"message": "impact cancelled successfully"
}
Response (Already Cancelled)
{
"user_id": "U1234",
"time_utc": "2025-03-12T15:22:14.753Z",
"cancelled_on": "2025-04-30T10:15:32.000Z",
"reason": "order refunded",
"tree_planted": 10,
"category": "food",
"message": "impact was already cancelled"
}

