---
title: "Your users give their own money"
description: "Your users give their own money: you collect the funds, create the donation, and Charitips issues the fiscal receipt in the donor's name."
canonical: https://www.charitips.com/docs/use-cases/b2c
---

# Your users give their own money

> Your users give their own money: you collect the funds, create the donation, and Charitips issues the fiscal receipt in the donor's name.

- **Who pays**: Your users
- **Starts with**: Your users choose to give
- **Tax receipt**: In the user's name
- Needs [API access](https://www.charitips.com/docs/overview/plans.md#api-access-for-webhooks-and-credentials), [The B2C use case](https://www.charitips.com/docs/overview/plans.md#the-b2c-use-case-when-your-users-pay) 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/collect.md

**This demo is one example**: Users donate their own money, receipt to them. The same flow also covers:

- [A widget does everything](https://www.charitips.com/docs/use-cases/b2c.md#show-a-donor-widget): A Charitips widget handles the charity choice, the payment and the receipt.
- [A widget for the payment only](https://www.charitips.com/docs/use-cases/b2c.md#show-a-donor-widget): You keep your own charity list and use a Charitips widget just to take the payment.
- [Monthly donations by your users](https://www.charitips.com/docs/use-cases/recurring-donations.md): Users give the same amount every month and get one tax receipt a year.
- [You add to what they give](https://www.charitips.com/docs/use-cases/donation-matching.md): Your company matches each donation your users make.
- [A QR code at your event](https://www.charitips.com/docs/use-cases/on-site.md): People scan a QR code at your stand or venue and give their own money on your donation page, from their phone.

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

- [Users give their own money](https://www.charitips.com/docs/use-cases/b2c/own-money.md) (Software and apps): An app lets users give their own money: they pick a charity and an amount, then pay the app. The server records the donation after payment; the receipt is in the donor's name. A one-off gift, the receipt in the donor's name. Build spec: https://www.charitips.com/docs/demos/collect.md
- [Donation matching](https://www.charitips.com/docs/use-cases/donation-matching.md) (Professional services): A user gives 20 € and the company adds 20 €. The user picks the charity, pays and gets the receipt for their part; the company gets its own receipt for the matched part. The user gives 20 €, the company adds 20 €. Build spec: https://www.charitips.com/docs/demos/matching.md
- [An extra on a group pot](https://www.charitips.com/docs/use-cases/b2c/pot-extra.md) (Banking and insurance): On a group pot, a contributor chips in for the gift and can add a donation in their own name on top. They pick the charity; the receipt is theirs, next to the platform's fee share. A contributor's extra, next to the platform's fee share. Build spec: https://www.charitips.com/docs/demos/collect/pot-extra.md
- [Savings interest, matched](https://www.charitips.com/docs/use-cases/b2c/interest-matched.md) (Banking and insurance): A bank proposes to give 10 % of the interest just credited on a savings account, and matches it euro for euro. The customer picks the charity and confirms; two receipts, one each. 10 % of the interest, matched by the bank. Build spec: https://www.charitips.com/docs/demos/collect/interest-matched.md
- [Badge unlocked by a gift](https://www.charitips.com/docs/use-cases/b2c/paid-badge.md) (Software and apps): A community platform sells a supporter badge for a 2 € donation. The member picks the charity and pays; the badge shows on their profile and the receipt is in their name. 2 € to unlock a profile badge. Build spec: https://www.charitips.com/docs/demos/collect/paid-badge.md
- [Second-hand seller's share](https://www.charitips.com/docs/use-cases/b2c/seller-share.md) (Retail): On a second-hand marketplace, a seller gives 10 % of a sale from their payout, in their own name. A badge shows on their listings and buyers see where the share goes. 10 % of a sale, given by the seller in their name. Build spec: https://www.charitips.com/docs/demos/collect/seller-share.md
- [Part of a buyback payout](https://www.charitips.com/docs/use-cases/b2c/device-buyback.md) (Retail): A buyback service offers 182 € for a used smartphone. Before accepting, the seller can give part of the payout to a charity they pick; the receipt is in their name. A platform buys a used smartphone for 182 €, the seller gives part of the payout in their name. Build spec: https://www.charitips.com/docs/demos/collect/device-buyback.md
- [Part of a clothes buyback](https://www.charitips.com/docs/use-cases/b2c/clothes-collection.md) (Retail): A fashion store buys back clothes dropped off in store, 26,40 € for seven pieces. The customer can give part of the buyback to a charity they pick; the receipt is theirs. Clothes dropped off in store, 26,40 € bought back, part of it given in the person's name. Build spec: https://www.charitips.com/docs/demos/collect/clothes-collection.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), [`create-donation-fiscal-receipt`](https://www.charitips.com/docs/api-reference/create-donation-fiscal-receipt.md), [`get-donation-fiscal-receipt`](https://www.charitips.com/docs/api-reference/get-donation-fiscal-receipt.md), [`generate-fiscal-receipt-download-url`](https://www.charitips.com/docs/api-reference/generate-fiscal-receipt-download-url.md), [`update-donation-matching`](https://www.charitips.com/docs/api-reference/update-donation-matching.md)
- **Webhooks**: `donation_create`, `fiscalreceipt_generated`
- **Before you start**: The B2C use case.

### Request B2C access

The B2C use case lets you create donations on behalf of individual users and issue their fiscal receipts. Ask for it at [contact@charitips.com](mailto:contact@charitips.com): our team approves it on your account.

### Create a charities selection

The charities offered to your users come from a charities selection, created with [Create a charities selection](https://www.charitips.com/docs/api-reference/create-charities-selection.md). Get the charity ids from [List charities](https://www.charitips.com/docs/api-reference/list-charities.md).

```bash
curl -X POST https://api.sandbox.charitips.com/v1/charities-selections \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Hero Corp selection",
    "charityIds": [
      "ca68f22c-2fdf-48b1-b8f6-43c3073e83bb",
      "1cccaa7c-cc5e-4dc8-9978-fc2de5f5d7b3",
      "0d65b4e6-f663-4ec7-b69d-0da5e7e8b2ee"
    ],
    "accountId": "<accountId>"
  }'
```

### Create and activate the campaign

Every donation belongs to a campaign, which holds the configuration of the donation flow. Create it with [Create a campaign](https://www.charitips.com/docs/api-reference/create-campaign.md), then activate it with [Activate a campaign](https://www.charitips.com/docs/api-reference/activate-campaign.md): campaigns are created `PENDING`. Create one campaign per use case if you have several, and write to [contact@charitips.com](mailto:contact@charitips.com) for help with the first one.

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

### Create a donor for each user

A `Donor` stands for one of your users. Create it with [Create a donor](https://www.charitips.com/docs/api-reference/create-donor.md) and link it to your user with `uniqueExternalId`. A donor lets a logged-in user give through authenticated widgets, with a donation history, recurring donations and consolidated fiscal receipts.

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donors \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "John",
    "lastName": "Doe",
    "email": "john@doe.com",
    "street": "8 rue de la Paix",
    "zip": "75002",
    "city": "Paris",
    "country": "FR",
    "uniqueExternalId": "<userId>"
  }'
```

### Show a donor widget

The [donor widgets](https://www.charitips.com/docs/widgets/donor.md) take the donation in your product. The charity selection and payment widget collects the donor's fiscal information and the payment, creates and claims the donation, issues the fiscal receipt and can save the payment method. The payment only widget takes the `charityId` from your own charity selection UI, so show enough about each charity for users to choose. An authenticated widget needs a token from [Create a donor widget token](https://www.charitips.com/docs/api-reference/create-donor-widget-token.md); an unauthenticated one needs none and creates a new donor with each donation, for guests and one-off donations.

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

### Create the donation you charged

When you collect the funds yourself, for example in your own checkout, create the donation from your backend once the charity is chosen. Set `hasBeenCharged: true` and pass the donor's name and postal address in `donor`, for the receipt in their name. Only a charity whose `fiscalReceiptsSupport` is `ENABLED` issues one: offer those when your users want a receipt. When the user opts out of the receipt, set `withFiscalReceipt: false` and leave `donor` out.

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donations \
  -H "Authorization: Bearer $CHARITIPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "<campaignId>",
    "externalId": "<externalId>",
    "uniqueExternalId": "<uniqueExternalId>",
    "amount": 2000,
    "hasBeenCharged": true,
    "donor": {
      "firstName": "John",
      "lastName": "Doe",
      "email": "john@doe.com",
      "street": "8 rue de la Paix",
      "zip": "75002",
      "city": "Paris",
      "country": "FR"
    }
  }'
```

### Claim the donation

Link the donation to the chosen charity with [Claim a donation](https://www.charitips.com/docs/api-reference/claim-donation.md). You can also pass `charityId` when you create the donation, which claims it at once.

```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>"
  }'
```

### Issue a receipt on demand

To issue a receipt before the yearly one, call [Create a donation fiscal receipt](https://www.charitips.com/docs/api-reference/create-donation-fiscal-receipt.md) with the `donationId`. The donation must be paid and carry the donor's fiscal information.

```bash
curl -X POST https://api.sandbox.charitips.com/v1/donations/<donationId>/fiscal-receipts \
  -H "Authorization: Bearer $CHARITIPS_TOKEN"
```

### Download the receipt

Get the PDF link with [Generate a fiscal receipt download url](https://www.charitips.com/docs/api-reference/generate-fiscal-receipt-download-url.md). The PDF is generated asynchronously and can take a few seconds, so retry when the link is not ready yet.

```bash
curl -X GET https://api.sandbox.charitips.com/v1/fiscal-receipts/<fiscalReceiptId>/download-url \
  -H "Authorization: Bearer $CHARITIPS_TOKEN"
```

### Offer monthly giving

Authenticated donors can give every month through the [recurring donations widget](https://www.charitips.com/docs/widgets/donor.md), charged on their saved payment method. To let users stop it from your product, call [Cancel a recurring donation](https://www.charitips.com/docs/api-reference/cancel-recurring-donation.md).

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

### Manage donor profiles

Read and update donors with [List donors](https://www.charitips.com/docs/api-reference/list-donors.md), [Get a donor](https://www.charitips.com/docs/api-reference/get-donor.md) and [Update a donor](https://www.charitips.com/docs/api-reference/update-donor.md). Show their saved cards with [List donor payment methods](https://www.charitips.com/docs/api-reference/find-donor-payment-methods.md), their receipts with [List donor fiscal receipts](https://www.charitips.com/docs/api-reference/find-donor-fiscal-receipts.md), their donations with [List donations](https://www.charitips.com/docs/api-reference/list-donations.md) filtered on `donorId`, and their recurring donations with [List recurring donations](https://www.charitips.com/docs/api-reference/list-recurring-donations.md).

### Billing and receipts

Donations paid in the donor widgets are charged on the user's card at once, never on your invoice. Donations you create with `hasBeenCharged: true` after your own checkout are billed to you monthly. Either way, Charitips transfers the funds to the chosen charities. Fiscal receipts are issued yearly by default, which suits users who give several times. With unauthenticated widgets, the receipt is issued right after each payment.

## Related pages

- [Donor](https://www.charitips.com/docs/widgets/donor.md)
- [Billing and fiscal receipts](https://www.charitips.com/docs/concepts/billing-and-receipts.md)
- [Donation lifecycle](https://www.charitips.com/docs/concepts/donation-lifecycle.md)
