Collapse Menu
Documentation
FastSpring App
Contact Support

Gift Purchases

Overview

Gift purchases allow customers to place an order on behalf of someone else and make payment for a product that will be fulfilled to the gift recipient.

With Gift Purchases enabled in your store, consumers can make a one-time payment on behalf of a recipient. If the Gift Purchase box is selected at checkout, the consumer will fill out additional fields regarding the recipient’s fulfillment information. Everything that is in the cart at checkout will be sent to the recipient. However, if there is a subscription in the cart at the time of purchase, the Gift Purchase box will not display.

After entering the recipient’s fulfillment information, and their payment information, the purchaser has the option to enter a Gift Message of up to 400 characters. FastSpring will deliver this via email along with the fulfillments.
 
Purchasers may access the fulfillment details through their Account Management portal. FastSpring creates separate fulfillment accounts with unique Account IDs for both the recipient and the purchaser so they can access fulfillment details from personal Account Management pages. Because of this, the recipient and purchaser email addresses must be different; otherwise the storefront displays an error message.

Accepted Payment Methods

When purchasing a gift for someone, consumers can pay with the following options:

  • Credit / Debit Card
  • PayPal
  • Amazon Pay

FastSpring is unable to accept delayed payment methods such as Invoicing Service and Wire Transfers for gift purchases.

Payment Experience

When Gift Purchases are enabled, a radio button labeled Gift Purchase appears on the Storefront, unless there is a subscription in the checkout cart. To complete a gift purchase:

  1. The purchaser selects the Gift Purchase Radio button. Additional fields appear in the checkout. 
  2. The purchaser enters their payment information and the recipient’s fulfillment information. Gift orders should only be placed for recipients that are in the same country. If the email addresses are the same, there will be an error message. 
  3. For orders within the US, the purchaser must include the recipient’s zip code so FastSpring can calculate the appropriate taxes. 
  4. The purchaser has the option to enter a Gift Message of up to 400 characters. FastSpring will deliver this via email along with the fulfillments. 
  5. When the transaction is complete, the purchaser is presented with a completion page containing the Order Reference and the transaction details, similar to the example below. 
  6. The Fulfillment is automatically sent to the recipient via email. The recipient may also access this from the Account Management portal. Recipients cannot see the payment information or amount in either location.
  7. The purchaser can access payment details, but no fulfillment in their Account Management portal. 
For Popup Storefronts, you can control the color of the gift icon shown at the top of the completion page. To do so, navigate to Settings > Styling > Completion Page > Checkmark Color.

Seller Experience

In the FastSpring App, navigate to the applicable Order’s Details Page. The consumer section contains purchaser and recipient information. All other details reflect those of normal purchases.

 

Enable Gift Purchases

Enabling Gift Purchases provides consumers with the ability to make purchases for other recipients in each storefront it is enabled in. 

  1. In the FastSpring App, select Storefronts, then Web Storefronts or Popup Storefronts, depending on the storefront you want to enable gift purchases on. 
  2. Click Settings on the applicable Storefront. 
  3. On the Settings page, click Checkout. Select the Enable Gift Purchases checkbox. 
  4. Save your changes. 

Repeat this process for each Storefront you wish to enable Gift Purchases on.

 

Gift Purchase Email Templates

When a consumer makes a gift purchase, the recipient receives an email message using the Default Gift Purchaser Receipt. This message has similar styling to the Default Order Receipt. In addition, it includes:

  • Recipient Name
  • A message explaining the purchase was a gift
  • A list of the included products and their fulfillment details

No price or payment details are displayed. 


Store Builder Library

With the Store Builder Library, you can pre-populate recipient information 3 different ways. You must use the latest version of the Store Builder Library to pass gift purchase data with it.  New versions of SBL are backward compatible; to update, you only need to update the URL targeting the library (https://d1f8f9xcsvx3ha.cloudfront.net/sbl/0.8.3/fastspring-builder.min.js ) in your pages that use the SBL. 

  • fastspring.builder.recognizeRecipients() - Takes a JSON "recipient" object consisting of optional recipient info fields. Gift recipient information is pre-filled in the purchase form, however the purchaser may overwrite or change it. 
    {
            "email": "recipient@fastspring.com",
            "firstName": "firstName",
            "lastName": "lastName",
            "address": {
                "addressLine1": "Address Line 1",
                "city": "City",
                "region": "California",
                "postalCode": "93101",
                "country": "US"
            },
            "memo": "Happy Birthday!"
    }
  • Session Object - The optional recipient object, illustrated below, can be included in your Store Builder Library session object. You can then push your session using fastspring.builder.push(). Gift recipient information is pre-filled in the purchase form, however the purchaser may overwrite or change it.
    {
            "recipient": {
                "email": "recipient@fastspring.com",
                "firstName": "firstName",
                "lastName": "lastName",
                "address": {
                    "addressLine1": "Address Line 1",
                    "city": "City",
                    "region": "California",
                    "postalCode": "93101",
                    "country": "US"
                },
                "memo": "Happy Anniversary!"
            }
    }
  • Secure Payload - If you use server-side encryption to encrypt your Store Builder Library payload, you can pass the optional recipient object as part of the payload. This authenticates the recipient information. The information is stored as part of the order, but not displayed in the purchase form.
    {
            "recipient": {
                "email": "recipient@fastspring.com",
                "firstName": "firstName",
                "lastName": "lastName",
                "address": {
                    "addressLine1": "Address Line 1",
                    "city": "City",
                    "region": "California",
                    "postalCode": "93101",
                    "country": "US"
                },
                "memo": "Happy Birthday!"
            }
    }

 

Potential Error Responses

The following error messages may be returned when attempting to push the recipient object or calling recognizeRecipients():

  • 400 recipient-and-purchaser-country-must-match - The purchaser's country must match the recipient's country; multiple countries are not supported
  • 400 memo-exceeded-limit - The optional "memo" field value must not exceed 400 characters
Although the purchaser and recipient email addresses must differ, the SBL does not validate this upon pushing the recipient object or calling recognizeRecipients(). Instead, pushing the same email address for both causes consumers to see a user-friendly error message in the Storefront explaining the issue and that they must change one of the addresses.


Webhooks and API Responses 

The recipients array has been added to the order-related webhook event and API responses when calling GET /orders. This array is always present for gift and non-gift purchases. If the order is a gift purchase, the party identified in the recipient object (within the recipients array) will differ from the contents of the consumer object. 

If Webhook Expansion is enabled, events that include the order object will have the entire account object inside the recipients array rather than just the recipient's account ID.

How to Identify a Gift Purchase

The gift purchase feature requires that the purchaser’s email differ from the recipient’s email. Therefore, if the consumer.email field differs from the recipient[0].recipient.email field, the order is a gift purchase. If the two fields are the same, the order is not a gift purchase.

Example of the recipients array in webhook events and API responses:

  •   "recipients":[  
          {  
             "recipient":{  
                "first":"Leeroy",
                "last":"Jenkins",
                "email":"ne1@all.com",
                "company":null,
                "phone":null,
                "memo":"Merry Christmas, Leeroy!",
                "account":"pY_wvH1IRYm8dnET4FRHxQ",
                "address":{  
                   "city":"Lincoln",
                   "regionCode":"NE",
                   "regionDisplay":"Nebraska",
                   "region":"Nebraska",
                   "postalCode":"68508",
                   "country":"US",
                   "display":"Lincoln, Nebraska, 68508, US"
                }
             }