Custom Donation Flow - Creating a Custom Checkout on Kindful Donation Pages

This article outlines the steps to be taken to create a custom checkout page. Essentially, what you’ll be doing is creating a URL for certain circumstances not readily handled by our standard checkout flows. Some examples of these circumstances might be a locked donation amount, a forced recurring donation schedule, or a certain amount of recurring donations.

First, I’ll go over which pieces of the URL correspond to certain parts of the custom page. Then, I’ll break down each part of the URL separately, and show you how to determine what value should be there.

Disclaimer: This process can be fairly complex, and our best recommendation is to utilize the skills of a developer of your choosing to complete this process. We do understand, however, that many of our customers do not readily have access to a developer, which is why we created this document. The creation of these pages should be completed with the utmost care.

A more detailed explanation of the following is available in our developer documentation here:

An example of a completed URL is as follows: Text&summary_title=Cart Page Title&cart[desc]=Cart Page Description&cart[items][1][desc]=Cart Item Description&cart[items][1][product_id]=Cart_Item_Description&cart[items][1][amount]=25&cart[items][1][quantity]=1&cart[items][1] [non_tax_deductible]=0&success_action=GET&success_url=

url example

Now let’s break each piece of that URL, and what they mean.

This is where you’ll need to put your Kindful sub-domain, whatever that may be. Simply interchange the text that says "seaturtles" with your organization’s unique sub-domain.


The next step is to find the campaign ID number. This is found in your Campaign settings. Go to Settings > Campaigns, and click on the edit icon for the Campaign you’d like this page to be associated with. Once there, look into the URL bar in your browser. The series of numbers in this URL is your Campaign ID. Refer to the image below as an example.

campaign id


This piece designates the recurrence schedule, if you need to make this a recurring donation. The number that follows the "=" has a specific corresponding value. There are specific set of values that can be used in this piece. These values are set, and no other values are able to be added to be more specific. In our opinion, the best option is a recurring monthly bill today option. Those values are as follows:

recurrence schedule


This piece is only needed if you would like to bill monthly on today’s date, and bill immediately. Any other schedule, including one-time transactions, do not need this piece, and should be left out of the URL.


If you would like a transaction to recur for a specified number of donations, you would use this piece to set that parameter. If you wanted a donor to set up a recurring transaction for just one year, you would set the schedule to a monthly recurring donation, and then set the number following the "=" sign to 12. If you set this transaction to be billed quarterly and would like it to recur for one year, you would set the number following the "=" sign to 4. If you do not want to set an end for this recurring donation, exclude this piece from the URL.

&is_donation=true&submission_title=Checkout Text

Your checkout text is determined by this piece, and the text you decide on will appear on the button your donors will use to complete their transaction. Common examples of checkout texts are "Submit," "Complete," or "Donate." Ultimately, this text will communicate to your donors that they are finalizing their donation upon clicking this button, so make sure this text clearly indicates this.follows:

&summary_title=Cart Page Title

This cart page will need to have a title to indicate to what area of your organization your donors are giving. This is often the same name as the Campaign itself.

&cart[desc]=Cart Page Description

To further specify what your donors are contributing towards, this would be the way to denote that.

&cart[items][1][desc]=Cart Item Description&cart[items][1][product_id]=Cart Item Description

This description corresponds to whatever you would like to be associated with the dollar amount on this custom page. For instance, if you have a sponsorship program, your Cart Item Description might be something like "Sponsorship Program." If you’d like to be more general about this description, you can say something as simple as "Donation."

The key with this piece is to make sure that the words after "[product_id]=" is exactly the same as the words after "[desc]=" except with underscores in place of spaces, (i.e. Cart Item Description, and Cart_Item_Description.)


The number at the end of this piece will be the fixed dollar amount for this custom page. In this example, the dollar amount will appear as $25, because the number at the end is "25"

&cart[items][1][quantity]=1&cart[items][1] [non_tax_deductible]=0

This piece allows you to determine how much of the fixed dollar amount on this page is tax-deductible.


After your donor completes their transaction, you can send them to any webpage of your choosing. Most of our customers choose for their redirect URL to be their website’s homepage."

When you combine all of these pieces, you get the URL that you saw at the very beginning of this article. When you copy and paste this into your URL bar in your browser (ensuring that there are no paragraph breaks or spaces) you will be taken to the custom cart page. Here it is again below: Text&summary_title=Cart Page Title&cart[desc]=Cart Page Description&cart[items][1][desc]=Cart Item Description&cart[items][1][product_id]=Cart_Item_Description&cart[items][1][amount]=25&cart[items][1][quantity]=1&cart[items][1] [non_tax_deductible]=0&success_action=GET&success_url=

Things to consider/Troubleshooting:

  • Ensure there are no errant spaces or paragraph breaks in your Custom Campaign Page URL. If you have completed your custom URL and get an error that says "Looks like something got a bit mixed up!," your first check should be to go back through all the pieces of this URL and make sure that any spaces or paragraph breaks have been removed.

  • This URL can only be used if it is directly hyperlinked to an image or text. Any other use of this custom URL is not supported. For instance, some website builders have features named something like "button generator."