Payment Service Automatic Recharge Retry
The Payment Service can retry a payment authorization for system-initiated automatic recharges when the associated Payment Gateway Provider supports retries.
- FAILED (2) — Indicates that a request has failed and it cannot be retried. A retry could result in duplication. There is no notification for failed automatic recharge requests.
- FAILED_TRANSIENT_SYTEM (3) — Indicates that the request failed (due to a timeout or system busy issue), but can be retried without the risk of duplication. For example, this could happen if the payment gateway is inaccessible. There is no notification for system failures.
- FAILED_TRANSIENT_USER (4) — Indicates that the request failed, but can be retried without the risk of duplication. These errors require user intervention. For example, this could happen if the user-supplied credentials are wrong. The Charging Server sends a notification for user failures.
The Payment Service sends these result codes to the Charging Server.
If retries are configured for a Payment Gateway Provider and an automatic recharge request fails with result code 3 or 4, it is retried if the maximum number of retries has not been reached. For result code 2, the authorization fails and there are no retries.
When the maximum number of retries is reached, the authorization fails with a timeout error indication. If a transaction times out, the authorization request is finished and no more retries are attempted. For information about maximum retry and timeout configuration, see the discussion about retry configuration.
payment:
gateway:
adapter_name:
configs:
default:
retryOperations: [List of operations that support retries]
transactionErrors: {Payment Service Error Code: [List of Payment Gateway Error Codes]}
transportErrors: [List of User Error Codes]
List of operations that support retries
— A comma-separated list of Payment Gateway Provider operations that support retries. For example,7
(authorize and capture).adapter_name
— A supported Payment Gateway Adapter. For example,braintree
.Payment Service Error Code
— A Payment Service error code (3
or4)
.List of Payment Gateway Error Codes
— A Payment Gateway Provider error code. For example,2034
.List of User Error Codes
— HTTP errors that are considered to be failed transient system statuses. For example,10
.
For information about payment gateway extension MDC fields for each Payment Gateway Provider, see the discussion about the Pay Now authorization process.
For information about configuring a specific Payment Gateway Adapter, see the discussion about Pay Now Payment Gateway Adapters. For more information about the result and response extension fields, see the discussion about the Pay Now authorization process.
In the following examples, retryOperations
values indicate authorize and
capture and transportErrors
indicate a timeout. For each of the
transportErrors
mapping configurations, the payment service returns
a failed transient system status rather than a failed status.
Braintree Retries
payment:
gateway:
braintree:
configs:
default:
retryOperations: [ 7 ]
transactionErrors: {3: [ "2034" ], 4: [ "2001" ]}
transportErrors: [ 10 ]
Foo Masterpass Retries
payment:
gateway:
foomasterpass:
configs:
default:
retryOperations: [ 7 ]
transactionErrors: {3: [ "850", "851" ], 4: [ "913", "914" ]}
transportErrors: [ 408 ]
RomCard Retries
payment:
gateway:
romcard:
configs:
default:
retryOperations: [ 7 ]
transactionErrors: {3: [ "99" ], 4: [ "51" ]}
transportErrors: [ 404, 412 ]
Notifications
A notification (MtxPaymentMethodUpdateRequestNotification) is generated when a payment authorization request to the Payment Service results in a FAILED_TRANSIENT_USER result code. Notifications are not generated for transient system failure retries.
For more information about MtxPaymentMethodUpdateRequestNotification, see the discussion about notification data relationships in MATRIXX Integration.