This action hook can be used to perform custom actions after processing of the following payment events has occurred:

  • complete_payment
  • refund_payment
  • fail_payment
  • add_pending_payment
  • void_authorization
  • create_subscription
  • cancel_subscription
  • expire_subscription
  • add_subscription_payment
  • fail_subscription_payment
  • fail_create_subscription


This action hook, which would run for all payment add-on feeds, can be used like so:

add_action( 'gform_post_payment_action', 'your_function_name', 10, 2 );


  • $entry Entry object
    The entry for which the payment event occurred.
  • $action Array
    An associative array containing the event details.
$action = array(
    'type'             => '',
    'amount'           => '',
    'transaction_type' => '',
    'transaction_id'   => '',
    'subscription_id'  => '',
    'entry_id'         => '',
    'payment_status'   => '',
    'note'             => '',


1. Send event notification

The following example shows how you can trigger the sending of form notifications registered for the event. See the Send Notifications On Payment Events article for a more detailed tutorial.

add_action( 'gform_post_payment_action', function ( $entry, $action ) {
    $form = GFAPI::get_form( $entry['form_id'] );
    GFAPI::send_notifications( $form, $entry, rgar( $action, 'type' ) );
}, 10, 2 );

2. Access webhook event

In some cases you may need access to the webhook event that initiated the subscription cancelation. This example demonstrates how to access that event object. Note: this object is only available if the request was initiated by a Stripe webhook.

add_action( 'gform_post_payment_action', 'my_function', 10, 2 );
function my_function( $entry, $action ) {
    // If data from the Stripe webhook event is needed (and this hook was initiated via a Stripe webhook request), you can access event data with the following line:
    $event = gf_stripe()->get_webhook_event();
    if ( $event ){
       // Access webhook event data. For event object documentation, see:



This code can be used in the functions.php file of the active theme, a custom functions plugin, a custom add-on, or with a code snippets plugin.

See also the PHP section in this article: Where Do I Put This Code?

Source Code

do_action( 'gform_post_payment_action', $entry, $action );

This action hook is located in GFPaymentAddOn::post_payment_action() in includes/addon/class-gf-payment-addon.php.


This filter was added in Gravity Forms