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:
- Header: Authorization Value: basic AUTHORIZATION_KEY (see explanation below)
- Header: cgc-app-id Value: *CGC_REST_API_VERSION_0142 *(may change in the future)
- 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
- UserId is supplied by CharityChoice when you receive approval to use the API.
- ClientId is supplied by CharityChoice when you receive approval to use the API.
- Password is the same as your charity choice account 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:
- CharityChoiceApi.ApiCaller.UserId
- CharityChoiceApi.ApiCaller.ClientId
- 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. |
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:
-
400- The charityId supplied is not a valid CharityChoice charityId. -
200- The request was completed successfully. The response data will contain the charity information.
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. |
[
{
"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. |
[
{
"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:
-
400- The donation failed. This usually indicates that the request was not in the required format. The ErrorMessage should contain more information about the failure. If the information is not helpful and this is a recurring response, please contact CharityChoice for assistance. -
201- The donation was completed successfully.
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:
-
400- The order id supplied is not a valid CharityChoice order id. -
401- You are not authorized to view this order. Usually due to the supplied orderId not being in your account. -
200- The request was completed successfully. The response data will contain a list of codes in this order.
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:
-
400- The retailerId supplied is not a valid CharityChoice Gift Card Retailer Id. -
200- The request was completed successfully. The response data will contain the retailer information.
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:
-
400- The request is not in the correct format. Some of the required fields are missing or empty. The ErrorMessage field in the response data will often contain an explanation of which information is missing or invalid. If the information is not helpful and this is a recurring response, please contact CharityChoice for assistance. -
417- Usually means that this card has already been donated. The ErrorMessage field will contain more error details. -
201- The gift card donation was completed successfully. The response data will contain the order id.
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:
- The Response includes a Location header with the URI of the Get Gift Card Status call for this donation. You should save this URI in order to check the cards current status. You can also build a Get Gift Card Status call using the returned DonorId and CardId.
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:
-
400- The donorId and cardId combination supplied does not correctly refer to a previously donated Retailer Gift Card. -
200- The request was completed successfully. The response data will contain the card information.
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:
-
400- The activation failed. This usually indicates that the request was not in the required format. TheErrorMessageshould contain more information about the failure. If the information is not helpful and this is a recurring response, please contact CharityChoice for assistance. -
201- The code activation was completed successfully. The response data will contain the order id and the list of newly activated 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:
|
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.
|
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.
|
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:
NOTE: redemption codes are not case sensitive. |
Response Status Codes:
-
400- There were no codes in the request data. -
417- The activation failed. None of the codes were activated. The ErrorMessage will contain information for each failed removal. -
201- The code activation was completed successfully. All of the codes were successfully activated
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:
-
400- There were no codes in the request data. -
417- The deactivation failed. None of the codes were de-activated. The ErrorMessage will contain information for each failed removal. -
200- The code de-activation was completed successfully. All of the codes were successfully removed -
202- The code de-activation was only partially completed successfully. Some of the codes were not de-activated. The ErrorMessage will contain information for each failed removal.
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:
-
If all if the codes were successfully removed, the returned status will
be 200 and
Succeededwill be true. -
If none of the codes were removed the returned status will be 417. The
ErrorMessagewill contain information for each failed removal. -
If only some of the codes were removed,
Succeededwill be false and the returned status will be 202. TheErrorMessagewill contain information for each failed removal.
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:
|
Response Status Codes:
-
400- The request is not valid. The responseErrorMessagewill contain details about which information is incorrect. See below for more details. -
200- The digital cards were successfully sent or scheduled to be sent to the recipients.
TheOrderIdwill contain the Order Id for this transaction.
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:
-
If all if the Digital Cards were successfully sent, the returned status will be 200 and
Succeededwill be true. TheCardsfield will contain the Redemption Code and unique Redeem URL for each sent card. - If there was an issue with the request data, the returned status will be 400.
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:
-
400- The request is not valid. The response ErrorMessage will contain details about which information is incorrect. -
201- The order was completed successfully. The OrderId will contain the Order Id for this transaction.
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:
- If the order was completed successfully, the returned status will be 201 and Succeeded will be true.
- If there was an issue with the request data, the returned status will be 400.
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
{
"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
{
"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:
- 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.
-
List/ShippingTypeId- This field is the unique identifying Id for each shipping type. It should be used as the value for the *"ShippingInfo/ShippingTypeId" field in *the call to Order Physical Cards to set the shipping carrier and type.
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:
- The codes returned in the
Codeslist are "reserved" for 30 days.
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. - The codes should be activated by doing a call to Activate Supplied Codes request.
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:
-
400- The code status cannot be retrieved. Either the given redemption code is not an active CharityChoice code or it is not in your account. The ErrorMessage will contain more information. -
200- The code status request was completed successfully.
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:
- Even though this call only takes a single code, the Response returns an array. This was done in order to have both versions of Get Code Status have the same response schema.
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:
-
400- Either the request was not formatted correctly or the code status cannot be retrieved for one or more codes in the request. The given redemption code may not be an active CharityChoice code or it is not in your account. The ErrorMessage will contain information for each failed status request. -
417- The Codes field in the request is either missing or empty. -
200- The code status was successfully retrieved for all the code listed in the request.
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:
- If any of the codes failed the status request, the returned status will be 400 and Succeeded will be false.
- The ErrorMessage only contains the fail information of the first failed code.
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:
400- The request was not formatted correctly.-
403- You are not allowed to void this order. The ErrorMessage will contain the reason for the failure. -
417- Order cannot be voided. Either the order does not exist or you do not have the permissions to void this order. The ErrorMessage may contain more information about this failure. -
200- The request completed successfully. The order has been voided and removed from your account.
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:
- All fields (except for CharityProject) must have a valid value.
- Up to three charities are allowed.
-
The
CharityProjectproperty is to redeem to a particular project within the charity. If you do not want to supply this information, setCharityProjectto null. -
The
Amountcan be any number (including floating point numbers) between 0 and 5,000. -
If
Amountis set to zero for all the charities in the list, the funds will be evenly divided among the charities.
Response Status Codes:
-
400- The request is not correct. Some of the required fields may be missing or empty. If the information in the ErrorMessage is not helpful and this is a recurring response, please contact us. 403- You do not have permission to redeem this code.-
410- The Code has already been redeemed or does not have a sufficient balance to complete this redemption. The ErrorMessage will contain more information. 201- The Code redemption was completed successfully.
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.
|
Response Status Codes:
400- The supplied Code is not a valid CharityChoice Code.403- The Code is not in your account.417- The Code was never redeemed.200- The redemption information was successfully removed.
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
[
{
"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
[
{
"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:
-
CardIdis the CharityChoice id of the card. This will be used as theCardIdvalue in calls to Send Digital Cards -
CardNameis the display description that can be used to describe this card. ImageUrlis the URL for the card image.-
OccasionIdis the CharityChoice id of the occasion this card is part of. (Mostly for internal use) -
OccasionNameis the occasion name for the category that this card is part of. -
HasCustomSectionindicates if this card has a section that can be customized with HTML. -
CustomSectionHtmlis for cards that have a customizable section, this is the default HTML of this section. -
PresetDenominationis the optional preset denomination for this card. This will be used as theDenominationvalue in calls to Send Digital Cards