---
title: "A donation for an achievement"
description: "A success in your product gives a donation, such as a signed lease, a passed exam or a completed survey, and the person picks its charity on the success screen."
canonical: https://www.charitips.com/docs/use-cases/achievement
---

# A donation for an achievement

> A success in your product gives a donation, such as a signed lease, a passed exam or a completed survey, and the person picks its charity on the success screen.

- **Who pays**: Your company
- **Starts with**: A customer action
- **Tax receipt**: In your company's name
- Needs [API access](https://www.charitips.com/docs/overview/plans.md#api-access-for-webhooks-and-credentials) on a validated account. [Plans](https://www.charitips.com/docs/overview/plans.md#what-every-flow-needs)

Interactive demo on the page. The same flow as a build spec: https://www.charitips.com/docs/demos/referral.md

**Scenarios this flow covers:**

- [A computed amount](https://www.charitips.com/docs/use-cases/achievement/unused-kilometres.md): The amount comes from the event: kilometres not driven, portions saved, a share of a deductible.
- [The company names the charity](https://www.charitips.com/docs/use-cases/achievement.md#name-the-charity-yourself): The charity is set in advance, in a contract clause for example: the donation is assigned at once.
- [Charitips emails the person](https://www.charitips.com/docs/use-cases/delivered-gift.md#send-the-gift-by-email): The person is not signed in to your product: a time-limited campaign emails them the choice.

**Variants**: the same flow in other sectors, each with its build spec.

- [Customer referral](https://www.charitips.com/docs/use-cases/referral.md) (Software and apps): A product gives 10 € when a referred friend signs up. The referrer picks the charity upfront, so every invite names it; the friend's own welcome gift waits for their choice. 10 € when the friend signs up. Build spec: https://www.charitips.com/docs/demos/referral.md
- [Lease signed online](https://www.charitips.com/docs/use-cases/achievement/lease-signed.md) (Professional services): A rental agency gives 3 € for each lease signed online. On the last step before the keys, the tenant signs and picks the charity on the success screen; the agency pays. 3 € for each lease signed online. Build spec: https://www.charitips.com/docs/demos/achievement/lease-signed.md
- [Certification passed](https://www.charitips.com/docs/use-cases/achievement/certification.md) (Education): A training provider gives 5 € for each certification passed. When the jury publishes the results, the certified candidate picks the charity on their results page. 5 € for each certification passed. Build spec: https://www.charitips.com/docs/demos/achievement/certification.md
- [Survey completed](https://www.charitips.com/docs/use-cases/achievement/survey-completed.md) (Software and apps): A SaaS gives 0,50 € for each in-app survey completed. Three questions, two minutes, then the user picks the charity on the thank-you screen; the company pays. 0,50 € for each survey completed. Build spec: https://www.charitips.com/docs/demos/achievement/survey-completed.md
- [Unused rental kilometres](https://www.charitips.com/docs/use-cases/achievement/unused-kilometres.md) (Travel and mobility): A car rental company gives 5 cents for each kilometre left in the allowance at return. The renter picks the charity on the return screen; the rental company pays. 0,05 € per kilometre not driven. Build spec: https://www.charitips.com/docs/demos/achievement/unused-kilometres.md
- [Unused buffet portions](https://www.charitips.com/docs/use-cases/achievement/unused-portions.md) (Hotels and restaurants): A caterer counts the portions not served after a seminar and gives 1 € for each. The client approves the buffet report and picks the charity; the caterer pays. 1 € per portion saved, after the event. Build spec: https://www.charitips.com/docs/demos/achievement/unused-portions.md
- [Insurance deductible settled](https://www.charitips.com/docs/use-cases/achievement/deductible-settled.md) (Banking and insurance): An insurer gives 5 % of the excess when the policyholder pays it to close a claim. The policyholder picks the charity on the claim's closing screen; the insurer pays. 5 % of the deductible, on each settled claim. Build spec: https://www.charitips.com/docs/demos/achievement/deductible-settled.md
- [Energy contract referral](https://www.charitips.com/docs/use-cases/achievement/energy-referral.md) (Energy): An energy supplier gives 10 € once a referred friend's contract is active, after the cooling-off period. The referrer picks the charity on their referrals page; the supplier pays. 10 € once the referred contract is active. Build spec: https://www.charitips.com/docs/demos/achievement/energy-referral.md
- [Housekeeping skipped](https://www.charitips.com/docs/use-cases/achievement/skipped-housekeeping.md) (Hotels and restaurants): A hotel gives 1 € for each day a guest skips housekeeping. At check-out the guest sees the total and picks the charity; the hotel pays and nothing appears on the bill. 1 € per day without housekeeping, at check-out. Build spec: https://www.charitips.com/docs/demos/achievement/skipped-housekeeping.md
- [Shared ride completed](https://www.charitips.com/docs/use-cases/achievement/shared-ride.md) (Travel and mobility): A ride-hailing app gives 0,50 € each time a passenger shares the ride. On arrival, the passenger picks the charity on the receipt screen; the platform pays. 0,50 € per shared ride. Build spec: https://www.charitips.com/docs/demos/achievement/shared-ride.md
- [New seller's first listing](https://www.charitips.com/docs/use-cases/achievement/seller-activation.md) (Software and apps): A marketplace gives 5 € when a new seller publishes a first listing within a week. The seller picks the charity on the publish confirmation; the marketplace pays. 5 € when a new seller lists within a week. Build spec: https://www.charitips.com/docs/demos/achievement/seller-activation.md
- [Charity clause in a contract](https://www.charitips.com/docs/use-cases/achievement/contract-clause.md) (Professional services): A law firm adds a charity clause to its contracts: article 14 names the charity, and each signature gives 2 €. The donation is created already assigned; the firm pays. 2 € per contract signed, to the charity the clause names. Build spec: https://www.charitips.com/docs/demos/achievement/contract-clause.md
- [Festival tickets](https://www.charitips.com/docs/use-cases/achievement/festival-tickets.md) (Culture and events): A festival gives 1 € per ticket sold, paid by the festival. Right after payment, the buyer picks the charity on the order confirmation; the ticket price does not change. 1 € per ticket, chosen after payment. Build spec: https://www.charitips.com/docs/demos/achievement/festival-tickets.md
- [Property sale completed](https://www.charitips.com/docs/use-cases/achievement/property-sale.md) (Professional services): An estate agency gives 1 % of the sale price at completion, taken from its own fee. The seller picks the charity on the completion page; what they receive does not change. 1 % of the sale price, from the agency's fee. Build spec: https://www.charitips.com/docs/demos/achievement/property-sale.md
- [Project milestones delivered early](https://www.charitips.com/docs/use-cases/achievement/project-milestones.md) (Software and apps): A project tool gives 10 € each time a team delivers a milestone ahead of its date. The team picks the charity when the milestone closes; the company pays. 10 € per milestone delivered early. Build spec: https://www.charitips.com/docs/demos/achievement/project-milestones.md
- [Stand-up streak](https://www.charitips.com/docs/use-cases/achievement/standup-streak.md) (Software and apps): A team tool gives 5 € when a team holds 10 daily stand-ups in a row on time. The team picks the charity when the streak milestone is reached; the company pays. 5 € for every 10 stand-ups on time. Build spec: https://www.charitips.com/docs/demos/achievement/standup-streak.md

## Build it
- **Calls**: [`create-charities-selection`](https://www.charitips.com/docs/api-reference/create-charities-selection.md), [`create-campaign`](https://www.charitips.com/docs/api-reference/create-campaign.md), [`activate-campaign`](https://www.charitips.com/docs/api-reference/activate-campaign.md), [`create-donation`](https://www.charitips.com/docs/api-reference/create-donation.md), [`claim-donation`](https://www.charitips.com/docs/api-reference/claim-donation.md)
- **Webhooks**: `donation_create`, `donation_update`

### Set up the campaign

Once, create a charities selection, a campaign with its `charitiesSelectionId`, then activate it, as in [steps 3 to 5 of Your first donation](https://www.charitips.com/docs/get-started/first-donation.md#3-pick-your-charities).

```bash
curl -X POST https://api.sandbox.charitips.com/v1/campaigns \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Leases signed online",
    "charitiesSelectionId": "<charitiesSelectionId>"
  }'
```

### Give when the event happens

When the contract is signed or the certificate issued, your server creates the donation with the event's id as `uniqueExternalId`. One event gives one donation. The amount can come from the event (0,05 € per kilometre not driven, 1 € per buffet portion saved, a share of an insurance deductible): compute it on your side and send it in cents.

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donations \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "<campaignId>",
    "amount": 300,
    "uniqueExternalId": "lease_77120",
    "externalId": "tenant_5531"
  }'
```

### Let the person pick a charity

The success screen offers the charities. Save the choice with [Claim a donation](https://www.charitips.com/docs/api-reference/claim-donation.md).

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donations/<donationId>/claim \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "charityId": "<charityId>"
  }'
```

### Name the charity yourself

A contract clause or a partnership can name the charity in advance. Create the donation with that `charityId`: it is assigned at once, with no claim and no choice screen.

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donations \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "<campaignId>",
    "amount": 300,
    "charityId": "<charityId>",
    "uniqueExternalId": "lease_77120",
    "externalId": "tenant_5531"
  }'
```

## Edge cases

- **The person leaves without choosing.** The donation is assigned automatically when it expires or when the campaign closes: none is lost. Bring them back to the choice from your product, or let Charitips email them: see [A gift sent by email, Slack or post](https://www.charitips.com/docs/use-cases/delivered-gift.md).
- **The event is undone.** [Delete the donation](https://www.charitips.com/docs/api-reference/delete-donation.md) before it is billed.
- **Fiscal receipts.** You fund the donations, so the receipt goes to your company.

## Related pages

- [Campaigns](https://www.charitips.com/docs/concepts/campaigns.md)
- [Donation lifecycle](https://www.charitips.com/docs/concepts/donation-lifecycle.md)
- [A donation for every referral](https://www.charitips.com/docs/use-cases/referral.md)
- [Webhooks](https://www.charitips.com/docs/webhooks/configuration.md)
