Skip to content
Aller au contenu
Charitips

Use cases · Subscriptions

Monthly giving by your users

Give every month on behalf of your users, on a recurring campaign: create, claim, pause or stop each donation from your product.

  • Who paysYour company
  • Starts withEvery period
  • Tax receiptIn your company's name

Needs API access on a validated account. Plans

Device
Charities shown as
Outline widget
your-club.example/account/giving

your-club.example/account/giving

Step by step

Click through the site. Each step shows what your customer does, what your server sends and what Charitips answers.

  1. 1Monthly giving on

    To come

    Your customer does…

    Clicks “Give 5 € a month”.

    Your server sends…

    Sets up a recurring donation of 5 € for Camille Martin on the campaign “Monthly giving”.

    POSTcreate-recurring-donation

    Assigns that recurring donation to the charity your customer picks.

    POSTclaim-recurring-donation

    Charitips answers…

    Charitips creates it and returns its id; it waits for a charity.

    It is active: this month's donation goes to the charity your customer picks now.

    Charitips will then tell your server the recurring donation was created.

  2. 2Monthly donation made

    To come

    Your customer does…

    Clicks “Simulate 1 November”.

    Your server sends…

    On the 1st of each month, Charitips makes the donation of every active recurring donation, at most one a month, and bills it to your company. Nothing to call; a paused or stopped one is skipped.

    Charitips answers…

    Charitips will then tell your server the donation was created.

  3. 3Giving paused

    To come

    Your customer does…

    Clicks “Pause”.

    Your server sends…

    Pauses that recurring donation.

    POSTpause-recurring-donation

    Charitips answers…

    It is paused; the charity stays saved.

    Charitips will then tell your server the recurring donation changed.

  4. 4Giving resumed

    To come

    Your customer does…

    Clicks “Resume giving”.

    Your server sends…

    Resumes that recurring donation.

    POSTresume-recurring-donation

    Charitips answers…

    It is active again.

    Charitips will then tell your server the recurring donation changed.

  5. 5Giving stopped

    To come

    Your customer does…

    Clicks “Stop giving”.

    Your server sends…

    Stops that recurring donation for good.

    POSTcancel-recurring-donation

    Charitips answers…

    It is stopped and cannot be restarted.

    Charitips will then tell your server the recurring donation changed.

How to read this demo: the site shows what your customer does, and the panel what your server sends and what Charitips answers, step by step.

Build spec

The site is made up and nothing is sent. The endpoints, fields and webhook events are the real ones, and so are the charities.

This demo is one example. A club gives 5 € a month for each member who turns it on: that is the case the demo plays. The same flow also covers:

One variant

Why one demo: The calls are the same whatever the sector: the demo shows one club.

Build it

The calls behind the demo, in order. Each step shows the request your server sends.

Before you start

  • A recurring campaign, created with a frequency and without a fixed budget.
  • The user's first name, last name and email on each recurring donation: Charitips emails them every month.
  1. Create a charities selection

    Once, create the selection of charities your users can give to with Create a charities selection. Get the charity ids from List charities.

    POST /v1/charities-selections
    curl -X POST https://api.sandbox.charitips.com/v1/charities-selections \  -H "Authorization: Bearer $CHARITIPS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "name": "Monthly giving selection",    "charityIds": [      "ca68f22c-2fdf-48b1-b8f6-43c3073e83bb",      "1cccaa7c-cc5e-4dc8-9978-fc2de5f5d7b3",      "0d65b4e6-f663-4ec7-b69d-0da5e7e8b2ee"    ]  }'
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  2. Create the recurring campaign

    Once, create the campaign with its charitiesSelectionId and a frequency, an ISO 8601 recurring interval such as R/2026-11-01/P1M for once a month from 1 November 2026. Then activate it and keep its campaignId. Every donation on this campaign is a recurring donation, and the campaign is FREE_AMOUNT: with amountType set to FIXED_AMOUNT, creating it answers 400 Recurring campaigns must be FREE_AMOUNT campaigns.

    POST /v1/campaigns
    curl -X POST https://api.sandbox.charitips.com/v1/campaigns \  -H "Authorization: Bearer $CHARITIPS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "name": "Monthly giving",    "charitiesSelectionId": "<charitiesSelectionId>",    "frequency": "R/2026-11-01/P1M"  }'
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  3. Create a recurring donation

    When a user turns monthly giving on, call Create a recurring donation. amount is in cents: 1000 is 10 €. The donor's first name, last name and email are required, as Charitips emails them every month. Keep the recurringDonationId with the user.

    POST /v1/recurring-donations
    curl -X POST https://api.sandbox.charitips.com/v1/recurring-donations \  -H "Authorization: Bearer $CHARITIPS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "campaignId": "<campaignId>",    "amount": 1000,    "donorFirstName": "John",    "donorLastName": "Doe",    "donorEmail": "john@doe.com"  }'
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  4. Claim it for the chosen charity

    Claim the recurring donation with the charity the user picked, using Claim a recurring donation. Once the campaign has started, the first donation is made at once, then a new one every month. To change charity, claim it again with the new charityId.

    POST /v1/recurring-donations/<recurringDonationId>/claim
    curl -X POST https://api.sandbox.charitips.com/v1/recurring-donations/<recurringDonationId>/claim \  -H "Authorization: Bearer $CHARITIPS_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "charityId": "<charityId>"  }'
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  5. Pause or resume giving

    Pause a recurring donation with Pause a recurring donation: nothing is given or billed while it is paused. Resume a recurring donation starts giving again from the next month, to the same charity.

    POST /v1/recurring-donations/<recurringDonationId>/pause
    curl -X POST https://api.sandbox.charitips.com/v1/recurring-donations/<recurringDonationId>/pause \  -H "Authorization: Bearer $CHARITIPS_TOKEN"
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  6. Stop giving

    Stop a recurring donation with Cancel a recurring donation. The donations already made stay with the charity. A canceled recurring donation cannot be claimed again (409): to start again, create a new one.

    POST /v1/recurring-donations/<recurringDonationId>/cancel
    curl -X POST https://api.sandbox.charitips.com/v1/recurring-donations/<recurringDonationId>/cancel \  -H "Authorization: Bearer $CHARITIPS_TOKEN" \  -H "Content-Type: application/json" \  -d '{}'
    Built from the spec and the API code

    Request bodies are written for this docs and checked against the API's validation; ids in angle brackets are placeholders. Response values are placeholders built from the schema.

  7. Billing and receipts

    On the 1st of each month, Charitips makes the donation of every active recurring donation, at most one a month, and bills it to your account. Your company funds these donations, so the fiscal receipt goes to your company, once a year by default.

Edge cases

  • A one-off donation on the campaign. Create a donation answers 403 Only recurring donations can be created for recurring campaigns.
  • The campaign is not recurring yet. Creating a recurring donation answers 403 Recurring donations can only be created for recurring frequency campaigns.: the campaign has no frequency.
  • Your users pay. When users give their own money, charge them each month and create a donation with hasBeenCharged on a campaign that is not recurring, for a receipt in their name: see Your users give their own money.

The memo

Send the memo to your team

Already written for this flow

  • What it does and who pays, in a few sentences
  • What you need: plan, API calls and webhooks
  • What you can report: donations, charities, impact and receipts

To paste in an email, a document or a note.

Email it