Stripe Feed Meta

Stripe Feed Meta

IntroductionUsagePropertiesProduct Transaction PropertiesSubscription Transaction Properties

Introduction
The Feed Object meta for the Stripe add-on is an associative array containing the properties which determine what type of transaction should occur and what values are sent to Stripe.
12345678910$feed['meta'] = array(    'feedName'                       => 'Your Feed Name',    'transactionType'                   => 'product',    'paymentAmount'                   => 'form_total',    'receipt_field'                      => '3',    'feed_condition_conditional_logic'       => true,    'feed_condition_conditional_logic_object' => array(        'conditionalLogic' => array(),    ),);
Usage
We recommend accessing the $feed meta using the rgar() or rgars() functions, e.g.:
1$conditional_logic_enabled = rgars( $feed, 'meta/feed_condition_conditional_logic' );

Properties

feedName string
The feed name which appears on the add-ons feeds tab.

transactionType string
The type of transaction which should occur when the feed is processed. Possible values: product or subscription.

metaData array
An indexed array of custom meta information. Stripe allows a maximum of 20 custom keys to be sent. Each custom meta array contains the following properties.
12345array(    'key'        => 'gf_custom',    'value'      => '1.3',    'custom_key' => 'product_quantity',);

key string
Value should be gf_custom. Instructs the dynamic_field_map setting to use the custom_key input.

value string
The ID of the field containing the value to be sent for the specified custom_key. The mapped data will be truncated to 500 characters per requirements by Stripe.

custom_key string
The custom key you want to use when sending the custom metadata to Stripe. Must be 40 characters or less.

feed_condition_conditional_logic boolean
Is the feed condition (conditional logic) setting enabled. Default is false.

feed_condition_conditional_logic_object array
An associative array containing the conditional logic rules. See the Conditional Logic Object for more details.

Product Transaction Properties
The following properties are only applicable when the transactionType is set to product.

paymentAmount string
What to use for the payment amount. Possible values: form_total or a product field ID.

receipt_field string
The ID of the field containing the email Stripe should use when sending their receipt.

Subscription Transaction Properties
The following properties are only applicable when the transactionType is set to subscription.

recurringAmount string
What to use for the recurring amount. Possible values: form_total or a product field ID

billingCycle_length integer
How often should the recurring payment occur. Maximum values: 1 year or 12 weeks or 12 months.

billingCycle_unit string
How often should the recurring payment occur. Possible values: week, month or year.

setupFee_enabled boolean
Should a setup fee be charged? Default is false.

setupFee_product string
The ID of the product field containing the amount the user should be charged for the setup fee.

trial_enabled boolean
Should the recurring charge occur immediately or after a trial period? Default false.

trialPeriod integer
The number of days the trial period should last.

customerInformation_email string
The ID of the field containing the customer email.

customerInformation_description string
The ID of the field containing the customer description.

Stripe Card Field

Stripe Card Field

Pre-RequisitesSummaryNotes

Pre-Requisites

This field is only available in the Form Editor if you have installed the official Gravity Forms Stripe Add-on.

If you drag the Stripe Card field onto your form without having completed your Stripe setup, you will get a warning message that either setup or a feed is required. Refer to our user guides for the Stripe Add-On for assistance there.

Summary

The Stripe Card field provides Credit Card input fields tied to integrating with the Stripe payment service. If you have another Payment Gateway add-on installed and active, the Gravity Forms Credit Card Field may still available in case you are allowing users to choose from a list of payment processors, such as Authorize.Net (which requires it). Conditional logic can be used to show/hide the Credit Card field depending on the payment processor selection.

Stripe Card as displayed in the Field Library

Stripe Card as displayed in the Form Editor.

This field will add the Credit Card Detail inputs for Stripe, as securely hosted by the Stripe service. The Card Details input collects the Card Number, Expiration Date, Security Code, and Cardholder Name. All fields are required and are passed onto Stripe. You can modify the Field Label and the Description for this field.

Notes

When using Page fields to create a multi-page form, the Stripe Card field should be located on the last page of the form.For more info on the Stripe payment methods and how the Stripe Card field works with some of them, refer to this guide.

Stripe Marks Charge As Recurring When It Is Non-Recurring

Stripe Marks Charge As Recurring When It Is Non-Recurring

IssueExplanation

Issue
Charges made through the Stripe Add-On have shown up flagged as 「recurring」, when they are not part of a recurring subscription plan.
Explanation
Stripe have confirmed that this is an expected behavior when the storage of customer card details is required.
The 「recurring」 flag in this instance does not necessarily indicate the customer is subscribed to a recurring billing plan, only that the card was saved for future charges.
Cards attached to non-recurring transactions cannot have all details stored, in keeping with PCI compliance requirements. Therefore the recurring flag must be used by Stripe in order to store card details for future charges, even if future charges are not automated as part of the plan.
Stripe have created this document to explain the change: https://support.stripe.com/questions/non-recurring-charges-show-as-recurring-on-customer-bank-statements.

Overview of Stripe Payment Collection Methods

Overview of Stripe Payment Collection Methods

IntroductionSettings1. Stripe Credit Card Field (Stripe Elements)DescriptionBenefitsPre-Requisites2. Stripe Payment Form (Stripe Checkout):DescriptionBenefitsPre-Requisites3. Gravity Forms Credit Card Field (deprecated)

Introduction

Gravity Forms Stripe Add-On version v2.6 increased the number of options available for processing credit cards using Stripe. This article gives a brief overview of those payment collection methods.

Settings

The option 「Payment Collection Method」 is set via the Stripe Add-On Settings page.

1. Stripe Credit Card Field (Stripe Elements)

Description

The Stripe Credit Card field is hosted on Stripe』s servers and displayed on your form using an iframe. Your Gravity Form collects all data except the credit card (and optionally, the Cardholder Name) fields, which are collected securely by Stripe and transmitted over HTTPS connection to their processing servers. Those Stripe collected details are not stored with your entry data.

Benefits

Reduces your responsibility for handling and securing sensitive payment information as that process is handled by Stripe.is SCA ready as of version 3.3.1.can help you meet your PCI compliance requirements, such as Stripe』s easier PCI compliance process, Pre-filled SAQ A.

Pre-Requisites

the Stripe Add-On must be installed and active.have selected Stripe Credit Card field as your payment collection method within the Stripe settings.the checkout page must be a secure https:// address.

Then the field is available under the Pricing Fields section of the Gravity Forms Editor.

Note: Stripe.com will render the inputs for the card details only if your form has an active Stripe feed configured. Also if your Stripe feed has conditional logic, you will want to configure the Stripe Card field with the same logic.

2. Stripe Payment Form (Stripe Checkout):

Example of the Stripe Checkout form.

Description

Form submission will trigger the opening of a Stripe hosted form to collect all the payment details directly within Stripe』s domain, including required data such as email, billing address, or any other verification fields as demanded by your payment processing flow.

Note: This collection method will not make a credit card field available in the list of available Pricing fields to add to a form as a credit card field is not required for this collection method.

Benefits

Reduces your responsibility for handling and securing sensitive payment and customer information, as none of the payment form collected data is stored by your Gravity Forms databases.is SCA ready.can support additional payment methods like Apple Pay or Google Pay.can help you meet your PCI compliance requirements, such as Stripe』s easier PCI compliance process, Pre-filled SAQ A.

Pre-Requisites

have the Stripe Add-On installed and active.have Stripe Payment form (Stripe Checkout) selected as your payment collection method within the Stripe settings.when using this method, you configure the payment collection form and fields via your Stripe account, and not within the Gravity Forms editor.If any of your form notifications is intended to be sent when the payment is done, you would need to change the notification Event setting from the default 「Form is submitted」 to 「Payment Completed」 if you use a Products and Services feed, or 「Subscription Created」 for Subscription feeds.to support Apple Pay or Google Pay, you must login to your Stripe account, go to Settings → Checkout and Payment Links, and then toggle the desired payment options as shown here:

3. Gravity Forms Credit Card Field (deprecated)

This collection method has been deprecated in Stripe Add-On version 3.4. Refer to this document for more information.

Stripe Support of Strong Customer Authentication

Stripe Support of Strong Customer Authentication

IntroductionWhat is SCA (Strong Customer Authentication)?How does this affect Stripe?So will all my transactions through Stripe now work with financial institutions using SCA?I don』t need any of the security of SCA, does this affect me?

Introduction
Version 3 of the official Gravity Forms Stripe Add-On made a number of changes to bring our add-on into line with Stripe』s updates around Strong Customer Authentication (SCA) and their new API. This article gives you the basics regarding SCA.
What is SCA (Strong Customer Authentication)?
SCA is a requirement of the EU Revised Directive on Payment Services (often referred to as just PSD2), that affects payment service providers within the European Economic Area. It is intended to ensure that electronic payments are performed with multi-factor authentication, to increase the security of electronic payments.
How does this affect Stripe?
This directive affects all payment gateways that want to collect payments from financial institutions who will be requiring SCA. To that end, Stripe has updated their API to ensure they can meet these requirements. Stripe has a suite of documentation to describe the implications for them and their customers.
So will all my transactions through Stripe now work with financial institutions using SCA?
It will depend upon the collection method you use. Payments collected using:

Stripe Checkout method in Stripe Add-On version 3.0 or higher
Stripe Credit Card field (also called Stripe Elements) in Stripe Add-On version 3.3.1 or higher

…are both SCA ready.
Collecting information using the Gravity Forms Credit Card field does not comply with SCA requirements.
I don』t need any of the security of SCA, does this affect me?
Not in practice, no, but do note that the 3.0 update also modified the flow for Stripe Checkout, and removed some existing Stripe Add-On hooks. Review this guide to see a list of those changes.

Submission Data Object

Submission Data Object

IntroductionUsagePropertiesLine ItemOptionHooks

Introduction
Submission Data ($submission_data) is an associative array containing all the payment related properties for the entry being processed by an add-on which extends the GFPaymentAddOn class. It is generated by GFPaymentAddOn::get_submission_data() during form validation.
Usage
We recommend accessing the properties in $submission_data using the rgar() function e.g.
1$payment_amount = rgar( $submission_data, 'payment_amount' );

Properties

form_title string
The form title.

email string
The value of the field which was mapped to the billing information Email field (not available to all add-ons).

address string
The value of the field which was mapped to the billing information Address field (not available to all add-ons).

address2 string
The value of the field which was mapped to the billing information Address 2 field (not available to all add-ons).

city string
The value of the field which was mapped to the billing information City field (not available to all add-ons).

state string
The value of the field which was mapped to the billing information State field (not available to all add-ons).

zip string
The value of the field which was mapped to the billing information Zip field (not available to all add-ons).

country string
The value of the field which was mapped to the billing information Country field (not available to all add-ons).

card_number string
The Credit Card number last 4 digits, padded with X (not available to all add-ons).

card_expiration_date array
The Credit Card expiration month and year (not available to all add-ons).

card_security_code string
The Credit Card security code (not available to all add-ons).

card_name string
The Credit Card cardholder name (not available to all add-ons).

payment_amount float
Either the form total or the value of the field mapped to the feeds payment amount or recurring amount setting.

setup_fee integer
Zero or the value of the field mapped to the setup fee setting.

trial integer
Zero, the trial amount, or the number of days the trial should last.

line_items array
An indexed array of line items with unit prices greater than or equal to zero. Created from the submitted pricing fields. See Line Item for available properties.

discounts array
An indexed array of line items with negative unit prices. e.g Coupon fields. See Line Item for available properties.

Line Item
12345678array(    'id'          => 1,    'name'        => 'Product A',    'description' => '',    'quantity'    => '1',    'unit_price'  => 10,    'options'     => array(),)
Each line item is an associative array containing the following properties.

id integer
The field ID.

name string
The product name or shipping name.

description string
Comma separated string of selected option names.

quantity integer
The quantity.

unit_price float
The total unit price for the product and any selected options or the shipping price.

options array
An indexed array of the selected product options. See Option for available properties.

is_shipping boolean
Only present if the line item is from the shipping field. Value will be true.

Option
123456array(    'field_label'  => 'Option',    'option_name'  => 'First Option',    'option_label' => 'Option: First Option',    'price'        => '10',)
Each option is an associative array containing the following properties.

field_label string
The option field admin label or choice label.

option_name string
The choice label or value if values are enabled on the field.

option_label string
The colon separated field_label and option_name.

price string
The option price.

Hooks
The Submission Data can be modified by using the gform_submission_data_pre_process_payment filter.

Submit Button CSS Selectors

Submit Button CSS Selectors

Basic TargetingSubmit ButtonSubmit Button (image)Use Case ExamplesBasic ExampleHover ExampleActive State ExampleInline Positioning Of The Submit Button

Here』s how to apply styles to Gravity Forms submit buttons. You can utilize these selectors to apply any additional styling that you may need.
Basic Targeting
Submit Button

example: the form submit button (input) – applies to all forms
body .gform_wrapper .gform_footer input[type=submit] {border: 1px solid red}

example: the form submit button (input) – applies just to form ID #1
body #gform_wrapper_1 .gform_footer input[type=submit] {border: 1px solid red}

Submit Button (image)

example: the form submit button (image) – applies to all forms
body .gform_wrapper .gform_footer input[type=image] {border: 1px solid red}

example: the form submit button (image) – applies just to form ID #1
body #gform_wrapper_1 .gform_footer input[type=image] {border: 1px solid red}

Use Case Examples
Basic Example
body .gform_wrapper .gform_footer input.button,
body .gform_wrapper .gform_footer input[type=submit] {
color:#ffffff;
padding-top:4px;
padding-bottom:4px;
padding-left:10px;
padding-right:10px;
border: 1px solid rgba(114,114,114,0.4);
border-radius: 1px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
box-shadow: 0 1px 0px rgba(114,114,114,0.3);
-moz-box-shadow: 0 1px 0px rgba(114,114,114,0.3);
-webkit-box-shadow: 0 1px 0px rgba(114,114,114,0.3);
background-color: #0096d6;
}

Hover Example
body .gform_wrapper .gform_footer input[type=submit]:hover {
border: 1px solid rgba(114,114,114,0.6);
background-color: #444444;
}

Active State Example
body .gform_wrapper .gform_footer input[type=submit]:active {
top: 1px;
}

Inline Positioning Of The Submit Button
/* make the form container relative for positioning */

body #gform_wrapper_1 {
position: relative;
}

/* resize and position the form footer with the button */

body #gform_wrapper_1 .gform_footer {
width: auto;
position: absolute;
top: 46px;
left: 150px;
padding: 0;
margin: 0;
}

Recurring Payment Account Detail and Credit Card Changes

Recurring Payment Account Detail and Credit Card Changes

Currently it is not possible to change any account details within recurring payments when using Authorize.Net. To make changes to a recurring payment, you will need to cancel the subscription, then create a new subscription with the changed information.
If you require more information on canceling a subscription, take a look at our article on recurring subscription cancelations.

Subscription Settings in the PayPal Payments Standard Add-On

Subscription Settings in the PayPal Payments Standard Add-On

Transaction Type-specific Options

When using the PayPal Add-Ons for Gravity Forms, you can set various transaction types depending on your needs such as Products and Services, Subscription, and Donations.

Transaction Type-specific Options

If you select Subscription within the Transaction Type dropdown, additional options that are specific to subscriptions will appear.

SettingDescriptionRecurring AmountSet the amount that the subscription will bill for. Using the drop down, you can set the recurring payment amount as one of your product fields or as the form total.Billing CycleSelect the amount of time in each billing cycle. For example, if you want the subscription to renew monthly, select 1 and Month within the dropdown.Recurring TimesConfigure the number of times a subscription will be renewed. By default, it is set to infinite.Recurring RetryEnable to automatically retry again if billing fails.TrialSet the initial purchase to be a trial period with a reduced price, after which it will renew at regular price. Once enabled, additional options will appear for the trial price as well as the time that the trial will be available before renewing at regular price.

If you need more information on configuring feeds within the PayPal Payments Standard Add-On, you may review our article on Creating a Feed for the PayPal Payments Standard Add-On.

{survey_total_score} Merge Tag

{survey_total_score} Merge Tag

SummaryUsageNotes

Summary

Displays the total score for the survey. Scoring must be enabled on the survey field for it to be tallied.

Usage

{survey_total_score}

Notes

Quiz and Survey related merge tags can only be used in confirmations and notifications.For more information, Refer to our Survey Add-On documentation.