CharityChoice REST API

VERSION: 1.4.3

Introduction

This is the documentation for the CharityChoice Rest API.

The CharityChoice Rest API allows an authorized client to access much of the functionality that CharityChoice supplies to the end user from the main CharityChoice web site of https://www.charitygiftcertificates.org/.

It also includes some special account-related functions and lookup functions to help alleviate the need for API users to store any CharityChoice data.

The base URI for all REST API calls is: https://www.charitygiftcertificates.org/api

Requirements for all API Requests

Permissions

The API can only be accessed by accounts that are given explicit authorization permissions.

To acquire permissions to access the CharityChoice API, please contact us at admin@charity-choice.org.

Request Headers

The following http headers need to be added to each and every API call:

  1. Header: Authorization Value: basic AUTHORIZATION_KEY (see explanation below)
  2. Header: cgc-app-id Value: *CGC_REST_API_VERSION_0142 *(may change in the future)
  3. Header: cgc-mode Value: prod OR dev If you use "prod", requests will be directed to the live production database. If you use "dev", your requests will be directed to the development "sandbox" environment.

Authorization Key

The authorization key is composed of a base 64 string made up as follows: UserId:ClientId:Password

So for example, if your UserId is 45885 and your ClientId is 8960 and your password is %%6453De1_223, you can retrieve your AUTHORIZATION_KEY with one of the following code snippets:

Java

import java.util.Base64;        
String authorization = new
String(Base64.getEncoder().encode("45885:8960:%%6453De1_223".getBytes()));

C#

string authorization = 
Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("45885:8960:%%6453De1_223"));

Python

import base64
authorization = base64.b64encode(b'45885:8960:%%6453De1_223').decode()

Ruby

require "base64"
authorization = Base64.strict_encode64('45885:8960:%%6453De1_223')

Javascript

const authorization = btoa("45885:8960:%%6453De1_223");

Javascript - Node.js

const authorization = new Buffer("45885:8960:%%6453De1_223").toString('base64');

The base 64 string that should be returned for all of the above is:

NDU4ODU6ODk2MDolJTY0NTNEZTFfMjIz
So, in this case, the authorization header would look like:

authorization:basic NDU4ODU6ODk2MDolJTY0NTNEZTFfMjIz

Development & Testing

During the development process, you can use the CharityChoice development "sandbox" environment by setting "dev" as the value of the cgc-mode request header (see above).

Any orders, donations etc. made using in "dev" mode will not show in your account on www.CharityGiftCertificates.org.

SDK's - Client Code Implementation and Sample Code

We have created a few SDK's (client code implementations) and examples to help make your integration easier.

Node.js

The Node.js SDK contains call wrappers for all of the API calls described in this document.

The SDK can be added to you project by running:

npm i charitychoice_api -save

OR

yarn add charitychoice_api

To use the SDK in your code, use:

const uid = 0000, // Your CharityChoice User Id
cid = 0000, // Your CharityChoice Client Id
pw = '****', // Your CharityChoice Password
apiModule = require('charitychoice_api'),
api = new apiModule.CharityChoiceApi(id, cid, pw);

//Example call to get Gift Card Retailers List
api.giftCardRetailersList(
data => console.log(data), //On success callback
data => console.warn(data), //On fail callback
data => console.error(data)); //On error callback

After installing the charitychoice_api package, more example code of how to use the different calls can be found in: node_modules/charitychoice_api/examples/UsageExample.js

.Net

The .Net SDK contains call wrappers for all of the API calls described in this document.

NuGet package CharityChoice.ApiClient.

To install the package use:

Install-Package CharityChoice.ApiClient

OR

dotnet add package CharityChoice.ApiClient

Note:

Calling the API functions is done by running the static functions found in the "APICaller" class.

Before doing any API calls, your code needs to set the following 3 static properties:

  1. CharityChoiceApi.ApiCaller.UserId
  2. CharityChoiceApi.ApiCaller.ClientId
  3. CharityChoiceApi.ApiCaller.Password

You can download the source code and usage example code from: https://www.charitygiftcertificates.org/API/Samples/DotNet/SourceCode_DoNetClient_CharityChoiceAPI.zip

You can also download the compiled DLL from: https://www.charitygiftcertificates.org/API/Samples/DotNet/DoNetClient_CharityChoiceAPI.zip

Python

The python SDK contains call wrappers for all of the API calls described in this document.

You can acquire the python client implementation from https://www.charitygiftcertificates.org/API/Samples/Python/CharityChoiceAPI_PythonClient.zip

Note:

Calling the API functions is done by running the functions found in the ‘'APICaller" class. See the helper file: "UsageExample.py" that shows how to call each function.

Run API calls on the fly

You can run API calls on-the-fly using the run API tool at https://www.charitygiftcertificates.org/api/.

NOTE: When doing POST calls, you will need to supply valid JSON data in the correct format into the "Data" field. Refer to this document for the required data and format for each call.

API Endpoints List - Quick Reference

The base URI for all calls is https://www.charitygiftcertificates.org/API

Function Method Endpoint URI Description More Details
Activate Codes POST /codes/activate Acquire active CharityChoice redemption codes. Details
Activate Supplied Codes POST /codes/activateCodes Active the given list of codes for redemption of the given amount. Details
Charity Donation POST /donate Donate to one or more charities. Details
Charity Information GET /charity/charityId:int Gets information for a particular charity. Details
De-activate Codes DELETE /codes/remove/codes:string De-activate one or more redemption codes. Details
Donate Retailer Gift Card POST /dyc/donate Donate a retailer gift card to charity. Details
Generate and Reserve Codes GET /codes/generateCodes/prefix:string/numberOfCodes:int Acquire a list of valid non-active CharityChoice redemption codes. Details
Get Category List GET /charity/cats/list Gets a list of the CharityChoice Charity Categories. Details
Get Charity List GET /charity/list/listName:string?/categoryId:int? Gets a list of charities. Details
Get Code Status GET /codes/status/redemptionCode Get the status of the given redemption code. Details
Get Multiple Codes Status POST /codes/status Gets the status of multiple redemption codes. Details
Get Gift Card Status GET /dyc/donorId:int/cardId:int Get status of a previously donated Retailer Gift Card. Details
Get Order Types GET /donate/ordertypes Gets a list of CharityChoice order types. Details
Get Orders GET /account/orders/orderTypeId:int? Gets a list of orders in account. Details
Get Orders Report GET /account/orders/report/fromDate:date/toDate:date Gets a report of orders with full details. Details
Get Digital Cards List GET /digital/digitalCardsList Returns a list of available Digital Card images. Details

Get Orders

Gets a list of orders in your account.

Method: GET

/account/orders[/{orderTypeId}]

Request Parameters:

Parameter Type Required Description
orderTypeId int Optional The optional orderTypeId filters the orders to only those of that type. The list of order type Ids can be acquired by running Get Order Types.
The response will be an array of order objects.

Sample Response:

[{
        "OrderId": 12345,
        "PurchaseDate": "2026-01-01T00:00:00",
        "Type": "Physical Cards",
        "Denomination": 25.00,
        "Quantity": 1,
        "HideAmount": true,
        "HideDonor": false,
        "TotalForCards": 25.00,
        "TotalForShipping": 0.00
    },
    {
        "OrderId": 12346,
        "PurchaseDate": "2026-01-02T00:00:00",
        "Type": "Digital Cards",
        "Denomination": 100.00,
        "Quantity": 5,
        "HideAmount": false,
        "HideDonor": false,
        "TotalForCards": 500.00,
        "TotalForShipping": 0.00
}]

Response Fields

Field Type Description
OrderId int The CharityChoice Purchase Order Identifier
PurchaseDate datetime The date of the order
Type string The type of card or code in the order
Denomination float The monetary value of each card or code in USD
Quantity int The number of cards or codes in the order
HideAmount bool True if the denomination is not to be displayed to the recipient.
HideDonor bool True if the donor information is not to be displayed to the recipient.
TotalForCards float The total price for all cards or codes in the order
TotalForShipping float The total price for shipping for the order

Get Orders Report

Gets a report of orders in your account with full order details - including redemption information.

Method: GET

To get a report of all orders within a range of dates use:

/account/orders/report/{fromDate}/{toDate}

Parameters:

Parameter Type Required Description
fromDate date Required The fromDate is the beginning of the date range for the report. The format should be MM-DD-YYYY (11-02-2025) or 02-NOV-2025.
toDate date Required The toDate is the end of the date range for the report. The format should be MM-DD-YYYY (11-02-2025) or 02-NOV-2025.

To get a report of all the orders within a single month use:

/account/orders/report/{month}/{year}
Parameter Type Required Description
month int Required The month is the month of the orders to include in the report. The format should be 11 for November.
year int Required The year is the year of the orders to include in the report. The format should be 2025 for November 2025.

Sample Order Report Response:

{
    "Succeeded": true,
    "Report": {
        "Orders": [
            {
                "OrderId": 173191,
                "OrderDate": "2026-01-29T22:20:36.38",
                "TotalForCards": 100,
                "TotalForShipping": 0,
                "TotalExtraForCustomPhysicalCards": 0,
                "TotalWithoutDiscounts": 100,
                "TotalWithoutDiscountsAtCheckout": 100,
                "DiscountPercentAtCheckout": 0,
                "FinalPriceAtCheckout": 100,
                "OrderItems": [
                    {
                        "OrderId": 173191,
                        "ItemId": 257145,
                        "Type": "Gift Card Exchange",
                        "Denomination": 100,
                        "Codes": [
                            {
                                "CodeId": 1325950,
                                "ItemId": 257145,
                                "RedemptionCode": "GCE128745",
                                "WasRedeemed": true,
                                "RedeemDate": "11-01-2025T00:00:00",
                                "RedeemerFirstName": "John",
                                "RedeemerLastName": "Doe",
                                "RedeemerEmail": "johndoe@server.com",
                                "Charities": [1,2,3]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool True if the request was successful.
Report object The report object containing the orders.
Orders Array An array of orders.
OrderId int The unique identifier for the order
OrderDate DateTime The date and time the order was placed
TotalForCards float The total price for all cards or codes in the order
TotalForShipping float The total cost for shipping and handling
TotalExtraForCustomPhysicalCards float The total cost for custom physical cards
TotalWithoutDiscounts float The total cost for all items in the order without discounts
TotalWithoutDiscountsAtCheckout float The total cost for all items in the order without discounts at checkout
DiscountPercentAtCheckout float The discount percent at checkout
FinalPriceAtCheckout float The final price for all items in the order at checkout
OrderId int The unique identifier for the order
ItemId int The unique identifier for the item
Type string The type of item
Denomination float The denomination of the item
CodeId int The unique identifier for the code
ItemId int The unique identifier for the item
RedemptionCode string The redemption code for the item
WasRedeemed boolean True if the code has been redeemed
RedeemDate DateTime The date and time the code was redeemed
RedeemerFirstName string The first name of the person who redeemed the code
RedeemerLastName string The last name of the person who redeemed the code
RedeemerEmail string The email of the person who redeemed the code
Charities Array The CharityIds of the charities that the redemption code was redeemed for.
You can acquire the Charity Details of the charities by running Charity Information
ErrorMessage string Error message if the request failed

Charity Information

Gets information of a particular charity

Method: GET

/charity/{charityId}

Request Parameters:

Parameter Type Required Description
charityId int Yes The charityId is the Id of the charity you want information about.

Response Status Codes:

Sample Response:

{
    "Succeeded": true,
    "CharityInfo": {
        "CharityId": 88,
        "CategoryId": 5,
        "CategoryName": "Disaster Relief",
        "CharityName": "American Red Cross",
        "ShortDescription": "Red Cross disaster relief, one of many services, focuses on meeting people's immediate emergency disaster-caused needs.",
        "LogoURL": "https://res.cloudinary.com/charity-choice/image/upload/v1621447334/CharityLogos/88_sm5f40.jpg",
        "URL": "https://www.redcross.org",
        "City": "Washington",
        "State": "DC",
        "Country": "",
        "IsLocal": false,
        "Rank": 0
    },
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool True if the request was successful.
CharityInfo object The charity information object
CharityId int The Id of the charity
CategoryId int The Id of the charity's category
CategoryName string The name of the charity's category
CharityName string The name of the charity
ShortDescription string A short description of the charity
LogoURL string (if available) is a URL to an image containing the charity Logo.
URL string is the URL of the Charity's home page.
City string The city where the charity is based or registered.
State string The state where the charity is based or registered.
Country string The country where the charity is based or registered.
If this value is null or empty, the charity is most likely a USA based charity.
IsLocal bool True if the charity is a local charity.
ErrorMessage string Error message if the request failed

Get Charity List

Gets a list of charities.

Method: GET

/charity/list[/{listName}][/{categoryId}]

Request Parameters:

Parameter Type Required Description
listName string No Can be "main", "local", or "all" (default is "all")
categoryId int No One of the CharityChoice charity category ids. The list of charity categories can be acquired from an API call to Get Category List.

Sample Response:

[
    {
        "CharityId": 122,
        "CategoryId": 2,
        "CategoryName": "Children & Youth",
        "CharityName": "\"I Have a Dream\" Foundation",
        "ShortDescription": "I Have a Dream Foundation- Runs a network of \"I Have a Dream\"® Projects that provide long-term mentoring, tutoring, and enrichment to children.",
        "LogoURL": "https://www.charitygiftcertificates.org/images/image_gen_charities.aspx?char_id=122",
        "URL": "https://www.ihaveadreamfoundation.org/",
        "City": "New York",
        "State": "NY",
        "Country": "",
        "IsLocal": false,
        "Rank": 0
    },
    {
        "CharityId": 173,
        "CategoryId": 13,
        "CategoryName": "Elderly",
        "CharityName": "AARP Foundation",
        "ShortDescription": "AARP Foundation programs deal with issues that affect people age 50 and over on a daily basis, as well as emerging trends that will affect people as they age.",
        "LogoURL": "https://www.charitygiftcertificates.org/images/image_gen_charities.aspx?char_id=173",
        "URL": "https://aarp.org",
        "City": "Washington",
        "State": "DC",
        "Country": "",
        "IsLocal": false,
        "Rank": 0
    }
    ...
]

Response Fields

Field Type Description
CharityId int The Id of the charity
CategoryId int The Id of the charity's category
CategoryName string The name of the charity's category
CharityName string The name of the charity
ShortDescription string A short description of the charity
LogoURL string (if available) is a URL to an image containing the charity Logo.
URL string is the URL of the Charity's home page.
City string The city where the charity is based or registered.
State string The state where the charity is based or registered.
Country string The country where the charity is based or registered.
If this value is null or empty, the charity is most likely a USA based charity.
IsLocal bool True if the charity is a local charity.
Rank int The Rank of the charity. The most popular charities are ranked 1 and other top charities are ranked 2.
Rank will be 0 if the charity is not in the top 100.

Search for a Charity

Searches for Charities by the given search text

Method: GET

/charity/list/search/{searchText}[/{includeDescription}]

Request Parameters:

Parameter Type Required Description
searchText string Yes The search term to look for in the charity name. Optionally the search term will also be searched within the charity description if the includeDescription parameter is set to true.
The search is case insensitive and the search term can be a word or a phrase.
includeDescription bool No Whether to also search for the search text in the charity description.
Defaults to false.

Sample Response:

[
    {
        "CharityId": 88,
        "CategoryId": 5,
        "CategoryName": "Disaster Relief",
        "CharityName": "American Red Cross",
        "ShortDescription": "Red Cross disaster relief, one of many services, focuses on meeting people's immediate emergency disaster-caused needs.",
        "LogoURL": "https://res.cloudinary.com/charity-choice/image/upload/v1621447334/CharityLogos/88_sm5f40.jpg",
        "URL": "https://www.redcross.org",
        "City": "Washington",
        "State": "DC",
        "Country": "",
        "IsLocal": false,
        "Rank": 0
    },
    ...
]

Response Fields

Field Type Description
CharityId int The Id of the charity
CategoryId int The Id of the charity's category
CategoryName string The name of the charity's category
CharityName string The name of the charity
ShortDescription string A short description of the charity
LogoURL string (if available) is a URL to an image containing the charity Logo.
URL string is the URL of the Charity's home page.
City string The city where the charity is based or registered.
State string The state where the charity is based or registered.
Country string The country where the charity is based or registered.
If this value is null or empty, the charity is most likely a USA based charity.
IsLocal bool True if the charity is a local charity.
Rank int The Rank of the charity. The most popular charities are ranked 1 and other top charities are ranked 2.
Rank will be 0 if the charity is not in the top 100.

Get Category List

Gets a list of the CharityChoice Charity Categories.

Method: GET

/charity/cats/list

Sample Response:

[
    {
        "CategoryId": "1",
        "CategoryName": "Animals"
    },
    {
        "CategoryId": "2",
        "CategoryName": "Children & Youth"
    },
    {
        "CategoryId": "4",
        "CategoryName": "Cultural & Education"
    },
    {
        "CategoryId": "3",
        "CategoryName": "Disabilities"
    },
    {
        "CategoryId": "5",
        "CategoryName": "Disaster Relief"
    },
    {
        "CategoryId": "13",
        "CategoryName": "Elderly"
    },
    {
        "CategoryId": "6",
        "CategoryName": "Environment"
    },
    {
        "CategoryId": "22",
        "CategoryName": "Global – Locale Based"
    },
    {
        "CategoryId": "7",
        "CategoryName": "Health & Disease"
    },
    {
        "CategoryId": "16",
        "CategoryName": "Homeless"
    },
    {
        "CategoryId": "8",
        "CategoryName": "Hunger & Poverty"
    },
    {
        "CategoryId": "1009",
        "CategoryName": "Inclusion"
    },
    {
        "CategoryId": "9",
        "CategoryName": "International"
    },
    {
        "CategoryId": "17",
        "CategoryName": "Military Charities"
    },
    {
        "CategoryId": "1008",
        "CategoryName": "Racial Equality"
    },
    {
        "CategoryId": "15",
        "CategoryName": "Service & Benevolence Clubs"
    },
    {
        "CategoryId": "25",
        "CategoryName": "Women's Issues"
    }
]

Response Fields

Field Type Description
CategoryId int The Id of the charity category
CategoryName string The name of the charity category

Charity Donation

Donate to one or more charities.

Method: POST

/donate

Sample Request JSON Data:

{  
    "Amount" :50.00,
    "CharityIds" :[88],
    "DonorInformation": { 
        "DonorFirstName" :"John",
        "DonorLastName" :"Smith",
        "DonorEmail" :"[EMAIL_ADDRESS]",
        "DonorPhone" :"1234567890",
        "DonorMailingAddress" :"123 Main St, Anytown, USA 12345" 
    }
}

Request Parameters

Field Type Required Description
Amount float Yes The total amount for this Charity donation. This amount can be any number (including floating point numbers) between 1 and 10,000.
This amount will be split equally among the charities listed in the CharityIds array.
CharityIds [int] Yes An array of charity ids to donate to. Can contain up to three charity ids.
To obtain a list of charity ids, use the Get Charity List method or search charities using the Charity Search method.
The donation amount will be split equally among the listed charities.
DonorInformation object No If it is not supplied, your CharityChoice account is set as the donor. If supplied, the supplied donor will be shown in your CharityChoice account as the "Redeemer" for this donation. Within the DonorInformation, only the DonorEmail cannot be left blank.
DonorFirstName string Yes
DonorLastName string Yes
DonorEmail string Yes cannot be left blank.
DonorPhone string Yes
DonorMailingAddress string Yes

Response Status Codes:

Sample Response:

{
    "Amount": 50,
    "CharityIds": [88],
    "OrderId": 173196,
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the donation was successful.
Amount float The amount of the donation.
OrderId int If the donation was successful, the OrderId is returned here.
ErrorMessage string If the donation failed, an error message is returned here.

Order Status

Returns a list of codes in this order with their redemption status.

Method: GET

/donate/{orderId}

Request Parameters:

Parameter Type Required Description
orderId int Yes The order id to look for.
The orderId is returned from Activate Codes, Charity Donation and Donate Retailer Gift Card API requests. You can also find the orderId on your account page on the CharityChoice site.

Response Status Codes:

Sample Response:

{
    "Codes": [
        {
            "Code": "DTCD112434",
            "WasRedeemed": true,
            "RedeemDate": "2026-05-08T10:13:35.847"
        }
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the request was completed successfully.
Codes array An array of codes in this order.
Code string The redemption code
WasRedeemed bool Indicates whether the code has been redeemed
RedeemDate datetime The date the code was redeemed
ErrorMessage string If the request failed, an error message is returned here.

Gift Card Retailers List

Gets a list of Card Retailers.

Method: GET

/dyc/retailer/list

Sample Response:

[
    {
        "RetailerId": 1148,
        "AcceptsEcode": true,
        "Name": "1 800 Flowers.com",
        "IsCreditCard": false,
        "ECodePercent": 67.5,
        "PhysicalPercent": 72.5,
        "Minimum": 10,
        "Maximum": 500,
        "ValidationRules": [
            {
                "CardNumberLength": 19,
                "PinLength": 4
            }
        ]
    },
    {
        "RetailerId": 4563,
        "AcceptsEcode": true,
        "Name": "1-800 Baskets.com",
        "IsCreditCard": false,
        "ECodePercent": 67.5,
        "PhysicalPercent": 72.5,
        "Minimum": 10,
        "Maximum": 500,
        "ValidationRules": [
            {
                "CardNumberLength": 19,
                "PinLength": 4
            }
        ]
    },
    ...
]

Response Fields

Field Type Description
RetailerId int The retailer id
AcceptsEcode bool Indicates whether the retailer accepts electronic gift cards
Name string The retailer name
IsCreditCard bool Indicates whether the retailer gift cards are credit card
ECodePercent float The percentage of the face value that is donatable for electronic gift cards.
PhysicalPercent float The percentage of the face value that is donatable for physical gift cards.
Minimum float The minimum amount that can be loaded onto a card
Maximum float The maximum amount that can be loaded onto a card
ValidationRules array An array of validation rules for the card number and pin
CardNumberLength int The length of the card number
PinLength int The length of the pin

Gift Card Retailer Information

Gets the information for a single gift card retailer.

Method: GET

/dyc/retailer/{retailerId}

Request Parameters:

Name Type Description
retailerId int The retailer id for which to get the information.
You can get the full list of available retailers by calling Gift Card Retailers List

Response Status Codes:

Sample Response:

{
    "Succeeded": true,
    "RetailerInfo": {
        "RetailerId": 1148,
        "AcceptsEcode": true,
        "Name": "1 800 Flowers.com",
        "IsCreditCard": false,
        "ECodePercent": 67.5,
        "PhysicalPercent": 72.5,
        "Minimum": 10,
        "Maximum": 500,
        "ValidationRules": [
            {
                "CardNumberLength": 19,
                "PinLength": 4
            }
        ]
    },
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the request was successful
RetailerInfo object The retailer information
RetailerId int The retailer id
AcceptsEcode bool Indicates whether the retailer accepts electronic gift cards
Name string The retailer name
IsCreditCard bool Indicates whether the retailer gift cards are credit card
ECodePercent float The percentage of the face value that is donatable for electronic gift cards.
PhysicalPercent float The percentage of the face value that is donatable for physical gift cards.
Minimum float The minimum amount that can be loaded onto a card
Maximum float The maximum amount that can be loaded onto a card
ValidationRules array An array of validation rules for the card number and pin
CardNumberLength int The length of the card number
PinLength int The length of the pin
ErrorMessage string If the request failed, an error message is returned here.

Donate Retailer Gift Card

Donate a retailer gift card to charity.

Method: POST

/dyc/donate

Sample Request JSON Data:

{
    "RetailerId" : 12345,
    "CardNumber" : "1234567890123456",
    "PIN" : "1234",
    "CVV" : "123",
    "ExpireDate" : "12/2025",
    "Balance" : 100.00,
    "CharityIds":  [88, 89],
    "ContactInfo" :
    {
        "FirstName" : "John",
        "LastName" : "Doe",
        "Email" : "[EMAIL_ADDRESS]",
        "CompanyName" : "Doe Family Foundation",
        "Phone" : "(555) 555-5555",
        "Address" : "123 Main St",
        "AddressLine2" : "Apt 123",
        "City" : "New York",
        "State" : "NY",
        "Zip" : "10001",
        "Country" : "USA",
        "ShareWithCharities" : true
    }
}

Request Parameters

Field Type Required Description
RetailerId int Yes Needs to be a valid CharityChoice Gift card retailer Id. You can access the list of Retailers by calling Gift Card Retailers List.
CardNumber string Yes The card number.
The format of the card number is dependent on the retailer. See the Gift Card Retailers List.
PIN string Dependent on retailer Whether or not a PIN is needed is dependent on the retailer. See the Gift Card Retailers List.
CVV string Dependent on retailer This and the ExpireDate are only needed for Credit Card Retailer cards. For all other cards, set the values to null.
ExpireDate string Dependent on retailer This and CVV are only needed for Credit Card Retailer cards. For all other cards, set the values to null.
Balance float Yes Put whatever you believe to be the remaining balance into the Balance field.
When the card is verified, an email will be sent out with the final balance that was found on the card at the time of verification.
CharityIds array Yes An array of charity ids.
Up to three charities are allowed. The final Balance will be evenly divided among the charities.
To get a list of valid charity ids, use the Charities List or search for charities using the Charities Search api calls.
ContactInfo object Yes An object containing the contact information for the donor. All fields are required.
FirstName string Yes The first name of the donor
LastName string Yes The last name of the donor
Email string Yes The email address of the donor
CompanyName string Yes The name of the company the donor is representing. Set this to null if the donor is an individual.
Phone string Yes The phone number of the donor. You may set this to null if not supplying a phone number.
Address string Yes The street address of the donor. You may set this to null if not supplying an address.
AddressLine2 string Yes If needed, the donor's street address line 2. Set this to null if not applicable.
City string Yes The city of the donor. Set this to null if not supplying a city.
State string Yes The state of the donor. Set this to null if not applicable.
Zip string Yes The zip code of the donor. You may set this to null if not supplying a zip code.
Country string Yes The country of the donor. You may set this to null if not supplying a country.
ShareWithCharities bool Yes Set to true if the donor wishes to share the gift card with the charities. Set to false or null if the donor does not wish to share the gift card with the charities.

Response Status Codes:

Sample Response:

{
    "OrderId": 973198,
    "DonorId": 115832,
    "CardId": 22518952,
    "GetStatusUrl": "https://www.charitygiftcertificates.org/api/dyc/115832/22518952",
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates if the request was completed successfully.
OrderId int The order id.
DonorId int The donor id. You will need this to check the status of the card using the Get Gift Card Status API call.
CardId int The card id. You will need this to check the status of the card using the Get Gift Card Status API call.
GetStatusUrl string The url for the Get Gift Card Status api call that can be used to get the status of this donation. It is built using the DonorId and CardId.
ErrorMessage string Error message if the request failed.

Response Notes:

Special Note:

Even after the API request has completed successfully, the balance on the Retail Gift Card has not yet been verified.

The user that was specified in the ContactInfo section of the request, will receive one email immediately, confirming the details that were supplied to us in the API request for this card donation.

Usually within 48 hours, the user will receive an additional email containing the tax receipt and card balance confirmation. The card balance will also become zero at this time.

It is important to inform the user that occasionally, tax acknowledgments are delayed by several business days, due to technical issues sometimes encountered during the verification processes of some of the Gift Card Retailers.

You can always check the current status of the card with a Get Gift Card Status call.


Get Gift Card Status

Get the current status and basic information of a previously donated Retailer Gift Card.

Method: GET

/dyc/{donorId}/{cardId}

Request Parameters:

Required Name Type Description
Yes donorId int The DonorId returned by the Donate Retailer Gift Card call.
Yes cardId int The CardId returned by the Donate Retailer Gift Card call.

Response Status Codes:

Sample Response:

{
    "CardId": 98952,
    "DateDonated": "2026-05-08T17:19:14.593",
    "RetailerId": 1148,
    "CardNumber": "1234567890123456999",
    "PIN": "1234",
    "CVV": null,
    "ExpireDate": null,
    "Balance": 100,
    "IsVerified": false,
    "CharityIds": [
        88,
        89
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates if the request was completed successfully.
DateDonated datetime The date and time that the card was donated.
RetailerId int The retailer identifier.
CardNumber string The card number.
PIN string The card PIN.
CVV string The card CVV.
ExpireDate datetime The expiration date of the card.
Balance float The current balance of the card.
IsVerified boolean Indicates if the card balance has been verified.
ErrorMessage string Error message if the request failed.

Special Note:

Even after the initial Donate Retailer Gift Card API request has completed successfully, the balance on the Retail Gift Card has not yet been verified.

The user that was specified in the ContactInfo section of the request, will receive one email immediately, confirming the details that were supplied to us in the API request for this card donation.

Usually within 48 hours, the user will receive an additional email containing the tax receipt and card balance confirmation. The card balance will also become zero at this time.

It is important to inform the user that occasionally, tax acknowledgments are delayed by several business days, due to technical issues sometimes encountered during the verification processes of some of the Gift Card Retailers.


Activate Codes

Acquire active CharityChoice redemption codes. Creates an order in your account.

Method: POST

/codes/activate

Example Request JSON Data:

{
    "Denomination": 100,
    "NumberOfCodes": 10,
    "HideDenomination": false,
    "CharityIds": []
}

Request Parameters

Field Type Required Description
Denomination float Yes The denomination of the code. This can be any number (including floating point numbers) between 0 and 5000.
NumberOfCodes int Yes The number of codes to activate.
HideDenomination bool No Optional - defaults to false.
If true, the user will not be shown the denomination of the code during redemption when redeeming the code on the CharityChoice site.
CharityIds [int] No Optional.
If the optional CharityIds field is supplied, in addition to the newly activated list of codes which is returned in the response, for each CharityId supplied in the CharityIds field, a special redeem code will be returned for each code, that when redeemed, the code will be redeemed specifically for that charity.
You can get a list of valid CharityChoice Charity Ids by calling the Get Charity List API method.

Response Status Codes:

Sample Response Data:    Where the optional CharityIds field was NOT provided in the request

{
    "OrderId": 9773200,
    "Codes": [
        "EPT129428",
        "EPT129436"
    ],
    "RedeemURLs": [
        {
            "RedeemCode": "EPT129428",
            "RedeemURL": "https://localhost/Redeem/?RC=EPT129428",
            "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129428"
        },
        {
            "RedeemCode": "EPT129436",
            "RedeemURL": "https://localhost/Redeem/?RC=EPT129436",
            "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129436"
        }
    ],
    "DonationQCCode": "QC2572030",
    "DonationQCCodeRedeemUrl": {
        "RedeemCode": "QC2572030",
        "RedeemURL": "https://localhost/Redeem/?RC=QC2572030",
        "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=QC2572030"
    },
    "CharitySpecificCodes": [],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the request was successful.
OrderId int The ID of the order.
Codes [string] The redeem codes that are used by the end user to redeem the code to the Charity of their choice.
RedeemURLs [object] This field contains an array of objects - one for each Redemption Code in your Codes list. Each object in the array contains the following properties:
  • RedeemCode - string the redeem code
  • RedeemURL - string a unique URL to the redemption page on the CharityChoice site with this redemption code automatically filled in for the user. If you have created a custom redemption page on CharityChoice, the user will be directed to your custom page with this code prefilled. You can also use the Redeem a Code API endpoint to redeem your codes on your own site or application.
  • QRCodeImageURL - string A unique URL that returns a jpeg image of a QR Code that points to the unique RedeemURL for redeeming this code.
    The QRCodeImageURL is formed something like this:
    https://www.charitygiftcertificates.org/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=YOURCODE123456.
    Note that you can change the value of the "size" query-string variable to set the size of the returned QR code image. Size=20 is about 400 pixels in width.
DonationQCCode string This field is a special redemption code for the entire order that can be used to redeem any code in your list. When using this code during redemption, the first un-redeemed code in your list will be redeemed. This will save you the need to give each recipient their own unique redeem code, allowing the printing and distributing of a single code, or URL, or QR Code, for all the codes in your order.
DonationQCCodeRedeemUrl object This field contains the unique redeem URL and its QR code for the DonationQCCode for this order.
When using this DonationQCCode during redemption, the first un-redeemed Code from the Codes list in this order will be redeemed.
This will save you the need to give each recipient their own unique redeem code, allowing the printing and distributing of a single code, or URL, or QR Code, for all the codes in your order.
  • RedeemCode - string the DonationQCCode code for this order.
  • RedeemURL - string a unique URL to the redemption page on the CharityChoice site, with the DonationQCCode for this order automatically filled in for the user.
    If you have created a custom redemption page on CharityChoice, the user will be directed to your custom page with this code prefilled.
    You can also use the Redeem a Code API endpoint to redeem your codes on your own site or application.
  • QRCodeImageURL - string A unique URL that returns a jpeg image of a QR Code that points to the unique DonationQCCode for this order.
    The QRCodeImageURL is formed something like this:
    https://www.charitygiftcertificates.org/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=YOURCODE123456.
    Note that you can change the value of the "size" query-string variable to set the size of the returned QR code image. Size=20 is about 400 pixels in width.
CharitySpecificCodes [object] This field contains an array of objects - one for each requested Charity referenced by the CharityIds field of the request.
Each one of these objects will contains a list of special redemption codes that when redeemed will redeem directly to that Charity.
Each one of the objects in CharitySpecificCodes contains the following for each charity that was referenced by the CharityIds field of the request.
  • CharityId - int The ID of the charity in the CharityChoice database.
  • Codes - [object] An array of redemption codes - one for each Code in your Codes list.
  • RedeemURLs - [object] The redemption URLs for the charity. See object properties in the RedeemURLs object.
    • RedeemCode - string The redeem code for the charity.
    • RedeemURL - string The redemption URL for the charity.
    • QRCodeImageURL - string The QR code image URL for the charity.
  • DonationQCCode - string This field is a special redemption code for the entire order that can be used to redeem any code in your list. When using this code during redemption, the first un-redeemed code in your list will be redeemed. This will save you the need to give each recipient their own unique redeem code, allowing the printing and distributing of a single code, or URL, or QR Code, for all the codes in your order.
  • DonationQCCodeRedeemUrl - [object] The donation redemption url for the entire order. See object properties in the DonationQCCodeRedeemUrl object.
    • RedeemCode - string The redeem code for the entire order.
    • RedeemURL - string The redemption URL for the entire order.
    • QRCodeImageURL - string The QR code image URL for the entire order.
ErrorMessage string Will be populated with an error message if the request was not successful. If the request was successful, this field will be null.

Sample Request:      Where the optional CharityIds field was provided in the request

{
  "Denomination" : 5, 
  "NumberOfCodes" : 2,
  "HideDenomination" : false, 
  "CharityIds" : [88, 89]
}

Sample Response:    Where the optional CharityIds field was provided in the request

{
    "OrderId": 9773200,
    "Codes": [
        "EPT129428",
        "EPT129436"
    ],
    "RedeemURLs": [
        {
            "RedeemCode": "EPT129428",
            "RedeemURL": "https://localhost/Redeem/?RC=EPT129428",
            "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129428"
        },
        {
            "RedeemCode": "EPT129436",
            "RedeemURL": "https://localhost/Redeem/?RC=EPT129436",
            "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129436"
        }
    ],
    "DonationQCCode": "QC2572030",
    "DonationQCCodeRedeemUrl": {
        "RedeemCode": "QC2572030",
        "RedeemURL": "https://localhost/Redeem/?RC=QC2572030",
        "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=QC2572030"
    },
    "CharitySpecificCodes": [
        {
            "CharityId": 88,
            "Codes": [
                "EPT129428C88",
                "EPT129436C88"
            ],
            "RedeemURLs": [
                {
                    "RedeemCode": "EPT129428C88",
                    "RedeemURL": "https://localhost/Redeem/?RC=EPT129428C88",
                    "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129428C88"
                },
                {
                    "RedeemCode": "EPT129436C88",
                    "RedeemURL": "https://localhost/Redeem/?RC=EPT129436C88",
                    "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129436C88"
                }
            ],
            "DonationQCCode": "QC2572030C88",
            "DonationQCCodeRedeemUrl": {
                "RedeemCode": "QC2572030C88",
                "RedeemURL": "https://localhost/Redeem/?RC=QC2572030C88",
                "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=QC2572030C88"
            }
        },
        {
            "CharityId": 89,
            "Codes": [
                "EPT129428C89",
                "EPT129436C87"
            ],
            "RedeemURLs": [
                {
                    "RedeemCode": "EPT129428C89",
                    "RedeemURL": "https://localhost/Redeem/?RC=EPT129428C89",
                    "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129428C89"
                },
                {
                    "RedeemCode": "EPT129436C87",
                    "RedeemURL": "https://localhost/Redeem/?RC=EPT129436C89",
                    "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=EPT129436C89"
                }
            ],
            "DonationQCCode": "QC2572030C87",
            "DonationQCCodeRedeemUrl": {
                "RedeemCode": "QC2572030C87",
                "RedeemURL": "https://localhost/Redeem/?RC=QC2572030C87",
                "QRCodeImageURL": "https://localhost/HTTPHandlers/UrlQRCode.ashx?size=3&URL=/Redeem/&RC=QC2572030C87"
            }
        }
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Activate Supplied Codes

Activates the codes in the supplied list of codes for redemption of the given amount.
Creates an order in your account.

NOTE: You can generate and reserve a list of valid redemption codes with Generate and Reserve Redemption Codes.

Method: POST

/codes/activateCodes

Sample Request JSON Data:

{
  "Denomination" :100,
  "Codes" :["RFNS39988", "RFNS39996"]
}

Request Parameters

Field Type Required Description
Denomination float Yes The dollar value of each code being activated.
The Denomination can be any number (including cents) between $0.01 and $5,000.00.
Codes [string] Yes Array of redemptions codes to be activated.
Each code in the list needs to match the following Regular Expression:
^[a-zA-Z]{4,}[0-9]{4,}$
  • The code must start with 4 or more alphabetical characters.
  • ...followed by 4 or more numbers.

NOTE: redemption codes are not case sensitive.

Response Status Codes:

Response Data:

{
    "OrderId": 983201,
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Whether or not the request was successful
OrderId int The Order ID for the new order
ErrorMessage string If an error occurred, this will contain the error message

De-activate Codes

De-activate one or more redemption codes.

You can only de-activate codes that are in your account.

Method: DELETE

/codes/remove/codes

Parameters

Name Type Description
codes string A comma-separated list of codes to be de-activated. No spaces allowed.
The regular expression used to test for a valid codes parameter value is: ^([a-zA-Z]*\d+,?)+$

Response Status Codes:

Sample Response Data:

{
  "Succeeded" :true,
  "ErrorMessage" :null
}

Response Fields

Field Type Description
Succeeded bool Indicates if the request was successful.
If there was an issue during de-activation, this value will be false, and the ErrorMessage field will contain information for each failed removal.
ErrorMessage string Contains information for each failed removal.
If there were no issues, this value will be null.

Response Notes:


Send Digital Cards

Send one or more redeemable Digital Cards.

Cards can be delivered to the recipient either by email or sms.

The sent cards can be customized using the Greeting, Message and CardId or CustomImageURL fields.

For cards that are sent by email, there is an option to set the date and time when the email should go out.
NOTE: This option is not currently available for cards sent by sms, and even if the SendDate is set, the cards will go out immediately.

Method: POST

/digital/send

Request:

{
    "Denomination":5, 
    "Greeting":"Test Greeting",
    "Message":"Test Message",
    "CardId":264,
    "CardColor":"Soft_White",
    "CustomImageURL":null,
    "SendDate":null,
    "DonorName":null,
    "DonorEmail":null,
    "Recipients":[{
        "FirstName":"John",
        "LastName":"Smith",
        "Email":"test@test.com" },
      { "FirstName":"Larry",
        "LastName":"Smith",
        "Email":"test2@test.com"}]
}

Request Parameters

Field Type Required Description
Denomination float Yes The value of the card. The maximum value of a card is $5,000.00. This is the amount that the recipient will be able to redeem to the charity of their choice.
Greeting string Yes This field is shown in emphasized text above the digital card image. (HTML is not allowed.)
Message string Yes This field is shown in regular text below the digital card image. (HTML is not allowed.)
CardId int Yes. Can be skipped if CustomImageURL is supplied. This is the ID for one of the CharityChoice digital card images.
You can use any one of our many card images or use your own image.
You can get a list of CharityChoice cards with their images, by doing a call to Get Digital Cards List.
To use your own image, use the CustomImageURL field.
CustomImageURL string Only required if CardId is not supplied. (Optional) Allows you to use your own image in the ecard.
The URL should be a valid and accessible URL to an image.
Please use a secure URL. (https).
The recommended image size is 792 pixels by 460 pixels.
Do not use large images as the ecard may then take a while to open.
SendDate Date No (optional) When the email should go out.
If this is not supplied or is set to null, the email will go out immediately.
NOTE: This option is not currently available for cards sent by sms, and even if SendDate is set, the cards will go out immediately.
DonorName string No (optional) If you wish to customize the name shown on the ecard as the ecard sender.
The default is the name registered for the account whose credential were supplied for this api call.
DonorEmail string No (optional) If you wish to customize the email address shown as the ecard sender.
The default is the email registered for the account whose credential were supplied for this api call.
Recipients [object] Yes The list of recipients to receive a card. Each recipient in the list will receive their own unique redemption code, and be able to redeem the full amount indicated in the Denomination field.
Each recipient object should have the following fields:
  • FirstName: The first name of the recipient.
    Either this field or the LastName field is required.
  • LastName: The last name of the recipient.
    Either this field or the FirstName field is required.
  • Email: The email address of the recipient.
    This will send your Digital Card by email to the recipient.
    You need to supply either this field or the Cel field.
  • Cel: The cell phone number of the recipient.
    This will send your Digital Card by SMS to the recipient.
    You need to supply either this field or the Email field.

Response Status Codes:

Sample Successful Response Data:

{
    "Cards": [
        {
            "FirstName": "John",
            "LastName": "Smith",
            "Email": "test@test.com",
            "Cel": null,
            "RedemptionCode": "E1029769",
            "Notes": null,
            "IsValid": true,
            "RedeemURL": "https://localhost/Redeem/?RC=E1029769"
        },
        {
            "FirstName": "Larry",
            "LastName": "Smith",
            "Email": "test2@test.com",
            "Cel": null,
            "RedemptionCode": "E1029770",
            "Notes": null,
            "IsValid": true,
            "RedeemURL": "https://localhost/Redeem/?RC=E1029770"
        }
    ],
    "OrderId": 973206,
    "InvalidCards": [],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool If the transaction was successful, this will be true. The Cards field will contain the Redemption Code and unique Redeem URL for each sent card.
ErrorMessage string If the transaction was not successful, this will contain the error message.
OrderId int The order id for the transaction.
Cards [object] If the transaction was successful, this will contain the Redemption Code and unique Redeem URL for each sent card. Otherwise it will be empty.
RedemptionCode string For each card, this will contain the redemption code for that card.
RedeemURL string For each card, this will contain the unique Redeem URL for that card.
IsValid Boolean For each invalid recipient in the request list, this will indicate that the card is invalid.
The Notes field will indicate why the recipient information was invalid.
Notes string If this is an invalid card due to invalid recipient information, this will contain an explanation of why it was considered invalid.

Response Notes:

In that case, the ErrorMessage will contain general information explaining which request field is missing or invalid.

If the problem was with one of the recipients in the request Recipients list, then for that recipient's entry in the response's Cards list, the IsValid field will be false and the Notes field will contain a detailed explanation.


Order Physical Cards

Order any number of Physical Charity Gift Cards and have them shipped to you or directly to the final recipient.

The cards denomination appears on the actual gift card. The CharityChoice Ribbon and Season cards have the amount on the front bottom left corner; while the Flower and Birthday cards have the amount on the back of the card.

Orders are shipped on the same business day for orders made before noon Eastern Time; otherwise on next business day.

Only one shipping charge for your entire order, when sent to the same address. You are not charged shipping for each card.

For cards that are sent directly to the final recipient, a customizable packing slip is included. The packing slip is styled to match the style of card being shipped. You can see what the slip looks like at: https://www.charitygiftcertificates.org/images/stationary.jpg

Method: POST

/physical

Sample Request JSON Data:

{
    "Cards": [
        {
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "NumberOfCards":5
        },
        {
            "Denomination": 100,
            "PhysicalCardTypeId": 3,
            "NumberOfCards":3
        }
    ],
    "ShippingInfo": {
        "ShippingTypeId": 1,
        "FirstName": "sample string 2",
        "LastName": "sample string 3",
        "Attention": "sample string 4",
        "AddressLine1": "sample string 5",
        "AddressLine2": "sample string 6",
        "City": "sample string 7",
        "State": "sample string 8",
        "Zip": "sample string 9",
        "Email": "sample string 10",
        "Phone": "sample string 11",
        "Greeting": "sample string 12",
        "Message": "sample string 13"
    },
    "ShipsToRecipient": false
}

Request Parameters

Field Type Description
Cards [object] This is an array of cards containing the list of how many from each card type and denomination being ordered.
You can have a multiple card types and/or denominations shipped to the same address.
Note that even in this case, you are only charged for a single shipping.
Cards/Denomination int The redeemable dollar value of these cards.
The cards denomination appears on the actual gift card.
The denominations that are available for each card type and the number of cards that are currently available in stock, can be obtained by a call to Get Physical Card Types.
Cards/PhysicalCardTypeId int The type of card being ordered.
A list of all the available card types, information about them (including a link to preview what the card looks like), their PhysicalCardTypeId's, which denominations are available for each card type, and the number of cards that are currently available in stock, can be obtained by a call to Get Physical Card Types.
Cards/NumberOfCards int The number of cards of this type to order.
ShippingInfo object All the cards in this order will be shipped to the shipping information supplied in this field.
ShippingInfo/ShippingTypeId int This field sets the shipping carrier and type.
To acquire a list of shipping types with their ShippingTypeId's, price and full details, do a call to Get Shipping Types.
Important note:
Some of the shipping types are only available between certain dates.
For example, during holiday season, there are special discounted rates and for a few days even free shipping.
It is therefore important to do the call to Get Shipping Types to determine which shipping types are available today.
ShippingInfo/State string The 2-character state abbreviation.
ShippingInfo/Greeting string (optional) For cards where ShipsToRecipient is set to true, the Greeting is printed on the included packing slip.
ShippingInfo/Message string (optional) For cards where ShipsToRecipient is set to true, the Message is printed on the included packing slip.
ShipsToRecipient bool (optional, default is false). Set this to true only if this order is being shipped to the final recipient.
When set to true, a packing slip will be shipped together with the cards.
In this case, the ShippingInfo/Greeting and ShippingInfo/Message should be supplied to customize the text on the packing slip.

Response Status Codes:

Sample Response Data:

{
    "OrderId": 673207,
    "TotalForCards": 425,
    "TotalForShipping": 4.95,
    "TotalCost": 429.95,
    "Cards": [
        {
            "RedemptionCode": "CC81843",
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "RedeemURL": "https://localhost/Redeem/?RC=CC81843"
        },
        {
            "RedemptionCode": "CC81858",
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "RedeemURL": "https://localhost/Redeem/?RC=CC81858"
        },
        {
            "RedemptionCode": "CC81868",
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "RedeemURL": "https://localhost/Redeem/?RC=CC81868"
        },
        {
            "RedemptionCode": "CC81874",
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "RedeemURL": "https://localhost/Redeem/?RC=CC81874"
        },
        {
            "RedemptionCode": "CC81882",
            "Denomination": 25,
            "PhysicalCardTypeId": 2,
            "RedeemURL": "https://localhost/Redeem/?RC=CC81882"
        },
        {
            "RedemptionCode": "ECS11035",
            "Denomination": 100,
            "PhysicalCardTypeId": 3,
            "RedeemURL": "https://localhost/Redeem/?RC=ECS11035"
        },
        {
            "RedemptionCode": "ECS11039",
            "Denomination": 100,
            "PhysicalCardTypeId": 3,
            "RedeemURL": "https://localhost/Redeem/?RC=ECS11039"
        },
        {
            "RedemptionCode": "ECS11038",
            "Denomination": 100,
            "PhysicalCardTypeId": 3,
            "RedeemURL": "https://localhost/Redeem/?RC=ECS11038"
        }
    ],
    "ShippingInfo": {
        "ShippingTypeId": 1,
        "FirstName": "sample string 2",
        "LastName": "sample string 3",
        "Attention": "sample string 4",
        "AddressLine1": "sample string 5",
        "AddressLine2": "sample string 6",
        "City": "sample string 7",
        "State": "sample string 8",
        "Zip": "sample string 9",
        "Email": "sample string 10",
        "Phone": "sample string 11",
        "Greeting": "sample string 12",
        "Message": "sample string 13"
    },
    "ShipsToRecipient": false,
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool If the order was completed successfully, the returned status will be 201 and Succeeded will be true. Otherwise, the status will be 400 and Succeeded will be false.
ErrorMessage string If the order was not completed successfully, the ErrorMessage will contain general information explaining which request field is missing or invalid.
OrderId int If the order was completed successfully, this field will contain the Order Id for this transaction.
TotalForCards float This field contains the total charge for just the cards themselves without the shipping cost.
Note: the cards only cost their denomination (face value), which is the same amount that will be available to the recipient for redemption to charity.
TotalForShipping float This field contains the total cost for shipping for the entire order.
The cards are shipped together, and there will only be a single shipping charge for the entire order.
TotalCost float This field simply contains the sum of the TotalForCards and TotalForShipping.
Cards [object] A list of cards that were created for this order.
Cards/RedemptionCode string The redemption code for the card.
Cards/Denomination int The face value of the card, in cents.
Cards/PhysicalCardTypeId int The physical card type id for the card.
Cards/RedeemURL string The unique URL for this card where it can be redeemed for charity.
ShippingInfo object The shipping information for the order.
ShippingInfo/ShippingTypeId int The shipping type id for the order.
ShippingInfo/FirstName string The first name of the recipient.
ShippingInfo/LastName string The last name of the recipient.
ShippingInfo/Attention string The attention line for the recipient.
ShippingInfo/AddressLine1 string The first line of the recipient's address.
ShippingInfo/AddressLine2 string The second line of the recipient's address.
ShippingInfo/City string The city of the recipient's address.
ShippingInfo/State string The state of the recipient's address.
ShippingInfo/Zip string The zip code of the recipient's address.
ShippingInfo/Email string The email address of the recipient.
ShippingInfo/Phone string The phone number of the recipient.
ShippingInfo/Greeting string The greeting message for the recipient.
ShippingInfo/Message string The message for the recipient.
ShipsToRecipient bool Flag indicating whether the cards are being sent directly to the recipient, or to the person making the purchase.

Response Notes:

In that case, the ErrorMessage will contain general information explaining which request field is missing or invalid.


Get Physical Card Types

Gets a list of Physical Card Types with which denominations are available and how much is available in stock.

Method: GET

/physical/cardTypes

Sample Response Data:

{
    "Succeeded": true,
    "List": [
        {
            "PhysicalCardTypeId": 2,
            "CardTypeName": "CharityChoice Ribbon Card",
            "Description": "Glossy Stock Gift Card",
            "ImageUrl": "https://www.charitygiftcertificates.org/images/CharityChoicePrepaidCard.gif",
            "Denominations": [
                {
                    "Denomination": 10,
                    "Stock": 5954
                },
                {
                    "Denomination": 25,
                    "Stock": 5593
                },
                {
                    "Denomination": 50,
                    "Stock": 2900
                },
                {
                    "Denomination": 100,
                    "Stock": 4548
                }
            ]
        },
        {
            "PhysicalCardTypeId": 3,
            "CardTypeName": "CharityChoice Season Card",
            "Description": "Glossy Stock Gift Card",
            "ImageUrl": "https://www.charitygiftcertificates.org/images/CharityChoiceSeasonPrepaidCard.gif",
            "Denominations": [
                {
                    "Denomination": 10,
                    "Stock": 12975
                },
                {
                    "Denomination": 25,
                    "Stock": 5521
                },
                {
                    "Denomination": 50,
                    "Stock": 13754
                },
                {
                    "Denomination": 100,
                    "Stock": 6875
                }
            ]
        },
        ...
    ],
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Flag indicating whether the request was successful.
List [object] An array of physical card types.
List/PhysicalCardTypeId int The unique identifier for the physical card type.
List/CardTypeName string The name of the physical card type.
List/Description string The description of the physical card type.
List/ImageUrl string The URL of the image for the physical card type.
List/Denominations [object] An array of available denominations for the physical card type.
List/Denominations/Denomination int The available denomination of the physical card type.
List/Denominations/Stock int The number of cards currently in stock for this denomination and card type.

Get Shipping Types

Gets a list of Shipping Types for physical cards orders.

Includes pricing information.

Method: GET

/physical/shippingTypes

Sample Response Data:

{
    "Succeeded": true,
    "List": [
        {
            "ShippingTypeId": 1,
            "ShippingCompanyName": "USPS - United States Postal Service",
            "FullDisplayText": "First Class  (no tracking)  - $4.95",
            "IsExpeditedShipping": false,
            "BaseShippingCost": 4.95,
            "ExpeditedShippingCost": 0
        },
        {
            "ShippingTypeId": 2,
            "ShippingCompanyName": "USPS - United States Postal Service",
            "FullDisplayText": "Priority  - $10.95",
            "IsExpeditedShipping": true,
            "BaseShippingCost": 4.95,
            "ExpeditedShippingCost": 6
        },
        {
            "ShippingTypeId": 3,
            "ShippingCompanyName": "USPS - United States Postal Service",
            "FullDisplayText": "Express  (Next Day or 2nd Day delivery from shipping date)  - $22.95",
            "IsExpeditedShipping": true,
            "BaseShippingCost": 4.95,
            "ExpeditedShippingCost": 18
        },
        {
            "ShippingTypeId": 5,
            "ShippingCompanyName": "FedEx",
            "FullDisplayText": "3 Day Express Saver  - $11.50",
            "IsExpeditedShipping": false,
            "BaseShippingCost": 11.5,
            "ExpeditedShippingCost": 0
        },
        {
            "ShippingTypeId": 4,
            "ShippingCompanyName": "FedEx",
            "FullDisplayText": "Standard Overnight  (Next business day by 3PM)  - $24.95",
            "IsExpeditedShipping": true,
            "BaseShippingCost": 11.5,
            "ExpeditedShippingCost": 13.45
        }
    ],
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Flag indicating whether the request was successful.
List [object] An array of shipping types.
List/ShippingTypeId int The unique identifier for the shipping type.
List/ShippingCompanyName string The name of the shipping company.
List/FullDisplayText string The full text to display for the shipping type.
List/IsExpeditedShipping bool Flag indicating whether the shipping type is expedited.
List/BaseShippingCost float The base shipping cost for the shipping type.
List/ExpeditedShippingCost float The expedited shipping cost for the shipping type.

Response Notes:


Generate and Reserve Redemption Codes

Acquire a list of valid non-active CharityChoice redemption codes.

These codes can be activated afterwards by doing a call to Activate Supplied Codes request.

The generated codes are guaranteed to stay "reserved" for 30 days from the time of generation.

This means, that when activating these codes within 30 days you can safely assume that they will not have been already activated.

After 30 days, you don't have this guarantee and may receive a "Code already active" error when attempting to activate them.

Method: GET

/codes/generateCodes/{prefix}/{numberOfCodes}[/{charityId}]

Request Arguments:

Argument Type Description
prefix string The prefix will constitute the first 4-6 characters of each generated code. It needs to be a string of at least 4 alphabetical characters.
The regular expression ^[a-zA-Z]{4,}$ is used to validate the prefix section of the URL.
This causes that if the prefix format does not match the pattern, the API function will not be called and a 404 resource-not-found error will be returned.
numberOfCodes int The number of codes to generate.
charityId int Optional. If provided, the generated codes will be associated with the specified charity. This means that these generated codes, when they are activated will only be able to be redeemed for this charity.
To acquire a list of active charities for which you can generate codes, do a call to Get Charity List or Search for a Charity.

Sample Response Data

{
    "Codes": [
        "TEST01009",
        "TEST01017"
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Flag indicating whether the request was successful.
Codes [string] An array of reserved redemption codes.
ErrorMessage string The error message, if any.

Response Notes:


Get Code Status

Get the status of the given redemption code.

Only allowed for codes that are in your account (unless you have special permissions).

Method: GET

/codes/status/{redemptionCode}

Request Parameters:

Parameter Type Description
redemptionCode string The redemption code to retrieve the status of. The format should follow the regular expression ^[a-zA-Z]*\d+$.
If the format does not match the regex pattern, then a 404 resource-not-found error will be returned.

Response Status Codes:

Sample Response

{
    "Codes": [
        {
            "Code": "TEST123",
            "Denomination": 25,
            "WasRedeemed": false,
            "AmountLeftToRedeem": 5,
            "CharityIds": [],
            "RedeemDate": null
        }
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Flag indicating whether the request was successful.
Codes [object] An array of objects, one for each requested code.
NOTE: For this way of calling the Get Code Status request (with a single code in the URL), there will always be only one object in this array.
Codes/Code string The redemption code
Codes/Denomination float The original face value of the code.
Codes/WasRedeemed bool Flag indicating whether the code has been redeemed.
Codes/AmountLeftToRedeem float The amount remaining on the code.
Codes/RedeemDate date The date the code was redeemed.
Codes/CharityIds [int] An array of charity IDs that the code was redeemed for. If the code was never redeemed, this will be an empty array.
You can access a list of CharityChoice supported charities - with their CharityIds by doing a call to the List Charities request.
ErrorMessage string The error message, if any.

Response Notes:


Get Multiple Codes Status

Gets the status multiple redemption codes.

Only allowed for codes that are in your account (unless you have special permissions).

Method: POST

/codes/status

Sample JSON Request Data

 {
  "Codes": [
    "TEST1234",
    "TEST456"
  ]
}

Request Parameters:

Parameter Type Description
Codes [string] An array of redemption codes to retrieve the status of. Each code should follow the regular expression ^[a-zA-Z]*\d+$.

Response Status Codes:

Example Response:

{
    "Codes": [
        {
            "Code": "TEST1234",
            "Denomination": 50,
            "WasRedeemed": true,
            "AmountLeftToRedeem": 0,
            "CharityIds": [
                88,
                62
            ],
            "RedeemDate": "2026-05-11T09:19:39.48"
        },
        {
            "Code": "TEST34567",
            "Denomination": 25,
            "WasRedeemed": false,
            "AmountLeftToRedeem": 5,
            "CharityIds": [],
            "RedeemDate": null
        }
    ],
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the request was successful.
Codes [object] An array of objects, one for each requested code.
Codes/Code string The redemption code requested.
Codes/Denomination float The original face value of the code.
Codes/WasRedeemed bool Whether the code has been redeemed.
Codes/AmountLeftToRedeem float The amount remaining on the code.
Codes/RedeemDate date The date the code was redeemed.
Codes/CharityIds [int] An array of charity IDs that the code was redeemed for. If the code was never redeemed, this will be an empty array.
You can access a list of CharityChoice supported charities - with their CharityIds by doing a call to the List Charities request.
ErrorMessage string The error message, if any.

Response Notes:


Void Order

Void a previously made order.

Only allowed for orders that are in your account.

USE WITH CAUTION!

Removes all order information. If any of the codes were redeemed, the redemption information is removed as well.

Method: DELETE

/donate/{orderId}

Request Parameters:

Field Type Description
orderId int The ID of the order to void.
The orderId is returned from any calls to You can also find the orderId on your account page on the CharityChoice site.

Response Status Codes:

Response Data:

{
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool Indicates whether the request was successful.
ErrorMessage string The error message, if any.

Redeem a Code

Redeem a CharityChoice redemption code for one or more charities.

To redeem a code that is not in your account you will need special permissions. Please contact marc@charity-choice.org for details.

Method: POST

/codes/redeem

Example Request JSON Data:

{
    "RedeemCode" : "TEST129776",
    "RedeemerFirstName" : "Test First",
    "RedeemerLastName" : "Last Test",
    "RedeemerEmail" : "test@test.com",
    "Charities": [{
        "CharityId" : 88,
        "CharityProject" : null,
        "Amount" : 0
    }]
}

Request Parameters

Field Type Required Description
RedeemCode string Yes The active CharityChoice redemption code to be redeemed.
RedeemerFirstName string Yes The first name of the person redeeming the code.
RedeemerLastName string Yes The last name of the person redeeming the code.
RedeemerEmail string Yes The email address of the person redeeming the code.
Charities [object] Yes An array of objects with the information about the charity or charities being redeemed.
Up to three charities are allowed.
Each object contains the following properties:
Charities/CharityId int Yes The CharityChoice CharityId of the charity to redeem the code for.
To obtain a list of CharityId's, use the Get Charity List method or search charities using the Charity Search method.
Charities/CharityProject string Yes The Charity Project is the name of a project to redeem the code to.
If you do not want to supply this information, set CharityProject to null.
Charities/Amount float Yes The amount to redeem for this charity.
If Amount is set to zero for all the charities in the list, the funds will be evenly divided among the charities.

Request Notes:

Response Status Codes:

Response Data:

{
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool true if the request was completed successfully.
ErrorMessage string The error message, if any.

Remove Redemption

Remove previous redemption information from a previously redeemed CharityChoice code.

You can only remove redemption information from a previously redeemed CharityChoice code that is in your account.

Method: DELETE

/codes/redeem/{redemptionCode}

Request Parameters:

Field Type Description
redemtionCode string The redemption code to remove.
  • The redemtionCode parameter needs to be a valid and previously redeemed CharityChoice Code.
  • The redemtionCode needs to be in your account.
  • The redemtionCode parameter must match the regular expression pattern ^[a-zA-Z]*\d+$.
    If the redemtionCode in the URL does not match the regular expression pattern, the API function will not be accessed and you will receive a response status code of 400.

Response Status Codes:

Response Data:

{
    "Succeeded": true,
    "ErrorMessage": null
}

Response Fields

Field Type Description
Succeeded bool true if the request was completed successfully.
ErrorMessage string The error message, if any.

Get Order Types

Gets a list of the CharityChoice Order Types.

Method: GET

/donate/ordertypes

Response Data:

[   
    {
        "OrderTypeName": "API Card Activation",
        "OrderTypeId": 5
    },
    {
        "OrderTypeName": "Custom Physical Cards",
        "OrderTypeId": 13
    },
    {
        "OrderTypeName": "Direct To Charity Donation",
        "OrderTypeId": 10
    },
    {
        "OrderTypeName": "eCards",
        "OrderTypeId": 2
    },
    {
        "OrderTypeName": "HonorCards",
        "OrderTypeId": 14
    },
    {
        "OrderTypeName": "Physical Cards",
        "OrderTypeId": 1
    },
    {
        "OrderTypeName": "Print Cards",
        "OrderTypeId": 15
    },
    {
        "OrderTypeName": "Redemption Code Purchase",
        "OrderTypeId": 7
    },
    ... more
]

Response Fields

Field Type Description
OrderTypeName string The name of the order type.
OrderTypeId int The CharityChoice ID of the order type.

Get Digital Cards List

Gets a list of the CharityChoice Digital Cards with their images.

Method: GET

/digital/digitalCardsList

Response Data:

[
    {
        "CardId": 440,
        "CardName": "$10 - Stocking Stuffer",
        "OccasionId": 63,
        "OccasionName": "Stocking Stuffers",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 10,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/440.jpg"
    },
    {
        "CardId": 426,
        "CardName": "$10 - Stocking Stuffer",
        "OccasionId": 14,
        "OccasionName": "Season's Greetings",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 10,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/426.jpg"
    },
    {
        "CardId": 442,
        "CardName": "$2 - Stocking Stuffer",
        "OccasionId": 63,
        "OccasionName": "Stocking Stuffers",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 2,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/442.jpg"
    },
    {
        "CardId": 441,
        "CardName": "$2 - Stocking Stuffer",
        "OccasionId": 14,
        "OccasionName": "Season's Greetings",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 2,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/441.jpg"
    },
    {
        "CardId": 444,
        "CardName": "$5 - Stocking Stuffer",
        "OccasionId": 63,
        "OccasionName": "Stocking Stuffers",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 5,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/444.jpg"
    },
    {
        "CardId": 443,
        "CardName": "$5 - Stocking Stuffer",
        "OccasionId": 14,
        "OccasionName": "Season's Greetings",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 5,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/443.jpg"
    },
    {
        "CardId": 677,
        "CardName": "American Dog 1",
        "OccasionId": 93,
        "OccasionName": "Dogs - Patriotic",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "Show your pride for the USA - American flag with patriotic dogs",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/677.jpg"
    },
    {
        "CardId": 640,
        "CardName": "American Dog 1",
        "OccasionId": 92,
        "OccasionName": "Dogs",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "Show your pride for the USA - American flag with patriotic dogs",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/640.jpg"
    },
    {
        "CardId": 641,
        "CardName": "American Dog 2",
        "OccasionId": 92,
        "OccasionName": "Dogs",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "American flag 'stars and stripes', show patriotism with your loyal canine",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/641.jpg"
    },
    {
        "CardId": 678,
        "CardName": "American Dog 2",
        "OccasionId": 93,
        "OccasionName": "Dogs - Patriotic",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "American flag 'stars and stripes', show patriotism with your loyal canine",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/678.jpg"
    },
    {
        "CardId": 679,
        "CardName": "American Dog 3",
        "OccasionId": 93,
        "OccasionName": "Dogs - Patriotic",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "Show your pride for the USA - American flag with patriotic dogs",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/679.jpg"
    },
    {
        "CardId": 642,
        "CardName": "American Dog 3",
        "OccasionId": 92,
        "OccasionName": "Dogs",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "Show your pride for the USA - American flag with patriotic dogs",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/642.jpg"
    },
    {
        "CardId": 439,
        "CardName": "Any Value - Stocking Stuffer",
        "OccasionId": 63,
        "OccasionName": "Stocking Stuffers",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "Send a charity donation card as a Christmkas stocking stuffer.",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/439.jpg"
    },
    {
        "CardId": 333,
        "CardName": "Any Value - Stocking Stuffer",
        "OccasionId": 14,
        "OccasionName": "Season's Greetings",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/333.jpg"
    },
    {
        "CardId": 296,
        "CardName": "Art - Mothers Day",
        "OccasionId": 43,
        "OccasionName": "Mothers Day",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/296.jpg"
    },
    {
        "CardId": 27,
        "CardName": "Award Certificate",
        "OccasionId": 24,
        "OccasionName": "Award",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/27.jpg"
    },
    {
        "CardId": 455,
        "CardName": "Be Mine - Valentine",
        "OccasionId": 42,
        "OccasionName": "Valentines Day",
        "HasCustomSection": false,
        "CustomSectionDefaultHtml": null,
        "AltTag": "",
        "PresetDenomination": 0,
        "ImageUrl": "https://res.cloudinary.com/charity-choice/eCards/455.jpg"
    },
    ... many more ...
]

Response Fields

Field Type Description
CardId int The CharityChoice ID of the card.
CardName string The name of the card.
ImageUrl string The URL for the card image.
OccasionId int The CharityChoice ID of the occasion this card is part of.
OccasionName string The name of the occasion this card is part of.
HasCustomSection Boolean Whether the card has a custom section.
CustomSectionHtml string The HTML for the custom section.

Response Notes: