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