/
PosiPay v0.95

PosiPay v0.95

Release Date: October 23, 2024

URL: /packaging/installPackage.apexp?p0=04tOZ0000002GDZYA2

Bug Fix

Gateway Settlement Reconciliation Batch

When Charges in payout are over 50,000 the reconciliation will processed successfully.

Source Transaction Linked for Adjustment Gateway Transactions in Gateway Settlement

The Gateway Transaction record created for adjustments (related to disputes) should be correctly linked to its Source Transaction (the original Gateway Transaction).

Return Card BIN From Payment Form

 

Enhancements

Disable Gateway Account

You can now disable your Gateway Account if it is no longer used by clicking Disable Gateway Account.

  • The Gateway Account record is updated where:

    • API Token = EMPTY

    • Publishable Key = EMPTY

    • Active = FALSE

    • Disable = TRUE

  • The equivalent Gateway Account Setting record is updated where:

    • API Token = EMPTY

    • Publishable Key = EMPTY

    • Authenticated = FALSE

  • A notification message will display: The Gateway Account is disabled for use.

Stripe Payment Form

Enhance Payment Confirmation for MOTO Payments to Prevent Multiple Payment Intent in One Payment Session.

  • When processing a payment on the Stripe payment form,

    • If the selected payment method is Credit Card,

      • If the Is MOTO attribute is TRUE,

        • The Stripe payment form will NOT display the CVC field

      • If the Is MOTO attribute is FALSE,

        • The Stripe customer form will display the CVC field

Revamp Disable Gateway Account

Disabling Gateway Account

  • If the Gateway Account’s Active = FALSE,

    • An error message will display: This Gateway Account has been disabled.

  • If the Gateway Account’s Active = TRUE,

    • A warning message will display: Are you sure you want to disable the Gateway Account? No future payments associated with this Gateway Account will be processed in Salesforce. No pending payments associated with this Gateway Account will be updated in Salesforce.

    • When proceeding,

      • The Gateway Account record will be disabled

      • The Gateway Account record is updated where:

        • API Token = EMPTY

        • Publishable Key = EMPTY

        • Active = FALSE

      • The Gateway Account’s equivalent Gateway Account Setting record is deleted

Enabling Disabled Gateway Account via Authenticate button

  • When enabling the gateway via the Authenticate button on the Gateway Account record,

    • Ensure that the API Token AND/OR Publishable Key are populated, otherwise, it won’t go through and an error message will display stating Please provide gateway credentials.

    • If the gateway authentication is authenticated and the Gateway Account authentication is successful,

      • The Gateway Account record will be enabled

      • The Gateway Account record is updated where:

        • API Token = EMPTY

        • Publishable Key = EMPTY

        • Active = TRUE

      • The Gateway Account’s equivalent Gateway Account Setting record is updated where:

        • Authenticated = TRUE

      • If the gateway authentication has failed,

        • The Gateway Account record will NOT be enabled

Validate Gateway Account's Webhook on the Stripe Account

Gateway Account record has ONLY one webhook on the Stripe account

  • Pre-work:

    • A Gateway Account record NOT authenticate yet.

    • On the Stripe account, the Gateway Account record has ONLY one configured webhook where the webhook URL = Gateway Account’s Webhook Endpoint URL

  • When authenticating the gateway credentials via the Authenticate button on the Gateway Account record,

    • The gateway credentials will be authenticated

    • If the gateway credentials are correct,

      • The gateway authentication will be successful

      • A notification message will display: Gateway authentication successful.

      • The Gateway Account record is updated where:

        • Active = TRUE

      • The Gateway Account’s equivalent Gateway Account Setting record is updated where:

        • Authenticated = TRUE

    • If the gateway credentials are incorrect,

      • The gateway authentication will fail

      • An error message will display: Gateway authentication fails.

Gateway Account record has MULTIPLE webhooks on the Stripe account

  • Condition:

    • A Gateway Account record NOT authenticate yet.

    • On the Stripe account, the Gateway Account record has MULTIPLE configured webhooks where the webhook URL = Gateway Account’s Webhook Endpoint URL

  • When authenticating the gateway credentials via the Authenticate button on the Gateway Account record,

    • The gateway credentials will be authenticated

    • If the gateway credentials are correct,

      • The gateway authentication will fail since the Gateway Account record has more than one enabled webhook on the Stripe account

      • An error message will display: Gateway authentication failed. Multiple webhooks are currently configured for this gateway on the associated Stripe account. Please contact your Stripe administrator.

    • If the gateway credentials are incorrect,

      • The gateway authentication will fail

      • An error message will display: Gateway authentication fails.

Active Gateway Account Checking Global Function

  • A callable method is added that determines whether a Gateway Account record is active or inactive

  • A callable method is added for the live and sandbox payment failsafe

Webhook Parsing - Active Gateway Account Checking

Active Gateway Account

  • When a Gateway Event record is created based on the received payload from Stripe,

    • If the org is in a Production environment,

      • The stored payload in the Gateway Event record is parsed

      • The necessary records are created depending on the parsed payload

    • If the org is in a Sandbox environment,

      • If the Gateway Event → Gateway Account’s Sandbox = TRUE (test mode),

        • The stored payload in the Gateway Event record is parsed

        • The necessary records are created depending on the parsed payload

      • If the Gateway Event → Gateway Account’s Sandbox = FALSE (live mode),

        • If the Gateway Event → Gateway Account’s Enable Live Payments from Sandbox = TRUE,

          • The stored payload in the Gateway Event record is parsed

          • The necessary records are created depending on the parsed payload

        • If the Gateway Event → Gateway Account’s Enable Live Payments from Sandbox = FALSE,

          • The stored payload in the Gateway Event record is NOT parsed

          • A PosiPay Log record is created where:

            • Source = Stripe Webhook Listener

            • Details = You do not have access to parse live webhook payload for Gateway Event (Gateway Event record ID) in the sandbox. Please contact your System Administrator.

            • Type = Error

Inactive Gateway Account

  • Pre-work:

    • Process a payment using an active Gateway Account record

    • After the payment processing, deactivate the Gateway Account record

    • On the Stripe account, resend the equivalent payload of the payment processing

  • When a Gateway Event record is created based on the received payload from Stripe,

    • If the org is in a Production environment,

      • The stored payload in the Gateway Event record is NOT parsed

      • A PosiPay Log record is created where:

        • Source = Stripe Webhook Listener

        • Details = The payload of the Gateway Event (Gateway Event record ID) record has not been parsed because the gateway is inactive. Please contact your System Administrator.

        • Type = Error

    • If the org is in a Sandbox environment,

      • The stored payload in the Gateway Event record is NOT parsed

      • A PosiPay Log record is created where:

        • Source = Stripe Webhook Listener

        • Details = The payload of the Gateway Event (Gateway Event record ID) record has not been parsed because the gateway is inactive. Please contact your System Administrator.

        • Type = Error

Stripe Payment Form - Active Gateway Account Checking

  • When the Stripe payment form loads,

    • If the org is in a Production environment,

      • If the Gateway Account’s Active = TRUE,

        • The Stripe payment form will display

      • If the Gateway Account’s Active = FALSE,

        • The Stripe payment form will NOT display

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

    • If the org is in a Sandbox environment,

      • If the Gateway Account’s Active = TRUE,

        • If the Gateway Account’s Sandbox = TRUE (test mode),

          • The Stripe payment form will display

        • If the Gateway Account’s Sandbox = FALSE (live mode),

          • If the Gateway Account’s Enable Live Payments from Sandbox = TRUE,

            • The Stripe payment form will display

          • If the Gateway Account’s Enable Live Payments from Sandbox = FALSE,

            • The Stripe payment form will NOT display

            • An error message will display: You do not have access to process live payments in the sandbox. Please contact your System Administrator.

      • If the Gateway Account’s Active = FALSE,

        • The Stripe payment form will NOT display

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

Stripe Customer Form - Active Gateway Account Checking

Org in Production environment

  • When the Stripe Customer form loads and the Gateway Account is active (TRUE), the Stripe Customer Form will display.

  • If the Gateway Account is not active (FALSE) the Stripe Customer form will NOT display and an error message will display: Please provide an active gateway. Please contact your System Administrator.

Org in Sandbox environment

  • If the Gateway Account is Active [TRUE (test mode)], the Stripe Customer form will display.

  • If the Gateway Account’s Sandbox is not Active [FALSE (live mode)] and the Gateway Account’s Enable Live Payments from Sandbox is TRUE, the Stripe Customer form will display.

    • If the Gateway Account’s Enable Live Payments from Sandbox is FALSE, the Stripe Customer form will NOT display , and an error message will display: You do not have access to tokenise live Credit Card/Direct Debit details in the sandbox. Please contact your System Administrator.

  • If the Gateway Account’s Active is FALSE, the Stripe customer form will NOT display, and an error message will display: Please provide an active gateway. Please contact your System Administrator.

Invoice API - Active Gateway Account Checking

  • When generating an invoice,

    • If the org is in a Production environment,

      • If the Gateway Account’s Active = TRUE,

        • An invoice will be generated

      • If the Gateway Account’s Active = FALSE,

        • NO invoice will be generated

        • A PosiPay Log record is created where:

          • Source = Stripe Invoice API

          • Details = Please provide an active gateway. Please contact your System Administrator.

          • Type = Error

    • If the org is in a Sandbox environment,

      • If the Gateway Account’s Active = TRUE,

        • If the Gateway Account’s Sandbox = TRUE (test mode),

          • An invoice will be generated

        • If the Gateway Account’s Sandbox = FALSE (live mode),

          • If the Gateway Account’s Enable Live Payments from Sandbox = TRUE,

            • An invoice will be generated

          • If the Gateway Account’s Enable Live Payments from Sandbox = FALSE,

            • NO invoice will be generated

            • A PosiPay Log record is created where:

              • Source = Stripe Invoice API

              • Details = You do not have access to process live invoices in the sandbox. Please contact your System Administrator.

              • Type = Error

      • If the Gateway Account’s Active = FALSE,

        • NO invoice will be generated

        • A PosiPay Log record is created where:

          • Source = Stripe Invoice API

          • Details = Please provide an active gateway. Please contact your System Administrator.

          • Type = Error

Cancel Invoice API - Active Gateway Account Checking

  • Pre-requisite:

    • Generate an invoice and use a soft decline card details

    • Make sure that a Gateway Invoice record is created where the Invoice Status = Open

  • When cancelling an invoice via the Cancel Invoice button on the Gateway Invoice record,

    • If the org is in a Production environment,

      • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Active = TRUE,

        • The invoice will be cancelled

      • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Active = FALSE,

        • The invoice will NOT be cancelled

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

    • If the org is in a Sandbox environment,

      • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Active = TRUE,

        • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Sandbox = TRUE (test mode),

          • The invoice will be cancelled

        • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Sandbox = FALSE (live mode),

          • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Enable Live Payments from Sandbox = TRUE,

            • The invoice will be cancelled

          • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Enable Live Payments from Sandbox = FALSE,

            • The invoice will NOT be cancelled

            • An error message will display: You do not have access to cancel live invoices in the sandbox. Please contact your System Administrator.

      • If the Gateway Invoice → related Gateway Transaction → Gateway Account’s Active = FALSE,

        • The invoice will NOT be canceled

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

Gateway Transaction’s Refund Payment - Active Gateway Account Checking

  • When refunding a payment via the Refund Payment button on the Gateway Transaction record,

    • If the org is in a Production environment,

      • If the Gateway Transaction → Gateway Account’s Active = TRUE,

        • The Refund Payment page will display

      • If the Gateway Transaction → Gateway Account’s Active = FALSE,

        • The Refund Payment page will NOT display

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

    • If the org is in a Sandbox environment,

      • If the Gateway Transaction → Gateway Account’s Active = TRUE,

        • If the Gateway Transaction → Gateway Account’s Sandbox = TRUE (test mode),

          • The Refund Payment page will display

        • If the Gateway Transaction → Gateway Account’s Sandbox = FALSE (live mode),

          • If the Gateway Transaction → Gateway Account’s Enable Live Payments from Sandbox = TRUE,

            • The Refund Payment page will display

          • If the Gateway Transaction → Gateway Account’s Enable Live Payments from Sandbox = FALSE,

            • The Refund Payment page will NOT display

            • An error message will display: You do not have access to refund live payments in the sandbox. Please contact your System Administrator.

      • If the Gateway Transaction → Gateway Account’s Active = FALSE,

        • The Refund Payment page will NOT display

        • An error message will display: Please provide an active gateway. Please contact your System Administrator.

Gateway Settlement Reconciliation - Active Gateway Account Checking

  • When reconciling Gateway Settlement records via the Gateway Settlement Reconciliation batch job in PosiPay Settings page,

    • If the org is in a Production environment,

      • If the Gateway Settlement → Gateway Account’s Active = TRUE,

        • The Gateway Settlement record will be reconciled

      • If the Gateway Settlement → Gateway Account’s Active = FALSE,

        • The Gateway Settlement record will NOT be reconciled

        • A PosiPay Log record is created where:

          • Source = Stripe Gateway Settlement Reconciliation

          • Details = The Gateway Settlement (Gateway Settlement record ID) record has not been reconciled because the gateway is inactive. Please contact your System Administrator.

          • Type = Error

    • If the org is in a Sandbox environment,

      • If the Gateway Settlement → Gateway Account’s Active = TRUE,

        • If the Gateway Settlement → Gateway Account’s Sandbox = TRUE (test mode),

          • The Gateway Settlement record will be reconciled

        • If the Gateway Settlement → Gateway Account’s Sandbox = FALSE (live mode),

          • If the Gateway Settlement → Gateway Account’s Enable Live Payments from Sandbox = TRUE,

            • The Gateway Settlement record will be reconciled

          • If the Gateway Settlement → Gateway Account’s Enable Live Payments from Sandbox = FALSE,

            • The Gateway Settlement record will NOT be reconciled

            • A PosiPay Log record is created where:

              • Source = Stripe Gateway Settlement Reconciliation

              • Details = You do not have access to reconcile live payout for Gateway Settlement (Gateway Settlement record ID) in the sandbox. Please contact your System Administrator.

              • Type = Error

      • If the Gateway Settlement → Gateway Account’s Active = FALSE,

        • The Gateway Settlement record will NOT be reconciled

        • A PosiPay Log record is created where:

          • Source = Stripe Gateway Settlement Reconciliation

          • Details = The Gateway Settlement (Gateway Settlement record ID) record has not been reconciled because the gateway is inactive. Please contact your System Administrator.

          • Type = Error

PosiPay Settings

Remove ‘Use Payment Instrument’ in PosiPay Settings and its Field Reference in Stripe Customer Form

  • When the PosiPay Settings page loads,

    • On the General Settings section,

      • The Use Payment Instrument field has been removed

  • On the PosiPay Settings custom setting,

    • The Use Payment Instrument field has been deleted

  • When tokenising a payment details on the Stripe customer form,

    • If the selected payment method is Credit Card,

      • The Credit Card details will be tokenised

      • If the Save Payment Source/Instrument attribute is TRUE,

        • If the org is an NPC org where the NPC’s standard Payment Instrument object exist, a Payment Instrument record will be created

        • If the org is NOT an NPC org where the NPC’s standard Payment Instrument object does NOT exist, a Payment Source record will be created

      • If the Save Payment Source/Instrument attribute is FALSE,

        • NO Payment Source OR Payment Instrument record will be created

    • If the selected payment method is BECS Debit,

      • The BECS Debit details will be tokenised

      • If the Save Payment Source/Instrument attribute is TRUE,

        • If the org is an NPC org where the NPC’s standard Payment Instrument object exist, a Payment Instrument record will be created

        • If the org is NOT an NPC org where the NPC’s standard Payment Instrument object does NOT exist, a Payment Source record will be created

      • If the Save Payment Source/Instrument attribute is FALSE,

        • NO Payment Source OR Payment Instrument record will be created

Related content

Disabling and Enabling Gateway Account - PosiPay
Disabling and Enabling Gateway Account - PosiPay
More like this
PosiPay v 0.96
Read with this
PosiPay v 0.77
More like this
Products
Read with this
PosiPay v0.91
More like this
PosiPay with Agentforce: User Guide
PosiPay with Agentforce: User Guide
Read with this